Dungeon and Unicorn

Es gibt 47 Antworten in diesem Thema, welches 6.505 mal aufgerufen wurde. Der letzte Beitrag (25. März 2024 um 11:35) ist von Markus64.

  • Bin jetzt gerade am erstellen eines Ablauf Diagramm für Texte und Aktionen.

    Mein Gedanke ist, Rätzel und Texte mit einem Bit in einer Adresse abzufragen bzw zu setzten.. Wenn zum Beispiel mit einem NPC gesprochen wird, wird in einer Speicherstelle Bit %00000001 gesetzt. Diese kann ich dann wo anderst abfragen: Wenn Adresse Bit %00000001 = true dann mache etwas.. Somit kann ich Basic Variablen sparen und damit natürlich auch Speicher.

    Ich habe mal ein Bild angehängt wie ich das meine:

  • wird in einer Speicherstelle Bit %00000001 gesetzt. Diese kann ich dann wo anderst abfragen: Wenn Adresse Bit %00000001 = true dann mache etwas.. Somit kann ich Basic Variablen sparen und damit natürlich auch Speicher.

    "ich prüfe einzelne Bits, um Speicher zu sparen" funktioniert nur bei Tabellen ab einer bestimmten Größe. Bei Einzelvariablen braucht man meist mehr Speicher für den Code, der das Bit setzt/löscht/ausmaskiert, als man beim Variablenspeicher einspart.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Ja das stimmt. Mir schwebt eine Speichergröße von $FF vor. Was dann 2040 Bits entspricht. Was meinst du, dass wären dann 2040 Variablen mit dem Wert true bzw false. Könnte ich da besser weg kommen?

  • Um ans obige Beispiel anzuknüpfen: muss man wirklich ein Bit setzen wenn ein Schalter umgelegt wird? Kann man nicht überall in der Spielwelt den Wert des Schalters auslesen?


    Mit Peek und Poke spart man den meisten Speicherplatz im Vergleich zu Arrays.


    Ich würde erst das Spiel designen und sehen wieviele Variablen ich brauche, bevor ich im Code auf etwas hinoptimiere.

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Ich würde erst das Spiel designen und sehen wieviele Variablen ich brauche, bevor ich im Code auf etwas hinoptimiere.

    Also getreu dem Motto "Make it work, then make it right." ^^

  • muss man wirklich ein Bit setzen wenn ein Schalter umgelegt wird? Kann man nicht überall in der Spielwelt den Wert des Schalters auslesen?

    Und wie speicherst du den aktuellen Wert des Schalters ohne irgendwo ein Bit zu setzen?

    10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    20 forj=1to5:printchr$(rnd(1)*16+70);:next
    30 printint(rnd(1)*328)-217

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Und wie speicherst du den aktuellen Wert des Schalters ohne irgendwo ein Bit zu setzen?

    Das muss schon auch sein. Aber ich glaub das nicht beides nötig ist. Also Schalter und Extra-Bit

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • So ich habe mal ein Test gemacht. Das muss sich bei meinem Fall bestimmt Speicher-technisch lohnen. Im Moment sind es nur drei Schalter und eine Türe das wäre im Code kein Problem.

    Mir geht es halt darum nicht dass ich mir schön alles ausdenken und dann plötzlich auf ein Speicherproblem habe. So könnte ich z.B. die $FF Speicher nutzen und habe 2040 IF THEN Abfragen, welche ich auch bündeln kann um an bestimmten Stellen eventuell im Spiel weiter zu kommen.

    Änderungszeit Code im Moment ca 15 Minuten.

    Ich werde mich mal an mein Flussdiagramm machen und mir eine Story und Aktionen bzw Rätsel überlegen 😀.

    Ach ja wenn jemand eine coole Idee für Story oder Rätsel oder auch Level Design hat gerne melden. Auch wenn jemand selbst ein Level bauen möchte auf der GitHub liegt CharPad und die aktuellen Level. Musik ist das gleiche, Goattracker und SID Daten sind auch da.

    Wie gesagt nur wenn jemand Lust und Zeit hat 😀.

  • Und wie speicherst du den aktuellen Wert des Schalters ohne irgendwo ein Bit zu setzen?

    Das muss schon auch sein. Aber ich glaub das nicht beides nötig ist. Also Schalter und Extra-Bit

    Ja beides wäre natürlich nicht von Vorteil. Zur Zeit liegt es auf einer Array Variable aber nur mit true and false.

  • Hallo zusammen,

    so habe jetzt für die erste Map an der Story gearbeitet, eine spielgeführte Anleitung und etwas mehr zum lesen eingefügt.

    Wie es sich für ein Rollenspiel auch gehört :rolleyes:.

    Hier mal ein paar Screenshots. In der GitHub liegt die aktuelle Version.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

  • Hallo zusammen,

    ich habe mal momntanen Limits des Spiels festgestellt ohne Speicherproblem. Das ganze funktioniert mit Text SEQ und Bitweise abspeichern von Daten im RAM. Somit kann im ganzen Spiel zu jeder Zeitpunkt z.B. der Schaltzustand im Raum 1 abgefragt werden. Das ganze läuft auf meinem Rechner ganz schick und ich werde die Tage auf die GitHub schicken.

    Theoretisch wären noch mehr möglich bin bei einer RAM Belegung von $FF. Wo bei die Limit schon jetzt üppig sind, die müssen erst mal gefüllt werden 😀.

    Im Spiel bis zu:

    512 Räume

    22528 Zeilen freier Text

    25600 Zeilen NPC Text

    4096 Schalter

    4096 Aktoren

    8192 Hints

  • Ach ja wenn es jemand interessiert,

    hier mal der Versuchs Basic Schnipsel. Es wird S(0) bis S(7) in den Speicher geschrieben und danach vom Speicher ausgelesen und auf dem Bildschirm ausgegeben.

    Bitte melde dich an, um diesen Link zu sehen.

  • Ach ja wenn es jemand interessiert,

    hier mal der Versuchs Basic Schnipsel. Es wird S(0) bis S(7) in den Speicher geschrieben und danach vom Speicher ausgelesen und auf dem Bildschirm ausgegeben.

    Bitte melde dich an, um diesen Link zu sehen.

    Ja, interessiert :smile:


    Der Emu ist cool


    Wenn du -1 als Einschaltzustand verwendest, sparst du dir etwas Code

    Weil in Basic ist das der Wert für True


    Sehr schönes Projekt!

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Ein Paar Gedanken... warum machen wir was ... für Anerkennung und natürlich Spass 😄. Warum machen wir auf ein 8 Bit System ein Spiel oder Anwendung, weil es Spass macht. Ich habe auf anderen Systemen auch über Forum echt etwas hin bekommen. Es war die Community und natürlich auch die Hilfe. Hilfe heißt Feedback Anregungen oder Parts übernehmen. Klar Basic und C64 hat wohl nicht das Überschall Potential bzw die Interesse . Aber ist die C64 Community so alt oder hat so wenig Zeit oder Intresse... hier wird über alle technischen Möglichkeiten diskutiert und es ist sooo viel Knowhow da und ... am ende ist immer einer welcher wieder was entwickelt hat. Nicht falsch verstehen ich will niemanden werben für mein Projekt!

    Eindruck nach meiner Anmeldung:

    Beispiel:

    BIF ... komischer Kauts oder Genie

    Godot wow muss wohl ein Urgestein sein

    1570 auch ein Multi Talent

    Endurio kann glaub ich alles....

    Eindruck meines ersten Beitrag im Forum.

    Penultimate Fantasy deutsch... ähhh da ist ein Rechtschreibfehler.... ich spiele lieber das Original.

    Naja nur so ein paar Eindrücke. Mir kommts es so vor als würde ich mich mit meinem Opa unterhalten... sorry ist so.

    Viele Grüße reazorFX Developer Avalon & Titan XBMC / Kodi greetz willy, joost , djh

  • häh? ...wie? ..was? - ich versteh nur Bahnhof - du findest, du bekommst zu wenig Anerkennung? ...also ich weiss ja nicht, ob danach zu betteln die beste Idee ist? - wäre nicht erstmal abliefern und DANN den Ruhm einheimsen die richtige Vorgehensweise?

    ich hab natürlich leicht reden - das einzige, was ich programmiertechnisch hinbekomme ist ein "Hello World" ....