ALIEN 3 KI von DEVILSYSTEM (Markus Hohmann)

Beteiligung an Code & Logik

Hybrid (KI-generierte Kernroutinen; von Menschen zusammengestellt/bearbeitet)

Beteiligung an Assets & Pipeline

Unbekannt (Drittanbieter-Entwickler)

Projektnotizen & Prompts

ChatGPT

ALIEN 3 für die PLUS-Reihe hatte niemand kommen sehen. Markus Hoffman, alias DEVILMARKUS, alias DEVIL SYSTEM, bringt uns gemeinsam mit seiner Lieblings-KI Neuigkeiten zum Projekt.

https://alien3.devil-system.de/index.html?lang=en

1 „Gefällt mir“

Alien3_6128Plus.cpr (512,3 KB)

1 „Gefällt mir“

Ein Besuch auf der Seite des Autors, der dort sein Projekt erklärt und vorstellt und seine Arbeit zudem kostenlos anbietet, schadet auch nicht.

1 „Gefällt mir“

Im Weltraum hört dich niemand schreien … :alien:

2 „Gefällt mir“

Sieht cool aus, aber ein guter Port von „ALIEN NEOPLASMA“ für unseren AMSTRAD wäre der absolute Hammer.

2 „Gefällt mir“

Das Scrolling ist ja irre gut!

Gibt es eine Möglichkeit, dass ich den Code einsehen kann? Ich interessiere mich brennend, wie das Scrolling programmiert wurde. Daran bin ich bisher immer gescheitert. Auch mit einer technischen Beschreibung wäre ich bereits sehr glücklich.

Dickes Kompliment.

Grüße
S.D.

2 „Gefällt mir“

Markus ist immer erreichbar. Der Link führt zum Projekt, dort findest du den Kontakt. Ich glaube, er nutzt eine bestimmte KI, mit der er schon seit Jahren entwickelt. Manchmal schaut er auch auf FACEBOOK vorbei: https://www.facebook.com/devilmarkus

Nur eine kurze Anmerkung, @RETO_AMSTRAD: Der Nachname ist „Hohmann“ hehe

1 „Gefällt mir“

danke

Vielleicht werden deine Träume ja wahr ,:alien::alien:

1 „Gefällt mir“

„Hä? Lass mal was raus, du Alien-Zähnchen. :smiley: Da bahnt sich also eine Konvertierung an. Ich reserviere mir schon mal Teil 1 und 2.

Nur ein Scherz, hoffentlich klappt es, denn das ist eines der immersivsten VIDEO-ADVENTURES der gesamten Homecomputer-Szene.“

1 „Gefällt mir“

Ja, ich habe es überall geteilt und am Ende mache ich wohl Werbung für den Typen mit den Fotoalben. Ich habe es später korrigiert – das passiert eben, wenn man nach Gehör schreibt.

1 „Gefällt mir“

Da es für einen Plus ist, würde ich annehmen, dass einfach das Hardware-Scrolling genutzt wird, was um einiges unkomplizierter ist, als zu versuchen, auf einem Standard-CPC auch nur annähernd flüssiges Scrolling zu erzielen. Es gibt zwar immer noch ein paar Tricks, um das Ganze zu verbessern, aber wenn alles, was sich bewegt, über Sprites läuft, braucht man die meistens nicht einmal.

Bestätigt, es handelt sich um ein Plus-Hardware-Soft-Scrolling mit Sprites.

Die Hauptsache ist, die CRTC-Register R12 und R13 auf den Beginn des Bildschirms zu setzen. Das kannst du von BASIC aus so machen:
OUT &BC00,12:OUT &BD00,&30:OUT &BC00,13:OUT &BD00,10

Das Wichtigste dabei ist: Wenn du viele dieser Befehle eingibst, scrollt BASIC den Bildschirm, sodass es schwer zu erkennen sein kann, was gerade passiert. Packe diese Zeile daher am besten in ein BASIC-Programm und ändere den letzten Wert dort (die „10“) – dann siehst du schon etwas besser, wie das Ganze funktioniert.

Durch das Ändern von R12 und R13 änderst du, ab welcher Stelle der Bildschirminhalt angezeigt wird. Basierend auf der Bildschirmbreite bricht die Anzeige dann in die nächste Zeile um und so weiter. Sobald das Ende des Bildschirms erreicht ist, bricht es wieder nach vorne um. Wenn du also die Werte für R13 und R12 erhöhst (aber denk daran, hier +&30 hinzuzurechnen, damit es im Bereich &c000-&ffff bleibt), siehst du, wie die Werte zusammenspielen: Addieren, Subtrahieren, um wie viel ganze Zeilen verschoben werden etc.

