Du bist nicht angemeldet.

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

1

21.05.2018, 19:16

Retro Game Programming - Tagebuch / Notizen

Oh Mann ... ich wollte schon längst mit dem Spiel fertig sein. Aber es kamen jetzt so dermaßen viele Begebenheiten im meinem Leben dazwischen, dass ich entweder keine Zeit fand, an dem Spiel weiter zu arbeiten, oder ich schlichtweg eher Lust hatte, anderes zu tun (zum Beispiel mich eingraben oder so). Um das letzte Weihnachten herum war ich zum Beispiel richtig froh, dass ich mich in der Welt von Skyrim [PS4] richtiggehend verlieren konnte. Das war sehr angenehm.

Aber das soll jetzt ein Ende haben. Zum einen verspüre ich richtig Lust weiter zu machen. Und zum zweiten sind bereits zwei weitere Episoden nahezu fertig. Die werde ich also demnächst auf dem Portal veröffentlichen.

Das Spiel selber ist zu ... na, sagen wir mal ... grob 50% fertig. Die eigentliche Spiele-Logik funktioniert. Soundeffekte gibt es auch und der Score-Zähler funktioniert auch. Das ganze muss noch ein klein wenig poliert werden – an einigen Stellen ist mir das spieltechnisch noch ein wenig zu »hopplahopp« und unbeholfen – aber grundsätzlich funktioniert das.

Was jetzt noch fehlt, ist (wenn ich mich noch richtig erinnere):
  • Design der Level
  • Programmroutine für den Aufbau der Level
  • »Radar«-Anzeige des gerade gespielten Raumes
  • evtl. Start-Bildschirm
  • evtl. ein »Sieger«-Bildschirm (wenn man das Spiel geschafft hat)

Dieses Tagebuch ist dazu da, den Fortschritt etwas zeitnaher zu dokumentieren. Ausführlich werde ich diverse Aspekte dann in den Beiträgen auf dem Pixelor-Portal erklären.

Erst noch so viel: Die letzte Dateiänderung ist vom 07.08.2017. Also von vor fast einem Jahr. Zeit wird’s! ^^
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

2

13.06.2018, 17:22

Spaß mit »Git«

Heute Nachmittag habe ich für das Projekt ein »Versionierungs-Tool« installiert. Damit kann man sehr einfach erkennen, welche Dateien und vor allem was man in diesen - bei mir die Assembler-Sourcen - verändert hat.

Das mag für dieses kleine Projekt ein wenig Overkill sein, weil niemand außer mir daran arbeitet, und ein Backup außerdem mit einer kleinen Batch-Datei erledigt ist. Bei den wenigen Sourcen ist alles in ein paar Sekunden zusammen gepackt.

Allerdings werde ich in meinem neuen Job mit dem Tool »Git« arbeiten, welches ich noch nie benutzt habe. Um dafür schon mal ein wenig zu trainieren, habe ich also dieses Projekt »gitifiziert«. Im Moment ist das so entstandene »Repository« zwar noch lokal auf meiner Festplatte. In einem nächsten Schritt verlagere ich das dann auf meinen Internet-Server, wo auch gleich ein täglichen Backup stattfindet.

Da ich unter Windows arbeite, Git aber ursprünglich mal für Linux gedacht war (das stammt tatsächlich von »Mr. Linux« Linus Torvalds himself), habe ich eine der eher bekannteren Windows-Versionen gewählt: »Git for Windows«. Das kommt mit lauter eigenen Kommdozeilen-Tools daher (im wesentlichen »MinGW« mit der »bash«-Shell und was man sonst noch so benötigt), hat aber auch eine grafische Beutzeroberfläche. Da ich erst einmal lieber direkt die Kommandos eintippe (man lernt einfach besser, was da so passiert), und ich unter Linux auf den Servern sowieso ständig mit der Shell arbeite, habe ich davor keine Angst. Ganz im Gegenteil: Das ist wieder ein bischen wie ein Textadventure. ;)

Wer sich ein wenig einlesen mag, dem seien diese Links empfohlen:

https://gitforwindows.org/
https://git-scm.com/book/en/v2/

Ich fühle mich schon richtig professionell ... ^^
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Beiträge: 814

