{"id":9841,"date":"2024-08-07T18:40:19","date_gmt":"2024-08-07T18:40:19","guid":{"rendered":"https:\/\/www.gamelab.ch\/?p=9841"},"modified":"2024-08-08T08:41:22","modified_gmt":"2024-08-08T08:41:22","slug":"die-entdeckung-der-endlosigkeit-ewigkeit-in-computerprogrammen","status":"publish","type":"post","link":"https:\/\/www.gamelab.ch\/?p=9841","title":{"rendered":"Die Entdeckung der Endlosigkeit\/Ewigkeit (in Computerprogrammen)"},"content":{"rendered":"\n<p>Wer anf\u00e4ngt zu programmieren, simuliert zuerst immer das Programm selbst. Er f\u00fchrt das Programm aus, Befehl f\u00fcr Befehl, Zeile f\u00fcr Zeile. Ganz im Sinne der Turingmaschine &#8211; wir spielen unsere Rechensklaven. Wir spielen das, was wir externalisieren. Nicht tun wollen. Es ist ein Schreiben an eine Maschine, hinter der wiederum meist ein Mensch als Rezipient\/User steht.  Das laufende Programm best\u00e4tigt dann den menschlichen Interpreten und den User dabei (Erfolg) oder funktioniert gar nicht (Error) oder gar nicht wie gewollt (Error). <\/p>\n\n\n\n<p>Wer als 13 J\u00e4hirger* (wie der Autor) sein erstes interaktives Programm &#8222;macht&#8220;. Der schreibt etwa ein Programm in BASIC auf einem Apple II in einem Computercamp. Und es geht um ein einfaches Programm ein QUIZ. Und so werden ganz einfach Prints, Inputs und Ifs verwendet, um einen QUIZ zu programmieren, zu L\u00e4ndern und Hauptst\u00e4tten.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 PRINT \"HAUPTSTADT OESTERREICH?\"\n20 INPUT A$\n30 IF A$=\"WIEN\" THEN PRINT \"RICHTIG\"\n30 IF A$&lt;&gt;\"WIEN\" THEN PRINT \"FALSCH!\"<\/code><\/pre>\n\n\n\n<p>Will man 10 Fragen, kopiert man den Code-Block mehrfach und f\u00fcllt ein &#8222;England&#8220;, &#8222;London&#8220; und so weiter.<\/p>\n\n\n\n<p>Will man* 20 Fragen haben, dann kopiert man 20 Fragen und \u00e4ndert ab. Selbstverst\u00e4ndlich liesse sich das auch noch in Unterroutinen kopieren. Aber das Konzept bleibt dasselbe. <\/p>\n\n\n\n<p>Eine fantastische Sache, eine Maschine, die das dann einfach so tut, Hundertfach kopiert und zeitunabh\u00e4ngig. AI der ersten Generation. <\/p>\n\n\n\n<p>Wo sind die Grenzen? Das menschlich Zumutbare? Was wenn etwas unendlich oft gemacht werden soll, etwas was menschlich v\u00f6llig unklar ist und weit \u00fcber den Einzelnen hinausgeht. Daf\u00fcr haben Menschen fr\u00fcher andere Menschen ausgebildet, beeinflusst per B\u00fccher, Schulen gegr\u00fcndet etc. Aber hier? <\/p>\n\n\n\n<p>Dann kommt (konkret lernt man) den Befehl GOTO. Dieser l\u00e4sst das Programm oder den Ausf\u00fchrer irgendwohin springen und da weitermachen. Und ja da erschafft man die Unendlichkeit, den Loop, der niemals mehr aufh\u00f6rt. Damit \u00fcberschreibt das Computerprogramm das Menschliche, das Zeitliche und wird theoretisch ewig. Es ist kein Programm mehr, das auf Menschen l\u00e4uft. Es ist entkoppelt, eine Extension, die einfach ohne uns l\u00e4uft. Es ist letztlich die Macht der eigenen Extension, des kleinen eigenen Simulation, der uns \u00fcberdauerenden Simulation und die Ewigkeit, die uns gleichzeitig zeigt, dass wir nicht mehr sind und doch etwas von &#8222;uns&#8220; weiterprozessiert.<\/p>\n\n\n\n<p>Es ist kein Wunder geben viele irgendwo (als \u00dcberbleibsel) mal ein Derivat von folgendem Code ein und schleichen sich dann davon.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 PRINT \"EWIGKEIT\";\n20 GOTO 10<\/code><\/pre>\n\n\n\n<p>JMP, GOTO oder dann auch LOOPS \u00fcberspringen uns als Menschen und sind letztlich zutiefst unmenschlich. <\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/www.gamelab.ch\/wp-content\/uploads\/2024\/08\/Screen-2024-08-08-103020.mp4\"><\/video><\/figure>\n\n\n\n<p>Wir tr\u00f6sten uns dann damit, dass wir ja das ganze kontrollieren. Aber die Philosophie dahinter, hat uns l\u00e4ngst \u00fcberdauert und knechtet uns im schlimmsten Fall als Server als Service. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Der Loop und das Gamedesign<\/h2>\n\n\n\n<p>Es ist nat\u00fcrlich auch dieser Loop, der \u00fcberhaupt moderne Games letztlich m\u00f6glich machen und die modernen Games an die Kybernetik binden. Ein &#8218;ewiger&#8216; Loop simuliert die Realit\u00e4t von Games, wo ab und zu (nicht wie beim QUIZ oben) nach Tasteneingaben (optional) gefragt wird und damit etwa ein Avatar gesteuert wird, w\u00e4hrend die Welt weiterl\u00e4uft. Wobei in Games meist versucht wird, aus diesem ewigen Kreislauf auszubrechen, das Problem zu l\u00f6sen, das Spiel zu beenden &#8211; es nicht ewig &#8222;werden zu lassen&#8220;. <\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Let&#039;s write - Snake game in Basic\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/LAcy5PahlDQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Wer anf\u00e4ngt zu programmieren, simuliert zuerst immer das Programm selbst. Er f\u00fchrt das Programm aus, Befehl f\u00fcr Befehl, Zeile f\u00fcr Zeile. Ganz im Sinne der Turingmaschine &#8211; wir spielen unsere Rechensklaven. Wir spielen das, was wir externalisieren. Nicht tun wollen. &hellip; <a href=\"https:\/\/www.gamelab.ch\/?p=9841\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/9841"}],"collection":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9841"}],"version-history":[{"count":7,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/9841\/revisions"}],"predecessor-version":[{"id":9855,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=\/wp\/v2\/posts\/9841\/revisions\/9855"}],"wp:attachment":[{"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gamelab.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}