Der Plus bietet dann zusätzlich zwei weitere Register. Damit kannst du den Bildschirm pixelweise horizontal und vertikal verschieben. Im Grunde änderst du den Verschiebewert von 0 bis 15. Dann setzt du ihn wieder auf 0 zurück und aktualisierst R12 und R13. Das erzeugt ein weiches Pixel-Scrolling. Dasselbe Muster lässt sich vertikal mit dem Wert für das vertikale Soft-Scrolling anwenden.

Sobald du das draufhast, scrollt dein Bildschirm. Der nächste Schritt ist das Aktualisieren der Grafik.

Beim horizontalen Scrollen aktualisierst du eine Spalte der Grafik auf einer Seite des Bildschirms – welche Seite, ist aufgrund des Screen-Wrappings nicht wirklich wichtig – und fügst hier die neuen Grafikdaten ein. Wenn du scrollst und dabei kontinuierlich neue Grafik einblendest, kannst du eine komplette Map scrollen.

Wenn du vertikal scrollen willst, aktualisierst du entsprechend eine einzelne Zeile, entweder ganz oben oder ganz unten (auch hier ist es nicht so wichtig, wo), und blendest neue Grafikdaten ein, um die Map zu scrollen.

Wenn du das alles erst einmal hast, kannst du auf dem Plus Hardware-Sprites völlig frei an jeder beliebigen Stelle darüber positionieren – ganz ohne Probleme.

Wenn du für den normalen CPC programmierst, berechnest du anhand der Bildschirmbasisadresse und den X/Y-Koordinaten deines Sprites, wo es gezeichnet werden soll. Du zeichnest es genau wie auf einem statischen Bildschirm (auch wenn es eine Stelle gibt, an der INC HL nicht wie erwartet zum nächsten Bildschirm-Byte weiterspringt; du kannst dir das Disassembly der Firmware-Routine SCR_NEXT_BYTE ansehen, um eine Lösungsmöglichkeit zu sehen; eine andere wäre, das Sprite in Spalten zu zeichnen und das Problem so zu umgehen – es gibt da verschiedene Methoden).

Nachdem du das Sprite gezeichnet hast, musst du es wieder löschen. Auch hierfür gibt es verschiedene Wege: Du könntest die Kacheln dahinter neu zeichnen, beim Zeichnen den Bildschirmbereich kopieren und wiederherstellen, ihn aus einer anderen, sauberen Version des Bildschirms kopieren … das variiert.

Das weichere Scrollen auf dem CPC (ohne Plus) lässt sich auf unterschiedliche Weise umsetzen. Erwarte aber nicht, dass du horizontal so ohne Weiteres an die Geschmeidigkeit des Plus herankommst; vertikal ist es über verschiedene Wege machbar.

Gibt es bestimmte Punkte, bei denen du Hilfe brauchst? Sag einfach Bescheid, dann finden wir hoffentlich einen Weg, damit alles verständlich wird.

5 „Gefällt mir“

Ich habe es ein paar Mal über den eingebetteten Emulator auf der Website des Spiels ausprobiert. Soweit ich sehe, ist es ein direkter Port der C64-Version; es wurde also keine Arbeit investiert, um die Grafik von der 3+1-Farbbeschränkung zu befreien. Aber ich schätze, das kann man von einer KI bisher noch nicht verlangen. :stuck_out_tongue:

Hat jemand das Spiel auf einem der üblichen Emulatoren oder sogar auf einem echten Plus laufen lassen? Ich frage mich, ob diese Unstimmigkeiten bei den Sprite-Bewegungen am Spiel selbst oder am eingebetteten Emulator liegen.

2 „Gefällt mir“

Danke für den Hinweis mit dem “PLUS”. Das habe ich übersehen und war bereits unendlich am Staunen. Umsonst, wie sich nun herausstellt.

1 „Gefällt mir“

Vielen Dank für Dein Angebot! Ich werde darauf zurückkommen.
(Ich hatte einst einmal versucht, auf dem CPC 6128 (ohne Plus) ein ZAXXON-ähnliches Spiel zu programmieren. Bereits bei der Engine war ich kläglich gescheitert…)

1 „Gefällt mir“

Das erinnert mich an die Demo “Isometrikum” von Vanity:

https://www.youtube.com/watch?v=T5SACesODy8

Schnelles und weiches, diagonales Scrolling auf einem nicht-Plus-System. Aber einfach zu programmieren ist das nicht.

2 „Gefällt mir“

DANKE für den Link! Das ist ja extrem gut gemacht! Ich habe nicht den Hauch einer Ahnung wie man so etwas auf dem CPC 6128 programmiert.