Level "Programmierung"

  • Ich glaube, dass ich den Fehler mache, die Falsche Frage zu stellen und deshalb nichts im Internet zu dem Thema finde:
    Es geht um die tatsächliche Programmierung bzw. Realisierung eines Levels in einem Spiel. Was ich damit meine lässt sich wohl mit einem Beispiel am besten erklären: Wenn man z.B. Super Mario spielt, stehen in Level 1 an bestimmter Stelle immer diese Blöcke, in denen sich z.B. Münzen befinden. Egal ob man stirbt, aus dem Screen rausläuft oder ähnliches, sobald man wieder an diese Stelle kommt, sind diese Blöcke da. Nun ist mein Problem, dass ich weiß wo ich diese Blöcke haben will, aber nicht weiß wie ich das ganze realisieren soll.


    Konkret schreibe ich gerade an einem Space Invader Klon: Also ich hab unten ein kleines Schiff, von oben kommen Gegner die ich abschießen muss. An sich ist das Spiel fertig bis auf die Level. Für diese Art von Spiel ist das ganze eigentlich, meiner Vorstellung nach, etwas einfacher da die Gegner immer zu bestimmten Zeitpunkten kommen. Somit könnte man ja eigentlich einfach in einer Art Tabelle (die man dann als Array ausliest) abspeichern, welcher Gegner zu welchem Zeitpunkt kommt und dann im Spiel einfach in einer Variable die Zeit abspeichern, sie mit jedem Frame kontrollieren und zum passenden Zeitpunkt die Gegner erstellen. Jedoch weiß ich noch nicht wie man das konkret realisiert.


    Stelle ich mir das ganze richtig, zu kompliziert/zu einfach vor? Was wäre die Herangehensweise in einem Spiel ähnlich zu Super Mario?
    Es wäre bereits eine große Hilfe, wenn ihr mir sagen könnten wie man sowas überhaupt nennt. Mit Stichworten wie "Level programming" oder "Level development" konnte ich bei Google nichts finden.


    MFG
    AGL

  • Zitat

    Stelle ich mir das ganze richtig, zu kompliziert/zu einfach vor? Was
    wäre die Herangehensweise in einem Spiel ähnlich zu Super Mario?


    Es wäre bereits eine große Hilfe, wenn ihr mir sagen könnten wie man
    sowas überhaupt nennt. Mit Stichworten wie "Level programming" oder
    "Level development" konnte ich bei Google nichts finden.

    Also kurz zu deinem Spaceinvaders-Klon, die Angriffswellen von Feinden machen ja meist eine Bewegung, diese Bewegung legst du als Koordinaten in einer Tabelle ab. (oder auch als Funktion, schöne sanfte Bewegungen erreicht man zB mit Sinusspielerreien)


    Ein Spiellevel könnte jetzt ja so aussehen -> Start -> Countdown bis zur ersten Welle -> Countdown zu nächsten Welle ect


    Hier könntest du dir zb. eine Arraylistnehmen und die mit deiner "eigenen" Gamesprache füllen. (zb. ein Objekt was den Countdown enthält, Die Art der Feinde und die Bewegung der Feinde, Punkte der Welle)


    Wenn jetzt der Level startet - läuft halt ein Counter mit und du arbeitest nach und nach deine Arrayliste ab.


    -----------------------


    Mario: Die Spielfelder in so einem Spiel kann man meist als 2dimensionales Array (x,y) darstellen. Die Spielewelten bestehen meist aus Blöcken (feste Höhe Breite) und werden aus Sprites (einzelne Blöcke, Objekt) aufgebaut. Damit kann man aus wenigen Teilen riesige Spielwelten erzeugen


    -> das nennt man auch Tile-Engine (Google-Tipp)



    Tja und wenn dein x,y größer als der Bildschirm ist, kannst du auch super scrollen und stellst immer nur den Teil dar, der wirklich sichtbar ist.

  • Ich selber Baue in meinem Spiel die Levels folgendermasen Zusammen:


    float x[]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}


    float z[]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
    float y[] ={5,0,-5,-10,-15,-20,-25,-30,-35,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}


    byte s[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4};




    x,y,z gibt die Platformposition an und s gibt an was für eine es ist(kleine,große usw.) 4 steht für Ziel.


    die y bleiben bei -40 stehen, da ich immer nur 10 Felder gleichzeitig Anzeige.


    Hoffe dir Hilft das ein wenig, das ist die Leveldatei von Level 1 von meinem Spiel Super Line Ball.


    gruß


    JKING

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!