Ich dachte darüber nach, ein einfaches 2D-Sidescroller-Spiel wie SuperMario zu machen. Dann habe ich mich gefragt, wie ich die Levels für das Spiel speichern, laden oder erstellen soll. Das erste, woran ich dachte, war ein einfaches Block-PNG zu zeichnen, das das Level repräsentiert und alle Teile, in denen der Spieler laufen kann, in einer bestimmten Farbe (vielleicht Flieder) anordnet. Ich würde das Level in Blöcken oder Kacheln importieren, damit ich nach Kollisionen suchen kann.
meine fragen sind also:
gibt es dafür bessere methoden?
Was sind die professionellen Methoden dafür?
soll ich das mit Tiles und einem auf Tiles basierenden Map Editor machen? (aus irgendeinem Grund mag ich das nicht, aber ich denke, wenn es die beste Methode ist, die ich verwenden würde)
Mit einem Level auf Kachelbasis, wie würden Sie Steigungen erkennen und wie würden Sie sie auf Kollisionen überprüfen?
quelle
Ein üblicher Weg könnte zum Beispiel nur eine Zeichenfolge sein
0,0,0,0,0,0,1,1,1,0,0,0,2
Wobei 0 ein Block wäre, auf dem man laufen kann. 1 könnten Stacheln und 2 die Ziellinie sein
Sie lesen dies einfach durch eine Textdatei ein (oder lassen es fest im Spiel codieren) und zeichnen den relativen Block, der der Zahl zugeordnet ist, und lassen Ihre Kollisionslogik so behandeln, wie sie eingerichtet ist.
Natürlich können Sie jedes gewünschte Format auswählen und 0 bedeutet vielleicht, dass Sie 5 begehbare Blöcke zeichnen.
Dies ist nur eine Möglichkeit, dies zu erreichen.
http://www.smudgedcat.com/tut_tiledlevel.html Dieser Link ist ein Beispiel in C # unter Verwendung des XNA-Frameworks. es wird Ihnen eine grobe Vorstellung geben (es enthält KEINE Steigungen, aber eine ähnliche Sache könnte verwendet werden, um diese Art von Fall zu definieren)
Grüße Mark
quelle
Viele Spiele verwenden eine Open-Source-Anwendung namens Mappy . Es hat ein eigenes Format, das mehrere Ebenen und andere Funktionen unterstützt. Möglicherweise möchten Sie einer bestimmten Kachel mehrere Datentypen zuordnen.
Ich denke, dass der In-Game-Level-Editor-Ansatz sehr verbreitet ist. Der Entwicklermodus ist ein Insider-Bericht darüber, wie die Levels für ein sehr beliebtes Spiel, Braid, entworfen wurden. Das Spiel hat einen Entwicklungsmodus, in dem Level erstellt / geändert werden können. Die Ebenen selbst haben eine Kollisionsebene, die mit grafischen Kacheln bedeckt ist:
Ich persönlich empfehle es nicht, aber ein 2D-Demoprogramm für Allegro verwendete eine Art 3D-Modellierungsformat und konvertierte es in ein benutzerdefiniertes In-Game-Format. Der Vorteil war, dass sehr glatte, durchgehende Oberflächen modelliert werden konnten. (Es war ein 2D-Physik-basiertes Skateboard-Spiel.)
quelle
Die 'professionellen' Methoden würden wahrscheinlich einen sehr detaillierten Karteneditor beinhalten, wahrscheinlich in C #, der ihnen die volle Kontrolle über alles geben würde.
Es gibt zwei Hauptansätze; man ist einfacher zu machen, aber nicht so effektiv.
quelle
Ich hatte ähnliche Gedanken (z. B. wieder Spiele zu schreiben, ein Hobby - Job und andere Verpflichtungen ...)
Ich würde mir ernsthaft überlegen, wie man den 'Map Editor' als Teil des Spiels / der Anwendung entwickeln soll.
Wenn Ihr Spiel jemals über Ihren eigenen PC hinausgeht, wäre Community Content ein großer Segen.
quelle