Archiv der Kategorie: Projekt Rock

Ringvorlesung im Fach Medienwissenschaften…

…..das Thema meines Vortrages wurde im Forum des ABBUC vorgestellt. Dafür möchte ich mich an dieser Stelle bedanken. Es ist schön und ermutigend zu erfahren, dass das Thema meines kleinen Hobbys auf Interesse stößt.

Das Spielchen selbst ist, verglichen mit den wunderbaren Beiträgen der zahlreichen Entusiasten auf dem Gebiet der 8- Bit Retro Gemeinde, mit Verlaub, sehr rudimentär gehalten. Das Spielprinzip vom berühmten Vorbild „Boulder Dash“ abgeschaut. Dennoch habe ich damit bis jetzt einige der Ziele die ich mit dem Projekt verfolge erreicht. Zum einen ist das Programm beim Spiel für mich selbst zur Herausforderung geworden. Zum  Andren klappt es inzwischen mit dem Programmieren wieder ganz gut. Über 6502 Assembler zu C und C++ war ein interessanter Weg!

Screenshoot

Das berühmte Vorbild – „Boulder Dash“ ist für mich ein geniales Spielchen und eines der ersten Programme denen man nachsagen kann eine Physik Engine besessen zu haben. Man möge mich da korrigieren.

Späte Erkenntnis und dazu noch über Umwege. welche Rolle „Minecraft“ dabei gespielt haben könnte? Nun ja, das erfährt, wer den Weg nach Berlin auf sich nimmt…..

Weiteres:


Programmierte Grafik…..

….oder, dass Titelbild für Projekt Rock.

Der Titel macht es offiziell, Projekt Rock heißt nun „Dirt, Rocks, Diamonds and other Perils“. Wichtiger jedoch ist die Technik die im Aushängeschild meines DIY Spielchens steckt.

Verantwortlich für das Erscheinungsbild sind: Eine modifizierte Display List (Antic-Programm), das Scrolling läuft während des Vertical Blank Interrupts (VBI) und der Regenbogeneffekt wird im Hauptprogramm ausgeführt das in einer Endlosschleife läuft.

Photoshop laden und einfach zeichnen ging früher halt nicht, man musste nehmen, was man hatte……


Die Null, im Vergleich

Meditiere vor meinem 6502 Source zu „Rock“ – meiner ganz persöhnlichen „Boulder Dash“ Engine –

Interessant wieviel Code- Müll sich aus „unüberlegter“ Programmierung ergibt. Soviel zum Thema schmutziger Code. Schaut mal da:

Sprung mittels BNE ausführen, wenn der Inhalt der Speicherzelle X nicht Null ist:

  • Schlechtes Beispiel

    LDA X
    CMP #0
    BNE LABEL

  • Besser

    LDA X
    BNE LABEL

„CMP #0“ braucht kein Mensch, wenn „BNE“ sowieso immer dann ausgeführt wird, wenn das Zero Flag nicht gesetzt ist. Wird der Akkumulator mit Null geladen, dann wird das Zero- Flag gesetzt. Wird der Akkumulator mit einem Wert ungleich 0 geladen, dann wird das Zero- Flag nicht gesetzt und es wird zu „LABEL“ verzweigt.

Das Beispiel oben, lässt sich 1:1 auf  die Prüfung „ist gleich 0“ übertragen. Ganz nach dem Motto:

  • LDA X
    CMP #0
    BEQ LABEL

Das „CMP #0“ braucht hier auch niemand…… Armes „CMP #0“.

Denn: Wird der Akkumulator mit 0 geladen, dann wird das Zero- Flag gesetzt und BEQ wird ausgeführt, wenn genau das der Fall ist.

So, nun aber weiter, muss meinen Source aufräumen 🙂


Locate wird schneller…

Determinismus in Assembler 🙂

„LOCATE“ nimmt eine Schlüsselstellung innerhalb des Source von Rock ein. Die Subroutine berechnet in Abhängigkeit von der vorgegebenen X und Y Bildschirmkoordinate die Adresse im Bildspeicher um von dort entweder zu lesen oder dorthin zu schreiben.

Die erste Version tat dies, indem eine Schleife durchlaufen wurde – von 0 bis Y – und dabei die Adresse um jew. die Spalzenzahl erhöht wurde. Am Schluss wurde noch X dazu addiert und fertig.

