Hallo Besucher, der Thread wurde 3,1k mal aufgerufen und enthält 24 Antworten

letzter Beitrag von EgonOlsen71 am

Tomb Chaser 2020 - ein C64 Spiel in Basic V2

  • Remastered in 4K... nein, das nicht, aber da der Neuauflagen-Trend nicht nachlässt, präsentiere ich euch die überarbeitete Version meines Spiels "Tomb Chaser" aus dem Jahre 2019.



    Tomb Chaser 2020 ist weiterhin in BASIC V2 geschrieben, dafür gibt es jetzt Charset-Grafik statt purem PETSCII. Für den Spielfeldaufbau wird der Turbo Mode des Ultimate64 genutzt (damit es kompatibler bleibt "nur" 4 MHz). Schaltet dazu einfach "U64 Turbo Registers" ein und lasst "CPU speed" bei 1 MHz.


    Anstatt der 10 monotonen Tombs gibt es jetzt 8 grafisch individuelle Tombs und 3 Spielmodi. Die Highscores werden auf Diskette verewigt, inkl. der Spielerfarbe, damit man seine Lieblingsfarbe nicht immer neu auswählen muss, Komfort muss sein. Die Eingaben erfolgen komplett über Joystick in Port 2. Um nichts zu spoilern, gibt's hier keine In-Game Screenshots. :)


    Tomb Chaser 2020 ist aus einer einfachen Spielidee entstanden, ich hoffe, ihr habt etwas kurzweiligen Spaß damit, den ich auch beim Aufmotzen hatte.


    Kostenloser Download unter:

    https://c64.console-corner.de/


    Wer an weiteren Spielen von mir interessiert ist, kann sich z.B. ZeHas "Weihnachten auf dem Commodore" Heft 2 & 3 zulegen.

    Ausserdem wird es zu Weihnachten noch eine weitere kleine Remastered-Überraschung auf meiner Seite geben.

  • Sieht richtig gut aus. Wenn ich Zeit habe oder jemand anderes ^^ , darf ich/er/sie das Spiel für den Commodore Plus/4 portieren?

    Hätte ich Zeit dann würde ich das sogar für den CPC portieren.

  • Eigentlich schon beeindruckend, was man selbst mit BASIC so hinbekommen kann, wenn man denn wenigsten die Grafikzeichen selbst definiert!


    Sieht aus wie ein Spectrum-Spiel mit huebscherer Palette :) (und nein, das ist nicht negativ gemeint :D )

    Auch die Sounds sind echt cool!

  • Und schnell ist es. Gefühlt genauso schnell im (ersten) Levelaufbau wie mein FruttyMan in Loco BASIC.

    Vielleich mag Lynx etwas auf den Nähkästchen plaudern, über die verwendeten Tricks. :)

  • Freut mich, danke für eure positiven Worte.

    Das mit dem Speccy Vergleich hab ich gleich als Kompliment aufgefasst. Da war der Hires-Look immer präsent, schneller war die Kiste auch, zumindest darauf war man als C64 User etwas neidisch. Hires ist schön "gritty/grainy" und bekommt durch die Blockfärbung diesen gewissen Stil. Games wie z.B. Trapdoor, Fairlight, Knight Lore und all die anderen Iso-Spiele haben diesen konvertierungsbedingten ZX Look. Wir waren ja froh, wenn es jemand schaffte, das auf den lahmen C64 zu portieren.


    Ja, Portierungen fänd ich spannend, die Umsetzung für CPC6128 könnt ich sogar in-house machen, hab einen da, nur wie ihr wenig Zeit. Aber solange ich es absegnen darf, habt ihr mein ok. :emojiSmiley-16:


    Now out of the Nähkästchen:

    Wie man erkennen kann, beruht die Labyrinthgenerierung auf Berzerk. Ursprünglich hab ich einfach lazy in alle 4 Richtungen gepoket. Durch die verschiedenen Grafikelemente musste ich auf Print@ schwenken, das ich mit einer kleinen Assemblerroutine reaslisiert habe, die dann nochmal leicht zur Komma-Variante optimiert wurde, wie von atomcode im Zehas Weihnachtsheft Thread vorgestellt. Die Berechnungen wurden auch schlanker. Original 10 s -> Remaster 5 s -> U64 4MHz 1.25 s. Verdammt war das 2019 langsam, wie konnte das nur durch die QA kommen?!

    Da es vorkommen konnte, dass Gems eingeschlossen werden, wird jetzt zusätzlich ein Feld neben einem Gem freigelassen. Einschluß kann immer noch passieren, aber extrem selten. Geheimtipp: neben einzelnen Wänden ist somit immer ein Gem zu finden. ;)

    Beim Sound ist eigentlich nur der Jingle zwischendurch und das etwas verlängerte Stück beim Abspann hinzugekommen. Passt schon, aber alles sehr rudimentär. Vielleicht steuert jemand einen Tune mit IRQ Player für's nächste Spiel bei, ich frag dann nochmal an ZeHa . Die Mukke bei Brain Bricks ist echt geil.

    Das Charset habe ich mit dem tollen C64 Studio von Endurion erstellt, das inzwischen noch toller wurde. Und last but not least sei noch AW182 erwähnt, der mich dazu animiert hat, die Tombs individueller zu gestalten. Besten Dank an euch alle!

  • Ist ein prima Game geworden mit guter Spielbarkeit. Am meisten Spaß machen mir die Spielmodi, in denen man die Gegenstände nur kurzzeitig sieht, wenn man Fackeln anzündet. Da muss man sich dann alles gut einteilen und die Wege merken. Durch die unterschiedlichen Modi, die man im Spielmenue auswählen kann, wird es auch nicht so schnell langweilig.

  • Sehr cool. Das wäre ein garantiertes "Listing des Monats" geworden :respect:. Da steckt viel Liebe zum Detail drin.


    Danke auch für den Hinweis zu deinen Beiträgen in ZeHa 's "Weihnachten auf dem Commodore"-Heft. Werde mich gleich mal ans Abtippen von "Santa's Snowball Challenge" machen (hatte mir für die etwas längeren Listings noch keine Zeit genommen, aber ich sehe, das ist es Wert).


    Und deinen Irrgarten-Generator von Tomb Chaser muss ich mir auch mal genauer anschauen. Bist du da selbst darauf gekommen oder basiert das auf einem klassischen Algorithmus?

  • Sehr cool. Das wäre ein garantiertes "Listing des Monats" geworden :respect:. Da steckt viel Liebe zum Detail drin.


    Danke auch für den Hinweis zu deinen Beiträgen in ZeHa 's "Weihnachten auf dem Commodore"-Heft. Werde mich gleich mal ans Abtippen von "Santa's Snowball Challenge" machen (hatte mir für die etwas längeren Listings noch keine Zeit genommen, aber ich sehe, das ist es Wert).


    Und deinen Irrgarten-Generator von Tomb Chaser muss ich mir auch mal genauer anschauen. Bist du da selbst darauf gekommen oder basiert das auf einem klassischen Algorithmus?

    Was war denn eigentlich die maximale Länge in der 64er bei Aptipplistings? ...und den 2 KB Zeichensatz müsste man ja auch noch mit dem MSE eingeben. *uff*


    ACHTUNG! ACHTUNG! WICHTIGER HINWEIS! :emojiSmiley-121::)


    wizball6502 und alle, die sich etwas Arbeit sparen wollen. Spolier Warnung! Zu Weihnachten gibt's auf meiner Seite Santa's Snowball Challenge in einer überarbeiteten 2020 Version, ist mit ZeHa abgesprochen und genehmigt, da im Heft eine frühere Version gelandet ist.


    Der Levelaufbau bei Tomb Chaser basiert lose auf Berzerk, man sieht ja wie die Wände aufgebaut werden, was sich leicht nachbauen lässt, aber es gibt auch eine Seite, die erklärt, wie das für die komplette Spielwelt berechnet wird:

    http://www.robotron2084guidebo…rzerk/mazegenerator/code/


    Das habe ich etwas anders umgesetzt in mein anderes Maze Projekt einfliessen lassen, wo Berzerk- mit Backtrace-Maze kombiniert werden. Muss ich quasi nur noch ein Spiel draus machen. :emojiSmiley-33:

  • wizball6502 und alle, die sich etwas Arbeit sparen wollen.

    Schon zu spät ;) Hatte das Listing bereits abgetippt, bevor ich deine Antwort gesehen habe. Aber hat sich gelohnt: Das spiel macht Laune, und ist schön in Szene gesetzt. Bin gespannt auf die überarbeitete Version.

    Der Levelaufbau bei Tomb Chaser basiert lose auf Berzerk, man sieht ja wie die Wände aufgebaut werden, was sich leicht nachbauen lässt, aber es gibt auch eine Seite, die erklärt, wie das für die komplette Spielwelt berechnet wird:

    http://www.robotron2084guidebo…rzerk/mazegenerator/code/

    Danke für den Link. Ich lese gerne solche Hintergrundinfos. Jetzt verstehe ich auch den Zusammenhang mit Berzerk.


    Ich habe mir für meinen diesjährigen BASIC Weihnachten-Heft-Beitrag ebenfalls ein Szenario mit Gängen konstruieren müssen und habe das hier ausgetüftelt:

    Code
    1. 10 l=l+1:poke53280,6:print"{clear}"l:s=1194:c=160:a=rnd(-l)
    2. 20 fori=0to8:forj=0to19:n=n+rnd(1)/2.5
    3. 30 pokes+j,c-128*int(n):ifn>1orj=18ori=0ori>7thenn=0
    4. 40 next:s=s+80*-(i<8):pokes-40,c:pokes-40+19,c:next
    5. 50 pokes+10,32:poke1204,32:s=s-38:fori=0to7
    6. 60 a=rnd(1)*16:on-(peek(s-40+a)=32orpeek(s+40+a)=32)goto60
    7. 70 pokes+a,c:s=s-80:next
    8. 80 poke198,0:wait198,1:goto10

    Mein Ziel war ein möglichst kompakter Algorithmus ohne viele IF's. Mein Code erfüllt zwar den Zweck, ist aber sicher verbesserungsfähig. Vielleicht kriege ich ja etwas besseres hin mit der "Frenzy"-Methode. Der Ansatz sieht jedenfalls interessant aus.

  • Das ist schön geworden. Aber mein Gedächtnis...ich fände es cool, wenn man die versteckten Gems irgendwie kurz aufleuchten sehen würde, wenn man eines einsammelt (vielleicht nicht alle, nur 1 oder 2). Ansonsten rennt man, wenn die Fackeln alle sind, einfach blind im Labyrinth herum und hofft das Beste. Wäre toll, wenn es da noch irgendeine Art von Möglichkeit gäbe, wieder was zu sehen.


    Ich war so frei, eine compilierte Version zu erstellen (im Anhang als PRG, muss man auf das d64-Image ziehen und statt der BASIC-Version laden, sonst fehlen natürlich die neuen Zeichen). Dazu musste ich den Compiler leicht erweitern, so dass SYS mit Parametern auch ohne Trenner funktioniert (wegen sys 57812"2020",8,0) und das PRINT@ habe ich aufgeteilt in @ gefolgt von PRINT, weil ich sonst irgendwie hätte erkennen müssen, dass der letzte Parameter wie bei PRINT zu behandeln ist und nicht normal und woher soll man das zur Compilezeit wissen? Wäre vermutlich auch sehr langsam geworden, weil ich bei SYS mit Parameter auf den Interpreter zurückfalle.

  • Das ist schön geworden. Aber mein Gedächtnis...ich fände es cool, wenn man die versteckten Gems irgendwie kurz aufleuchten sehen würde, wenn man eines einsammelt (vielleicht nicht alle, nur 1 oder 2).

    Das wäre dann wieder "zu viel" und würde ausserdem das Spielprinzip der begrenzten Fackeln aushebeln. Baut man mehr ein ...dann noch Monster ...und Dynamitstangen... und Medipacks ...und... :emojiSmiley-12: Es gibt Spiele mit begrenzten Leben, sind die weg ist Game Over. Ein Spiel ist, wie es ist.

    Ich hab lange mit dem Balancing verbracht, damit es sich rund spielt. Sollte einem der Classic Mode wirklich zu schwer sein, nimmt man den Kids Mode (Bärchen = 5 von 10 Edelsteinen sichtbar), d.h. mit einer Fackel einen versteckten Edelstein pro Level zu finden sollte machbar sein, wenn man nicht eh zufällig drüberlatscht. :emojiSmiley-01:

    Kompilieren hätte ich es auch können, aber das macht die schöne Basic Idee kaputt und es ist unkompiliert ja optimal spielbar, "as it was meant to be played", darauf lag mein Schwerpunkt. Aber ist ok, kein Vorwurf, Basic lädt ja zum rumspielen ein. :)

  • ...und es ist unkompiliert ja optimal spielbar, "as it was meant to be played", darauf lag mein Schwerpunkt. Aber ist ok, kein Vorwurf, Basic lädt ja zum rumspielen ein. :)

    Hmm...ich habe aus der Tatsache, dass du den U64-Turbo unterstützt einfach kühn geschlossen, dass es dir mit 1MHz BASIC-Power eben nicht unbedingt optimal erschien. Sorry, ich wollte dein Spiel nicht "kaputtbeschleunigen". Ich probiere gerne solche Dinge aus, weil es mir hilft, den Compiler kompatibler zu machen. Ab und zu finde ich auf die Art Probleme, die ich in meinen Tests bisher nicht gefunden habe.


    Zitat

    Das wäre dann wieder "zu viel" und würde ausserdem das Spielprinzip der begrenzten Fackeln aushebeln. Baut man mehr ein ...dann noch Monster ...und Dynamitstangen... und Medipacks ...und... :emojiSmiley-12:

    Ok, vielleicht eine neue Fackel alle 1000 Punkte oder so? Die Fackeln sind ja ein wichtiges Spielelement. Aber eben eines, das plötzlich weg ist und nicht wieder kommt. Klar, kann man jetzt sagen: Ist halt so, Pech gehabt. Aber ich persönlich finde das schade. Weil ich dann keine Möglichkeit mehr habe, mich irgendwie zu orientieren. Dann wird aus einem Merkspiel plötzlich ein Glücksspiel. Könnte man die Fackeln wieder auffüllen (oder kann man das irgendwie...?), wäre das ein Anreiz, solange zu spielen, bis man wieder 1000 (oder X) Punkte zusammen hat.

  • Für den Spielfeldaufbau wird der Turbo Mode des Ultimate64 genutzt (damit es kompatibler bleibt "nur" 4 MHz). Schaltet dazu einfach "U64 Turbo Registers" ein und lasst "CPU speed" bei 1 MHz.

    ...aber es läuft auch auf einem Standard-C64 mit 1541 / SD2IEC?

  • Hmm...ich habe aus der Tatsache, dass du den U64-Turbo unterstützt einfach kühn geschlossen, dass es dir mit 1MHz BASIC-Power eben nicht unbedingt optimal erschien. Sorry, ich wollte dein Spiel nicht "kaputtbeschleunigen". Ich probiere gerne solche Dinge aus, weil es mir hilft, den Compiler kompatibler zu machen. Ab und zu finde ich auf die Art Probleme, die ich in meinen Tests bisher nicht gefunden habe.


    Zitat

    Das wäre dann wieder "zu viel" und würde ausserdem das Spielprinzip der begrenzten Fackeln aushebeln. Baut man mehr ein ...dann noch Monster ...und Dynamitstangen... und Medipacks ...und... :emojiSmiley-12:

    Ok, vielleicht eine neue Fackel alle 1000 Punkte oder so? Die Fackeln sind ja ein wichtiges Spielelement. Aber eben eines, das plötzlich weg ist und nicht wieder kommt. Klar, kann man jetzt sagen: Ist halt so, Pech gehabt. Aber ich persönlich finde das schade. Weil ich dann keine Möglichkeit mehr habe, mich irgendwie zu orientieren. Dann wird aus einem Merkspiel plötzlich ein Glücksspiel. Könnte man die Fackeln wieder auffüllen (oder kann man das irgendwie...?), wäre das ein Anreiz, solange zu spielen, bis man wieder 1000 (oder X) Punkte zusammen hat.

    Man macht solche Projekte ja für die Community und es ist ja auch kein abendfüllendes Spiel, daher ist rumbasteln und dran austoben eine absolut legitime Beschäftigung. :)

    Der U64 Turbomode ist nur drin "because we can", kommt nicht beim Gameplay zum Einsatz und dient nur dem Labyrinthaufbau. Speedvergleich s.o.: Normal flotte 5 Sekunden, mit U64 4MHz sportliche 1.25 Sekunden. Wem 5 Sekunden zu lang vorkommen sollten, der sitzt am falschen Heimcomputer. :emojiSmiley-28: Edit: Telespielator Also ja, dit looft uffm normalen Brotkasten vonne Stange. :)


    Thema Fackeln: Ich hatte mir im Laufe der Entwicklung natürlich viele Gedanken über zusätzliche Features, wie Fackeln u.a. gemacht, AW182 machte auch diesen Vorschlag. Keine Fackeln mehr zu haben ist aus meiner Sicht ein Spannungselement: die Bude stürzt ein, letzte Fackel verbraucht, nur 5 Gems gefunden. Da muss man dann halt Pac-Man Style im Dustern flink die Gänge absuchen um noch einen Gem zu finden. Man kann in den ersten Tombs auch ohne Fackeln locker 6 Gems finden, dann hat man mehr Fackeln für später. Fackeln zu bekommen bringt irgendwie nix, dann könnte man gleich unbegrenzte Fackeln geben. 2 oder mehr Fackeln zu bekommen bedeutet bereits, dass man es immer schafft und dafür gibt es ja den Kids Mode ODER Tomb Raider 2019 ODER man baut sich z.B. in Zeile 30 noch ein T=99 ein. :emojiSmiley-01:


    Tomb Chaser 2020 sollte kurzweiliger und schneller werden, daher nur noch 8 Tombs. Für eine Fortsetzung wäre Fackelbeschaffung uvm. auf jeden Fall eine Option, dann aber in einer größeren Spielwelt Richtung rogue-like Dungeon Crawler.

  • Tomb Raider 2019, war das jetzt ein freudscher Versprecher? :D

    Danke, freudscher Vertipper, das letzte Tomb Raider war ja 2018. :emojiSmiley-28::emojiSmiley-12: Wobei Lara da ja nur mit Flashlight (<- A!) rumrennt. :emojiSmiley-38:

    Korrektur: In Tomb Chaser 2019 konnte man sich die Anzahl der Fackeln einstellen, was aber im Nachhinein betrachtet nicht wirklich was bringt.

    Eine mögliche Fortsetzung wird eher abenteuerlastig werden, vielleicht etwa so wie Indiana Jones auf dem Atari VCS.