Wohnort: Ingolstadt

Beruf: Senior Software Engineer

  • Private Nachricht senden

3

13.06.2018, 20:05

So macht man das! Erst Kommandozeile, dann Komfort! Richtig interessant wird Git im Team. Dann versteht man, was der master-Branch bedeutet (reiner Best Practice), was in ein Feature-Branches gehört und was ein Pull-Request eigentlich ist.

Das lernt man schön z.B. mit GitHub

Edit: Das erste, worüber ich gestolpert war, war der feine Unterschied von git pull und git fetch. Gut, dass der Automerge zuverlässig funzt, wenn's denn überhaupt geht.

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

4

14.06.2018, 12:44

Hehe ... danke! :-)

Extrem angenehm finde ich schon - also wirklich EXTREM extrem - dass bei »Git for Windows« eben auch die Shell »bash« mitgeliefert wird. Mit der kann man im Dateisystem von Windows genau so arbeite (oder fast genau so), wie mit allen anderen Tools. Die »PowerShell« von Windows ist bei meinem Windows zwar sowieso mit dabei (Windows 7 Pro), aber die müsste ich erst lernen. bash kann ich halt schon einigermaßen und dieser ganzen Unix/Linux-Philosophie der Tools (mache nur das was notwendig ist, und nicht ein Monster-Über-Obendrüber-Tool für alles) liegt mir sowieso besser. Wobei genau genommen »bash« ja auch schon ein Monster-Über-Obendrüber-Tool für alles ist. Aber die Syntax ist eben klarer als der Kram von Microsoft.

Gestern Nacht habe ich dann noch einen privaten Account bei »Bitbucket« angelegt. Ich wollte auch erst »GitHub« oder »SourceForge« nehmen, aber meine Arbeitgeber arbeiten eben mit »Bitbucket« (und auch den weitere »Atlassian«-Tools). Also: Her damit! :-)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

5

04.08.2018, 17:43

Mal wieder ...

Wie schon anderswo erwähnt, bekomme ich langsam Lust, hier weiter zu machen. Mein neuer Job mit allen seinen Unwägbarkeiten hat sich bemerkbar gemacht, so dass ich die letzten zwei Monate abends nur noch ins Bett gefallen bin. Inzwischen beruhigt sich aber alles und die Unwägbarkeiten sind in dem Sinne überhaupt keine mehr (waren sie noch nie, aber das wusste ich zu Beginn nicht).

Jedenfalls habe ich heute Altirra 2.40 (der Atari-Emulator, den ich für die Entwicklung benutze) installiert und das Spiel in seinem jetzigen Zustand mal wieder gestartet. Und, was soll ich sagen: Ich war einigermaßen erstaunt. Kennt Ihr das? Egal was man mal vor einiger Zeit getan hat, wenn man sich das wieder anschaut, gibt es gelegentlich den Effekt »Das habe ICH gemacht?« ^^

Hier ein Screenshot der aktuellen Version:

--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

6

19.08.2018, 12:28

Level-Aufbau: Fiesen Bug gefunden

Ich arbeite gerade daran, dass die 16 vorgegebenen Level bei jedem Spiel in einer zufälligen Reihenfolge erscheinen. Es soll ja nicht nur einen leeren Raum geben, sondern ab dem zweiten Level soll es Wände im Raum geben, um welche die Spielfigur vorsichtig manövrieren muss.

Das ist nicht sonderlich kompliziert: Zunächst macht man eine Zahlenreihe von 0 bis 15, als 0, 1, 2, 3 usw. Dann tauscht man zwei beliebige Positionen in dieser Reihe aus. Und das macht man einige male und schon hat man eine zufällige Reihenfolge. Da der Atari 800 einen Zufallszahlen-Generator besitzt, ist das auch einigermaßen zufällig.

Leider habe ich einen fiesen Design-Bug entdeckt: Für das Austauschen brauche ich ein paar zusätzliche Speicherzellen. Leider habe ich nicht bedacht, dass ich diese Speicherzellen auch schon in der VLANK-Routine verwende, um dort zum Beispiel den Score und Ähnliches zu setzen. Das hat mir natürlich meine Routine zum randomisieren der Level-Reihenfolge gehörig durcheinander gebracht. Denn die VBLANK-Routine läuft schon, wenn ich die Level randomisiere.

