Domande su progettazione / modifica / salvataggio di livello 2D [chiuso]


12

Ho pensato di realizzare un semplice gioco 2D Sidescroller come SuperMario. Poi mi sono chiesto come salvare, caricare o creare i livelli per il gioco. La prima cosa a cui ho pensato è stato disegnare un semplice png a blocchi che rappresenta il livello, creando tutte le parti in cui il giocatore può camminare con un colore speciale (forse lilla). Imporrei il livello in blocchi o piastrelle in modo da poter verificare la collisione.

quindi le mie domande sono:
ci sono metodi migliori per questo?
quali sono i metodi professionali per questo?
dovrei farlo con le tessere e un editor di mappe basato sulle tessere? (per qualche motivo non mi piace, ma immagino che se fosse il metodo migliore lo userei)
con un livello basato su piastrelle, come realizzeresti le pendenze e come le controlleresti per le collisioni?

Risposte:


10

Per un MMO 2D utilizziamo http://www.mapeditor.org/ . Utilizziamo diversi livelli per lo sfondo, la decorazione dello sfondo, gli oggetti allo stesso livello dei giocatori e gli oggetti di fronte al giocatore. E un ulteriore livello con un solo quadrato rosso per contrassegnare le collisioni.

Non sono sicuro che questo approccio o il software funzionino per uno scroller laterale 2D, ma potrebbe valere la pena di dargli un'occhiata.


+1. È un ottimo strumento. È anche open source, quindi puoi estenderlo se necessario.
Janis Kirsteins,

è davvero un buon strumento, l'ho testato e non ho avuto nessun problema a importarlo nel mio gioco.
Simiil,

1
ok quindi ora voglio sapere come creare livelli non basati su piastrelle, come i mondi nei worm, ma immagino che un giorno lo farò in una nuova domanda
Simiil,

6

Un modo comune potrebbe essere ad esempio solo una stringa

0,0,0,0,0,0,1,1,1,0,0,0,2

dove 0 sarebbe un blocco su cui puoi camminare 1 potrebbero essere punte e 2 potrebbe essere il traguardo

leggeresti semplicemente attraverso un file di testo (o lo avresti codificato nel gioco) e disegneresti il ​​blocco relativo che è associato al numero e avresti la tua logica di colisione da gestire comunque sia impostata.

Ovviamente puoi scegliere il formato che preferisci e forse 0 significa disegnare 5 blocchi percorribili.

Questo è solo un modo in cui potrebbe essere raggiunto.

http://www.smudgedcat.com/tut_tiledlevel.html questo link è di esempio in c # usando il framework XNA. ti darà un'idea approssimativa (NON contiene pendenze, ma una cosa simile potrebbe essere usata per definire questo tipo di caso)

Saluti Mark


Questo è esattamente il modo in cui "Excite Bike" ha fatto le sue mappe personalizzate su Nintendo. vc.nintendolife.com/games/nes/excitebike
Stephen Furlani

5

testo alternativo

Molti giochi usano un'applicazione open source chiamata Mappy . Ha un suo formato che supporta più livelli e altre funzionalità. Probabilmente si desidera associare diversi tipi di dati a un determinato riquadro.


Penso che l'approccio dell'editor a livello di gioco sia molto comune. La modalità sviluppatore è un resoconto interno di come sono stati progettati i livelli di un gioco molto popolare, Braid. Il gioco ha una modalità di sviluppo in cui i livelli possono essere costruiti / modificati. I livelli stessi hanno uno strato di collisione coperto da tessere grafiche:

testo alternativo


E personalmente non lo consiglio, ma un programma demo 2D per Allegro ha usato un qualche tipo di formato di modellazione 3D e lo ha convertito in un formato di gioco personalizzato. Il vantaggio era che poteva modellare superfici molto lisce e continue. (Era un gioco di skateboard basato sulla fisica 2D.)

Per modificare i dati di livello del gioco demo Allegro, utilizziamo lo strumento gratuito e open source Blender. Puoi ottenerlo qui:

http://blender.org

Ecco le istruzioni passo passo su come funziona:

1) Posiziona il file ademo_export.py nella cartella degli script di Blender. È lo script di esportazione che convertirà dal formato .blend al formato .txt utilizzato dal gioco demo. Sotto unix, il percorso sarà:

~ / .Blender / scripts / ademo_export.py

2) Carica il frullatore di file .blend. Sotto unix, digita questo dalla directory con il file level.blend:

frullatore -w level.blend

(Il -w è di usare le modalità con finestra, che preferisco.)

3) Modifica il livello. Nel menu, sotto

Aiuto -> Script Aiuto Browser -> Esporta -> Allegro Demo Livello di gioco

troverai alcuni consigli utili.

4) Salvare il file (utilizzare la compressione prima del commit). Esportalo come .txt dal menu di esportazione, scegliendo Allegro Demo Livello di gioco.

5) Aggiorna level.dat usando level.txt, il nuovo livello dovrebbe apparire nel gioco.


2

I metodi "professionali" implicherebbero probabilmente un editor di mappe molto dettagliato, probabilmente in C #, che darebbe loro il pieno controllo su tutto.

Esistono due approcci principali; uno è più facile da fare, ma non altrettanto efficace.

  • È possibile utilizzare un editor di mappe; o scrivendo il tuo o trovando uno preesistente come mapeditor che nhnb ha menzionato. Scrivere il tuo sarebbe positivo per un'esperienza di apprendimento, ma non tanto per un prodotto finito.
  • Potresti semplicemente digitare i dati in un file di testo. Questo è più semplice, ma non è facile da leggere di nuovo. Probabilmente potresti ottenere lo stesso dall'editor delle mappe, ma sarebbe automatizzato. Il rovescio della medaglia di nuovo è che non puoi aggiungere effetti speciali come certe tessere (non i tipi di tessera , ma tessera (13,45) per esempio) per fare cose speciali.

2

Ho avuto pensieri simili (ovvero tornare a scrivere giochi un hobby - lavoro e altri impegni ...)

Considererei seriamente il percorso di sviluppo di "Map Editor" come parte del gioco / dell'applicazione.

Se il tuo gioco va oltre il tuo PC, il contenuto della community sarebbe un grande vantaggio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.