Hello, Guest the thread was viewed74k times and contains 413 replies

last post from Endurion at the

Basic Mega65 - Boulder Dash

  • Vielleicht eine blöde Frage, aber wirds später mal eine verbesserte Version in Assembler geben?

    Also, als ich das Projekt gestarte habe, war der Hauptgrund dies in Basic zu schreiben und nicht im Assembler. Ich wollte wissen, kann man mit 40 Mhz ein so klasse Spiel auch in Basic schreiben. Und bis jetzt ist das Ergebniss sehr gut. Ich möchte halt nur abwarten in welche Richtung das Rom vom Mega65 noch einschlägt. Wenn dann das Projekt mal abgeschlossen ist, kann man darüber nachdenken.

  • Vielleicht eine blöde Frage, aber wirds später mal eine verbesserte Version in Assembler geben?

    Also, als ich das Projekt gestarte habe, war der Hauptgrund dies in Basic zu schreiben und nicht im Assembler. Ich wollte wissen, kann man mit 40 Mhz ein so klasse Spiel auch in Basic schreiben. Und bis jetzt ist das Ergebniss sehr gut. Ich möchte halt nur abwarten in welche Richtung das Rom vom Mega65 noch einschlägt. Wenn dann das Projekt mal abgeschlossen ist, kann man darüber nachdenken.

    ROM Version 374 ist draußen. Ich gehe mal davon aus das es die nächsten 1-2 Monate kein ROM Update geben wird. Update: Die letzten 3 ROM versionen werden als ungültig erklärt, und es gibt ein neues ROM Update mit dem die alten wie neuen Programme klarkommen, weil nur ein CBDos Zeiger geändert wird.

  • Vielleicht eine blöde Frage, aber wirds später mal eine verbesserte Version in Assembler geben?

    Also, als ich das Projekt gestarte habe, war der Hauptgrund dies in Basic zu schreiben und nicht im Assembler. Ich wollte wissen, kann man mit 40 Mhz ein so klasse Spiel auch in Basic schreiben. Und bis jetzt ist das Ergebniss sehr gut. Ich möchte halt nur abwarten in welche Richtung das Rom vom Mega65 noch einschlägt. Wenn dann das Projekt mal abgeschlossen ist, kann man darüber nachdenken.

    Ich frage hauptsächlich deshalb, weil man ja am Mega65 ein wesentlich besseres Boulder Dash machen könnte als es am C64 jemals möglich war. Sozusagen ein GDash (exakte BD-Physik und alle Erweiterungen, die es jemals gab) für den Mega65, inklusive Leveleditor - da würde ein Traum wahr werden!


    https://bitbucket.org/czirkoszoltan/gdash/src/master/

  • Funktioniert bei jemandem das Auslesen des Screens mit T@&(x,y) ? Ich bekomme immer den Wert 1, egal was für ein Zeichen da steht. Habe ROM 920372


    Edit: Mit 374 tut es, was ich mir gedacht habe. Die Frage hier kann weg!

    Edit #2: Ah, und gerade gelesen, 374 wird auch noch geplättet, damit aus Kompatibilitätsgründen $d800 auch wieder als Farb-RAM ansprechbar ist. Heureka!

  • Vielleicht eine blöde Frage, aber wirds später mal eine verbesserte Version in Assembler geben?

    Also, als ich das Projekt gestarte habe, war der Hauptgrund dies in Basic zu schreiben und nicht im Assembler. Ich wollte wissen, kann man mit 40 Mhz ein so klasse Spiel auch in Basic schreiben. Und bis jetzt ist das Ergebniss sehr gut. Ich möchte halt nur abwarten in welche Richtung das Rom vom Mega65 noch einschlägt. Wenn dann das Projekt mal abgeschlossen ist, kann man darüber nachdenken.

    Ich frage hauptsächlich deshalb, weil man ja am Mega65 ein wesentlich besseres Boulder Dash machen könnte als es am C64 jemals möglich war. Sozusagen ein GDash (exakte BD-Physik und alle Erweiterungen, die es jemals gab) für den Mega65, inklusive Leveleditor - da würde ein Traum wahr werden!


    https://bitbucket.org/czirkoszoltan/gdash/src/master/

    Ja, das ich mir auch gedacht als ich mit dem Basicprogramm angefange habe. Das behalten wir mal im Auge. :rolleyes:

  • Hi Drachen, hatte gerade gesehen das du mir per E-Mail ein paar mal geschrieben hattest. In meine E-Mail schaue ich selten bis nie rein, bei Fragen am besten einfach direkt hier posten.


    Von der Dummy Grafik gibt es kein Zeichensatz, habe einfach die Zeichen nach und nach erstellt und direkt ins Basic-Programm übernommen. Die 52 Zeichen sind alle ohne Animation, habe aber ein paar herausgeworfen, da ich diese dann doch nicht gebraucht habe. Zurzeit sind es 45 Zeichen/Objekte, die ich verwende, ist aber alles noch nicht 100% fix.

  • Hi Drachen, hatte gerade gesehen das du mir per E-Mail ein paar mal geschrieben hattest. In meine E-Mail schaue ich selten bis nie rein, bei Fragen am besten einfach direkt hier posten.


    Von der Dummy Grafik gibt es kein Zeichensatz, habe einfach die Zeichen nach und nach erstellt und direkt ins Basic-Programm übernommen. Die 52 Zeichen sind alle ohne Animation, habe aber ein paar herausgeworfen, da ich diese dann doch nicht gebraucht habe. Zurzeit sind es 45 Zeichen/Objekte, die ich verwende, ist aber alles noch nicht 100% fix.

    Kein Dink. So bin ich manchmal auch. Ich vergesse immer mal in meiner Konversation zu schauen. :D


    Und das mit den Charzeichensatz habe ich einiger Maßen im Griff. Bloß bei machen Zeichnen weiß ich noch nicht sorecht, wozu du die da eingebaut hast. Werde es habe noch herraus bekommen.

    Bin Momentan dabei die Steuerung anzupassen, das er bei Steine, Wände nicht einfach weiter läuft. Aber irgenwie, will es nicht so wie ich möchte.

    Er rennt immer noch durch, obwohl ich mit dem Programm gesagt habe, triffts du auf eine Stein, dann halt. Er hält kurz und läuft dann weiter. Und ich weis auch woran es liegen könnte. Hoffe ich. ^^


    Und den Zeichensatz habe ich auch schon verschoben um 128 Chars. Also liegen jetzt unsere Grafiken bei 128 bis 182. Das habe ich deswegen gemacht, damit wir auch Texte schreiben können.

    Und dewegen muss ich jetzt einiges anpassen im Code. Aber zur Zeit komme ich eh nicht viel zum Progen. Muss meist immer bis zum Wochenende warten, bis ich genügend Zeit habe für unser Game.

    Und das Mit dem ROM Debakel hast sicherlich auch schon mitbekommen, da warte ich auch erst mal ab wie es da weiter geht.


    Wo ich noch einen großen pammel habe, ist das verschieben der Codezeilen. Du weißt ja welche Stelle ich meine oder


    Also wenn ich frage an dich habe, schreibe ich es hier herein. Bis die Tage. :applaus:

  • Habe nochmal an der Engine geschraubt, es gibt ein paar Optimierungen bei der Kollisionsabfrage. Diese ist jetzt genauer als im Originalspiel, wo man sich oben einfach am Gegner vorbeibewegen kann. Bei der magischen Mauer und der Amöbe habe ich den fehlenden Timer eingebaut. Der Spieler wurde stark erweitert und der fehlende Ausgang ist jetzt vorhanden.

  • Habe nochmal an der Engine geschraubt, es gibt ein paar Optimierungen bei der Kollisionsabfrage. Diese ist jetzt genauer als im Originalspiel, wo man sich oben einfach am Gegner vorbeibewegen kann. Bei der magischen Mauer und der Amöbe habe ich den fehlenden Timer eingebaut. Der Spieler wurde stark erweitert und der fehlende Ausgang ist jetzt vorhanden.

    Oh, klasse.

    Danke Acron :thumbsup:


    Acron, mal eine Frage, wäre es dann nicht besser du machst das Game fertig. Du kennst deine Engine besser als ich. Dann liefere ich dir bloss die Grafiken und die Caves. Was meinst du dazu. ?


    Habe mir dein Programm mal angeschaut. Mir kommt dein Levelaufbauroutine kürzer vor als am Anfang. Oder täusche ich mich da?

    Auch so hast du einiges gekürzt, was ich auch klasse finde. Bin wirklich begeister davon.

  • Hi Acron,


    so habe mal eine weile gezockt. Bin leider nicht über das erste Level hinweg gekommen. ^^

    Der Joystick hat zwischen durch gestreikt, besser gesagt er hat eine weile gebraucht bis er wieder reagiert hat.


    Aber mir gefällt es, wie schnell das ist in Basic.

    Jetzt mal zum Levelaufbau, wie ist denn da die Einteilung der Data Reihen

    Ich habe es ja so bei mir angepasst

    Dann könnte ich mal die Caves eintragen.

  • Hier die Reihenfolge der Daten aus BD-II, deine stimmt fast bis auf Zeit und Anzahl Diamanten.


    1. Zeit magische Mauer und Amöbe langsam.

    2. Punkte für Diamant

    3. Punkte für extra Diamant

    4. Zeit bei Schwierigkeitsgrad 1

    5. Zeit bei Schwierigkeitsgrad 2

    6. Zeit bei Schwierigkeitsgrad 3

    7. Zeit bei Schwierigkeitsgrad 4

    8. Zeit bei Schwierigkeitsgrad 5

    9. Anzahl Diamanten bei Schwierigkeitsgrad 1

    10. Anzahl Diamanten bei Schwierigkeitsgrad 2

    11. Anzahl Diamanten bei Schwierigkeitsgrad 3

    12. Anzahl Diamanten bei Schwierigkeitsgrad 4

    13. Anzahl Diamanten bei Schwierigkeitsgrad 5

    14. Pseudo-Zufall Startwert -> Schwierigkeitsgrad 1

    15. Pseudo-Zufall Startwert -> Schwierigkeitsgrad 2

    16. Pseudo-Zufall Startwert -> Schwierigkeitsgrad 3

    17. Pseudo-Zufall Startwert -> Schwierigkeitsgrad 4

    18. Pseudo-Zufall Startwert -> Schwierigkeitsgrad 5

    19. Häufigkeit von Objekt 1

    20. Häufigkeit von Objekt 2

    21. Häufigkeit von Objekt 3

    22. Häufigkeit von Objekt 4

    23. Objekt 1

    24. Objekt 2

    25. Objekt 3

    26. Objekt 4

  • OK - Dann mache ich mich mal and die Caves.

    Was meinst du, sollen wir die Caves von BD I und BD II zusammen legen ?


    Wie handhabst du es mit der Farben von BD, die waren ja auch mit dabei


    Ähm noch eine Frage,

    wie stelle ich die Levels bei dir ein, um die Cave zu testen. Das konnte ich in deinen Code nicht finden.

  • Das Cave-Format ist von BD-II, da sind die Daten anders angeordnet als in BD-I. Die Farben werden bei BD-II getrennt behandelt, in Basic ist das aber ein Nachteil. Deshalb würde ich die auch am Anfang zusammen mit den Cave-Daten ablegen.

    Wie handhabst du es mit der Farben von BD, die waren ja auch mit dabei

    Das Cave-Format ist von BD-II, da sind die Daten anders angeordnet als in BD-I. Die Farben werden bei BD-II getrennt behandelt, in Basic ist das aber ein Nachteil. Deshalb würde ich die auch am Anfang zusammen mit den Cave-Daten ablegen.

    Ähm noch eine Frage,

    wie stelle ich die Levels bei dir ein, um die Cave zu testen. Das konnte ich in deinen Code nicht finden.

    Ein direktes Auswählen der Level habe ich nicht eingebaut, weil das bisher nicht nötig war. Um das einzubauen, müsste man die Zeilen Nummern in ein Feld ablegen, damit man dann mit RESTORE xxxx den Level setzen kann. Du kannst aber mit Feuer-Taste Port-1 ein Level überspringen. Zum Erstellen der Level würde ich die Data Zeilen mit Renumber verschieben und dann den neuen Level oben davor hängen.

  • Ähm noch eine Frage,

    wie stelle ich die Levels bei dir ein, um die Cave zu testen. Das konnte ich in deinen Code nicht finden.

    Ein direktes Auswählen der Level habe ich nicht eingebaut, weil das bisher nicht nötig war. Um das einzubauen, müsste man die Zeilen Nummern in ein Feld ablegen, damit man dann mit RESTORE xxxx den Level setzen kann. Du kannst aber mit Feuer-Taste Port-1 ein Level überspringen. Zum Erstellen der Level würde ich die Data Zeilen mit Renumber verschieben und dann den neuen Level oben davor hängen.

    ich habe das ja so gemacht vorher

    Würdes du das so bei dir einbauen oder so ähnlich Acron ?

  • Es gibt noch ein anderes Problem, und zwar mit der Statuszeile. Wenn man einfach Print verwenden würde, müsste man dafür die Zeichen 1-44 verschieben. Das hätte aber einem Riesen Riesen Nachteil, anstatt der ca. 4,4 Kb wären dann ca. 6,5 Kb mehr an Speicher für die Felder nötig. Die würde ich ungern dafür opfern und das Umstellen kostet nur unnötig viel Zeit. Außerdem kann man mit Print Variablen auf dem Bildschirm nicht mit konstanter Länge ausgeben. Deshalb werde ich die Zahlen mit Poke ausgeben und die Zeichen eben so. Als Alternativen wären auch Sprites denkbar, um die Statuszeile darzustellen.

  • Habe jetzt angefangen die Caves in dein Programm einzufügen.


    Ich bin von deiner Engine echt begeistert. Das Spiel läuft echt sau schnell.

    Es macht echt Spass die Caves zu testen ob alles so läuft wie es laufen soll.

    Was jetzt nicht geht, wenn man zum Ausgang geht, baut er das nächste Level nicht richtig auf. Aber das hast du ja schon erwähnt das du da noch was machen musst.

  • Ich bin von deiner Engine echt begeistert. Das Spiel läuft echt sau schnell.

    Es macht echt Spass die Caves zu testen ob alles so läuft wie es laufen soll.

    Danke, die Engine in Basic ist praktisch eine 1 : 1 Umsetzung meiner Assembler-Engine. Da der Mega65 mit 40 MHz läuft, war es ein Versuch wert wie weit man mit Basic ohne Compiler kommt. Aber selbst mit den 40MHz ist die Engine um Welten langsamer als auf dem C64 in Assembler.

    Was jetzt nicht geht, wenn man zum Ausgang geht, baut er das nächste Level nicht richtig auf. Aber das hast du ja schon erwähnt das du da noch was machen musst.

    Der Wechsel zum nächsten Level sollte eigentlich funktionieren. Bei den bisherigen Levels aus BD I und II klappt das ohne Probleme. Was noch nicht geht, wenn man das Level nicht beendet, fängt das Spiel mit dem ersten Level wieder von vorne an. Da dann einfach nur ein Restore ausgeführt wird, weil die Liste dazu noch fehlt.

  • Danke, die Engine in Basic ist praktisch eine 1 : 1 Umsetzung meiner Assembler-Engine. Da der Mega65 mit 40 MHz läuft, war es ein Versuch wert wie weit man mit Basic ohne Compiler kommt. Aber selbst mit den 40MHz ist die Engine um Welten langsamer als auf dem C64 in Assembler.

    Aber immer noch schneller als das Basic vom C64´er :D


    OK das muss ich dann nochmal testen mit dem Ausgang. Vielleicht habe ich da was falsch gemacht.

    Was ich noch wissen möcht, welche Chars sind bei die die Magischen Mauern und die Amöbe?

    Damit ich sie richtig setzen kann im Level.