Puh! Fieser Fehler!

Jetzt gibt es zwei Lösungsmöglichkeiten: Entweder die Score-Routine läuft nicht im VBLANK (das ist die aufwändigere Variante und die von mir favorisierte) oder ich spendiere der Level- oder der Score-Routine ein paar eigene Speicherzellen, so dass sich diese nicht ins Gehege kommen. Das wäre superschnell erledigt, ist aber konzeptionell sehr unschön und verschwendet Speicherplatz.

[Update 12:38]
OK, Kommando zurück: Ich bin zwar den komplizierteren Weg gegangen, so dass der Score (und jetzt auch der Sound) nicht in der VBLANK-Routine sondern in der MAIN-Loop ausgeführt werden. Aber das war gar nicht kompliziert. Weil ich nämlich vor ein paar Monaten, als ich das letzte mal am Spiel gearbeitet habe, schon voraus gedacht hatte. Das war jetzt also nur eine Sache von »verschieben« zweier Aufrufe VBLANK nach MAIN. Ende.

Alles freut sich wieder ... ;)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

7

01.09.2018, 09:01

Spiel-Titel

Ich war die ganze Zeit am Überlegen, welchen Titel das Spiel eigentlich haben soll. Im Screenshot weiter oben ist zwar »Pixelor Game« zu lesen, aber das ist nur ein Arbeitstitel.

Nachdem ich ein paar Videos von Acrid über C16-Spiele gesehen hatte, bin ich dann auf so etwas wie

Lab of the Baby Doom

gekommen (ich glaube von »Baby Berks« auf dem C16 / Plus/4, bin mir aber nicht so sicher). Dementsprechend heißt das Verzeichnis mit den Sourcen auf meiner PC-Festplatte auch noch »lotbd«.

Aber irgendwie ist der Titel nix. Nicht weil er schlecht wäre. Ein Titel ist ja quasie eine Marke und da ist es erst einmal egal, was man wählt. Nur mit »Baby« verbindet man normalerweise etwas Niedliches, mit »Doom« eine andere wohlbekannte Spiele-Marke und insgesamt ist das der Name sowieso zu lang.

Ich hätte gerne etwas Kurzes und gerne auch ein Kunstwort.

Gestern hatte ich dann Geistesblitz: Mir schoss der Begriff »Scourge« durch den Kopf. Das klingt nett, ist kurz und damit auch einprägsam. Außerdem heißt es auf deutsch »Geißel«, was zudem noch perfekt zu dem Spiel passt. Nach kurzem Hin und Her bin ich dann auf das hier gekommen:

Scouorgee

Und da das Spielprinzip noch mal ausbaufähig ist, schreibe ich noch ein »micro« oder evtl. ein »µ« vorne dran. Letzteres nur, wenn ich die acht Byte für das zeichen im Zeichensatz noch erübrigen kann; das Zeichen bietet der Atari nämlich nicht.

Das Spiel wird also so heißen:

micro Scouorgee bzw. µ Scouorgee

^^
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

Sir Pommes

Pixelor-Team

Beiträge: 1 484

Wohnort: Münster

Beruf: Proletariat

  • Private Nachricht senden

8

01.09.2018, 15:24

die einträge hier immer sehr interressant zu lesen ^^ und bin schon gespannt, wie irgendwann mal das fertige spiel aussehen wird :)
Steam: Sir_Pommes-Malte PSN: Sir-Pommes87
Xbox Live: Sir Pommes87 Nintendo ID: Sir_Pommes

http://www.youtube.com/channel/UCTJ9Iitf4qUlUCAYTEEFf9g

henrikf

Pixelor-Team

  • »henrikf« ist der Autor dieses Themas

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

9

01.09.2018, 16:38

Danke Dir! :-)

Es ist eigentlich nicht mehr viel zu tun. Wenn ich abends nicht immer so KO wäre, wenn ich von meiner Arbeit nach Hause komme, dann wäre das Spiel schon längst fertig. Das gleiche gilt für das Wochenende: Das geht im Moment noch dafür drauf, dass ich mich schlicht und einfach erholen muss.

Aber heute und morgen wird weiter programmiert. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles