La creazione di contenuti può essere una delle parti che richiede più tempo nello sviluppo del gioco, ed è per questo che la creazione di un editor di livelli può essere così utile. In questo articolo, condividerò i miei suggerimenti per la creazione di un editor di livelli efficiente e spiegherò come l'utilizzo di questo tipo di strumento ha velocizzato il mio flusso di lavoro.
Ecco lo scenario: hai passato mesi a lavorare sul tuo gioco e finalmente sta iniziando a venire insieme. Il codebase è forte e sei arrivato al punto in cui puoi iniziare a creare livelli per il tuo gioco.
C'è solo un problema: il tuo file di livello ha questo aspetto:
Oggetto Texture rocks4 Posizione 78 540 Rotazione 0 Scala 1 1 Colore 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End Oggetto Texture grass1 Posizione 60 450 Rotazione 0 Scala 1 1 Colore 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End Oggetto Texture grass2 Posizione 61 459 Rotazione 0 Scala 1 1 Colore 255 255 255 255 ScrollSpeed 1 1 Fine Fine CustomProperties
che schifo. Immagina di provare a creare interi livelli come questo. Il processo sarebbe incredibilmente lento e dispendioso in termini di tempo, per non dire frustrante. Il problema è che è molto difficile modificare qualcosa che dovrebbe essere visto. Cosa si può fare allora? La risposta, sorprendentemente, sta nel contesto del problema stesso.
I livelli sono una forma di visivo comunicazione. I giocatori non guardano i file di testo, guardano immagini, sprite, animazioni e così via. Pensa a un pittore: Picasso non ha realizzato i suoi dipinti inserendo valori RGB per pixel in un computer. Ha realizzato i suoi dipinti, bene, dipingendoli. Per applicare la stessa logica alla progettazione del livello, dovremmo creare uno strumento che ci consenta di modificare visivamente tali livelli: un editor di livelli.
Uno dei vantaggi più importanti nell'avere un editor di livelli è la praticità di WYSIWYG ("Ciò che vedi è ciò che ottieni" - ciò che vedi nell'editor è ciò che otterrai nel gioco). Come descritto sopra, è molto più semplice da progettare quando puoi vedere cosa stai modificando.
Un altro vantaggio è che consente un'iterazione di progettazione più rapida ed efficiente. Il processo di progettazione del livello può essere suddiviso in un semplice diagramma di flusso come questo:
È fondamentale che tu possa passare senza problemi tra le fasi di progettazione e di test, in quanto ciò consente iterazioni più rapide e meno tempo trascorso complessivamente.
L'ultima ragione per avere un editor di livelli è che rende il lavoro di level design molto meno tecnico. Ciò è particolarmente rilevante quando si lavora in un team: immagina di inviare il file di testo sopra agli artisti e di dire loro di progettare i livelli in quel formato!
Una buona comunicazione, sia verbale che visiva, è essenziale all'interno di un team e un editor di livelli può rendere la vita dei progettisti non tecnici molto più semplice, oltre a rimuovere una potenziale barriera di comunicazione tra loro e gli sviluppatori.
Quindi, in sintesi, i tre motivi più importanti per avere un editor di livelli sono che ti permettono di:
Potresti chiederti perché vorresti creare il tuo editor quando ce ne sono già così tanti liberamente disponibili - e non ho intenzione di mentire, ci sono alcuni grandi editori là fuori.
Ecco alcuni di quelli che conosco per i giochi 2D:
Ci sono vantaggi e svantaggi nell'utilizzo di un editor generico esistente. È probabile che sia robusto e ben mantenuto, ma non sa nulla del tuo gioco, quindi potresti dover fare trucchi intelligenti per poter interagire correttamente con il tuo gioco. Questo scava nel tempo di iterazione e può comportare un tempo molto più inutile speso durante la creazione del contenuto.
Inoltre, devi imparare come usarlo, mentre se hai usato il tuo editor, ovviamente sai già tutto su di esso.
Ecco la mia lista personale di pro e contro per ogni tipo di editor:
Pre-built:
Auto-creato:
Dipende da te, ma per il bene di questo articolo, mi concentrerò sul tuo progetto.
Successivamente, condividerò i miei migliori consigli per la creazione di un editor di livelli solido ed efficace.
Potresti rabbrividire sul fatto che dovrai scrivere più codice per un editor di livelli. Ma perché non rendere questo processo il più indolore possibile?
Se sei nel punto in cui hai bisogno di un editor di livelli, probabilmente hai già un po 'di struttura per la tua architettura di gioco (classi, interfacce, ereditarietà, ecc.). Riutilizza questo codice! Se hai già un sacco di classi per disegnare e aggiornare cose per il gioco, non c'è bisogno di riscriverlo per l'editor. In altre parole, NON scrivere un motore separato per l'editor. Oltre a permetterti di riutilizzare il codice di gioco, questo ti aiuterà a ridurre il divario tra l'aspetto del livello nel tuo editor e il suo aspetto nel gioco.
Ci sono due approcci per implementare un editor di livelli: puoi averlo in-game o costruirlo come un'app esterna. Ancora una volta, entrambi gli approcci hanno i loro alti e bassi.
L'editor in-game eliminerebbe essenzialmente il divario tra progettazione e testing, ma richiederebbe molto più lavoro sulla GUI, ad esempio. L'editor esterno poteva utilizzare le librerie GUI e avere funzionalità robuste, ma l'iterazione del test di progettazione sarebbe leggermente più lunga, dato che dovresti passare continuamente da due app diverse.
Personalmente preferisco il primo approccio perché ritengo che sia il più naturale, e mi piace molto la comodità di passare tra la progettazione e la verifica istantanea.
Ricorda, questo editor è per te (o il tuo level designer, se lavori in una squadra). Non c'è bisogno di farlo sembrare carino. In effetti, probabilmente è una perdita di tempo, a meno che non si preveda di distribuire l'editor. Invece, concentrati a creare un editor di livelli funzionale il più velocemente possibile in modo da poter arrivare alla creazione di contenuti. (Più avanti, quando il tuo gioco è quasi completato, puoi considerare cose come "abbellire" l'editor.)
Questo può sembrare ovvio, ma scorciatoie sono i tuoi amici. Tieni una chiave legata a ogni azione che pensi di poter fare. Sono serio; fare questo ti farà risparmiare così tanto tempo durante la progettazione. Ad esempio, premendo 'C' nell'editor di livelli del mio gioco si crea un duplicato dell'oggetto attualmente selezionato. È semplice, ma immensamente utile e consente di risparmiare un sacco di tempo.
Ad esempio, lascia che ti mostri l'editor del mio gioco attualmente in sviluppo, Mori. Ecco una tessera che ho ruotato e ridimensionato:
Tutto quello che devo fare è premere "C" e ... voilà!
Questa è la parte più bella del design del tuo editor: può fare tutto ciò che vuoi che faccia.
Ogni partita è diversa; alcuni giochi richiedono scripting estesi, mentre altri possono comportare complicati comportamenti di intelligenza artificiale. Tutti questi possono essere integrati nell'editor. Immagina di poter aggiungere un nemico con un determinato comportamento semplicemente premendo alcuni tasti nell'editor. Ora immagina di provare a fare la stessa cosa aggiungendo codice a un file di script. Quale sembra più efficiente?
Ci sono alcune convenzioni a cui ci siamo abituati quando usiamo le applicazioni. Questi includono servizi come annulla / ripristina, copia / incolla, messaggi di avviso e così via. Se pianifichi correttamente, puoi implementare tutti questi nel tuo editor senza molto lavoro aggiuntivo. Fidati di me, ti ringrazierai in futuro se ne hai.
Un'altra caratteristica che può semplificarti la vita è riuscire a testare i livelli senza salvare il file sul disco. Questo rende la procedura di test di progettazione molto più semplice. Il mio gioco utilizza un sistema di gestione dello stato del gioco, quindi ho due "schermate" separate per il gameplay e il montaggio.
Dall'interno del gioco, premo un tasto per entrare nell'editor. L'editor riceve l'oggetto level, che può essere manipolato dall'interno dell'editor. Da lì, ho due opzioni: posso salvare il livello su disco oppure posso premere un determinato tasto e passare l'oggetto livello indietro alla schermata di gioco. Questo mi permette di testare subito il livello senza la paura di sovrascrivere i miei vecchi cambiamenti.
In breve, un editor di livelli è un investimento utile nel processo di sviluppo del gioco. Permette la progettazione visiva dei livelli, tempi di iterazione più rapidi e un requisito tecnico inferiore per i progettisti.
Spero che tu abbia trovato questo articolo interessante e utile. Grazie per essere passato!