Cred că fiecare dezvoltator de jocuri ar trebui să folosească instrumentele necesare pentru a-și îmbunătăți fluxul de lucru, mai degrabă decât să facă totul manual sau de la zero. Dar ce vreau sa spun prin instrumente? Editorii de nivel, debuggerii, analizele ...? Toate acestea și multe altele! În acest articol, voi distruge diferitele tipuri de instrumente disponibile pentru dezvoltatorii de jocuri și explică de ce doriți să utilizați fiecare.
Când dezvoltați un joc, cu siguranță va veni momentul când trebuie să începeți să adăugați conținut la acesta. Aceasta ar putea fi o sarcină ușoară la început: trebuie doar să configurați niște matrice și obiecte în interiorul codului. Dar, pe măsură ce evoluția progresează, vă pot garanta aproape că codul de conținut va începe să arate dezordonat.
Imaginați-vă că aveți zece nivele ale unui joc de platformă, expuse în cod, cu poziții, obiecte, obiecte, dale și orice altceva în inamic. Pe măsură ce îl jucați, observați că trebuie să schimbați poziția inimii unui inamic. Conținutul nivelului este în acel dosar mare, cu toate informațiile pentru toate nivelele. Se pare că sună ca o durere de cap pentru a trece prin toate codurile care caută linia exactă să se schimbe. Și asta nu ia în considerare nici chiar schimbările care ar putea afecta alte schimbări - cum ar fi poziția unei platforme pe care un inamic stă în picioare.
Desigur, ați putea dori, de asemenea, să vizualizați nivelul dvs. și să îl puteți modifica în zbor. Nu este posibil să priviți codul.
Instrumentele de scriere care vă ajută în procesul de dezvoltare a jocului dvs. reprezintă o abordare mai complicată, dar mai plină de satisfacții. S-ar putea să scrieți un instrument care să traducă vizual toate aceste coduri de conținut în nivelul în sine pentru dvs. și, pe măsură ce îl modificați, instrumentul va schimba codul de conținut. De asemenea, puteți scrie instrumente care să vă ajute să creați mai mult conținut pentru joc, să vă ajutați să depanați jocul și chiar să ajutați la implementarea pe mai multe platforme. Sau puteți merge la un nivel mai mare și eliberați instrumentul jucătorilor și le permiteți acestora să creeze conținut și pentru jocul dvs.!
Acest lucru poate crește chiar și succesul jocului dvs., după cum puteți observa dacă vă uitați în jur pentru jocurile recente care au făcut deja acest lucru.
Să aruncăm o privire la diferitele instrumente pe care le puteți face, cum vă poate ajuta fiecare să adăugați și să gestionați conținutul jocului dvs. și dificultățile legate de crearea acestora.
Aceasta este cea mai largă secțiune. Un instrument de creatie este tot ce adauga continut jocului dvs. - elemente, caractere, nivele, muzica ... Aceste instrumente sunt cele cu care va petreceti cel mai mult timp, pentru ca finisarea jocului se va inversa in jurul lor: crearea nivelelor, elementelor si inamici; punând totul împreună; lustruind fiecare bit la cele mai bune detalii. Oricare dintre aceste sarcini ar putea implica un instrument de creare.
Chiar dacă editorul de nivel va fi utilizat doar de dvs. sau de echipa dvs., trebuie să faceți interfața sa intuitivă și ușor de folosit.
Să presupunem că aveți un joc bazat pe niveluri. Pentru a crea un instrument bun pentru editarea nivelelor dvs., prima sarcină este să faceți ca instrumentul să reprezinte vizual nivelul pentru dvs. Aceasta înseamnă că trebuie să vă arătați exact cum va căuta nivelul jucătorilor dvs. După aceasta, trebuie să vă permiteți să editați conținutul într-un fel, astfel încât să puteți crea de fapt nivelul. Acest lucru se face printr-o interfață. Citiți cu atenție acum, deoarece acest lucru este important: chiar dacă editorul de nivel va fi utilizat numai de dvs. sau de echipa dvs., trebuie să faceți interfața sa intuitivă și ușor de utilizat. De ce? Pentru că nimănui nu îi place să lucreze cu ceva care vă cere să împingeți o combinație de butoane sau să faceți clic pe o grămadă de butoane pentru a adăuga ceva la fel de simplu ca un obiect pe ecran. Și asta include tu și echipa ta.
Chiar dacă sunteți cei care l-ați creat și știți totul despre editor, făcând o interfață ușor de folosit ajută pe toată lumea să adauge conținut la joc. Și dacă cineva întâmplă să uite scurtarea cum să marcheze un obiect ca fiind "collidabil", de exemplu, având o interfață intuitivă va fi un ajutor imens.
Iată un exemplu real - un editor de nivel simplu pe care l-am creat pentru un joc de reacție în lanț Windows Phone 7:
Așa cum ați observat, întregul editor de nivel există în software-ul Adobe Flash Professional - nu am creat o aplicație separată. Flash Pro a fost un mediu perfect: a fost nevoie de efort zero pentru a crea ceva pentru a trata grafica desenată pe ecran pentru mine, deoarece m-am uitat la un instrument simplu care să mă ajute să creez nivelurile pentru joc. Singurul lucru pe care ar fi trebuit să-l fac a fost să creez o extensie foarte simplă (după cum puteți vedea în videoclip) pentru a salva toate informațiile de nivel undeva pentru mine (am folosit un fișier XML).
Toate celelalte lucruri mi s-au ocupat de Flash Pro: aș putea seta dimensiunea ecranului exact la dimensiunea ecranului jocului, aș putea să așez toate obiectele la dimensiunea lor reală pe ecran și să introduc ghiduri pentru a mă ajuta să vizualizez unde ar urma să meargă după obiect a explodat. Procesul de testare a fost la fel de simplu ca și "compilarea" proiectului în Flash, care ar deschide o fereastră care să întrebe unde să salveze fișierul XML; când mi-am compilat din nou jocul, va citi XML-ul actualizat.
Acum, să ne imaginăm că aveți un joc de tip "shoot-up". Ați încercat vreodată să creați unul anterior? Este enervant (și complicat) să înființeze toate acele mișcări ale inamicului și modelele de împușcare prin codul în sine, și stabilirea calendarului este, de asemenea, obositoare.
Iată un editor de nivel "shoot-up" pe care l-am creat ca un alt experiment:
Acesta este un exemplu de ce nu a face. Deși editorul meu a avut funcționalitatea de bază de a vă permite să configurați modele de mișcare inamice așa cum ați plăcut și chiar să includeți câteva funcții de ajutor (în acest caz, oglindirea inamicului pe care îl editez pentru a crea un efect "oglindă" când adversarii au apărut în joc) interfața a fost un eșec complet.
N-am avut nici o modalitate de a vizualiza toate nivelurile în același timp: tot ce puteam face era să vizualizez valul prin val. V-ați imaginat vreodată cât de dureros ar fi să schimbați ceva în acest nivel? Dacă, de exemplu, am vrut să întârzie timpul de spawn dintre dușmanii valului curent cu 400 de milisecunde, aș fi nevoit să trec prin toate valurile ulterioare și să adaug (400ms * numărul de inamici schimbat
) la toate timpurile inițiale ale celorlalte valuri. Din acest motiv foarte fundamental, am ajuns să trebuiască să recreez instrumentul de la zero.
Crearea instrumentelor de creație este o sarcină foarte dificilă. Poate că acestea sunt cele mai grele dintre toate celelalte instrumente de creat, deoarece veți avea de a face cu ele pe o bază de zi cu zi, pentru a vă face jocul. Trebuie să le faceți cât mai repede și mai ușor de utilizat posibil și nu trebuie să renunțe la conținutul jocului. Dacă aflați că trebuie să vă petreceți câteva minute sau chiar ore în schimbarea lucrurilor în editorul dvs. pentru că ați schimbat altceva care a trebuit să fie fixat, atunci este posibil să doriți să regândiți dacă instrumentul își deserveste scopul.
O abordare excelentă este crearea de editori în joc. Aceste instrumente vă permit să schimbați conținutul în timp ce jocul rulează și să testați ce ați schimbat în timpul execuției.
Uneltele ca acestea vă împing productivitatea la limită, deoarece aveți feedback instantaneu asupra schimbărilor pe care le-ați făcut. Unii editori vă permit să modificați chiar valoarea atributelor pe măsură ce jocul dvs. rulează, permițându-vă să executați comenzi în timp real și să urmăriți rezultatele. De asemenea, poți să "îndoiești" și să înregistrezi acțiunile pe care le-ai făcut în joc, apoi să schimbi atributele în joc (de exemplu, gravitatea) și să vezi ce mișcare a jucătorului care face aceleași acțiuni ar arăta sub acel mediu nou.
Aruncați o privire la acest exemplu de editor de hărți în joc pentru un joc în dezvoltare, Concerned Joe:
Aceștia sunt probabil cei mai buni prieteni ai programatorului. Când ceva nu merge bine cu un joc, instrumentele de depanare vă ajută să aflați ce a fost. Ele pot afișa, de asemenea, statistici despre joc, examinează timpul de proces al fiecărei funcții care este apelat în codul dvs., furnizează gropi de memorie când ceva nu reușește, crea jurnale atâta timp cât aplicația rulează și mai mult.
Când programați un joc, un programator va folosi adesea multe dintre aceste instrumente - în special programul de depanare al mediului de dezvoltare, dacă acesta are unul. Cu toate acestea, multe alte instrumente pot fi scrise pentru a ajuta la procesul de dezvoltare a jocului în acest domeniu.
Pentru un joc foarte complex, de multe ori doriți să puteți recupla stiva de apel pentru funcții atunci când ceva se blochează (astfel încât să știți exact ce linii de cod a provocat accidentul) și să generați jurnale cât mai des posibil. Desigur, trebuie să puteți interpreta aceste jurnale. Poate un instrument care să vă ajute să analizați jurnalele ar putea fi la îndemână ...
De exemplu, uita-te la acest instrument creat de Adobe, denumit SWF Investigator:
Acest instrument, creat pentru analiza fișierelor SWF, permite dezvoltatorului să investigheze o varietate de lucruri din joc, inclusiv analiza codului (este capabil să dezasambleze SWF pentru a examina exact ce face aplicația), ceea ce este foarte important pentru o dezvoltator de jocuri - în special când optimizați codul.
Sarcina de a scrie un instrument de depanare, cu toate acestea, este foarte dificilă. Nu pentru că trebuie să aibă o interfață "perfectă" ca și instrumente de creare; de multe ori aceste instrumente sunt utilizate numai de către programatori și echipa de dezvoltare de bază, și interfața nu contează acea mult. (Desigur, trebuie să fie în continuare capabilă să arate tot ce este important pentru dvs. și să vă permită să manipulați ușor lucrurile prin ea.) Nu, este dificil din cauza cantității uriașe de detaliu tehnic care trebuie să intre în ele.
Cu toate acestea, aceste instrumente vă pot ajuta să vă faceți mai bine jocul pe platformele jucătorilor dvs., ceea ce, bineînțeles, este foarte important.
Instrumentele de implementare sunt necesare atunci când aveți o echipă care lucrează în diferite aspecte ale jocului (poate un artist și un programator) și atunci când vă dezvoltați pentru mai multe platforme. Când se dezvoltă pentru mai multe platforme, trebuie să țineți cont de dimensiunea ecranului fiecărui dispozitiv (în special pentru jocuri pe mobil) și de limitările tehnice ale fiecărei platforme.
Imaginați-vă că dezvoltați un joc pentru un smartphone cu o rezoluție de 1280x768 și o tabletă cu o rezoluție de 1920x1200. Veți dori probabil să utilizați două seturi diferite de imagini pentru fiecare dispozitiv, deoarece nu doriți să utilizați imagini pentru smartphone și să le scalați pentru tabletă - ar părea urât. În plus, smartphone-ul dvs. probabil nu are suficientă memorie și putere de procesare pentru a gestiona imaginile mari pe care le utilizați pentru tabletă. Din acest motiv, este nevoie de un instrument de implementare pentru a vă ajuta în gestionarea activelor pentru jocul dvs..
Vorbind despre gestionarea activelor, presupuneți acum că lucrați într-o echipă, care constă dintr-un artist și un programator. Artistul va crea cu siguranță o mulțime de elemente de artă, dar cum este programatorul să se ocupe cu referirea la aceste fișiere de artă în joc? Cea mai lazy abordare ar fi doar schimbarea sau adăugarea numelui fișierului în fiecare loc în care codul îl folosește ori de câte ori artistul modifică sau adaugă fișiere de artă. Cu toate acestea, pentru proiectele mari acest lucru nu este posibil, deoarece ar fi nevoie de un timp de dezvoltare bun.
O modalitate bună de a gestiona aceasta ar fi crearea unui instrument pentru a gestiona bunurile artei pentru echipă: artistul specifică pur și simplu ce fișier de artă se referă la ceea ce și instrumentul va converti automat numele fișierelor la un nume predefinit setat de instrumentul în sine . În acest fel, programatorul nu trebuie să-și facă griji cu privire la schimbarea numelor în cod ori de câte ori artistul schimbă ceva.
Aceste instrumente sunt ușor de trecut cu vederea, dar ar trebui să le folosiți cu siguranță în jocurile dvs. Instrumentele post-lansare vă ajută să urmăriți modul în care jocul dvs. se desfășoară acolo pe piață și modul în care jucătorii îl primesc.
Acest lucru este foarte important pentru jocuri virale și jocuri mobile, însă jocurile desktop pot beneficia de asemenea de multe din aceste instrumente. Ele vă vor permite să urmăriți unde este disponibil jocul și câți jucători au jucat jocul. Ele pot merge chiar mai departe: instrumente cum ar fi Playtomic, Mochi Analytics și GamesAnalytics pot urmări de câte ori a fost jucat un anumit nivel, de câte ori a fost apăsat un buton, câți jucători au renunțat la joc (în primul minut, primele cinci minute, nivel și așa mai departe) și multe altele. Apoi, puteți utiliza această informație pentru a deduce că un anumit nivel este prea greu (pe baza numărului de jucători care nu îl completează) și apoi să-l remediați.
Există mai multe lucruri: puteți scrie și instrumente pentru a urmări recepția publică a jocului dvs. pe internet, folosind roboții care colectează informații despre mesajele Facebook sau Tweets care includ numele jocului dvs., vă arată care site-uri de revizuire au revizuit jocul dvs. și așa mai departe. De asemenea, să nu uităm de Google Alerts, un instrument excelent care vă anunță când un anumit termen apare pe web.
Deși într-adevăr trebuie să faceți asta utilizare instrumente pentru a vă ajuta procesul de dezvoltare a jocului, uneori veți descoperi că nu este necesar să faceți acest lucru crea ei, deoarece comunitatea de dezvoltare a jocului a creat deja multe instrumente.
Multe instrumente excelente de joc devin disponibile online, disponibile pentru tine - este nevoie de puțin timp să le găsiți. Dar folosiți-le cu prudență: dacă simțiți că un instrument nu face exact ceea ce aveți nevoie, ar fi mai bine să scrieți propriul dvs. decât să pierdeți timp răsuciți pentru a se potrivi jocului dvs. Acest lucru este adesea cazul instrumentelor specifice jocului sau genului.
De fapt, crearea unui instrument este un subiect uriaș care merită câteva articole pe cont propriu, dar vă voi da un sfat aici: de multe ori trebuie să standardizați modul în care gestionați conținutul jocului. Aceasta înseamnă că trebuie să veniți cu o modalitate de stocare a informațiilor despre joc, să le puteți încărca și să o salvați. Majoritatea utilizatorilor folosesc XML sau JSON pentru descrierea informațiilor, dar poate doriți să creați propriul format binar dacă aveți nevoie de o modalitate mai specifică de a descrie lucrurile.
Acesta este sfârșitul analizei mele asupra diferitelor instrumente pe care le puteți utiliza pentru a vă ajuta în dezvoltarea jocului. Sper că v-ați bucurat de acest articol și ați învățat din el! Dacă aveți întrebări, vă rugăm să nu ezitați să întrebați.
Nota editorului: Vom compila o listă de instrumente excelente, cum ar fi Ogmo Editor, Tiled și SFXR. Dacă aveți sugestii, anunțați-ne!