{"id":2261,"date":"2014-03-07T14:52:45","date_gmt":"2014-03-07T14:52:45","guid":{"rendered":"http:\/\/www.ollmetzer.com\/?p=2261"},"modified":"2014-03-20T08:55:37","modified_gmt":"2014-03-20T08:55:37","slug":"farbflut-auf-dem-commodore-64","status":"publish","type":"post","link":"https:\/\/www.ollmetzer.com\/?p=2261","title":{"rendered":"Farbflut auf dem Commodore 64"},"content":{"rendered":"<p>Seit letztem Jahr treibe ich mich in Berlin regelm\u00e4\u00dfig auf diversen Veranstaltungen mit dem Thema Retrocomputing herum. Ich habe viele interessante und teils verbl\u00fcffende Dinge gesehen, die man mit den alten 8-Bit Maschinchen machen kann. Ich fand heraus, dass es noch immer eine lebendige Szene f\u00fcr meinen Lieblingscomputer Commodore 64 gibt und noch immer neue Software f\u00fcr das \u00fcber 30 Jahre alte Sch\u00e4tzchen erscheint.<\/p>\n<p><strong>Ich will auch mal wieder&#8230;<\/strong><\/p>\n<p>Im letzten Sommer &#8211; nachdem ich den Vortrag von Berthold Fritz \u00fcber die <a title=\"Steinschlag \u2013 mit 8Bit\" href=\"\/?p=2027\" target=\"blank\">Programmierung eines Spiels f\u00fcr die 8 Bit Atari Heimcomputer<\/a> geh\u00f6rt hatte &#8211;  nahm ich mir vor, auch mal wieder ein kleines Spielchen zu programmieren. Und zwar so richtig maschinennah in <a title=\"Wikipedia: Assembler\" href=\"http:\/\/de.wikipedia.org\/wiki\/Assemblersprache\" target=\"blank\">Assembler<\/a> &#8211; wie man das damals meist getan hat.<\/p>\n<p>Es muss nichts aufregend, originelles, gro\u00dfes sein. Irgendwas nettes kleines, was man gerne mal f\u00fcr 10 Minuten spielt. Berthold Fritz hatte sich an Boulderdash orientiert, aber von solchen Spielen gibt es gef\u00fchlt hunderte f\u00fcr den C64. Was also tun?<\/p>\n<p>Als ich meinen Raspberry Pi das erste mal eingeschaltet hatte, stolperte ich \u00fcber ein kleines, in Python programmierte Spiel, bei dem man ein buntes Spielfeld durch Farbwechsel einfarbig bekommen soll. Total simpel und einfach &#8211; aber ich sa\u00df wie gebannt davor und habe das tats\u00e4chlich elend lange gespielt. Das Prinzip macht Spa\u00df und man ben\u00f6tigt weder bombastische Grafik noch umwerfenden Sound. Bingo &#8211; so machen wir es!<\/p>\n<div id=\"attachment_2262\" style=\"width: 490px\" class=\"wp-caption aligncenter\"><a rel=\"attachment wp-att-2262\" href=\"http:\/\/www.ollmetzer.com\/?attachment_id=2262\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2262\" class=\"size-medium wp-image-2262\" title=\"Proof of concept: colorflood in Basic\" src=\"http:\/\/www.ollmetzer.com\/wp-content\/uploads\/2014\/03\/colorflood_basic-480x385.png\" alt=\"Proof of concept: colorflood in Basic\" width=\"480\" height=\"385\" srcset=\"https:\/\/www.ollmetzer.com\/wp-content\/uploads\/2014\/03\/colorflood_basic-480x385.png 480w, https:\/\/www.ollmetzer.com\/wp-content\/uploads\/2014\/03\/colorflood_basic.png 774w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><p id=\"caption-attachment-2262\" class=\"wp-caption-text\">Proof of concept: colorflood in Basic<\/p><\/div>\n<p>Den Algorithmus f\u00fcr den Farbwechsel habe ich zun\u00e4chst in Basic programmiert, um zu \u00fcberpr\u00fcfen ob er wirklich so einfach ist, wie ich gedacht habe. Das Ergebnis war lauff\u00e4hig, aber wie zu erwarten war auch unglaublich langsam. Immerhin &#8211; der Proof of Concept war erbracht. Den <a title=\"GitHub: Colorflood Basic Quellcode\" href=\"https:\/\/github.com\/dollmetzer\/colorflood\/blob\/master\/colorflood_basic.txt\" target=\"_blank\">Programmcode habe ich bei Github hinterlegt<\/a>.<\/p>\n<p>Das Projekt <em>colorflood<\/em> ist mittlerweile in einem Stadium, in dem ich es auch mal zeigen kann. Es gibt:<\/p>\n<ul>\n<li>Eine einfache Startseite. Los geht es mit Druck auf den Feuerknopf von Joystick 2.<\/li>\n<li>Das Spielfeld wird aufgebaut<\/li>\n<li>Die Farben werden zuf\u00e4llig gesetzt<\/li>\n<li>Mit dem Joystick kann man die n\u00e4chste Farbe ausw\u00e4hlen und per &#8222;Feuer&#8220; setzen.<\/li>\n<li>Der Farbwechsel wird animiert angezeigt<\/li>\n<li>Die Anzahl der Farbwechsel wird gez\u00e4hlt (ist aber noch nicht limitiert)<\/li>\n<li>Es gibt einen Countdown (der aber noch nicht bei 000 den Level beendet)<\/li>\n<li>Wenn das komplette Spielfeld eingef\u00e4rbt ist, wird der Level beendet (und damit zur Zeit auch das Spiel)<\/li>\n<\/ul>\n<p>Als n\u00e4chstes werde ich die verschiedenen Beendigungen eines Levels und die Erh\u00f6hung des Schwierigkeitsgrades im n\u00e4chsten Level programmieren. Danach Sound und zum Abschluss hoffentlich noch eine Titelmelodie.<br \/>\nDie vollst\u00e4ndigen Projektsourcen sind hier zu finden:<\/p>\n<p><a title=\"Quelltext f\u00fcr colorflood f\u00fcr den Commodore 64\" href=\"https:\/\/github.com\/dollmetzer\/colorflood\" target=\"_blank\">https:\/\/github.com\/dollmetzer\/colorflood<\/a><\/p>\n<p>Wenn das Spiel fertig ist, werde ich es auch als fertig \u00fcbersetztes Programm zur Verf\u00fcgung stellen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit letztem Jahr treibe ich mich in Berlin regelm\u00e4\u00dfig auf diversen Veranstaltungen mit dem Thema Retrocomputing herum. Ich habe viele interessante und teils verbl\u00fcffende Dinge gesehen, die man mit den alten 8-Bit Maschinchen machen kann. Ich fand heraus, dass es noch immer eine lebendige Szene f\u00fcr meinen Lieblingscomputer Commodore 64 gibt und noch immer neue [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,14],"tags":[],"class_list":["post-2261","post","type-post","status-publish","format-standard","hentry","category-development","category-retro"],"_links":{"self":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/2261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2261"}],"version-history":[{"count":1,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/2261\/revisions"}],"predecessor-version":[{"id":2263,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=\/wp\/v2\/posts\/2261\/revisions\/2263"}],"wp:attachment":[{"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ollmetzer.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}