Hi,
ich habe meine letzten Credits bei Claude verbraucht, um eine Version von Galaga für den CPC zu erstellen, und ich arbeite gerade daran, es spielbar zu machen.
Wie bei allen meinen Claude-Projekten möchte ich, dass es ein vollständiges und funktionsfähiges cpcteleraNext-Projekt wird, damit ich es verstehen und vor allem Anpassungen vornehmen kann.
Hier ist der aktuelle Stand – im Moment läuft es noch etwas langsam.
Ein kleiner Vorgeschmack, während ein Rebuild mit voller Optimierung läuft.
Nur zur Information: Um diese Version zu erstellen, habe ich all mein Cloud-Guthaben aufgebraucht, inklusive der 100 $ Startguthaben (einer Werbeaktion zum Testen der Cloud).
Viel Spaß damit, Galaga ist ein wirklich gutes Spiel.
Das Spiel läuft mit 64 KB auf dem klassischen CPC und lädt danach nichts mehr nach.
Der Code ist fast vollständig in C geschrieben und nutzt die cpcteleraNext-Bibliothek. Aus Geschwindigkeits- und Speicherplatzgründen wurden jedoch einige spezielle Funktionen in Assembler verfasst.
Es ist wirklich eine sehr gute Demonstration dessen, was mit cpcteleraNext (und Claude.IA) möglich ist.
Das Spiel ist etwas vereinfacht, aber die meisten Funktionen des Originals sind enthalten.
Mein Hauptziel war es, dass es gut spielbar ist.
Dann war es vielleicht das, was ich in deinem Beitrag gerochen habe? Das zusammen mit der Struktur (Markdown-Abschnitte) ließ es einfach wie eine kopierte KI-Antwort aussehen. Und um ehrlich zu sein: Nachdem ich den Beitrag überflogen und diesen KI-Vibe gespürt hatte, habe ich ihn nicht mehr wirklich ganz gelesen. So habe ich das … I asked Claude to … übersehen. Mein Fehler.
Versteh mich aber bitte nicht falsch. Ich bin nicht dagegen, KI für Recherchen zu nutzen (das mache ich selbst viel), aber meiner Meinung nach sollte es klar als solches gekennzeichnet sein (und nicht irgendwo mitten im Beitrag versteckt werden), wenn man die Ergebnisse online teilt.
Wow – das sieht fantastisch aus und wird sehr geschätzt –, aber es ist offensichtlich ziemlich langsam. Wenn das Tempo verbessert werden könnte, wäre das großartig!
Ich habe es gerade auf echter Hardware geladen – ein weiteres Problem, das ich hatte: Kein Traktorstrahl von den Boss-Galagas in Level 1 und 2. Ich lasse sie absichtlich am Leben, um mich für die „Challenging Stage“ zu verdoppeln – aber da war kein Strahl. Wenn noch mehrere Boss-Galagas übrig sind, hat normalerweise mindestens einer von ihnen einen Strahl. Das ist ein zentraler Bestandteil des Spiels.
Es kann auf jeden Fall schneller laufen – die Formationen und die Challenging Stage. Sobald nur noch wenige Figuren auf dem Bildschirm sind, läuft es sogar zu schnell.
Für eine von einer KI erstellte Version ist dieses Spiel wirklich beeindruckend – es ist zwar etwas langsam, aber spielbar und sieht gut aus.
Aber darf ich hier auch ein bisschen kritisch sein und anmerken, dass so etwas menschliche Programmierer davon abhalten könnte, eine flüssigere Version zu entwickeln? Ganz ähnlich wie bei KI-Übersetzungen von Retro-Spielen (die zwar funktionieren, aber den Geist des Originaltexts verlieren): Denen wird ebenfalls vorgeworfen, dass sie vernünftige menschliche Übersetzungen ausbremsen, weil manche Leute meinen, es lohne sich nicht mehr, da es ja bereits eine korrekte Übersetzung gibt – auch wenn sie nicht besonders toll ist.
Diese neue Version hat zwar ein paar Dinge, die noch behoben werden müssen (ich wünschte echt, sie würde nicht am Anfang jeder Phase die Startmusik spielen), aber sie hat auch verdammt viel richtig gemacht. Natürlich viel zu langsam, aber sie sieht wirklich schick aus. Der einfache Farbübergang von Gelb nach Weiß funktioniert super. Es ist ein guter Proof of Concept. Ich frage mich, wie viel schneller man das noch hinbekommen könnte.
Sind die Sprites vorverschoben (pre-shifted) und wurden sie kompiliert? Wenn der Bildschirm 32x32 groß wäre, könnten die Sprite-Routinen etwas beschleunigt werden. Es wären höchstens etwa 40 Sprites gleichzeitig auf dem Bildschirm, typischerweise aber eher um die 20. Sie könnten alle unmaskiert gezeichnet werden und ihre eigenen Spuren löschen, anstatt in jedem Frame komplett gelöscht zu werden.
Noch so ein Problem… Galaga hat tatsächlich eine enorme Menge an Sprites. Dem Anschein nach etwa um die 80. Aber wenn man die Palette-Swaps dazuzählt, sind es eher 150. Außerdem müssen sie horizontal, vertikal und in beide Richtungen gespiegelt werden, also 600. Es sieht so aus, als hätte jedes Raumschiff im Spiel 32 Rotations-Frames. Und wenn man sie für den CPC noch vorverschiebt (Pre-Shift), wären das 2.400 Sprites. Argh.
Es werden allerdings nicht alle auf einmal verwendet. Manche habe ich noch nie gesehen, daher bin ich nicht sicher, ob sie überhaupt im Spiel sind oder nur auf dem Sprite-Sheet liegen. Vielleicht könnte man mit selbstmodifizierendem Code etwas Cleveres anstellen, um Sprite-Stamps zu erzeugen.
Ich glaube, man könnte es auf 12 Raumschiffe x 32 Rotationen herunterbrechen und auf die meisten Palette-Swaps verzichten – dann wären es „nur“ 384. Wenn man auf kompilierte Sprites verzichtet, kann man sie recht einfach vertikal spiegeln, also die Hälfte davon. Wenn man sie sich horizontal nur in 2-Pixel-Schritten bewegen lässt, halbiert das die Anzahl der Pre-Shifts… also wieder zurück auf 384. Sie sind alle 16x16 groß, entspricht 16x4 Bytes = 64 Bytes pro Sprite. Also gut, 24 KB an Sprite-Daten für die Raumschiffe…?
Vielleicht könnte man die Anzahl der Rotationen auch noch auf 16 reduzieren.
Heeeeey, willkommen Kumpel!! Schön, dass du wieder da bist
Das eigentliche Zitat müsste lauten: „KI macht einen besseren Job als ein echter Mensch, der nicht weiß, was er tut“.
Diese Galaga-Version gefällt mir schon viel besser — gut genug, um eine eigene Version zu rechtfertigen, aber auch hier hat sie durchaus ihre Daseinsberechtigung.
Hier ist ein Projekt in Arbeit: GalagaPlus für CPC+ 128k (eine Version für 64k ist ebenfalls in Arbeit).
Es gibt noch ein paar Bugs, aber es sieht wirklich super aus. Die nächste Version folgt nächtste Woche, wenn mein Claude.AI-Guthaben wieder aufgeladen ist.
Wir waren gerade mitten in der Diskussion darüber, wie man die Sprite-Hardware-Nutzung und Raster-Tricks optimiert.
Optisch sieht das wirklich super aus, aber die Gegner scheinen sich viel zu aggressiv auf dein Schiff aufzuschalten – ihr einziger Angriffsmodus ist „auf das Spielerschiff zielen“, was den Spielspaß gewaltig drückt.
Und während das Spiel etwas langsamer läuft, wenn die Aliens zu Beginn auf den Bildschirm kommen, sind sie unglaublich schnell, sobald sie auf dich heruntergestürzt kommen!