Ohne Schleife geht’s auch und das sogar viel schneller. Die Zeilenadressen werden einfach in einer Tabelle abgelegt, dann wird es möglich, ohne Schleife, die jew. Adresse direkt aus der Tabelle gelesen. fertig:

 

Das Spielchen läuft nun flüssiger!

 



Animation, Score und Farben…..

Äußerlich hat sich wenig am Spielchen getan. Der Hauptdarsteller ist nach wie vor aus 4 „Playern“ zusammengesetzt, zeigt jetzt aber sechs Farben und ist animiert. Der Score- Zähler funktioniert. Näheres dazu hier:

Farbige Player und

Zahlenspiele die Dritte…

Aussehen tut es jetzt so:

 


Boulder Dash alikes……

…. bin in letzter Zeit kaum noch zum spielen gekommen, konnte aber, meinem Caanoo sei Dank, abends, auf der Couch, ein bisschen durch meine Atari 8-Bit Sammlung blättern.

Na ja, dabei habe ich „Boulder Dash“ für mich entdeckt und bin, ganz zufällig über zwei Spielchen gestolpert die das Prinzip des Vorgenannten  aufgegriffen und variiert haben, ohne daraus einfach nur eine billig Kopie zu machen. Darf ich vorstellen:


Darg

Und:


Heartlight
Infos: http://en.wikipedia.org/wiki/Heartlight_(game) 

 


„Projekt Rock“ geht voran…..

nein, das  ist nicht erzwungener Optimismus, sondern echter, aus der Freude über ein fast fertiges Retroprogrammier- Projekt  geborener, echter Optimismus!

Stand 11.6.2012

Der Offizielle Beginn meiner Arbeit am „Rock“ genannten Spieleprojekt ist der 28.12.2011. Nach fast 20 Jahren Abstinenz wurden die ersten zaghaften Schritte in 6502 Assembler unternommen. Geburtshelfer war der „ATMASII“. Obgleich ein RAM verschlingendes Monster, einzigartig bedienerfreundlich wegen des bildschirmorientierten Editors und des relativ schnellen Compilers.

Stand: 11.6.2012,
„Leveling“, Tot, kurtz die gesammte Logik des
Spielchens funktioniert…

Nun, ist das Ende also absehbar. Einige Ideen zu zusätzlichen Features müssen leider unterdrückt werden.

Unbedingt abgearbeitet werden muss noch:

  • Der Score Zähler funktioniert noch nicht (wenn ich nur wüsste…. verdammter Bug, den kann ich niemandem als „Feature verkaufen….)
  • Das generelle Timing (Bewegungsgeschwindigkeit des Spielers, das Fallen der Blöcke usw…)
  • Animation der Spielfigur
  • Titelscreen
  • An der Grafik basteln bis es stimmig ausschaut.
    Wichtig ist: Der Kontrast!

Und, last but not least:

  • Leveldesign. Auf die Spiele- Disk werden rund 84 Level passen…….
  • Die Musik. leider sträube ich mich da noch ein bisschen, weil, ich bin halt nicht musikalisch und habe da leider keine Ambitionen was zu programmieren. Eine Schande, ich weis. Mehr als ein paar Sound- Effekte sind nicht drin. Falls da draußen allerdings jemand eine fertige Sound- Routine in der Schublade hat und das ganze mit einem Spielchen verbinden möchte, bitte gerne, 5kB hätte ich noch zu vergeben 🙂
So long…

Taktik Demo……..

Es wird………..


Editor für „Rock“….

…kleinarbeit ist angesagt. Keine ausgefeilten Routinen, sondern harte Knochenarbeit. Das „User Interface“ muss auf den DAU* abgestimmt werden.

*DAU=Dümmster anzunehmender User 🙂 vgl. weiter: http://acronyms.thefreedictionary.com/Dümmster+Anzunehmender+User


Darf ich vorstellen……..

….nach einigem an grauer Theorie zum Thema Player Missile Grafik (PMG), ist’s vollbracht. Eine 4- farbige Spielfigur ziert das Spielfeld.

Pixel- genaue Bewegung wäre möglich und ist schließlich einer der Vorzüge der PMG, aber, das muss bis zum nächsten Projekt warten. Animiert wird’s allerdings noch.