Ich habe einen Snapshot eines berühmten isometrischen Spiels bei Claude hochgeladen und es dann (mit ein paar sehr spezifischen Kriterien) gebeten, das Spiel anhand des Snapshots zu dekompilieren und komplett in BlitzMax neu zu schreiben – mit dem Ziel, dass alles (Menüs, Gameplay, Sounds etc.) genau wie im Originalspiel funktioniert.
Heiliges Kanonenrohr. In etwas mehr als einer Stunde war es fertig, und das Ergebnis ist verblüffend.
Der resultierende BlitzMax-Code ist leicht verständlich und kommentiert.
Für alle, die es interessiert, hier war mein Prompt (unter Verwendung von Claude Opus 5.5 auf der Stufe „Low“):
hallo.
dekompiliere das.
ich möchte es auf blitzmaxNG 0.165.3.61 portiert haben.
Portiere das GESAMTE Programm nach blitzmax.
Sehr einfacher, sauberer, leicht verständlicher Code und völlig unoptimiert.
Versuche, für jeden Sound im Programm ein entsprechendes Äquivalent zu erstellen.
Lass es in einem Fenster von 1280x800 laufen, wobei die Anzeige des CPC 4-fach hochskaliert wird.
keine Optimierung.
kein Schnickschnack.
einfach ein direkter 1:1-Port.
keine seltsamen Speicherspielereien beim Durchgehen von Daten, einfach simple Arrays, wo immer möglich.
die goldene Regel lautet: halte den blitzmax-Code SO EINFACH WIE MÖGLICH und so lesbar und leicht verständlich wie möglich.
im Ernst, absolut kein Schnickschnack und kein „ausgeklügeltes“ Zeug!
Im Grunde dasselbe Spiel, Remakes lassen sich somit einfacher erstellen.
Ich habe mit dem Quellcode meines Spiels Bitume versucht, auf mein C+±Framework mit Direct2d umzusteigen (ein Update des Direct3d-Frameworks, das ich für das Remake von Hurlements für Windows verwendet habe). Und natürlich funktioniert es.
Schon wieder eine Art von Spiel, die ich in einem Projekt von Hand nachzubauen versucht habe (indem ich eine Art isometrisches Framework für den CPC erstelle) … Ich versuche dabei zu lernen (habe mir dazu sogar einen Artikel von Jon Ritman zum Lesen besorgt). Und die KI kann mir den Code einfach liefern, wenn ich will.
Aber schon gut, es ist ja nur „eine Implementierung“ unter vielen … Ich kann einfach langsam weitermachen (statt schlampig).
Hast du vor, das zu bearbeiten und als Basis für ein anderes Spiel zu nutzen? Oder geht es dir einfach nur um die Schönheit des Portierens?
Ich habe mich schon immer dafür interessiert, wie isometrische Spiele damals entwickelt wurden, besonders angesichts der damaligen Hardware-Einschränkungen. Und der BlitzMax-Code ist wirklich leicht verständlich und eignet sich hervorragend zum Lernen. KI hat mir nun die Möglichkeit gegeben, die genaue Funktionsweise endlich richtig nachzuvollziehen und zu verstehen.
Und ich muss wirklich sagen: Jon Ritman ist ein absolutes Genie! Der Ursache-Wirkung-Zusammenhang zwischen Objekten im Spiel, die Interaktionen zwischen Charakteren und Objekten, Charakteren und Oberflächen sowie zwischen den Charakteren selbst sind bemerkenswert tiefgründig und voller Nuancen. Mir war nie wirklich bewusst, wie genial „Head Over Heels“ tatsächlich ist. Nicht nur ein Meisterwerk in puncto Gameplay, sondern auch ein echtes Programmier-Meisterwerk.
„Head Over Heels“ ist mein absolutes Lieblings-CPC-Spiel aller Zeiten – ein Blick hinter die Kulissen bedeutet mir daher unheimlich viel. Ich überlege schon, Claude als Nächstes „Rasputin“ portieren zu lassen …
Leider ist die Spielfigur ein einziger Pixelmatsch, und mit keinen Steuerungstasten lässt sie sich bewegen.
Sobald mein Nutzungslimit zurückgesetzt ist, werde ich weitermachen.
Es ist eine gute Idee, auf BASIC-orientierte Spieleentwicklung zu setzen; der Code dürfte lesbarer sein als nach C++ konvertiert und behält nur die reine Spiellogik bei.
Der resultierende BlitzMax-Code aus allen 3 Spielen ist tatsächlich sehr leicht zu verstehen und nachzuvollziehen. Ich weiß noch nicht so recht, wie ich ethisch dazu stehe, aber als Lernwerkzeug ist es einfach großartig.
Es gab bereits ein ähnliches Problem bei Disassemblierungen von Spielen, doch das erforderte im Kontext der CPC-Entwicklung immer noch einiges an technischem Geschick.
Das ist ein sehr guter Punkt … allerdings habe ich mir in diesem Fall das Recht, zu untersuchen, wie die Spiele funktionieren, nicht „verdient“. Ich bin nur plötzlich (und ganz einfach) in der Lage, die Algorithmen zu verstehen, die in diesen Closed-Source-Spielen verwendet werden.
Natürlich ist der ursprüngliche Quellcode nicht verfügbar und es handelt sich hierbei um eine Rekonstruktion. Doch aus algorithmischer Sicht ist es wahrscheinlich eine sehr zutreffende Darstellung dessen, was die ursprünglichen Entwickler geschaffen haben. Es fühlt sich wie Schummeln an.