Crearea de conținut poate fi una dintre cele mai consumatoare de timp părți din dezvoltarea jocului, motiv pentru care construirea unui editor de nivel poate fi atât de utilă. În acest articol, voi împărtăși sfaturile mele pentru crearea unui editor eficient de nivel și vă voi explica cum utilizarea acestui tip de instrument a grăbit fluxul de lucru.
Iată scenariul: ați petrecut luni lucrul la jocul dvs. și în cele din urmă începe să se întâlnească. Codul de bază este puternic și ați ajuns până la punctul în care puteți începe să creați niveluri pentru jocul dvs..
Există o singură problemă - fișierul dvs. de nivel arată astfel:
Object Texture rocks4 Poziție 78 540 Rotație 0 Scală 1 1 Culoare 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End Obiect Textură iarbă1 Poziție 60 450 Rotire 0 Scală 1 1 Culoare 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End Obiect Textură iarbă2 Poziție 61 459 Rotire 0 Scală 1 1 Culoare 255 255 255 255 ScrollSpeed 1 1 CustomProperties End End
yuck. Imaginați-vă că încercați să creați niveluri întregi ca acesta. Procesul ar fi incredibil de lent și consumator de timp - ca să nu mai vorbim frustrant. Problema este că este foarte greu să editați ceva care trebuie să fie văzut. Ce se poate face atunci? Răspunsul, în mod surprinzător, se află în contextul problemei în sine.
Nivelurile sunt o formă de vizual comunicare. Jucătorii nu se uită la fișierele text, se uită la imagini, sprite, animații și așa mai departe. Gândiți-vă la un pictor: Picasso nu a făcut picturile sale prin introducerea valorilor RGB pe pixel într-un computer. Și-a făcut picturile, pictându-le. Pentru a aplica aceeași logică la nivel de design, ar trebui să creăm un instrument care să ne permită să editați vizual aceste niveluri - un editor de nivel.
Unul dintre cele mai importante avantaje pentru a avea un editor de nivel este confortul WYSIWYG ("ceea ce vezi este ceea ce primești" - ceea ce vezi în editor este ceea ce vei obține în joc). Așa cum este descris mai sus, este mult mai ușor de proiectat când puteți vedea ce editați.
Un alt avantaj este că permite o iterație mai rapidă și mai eficientă a designului. Procesul de design al nivelului poate fi împărțit într-o diagramă simplă cum ar fi:
Este esențial să vă puteți mișca fără probleme între etapele de proiectare și testare, deoarece acest lucru permite iterații mai rapide și mai puțin timp petrecut.
Motivul final pentru a avea un editor de nivel este acela că face munca de nivel de design mult mai puțin tehnică. Acest lucru este deosebit de relevant când lucrați într-o echipă: imaginați trimiterea fișierului text de mai sus către artiști și spuneți-i să proiecteze niveluri în acest format!
O bună comunicare - atât verbală cât și vizuală - este esențială în cadrul unei echipe, iar editorul de niveluri poate face viața mai ușoară din viața designerilor non-tehnici și poate elimina o posibilă barieră de comunicare între ei și dezvoltatori.
Astfel, pe scurt, cele trei motive cele mai importante pentru care aveți un editor de nivel sunt faptul că vă permit să:
S-ar putea să te întrebi de ce ai vrea să-ți creezi propriul editor atunci când există deja atât de mulți oameni liberi de utilizat - și nu o să mint, sunt niște editori grozavi acolo.
Iată câteva dintre ele pe care le cunosc pentru jocuri 2D:
Există avantaje și dezavantaje pentru utilizarea unui editor generic, existent. Este probabil să fie robust și bine întreținut, dar nu știe nimic despre jocul dvs., așa că ar trebui să faceți trucuri inteligente pentru a interacționa corect cu jocul. Acest lucru se încadrează în timp de iterație și poate duce la un timp mult mai inutil petrecut în timpul creării de conținut.
De asemenea, trebuie să înveți cum să o utilizați, în timp ce dacă ați folosit editorul dvs., evident, știți deja totul despre el.
Iată lista mea personală de argumente pro și contra pentru fiecare tip de editor:
Pre-construit:
Autocreate:
Depinde de tine, dar de dragul acestui articol, mă voi concentra pe proiectarea propriei tale.
Apoi, voi împărtăși sfaturile mele de top pentru crearea unui editor robust și eficient.
S-ar putea să vă faceți griji că va trebui să scrieți mai multe coduri pentru un editor de nivel. Dar de ce să nu faceți acest proces cât mai nedureros posibil?
Dacă sunteți în punctul în care aveți nevoie de un editor de nivel, probabil că aveți deja o structură puțin pentru arhitectura jocului (clase, interfețe, moștenire etc.). Reutilizați acest cod! Dacă aveți deja o grămadă de cursuri pentru a desena și a actualiza lucrurile pentru joc, nu este nevoie să o rescrieți pentru editor. Cu alte cuvinte, NU scrieți un motor separat pentru editor. Pe lângă faptul că vă permiteți să refolosiți codul jocului, acest lucru vă va ajuta să reduceți decalajul dintre modul în care arată nivelul în editorul dvs. și cum arată în joc.
Există două modalități de a implementa un editor de nivel: îl puteți avea în joc sau îl puteți construi ca o aplicație externă. Din nou, ambele abordări au urcusuri și coborâșuri.
Editorul în joc ar elimina, în esență, decalajul dintre proiectare și testare, dar ar necesita, de exemplu, mult mai multă muncă GUI. Editorul extern ar putea folosi bibliotecile GUI și va avea caracteristici robuste, însă iterația test-design ar fi puțin mai lungă, având în vedere faptul că va trebui să comutați în mod constant între două aplicații diferite.
Eu personal prefer prima abordare deoarece cred că se simte cel mai natural și îmi place foarte mult comoditatea de a trece de la proiectare la testare instantaneu.
Rețineți că acest editor este pentru dvs. (sau pentru designerul dvs. de nivel, dacă lucrați într-o echipă). Nu este nevoie să facem să arate frumos. De fapt, este probabil o pierdere de timp, dacă nu intenționați să distribuiți editorul. În schimb, concentrați-vă pe crearea unui editor de nivel funcțional cât mai repede posibil, astfel încât să puteți ajunge la crearea de conținut. (Mai târziu, atunci când jocul dvs. se apropie de finalizare, puteți lua în considerare lucruri precum "înfrumusețarea" editorului.)
Acest lucru poate părea evident, dar comenzile rapide sunt prietenii tăi. Aveți o cheie legată de fiecare acțiune pe care credeți că o puteți face. Sunt serios; acest lucru vă va economisi atât de mult timp la proiectare. De exemplu, apăsarea "C" în editorul de niveluri al jocului meu creează un duplicat al obiectului selectat curent. Este simplu, dar foarte util și economisește mult timp.
Ca exemplu, permiteți-mi să vă arăt editorul jocului meu în curs de dezvoltare, Mori. Iată o placă pe care am rotit-o și am scalat:
Tot ce trebuie sa fac este sa apesi "C" si ... voila!
Aceasta este partea frumoasă a proiectării propriului dvs. editor: poate face orice doriți.
Fiecare joc este diferit; unele jocuri necesită scripturi extinse, în timp ce altele pot implica comportamente complicate ale AI. Toate acestea pot fi integrate în editor. Imaginați-vă că puteți să adăugați un inamic cu un anumit comportament doar prin apăsarea câtorva taste din editor. Acum imaginați-vă că încercați să faceți același lucru adăugând codul într-un fișier de scripting. Ceea ce pare mai eficient?
Există anumite convenții la care ne-am obișnuit când folosim aplicații. Acestea includ facilități cum ar fi anularea / redoirea, copierea / lipirea, mesajele de avertizare și așa mai departe. Dacă planificați în mod corespunzător, puteți implementa toate acestea în editorul dvs. fără prea multă muncă suplimentară. Crede-mă, îți vei mulțumi în viitor, dacă ai asta.
O altă caracteristică care vă poate ușura viața este posibilitatea de a testa nivelurile fără a salva fișierul pe disc. Acest lucru face procesul de testare a designului mult mai ușor. Jocul meu folosește un sistem de gestionare a jocului, așa că am două "ecrane" separate pentru gameplay și editare.
Din joc am lovit o cheie pentru a intra în editor. Editorul este trecut de obiectul nivel, care poate fi apoi manipulat din interiorul editorului. De acolo, am două opțiuni: pot salva nivelul pe disc, sau pot să ating o anumită cheie și să trec obiectul de nivel înapoi la ecranul de joc. Acest lucru îmi permite să testez imediat nivelul fără teama de a suprascrie modificările mele vechi.
Pe scurt, un editor de nivel este o investiție utilă în procesul de dezvoltare a jocului. Permite proiectarea vizuală a nivelelor, timpi de iterație mai rapizi și o cerință tehnică mai mică pentru designeri.
Sper că ați găsit acest articol interesant și util. Mulțumesc că ai căzut!