Levelinformationen speichern



  • Ich arbeite mit SFML.

    Ich arbeite gerade an einem jump n run spiel. Ich hatte die Idee ,dass ich einen Editor programmiere, in dem Blöcke generiere und nach Belieben platzieren kann. Ich fand es somit einfacher Levels zu erstellen. Das hat auch geklappt. Jetzt möchte ich, dass ich die erstellten Levels auch speichern kann.

    Meine Überlegung war zunächst in einer Textdatei sämtliche Informationen zu speichern. Ich speichere Informationen wie Anzahl der Blöcke (Blöcke auf denen der Spieler beispielsweise drauf springen oder stehen kann) , Position ,usw.

    Meine Frage ist nun ob es sinnvoll wäre diese Infos in einer Textdatei zu speichern? Oder gibt es da eine wesentlich elegantere Lösung? Ich habe bisher nicht sooo viel mit Files gearbeitet, sondern habe nur minimale Kenntnisse über Filehandling.

    Danke im Voraus für eure Antworten.

    MfG Eniddelemaj



  • Mein persoenlicher favorit bei 2D/2.5D jump'n'run style games sind bitmaps. Bsp. 1px = 1 game unit, du malst einfach dein level mit verschiedenen rgb values, liesst es hinterher ein und generierst pro value ein anderes element.

    Bpsw:
    boden/wand : 0, 0, 0
    wasser: 0, 0, 255
    eis: 1, 0, 255
    player: 255, 255, 255
    enemy: 255, 0, 0
    enemy_2: 255, 1, 0
    enemy_3: 255, 2, 0

    etc.



  • das hört sich interessant an. ich werde mir das mal genauer ansehen. danke.



  • Bei Bitmaps hast du den Vorteil dass du fertige Editoren verwenden kannst. Zwar nicht sehr komfortabel, aber besser als nix.

    Bei Textfiles hast du den Vorteil dass du sie leichter ohne Hilfs-Libraries einlesen kannst.
    Und du kannst es bei Textfiles natürlich ähnlich machen wie bei Bitmaps: eine Zeile im Textfile entspricht eine Zeile im Level...

    X              ====
                   ====            (~~~~)
           =====                    |WW|
                                    |WW|
    #################  #############|WW|###############
    

    Ansonsten, für etwas komplexere Spiele (mehrere Layer, viele viele verschiedene Block-Typen etc.) ist es auch nicht unüblich den Editor ins Spiel einzubauen. D.h. du machst dir irgend eine Möglichkeit dein Spiel im Editor-Mode zu starten. Da drinnen läuft dann keine Zeit und du zeichnest z.B. diverse Visualisierungen für unsichtbare Sachen (z.B. Zonen die irgendwas triggern). Wertest Mouse-Input aus damit man Blöcke ins Leven reinmalen kann, ggf. Keyboard-Shortcuts mit denen man zwischen den Layern umschalten kann, scrollen etc. Typischerweise baut man sich dann auch die Möglichkeit ein irgendwie einfach zwischen Editor-Mode und "Play" Mode hin und her zu wechseln. Damit man bestimmte Konstrukte im Level einfacher testen kann -- also z.B. ob man durch irgend eine Stelle mit brutal vielen Hindernissen und/oder Gegnern überhaupt durchkommen kann.

    Der Aufwand zahlt sich bei einfacheren Games aber vermutlich nicht aus. Bzw. nur wenn sehr sehr viele und/oder sehr sehr komplizierte Levels machen will.



  • Hi,

    ich werfe einfach mal dieses Tool in den Raum, womit ich gute Erfahrungen gemacht habe: http://www.mapeditor.org

    Das Tool erlaubt es mehrere Formate zu speichern und diese kann man sich mal als "Inspirationen" angucken. Mal über den Tellerrand zu gucken schadet nicht und ich denke es wird dich auf ein paar gute Gedanken bringen. 🙂

    - codejunkie


Anmelden zum Antworten