Thread 2D-Retrospiele in Perl schreiben!? (12 answers)
Opened by hlubenow at 2021-07-30 15:35

hlubenow
 2021-07-30 15:35
#193463 #193463
User since
2009-02-22
826 articles
BenutzerIn
[default_avatar]
Hallo,

kurz gesagt möchte ich gern in SDL_perl ein nicht-kommerzielles Spiel wie auf alten Heimcomputern schreiben und darüber diskutieren.

Längerer Sermon dazu: Offenbar gibt es Interesse an alten Heimcomputern der 1980er Jahre. Die Preise für originale ZX Spectrum, Atari 800 XL und C64 auf Ebay sind relativ hoch, der "8-Bit Guy" hat 1.3 Mio. Abonennten" auf Youtube, und es gibt viele schöne Retro-Projekte wie "TheC64 Maxi".
Ich gehöre auch in diese Zielgruppe und bin in Foren zu ZX Spectrum und Atari aktiv.
Damals war es für viele ein Traum, den ZX Spectrum (oder sagen wir den C64) in Assembler programmieren zu können, was ich damals leider nicht geschafft hab'. In den genannten Foren sind auch viele Leute, die neue Spiele für diese Systeme schreiben wollen und schreiben.
Ich habe mich inzwischen auch an modernen C- und Assembler Cross-Compilern versucht (z88dk, CC65). Aber das Programmieren in Assembler ist im Prinzip so unerfreulich, wie es immer war. Und warum soll man sich heute mit dem Schreiben von komplizierten I/O-Routinen und vor allem mit Speicherbegrenzungen auf 48K oder 64K herumquälen (wenn das für heutige PCs nicht mehr nötig ist)?
Also hab' ich mich gefragt, ob man nicht in Pygame so schreiben könnte, daß das Ergebnis exakt so aussieht, wie auf den Maschinen damals.
Der ZX Spectrum z.B. hat bekanntlich 8 Farben (* 2 durch "bright"). Die man problemlos von Screenshots nach gimp importieren kann, so daß man da die Farbwerte erhält. Genauso geht das mit den 127/256 Farben des Atari. Auflösung und Fonts kann man ebenfalls erhalten. Und so weiter.
Die Fonts der alten Maschinen sind in deren ROMs. Das könnte ein urheberrechtliches Problem bedeuten. Für den ZX Spectrum hat Amstrad immerhin erklärt, daß es ok sei, das ROM für Emulationszwecke zu verwenden.
Ich hab' z.B. den ersten Level von "Manic Miner", einem der besten Spectrum-Spiele, in Pygame nachgebaut (zu 100% würde ich sagen). Das geht also schon. Ich kann's nur halt nicht veröffentlichen, da ist noch Copyright drauf (ich glaube, irgendjemand will "Manic Miner" nochmal für mobile Geräte rausbringen oder so).
Aber ich hab' noch ein paar andere Dinge in Pygame (also in Python) geschrieben, und diese auf meine GitHub-Seite gestellt. Die Reaktion in den Retro-Foren war allerdings gleich Null. Offenbar gefällt den Leuten dort dieser Ansatz nicht. Anscheinend wollen sie unbedingt Assembler in 64K und sich über diese komischen I/O-Routinen unterhalten. (Wen das interessiert, hier wäre ein gutes pdf bzgl. Spectrum-Spielen in Assembler.)
Bei Pygame ist aber auch irgendwie die Luft raus. Irgendwie finde ich kein Forum, in dem man sich darüber austauschen könnte. Oder man kann sich da nicht anmelden oder sowas. Ziemlich blöd.
Python hat inzwischen auch das Problem, daß Version 3 nicht richtig abwärtskompatibel ist, und Vielen (einschließlich mir) die Neuerungen von Version 3 gar nicht gefallen, so daß sie bei Version 2.7 geblieben sind. Dadurch können viele Nutzer Programme von Anderen nicht mehr so leicht laufenlassen, weil die die jeweils andere Python-Version verwenden.
Dieses Problem hat Perl nicht. Perl 6 wurde so anders als Perl 5, daß es am Ende eine ganz andere Sprache wurde. Das heißt aber, daß, wenn jemand ein gut geschriebenes Perl-Programm ins Netz stellt, die Wahrscheinlichkeit relativ hoch ist, daß es bei Anderen, die das runterladen, auch sofort läuft ("Frozen Bubble" ist schon so einige Jahre alt, und läuft hier immer noch problemlos).
Um Spiele zu schreiben, gibt es für Perl "SDL_perl". Insbesondere das Spiel "Frozen Bubble" ist bekannt. In dessen Code steht, daß es regelrecht gesponsort wurde (von Mandriva). Sowas ist natürlich nett. "Frozen Bubble" zeigt, daß SDL_perl im Prinzip recht leistungsfähig ist. Der Ansatz ist ja derselbe wie bei Pygame: Bindings für SDL.
Aber auch bei SDL_perl ist die Luft ziemlich raus: Auf sdl.perl.org sind die "Latest News" vom 27.10.2011.
Auch hier im Perl-Forum führt es ein Schattendasein. Es gibt eine Rubrik "Graphische Oberflächen", aber keine Rubrik "Spieleentwicklung".
Also, wie gesagt: Ich würde gern 2D-Spiele in Perl schreiben, die genau wie die auf alten Heimcomputern aussehen (ja, das ist möglich!), und mich darüber mit anderen Leuten austauschen. Vielleicht kann ich das ja hier tun. Mal sehen, wie weit ich komme. Das hängt anscheinend aber auch von der Ermutigung durch Andere ab: Wenn alle sagen, das ist 'ne blöde Idee, oder wenn sie über einen langen Zeitraum einfach gar nichts sagen, dann ist es schwer, die Lust dazu aufrechtzuerhalten und weiterzumachen.

View full thread 2D-Retrospiele in Perl schreiben!?