Există două jocuri pe care le consider prima mea: una pe care am făcut-o înainte de a putea codifica (ceea ce a fost mai greu decât trebuia să fie, dar în niciun caz imposibil) și unul pe care l-am făcut în colaborare cu un artist după ce am învățat elementele de bază programare. În acest articol, voi împărtăși experiențele mele cu dvs., pentru a dovedi că indiferent de nivelul de calificare pe care îl aveți în prezent, tot ce trebuie să faceți sunt pasiunea - nu există scuze!
Înainte de a fi un dezvoltator de jocuri, în mod special un programator, m-am ocupat de animația folosind Flash 4. Am fost doar 12 sau așa, dar am avut o mulțime de distracție învățând elementele de bază prin bătăi de bat, care au fost mult inspirați de orele mele nenumărate petrecut în Newgrounds. Acest lucru ma determinat în cele din urmă să fac animații scurte, care includeau pre-încărcătoare, butoane de redare și Stop()
(plasat pe cadrul final al filmului pentru a evita buclele).
Întotdeauna mi-am dorit să fac jocuri, dar mi sa părut complet dincolo de abilitățile mele - adică până când mi-am dat seama că acele câteva instrumente pe care le folosisem deja mi-au dat puterea de a face acest lucru.
Numele primului meu joc a fost Omnigosha. Până în prezent nu am nicio idee de unde am venit cu acel nume, dar mi sa părut răcoroasă, așa că am rămas cu el.
Omnigosha a fost o aventură punct-și-clic, care a avut loc într-un oraș mare unde un sindicat de infracțiuni nu era bun. Jocul a fost în mare parte lipsit de poveste, dar din câteva scrisori și cărți pe care le găsiți pe tot parcursul jocului, veți afla că un grup care se numește "călugări negri" importă arme ilegale japoneze și este condus de liderul lor Don Etello un copil inteligent, știu).
Vei explora clădirea principală (clădirea A, deoarece aceasta a fost singura clădire realizată vreodată pentru acest proiect ambițios), colecta obiecte și lucrează în continuare. Deoarece nu aveam cunoștințe de programare, nu a existat niciun inventar, așa că jocul avea o evoluție lineară a elementului, ceea ce înseamnă că a trebuit să progresăm jocul într-o singură ordine. (Deși a existat o luptă opțională cu mini-sef, care a apărut dacă ați declanșat o alarmă prin încercarea de a colecta un element dintr-un dulap securizat prea devreme în joc.)
Deși mi se pare absolut ridicol, de fapt mi-am tras ideea, și apoi unii, cu aproape deloc cod. Singurele instrumente pe care le aveam erau butoanele Flash și cunoașterea următoarelor funcții:
Stop(); // oprește filmul în cadrul jocului curent (); // reia filmul din cadru curent gotoAndStop (cadru); // oprește filmul pe cadru specificat gotoAndPlay (cadru); // reia filmul din cadrul specificat
M-am gândit că pot folosi instrumentele de mai sus pentru a crea ceva asemănător unei cărți "alege-ți propria aventură". Jucătorul ar fi sărind între pagini (cadre), făcând alegeri (la ce au făcut clic), care ar determina ce pagină (cadru) au fost trimise.
De exemplu, am avut 12 etaje la jocul meu, astfel încât fiecare etaj ar fi pe primele 12 cadre. Ascensorul care duce între etaje nu este altceva decât un indice al butoanelor care conduc la fiecare cadru. Pentru camerele cu mai multe etaje, am prăjit camerele suplimentare de la capăt.
Acest sistem a funcționat destul de bine pentru a explora lumea pe care am creat-o, dar nu aveam absolut nici o idee cum să creez un inventar, lucru în care lucrurile s-au înșelat.
Deoarece nu aveam sistem de inventar, trebuia să mă arăt creativ cu modul în care jocul a progresat. Pentru asta, am făcut ceva absolut ridicol, dar nu știam deloc mai bine - și hei, a funcționat.
Am copiat-o pe mine lumea întreagă (toate cadrele jocului meu) la mai multe "scene", câte unul pentru fiecare etapă de evoluție a jocului. Apoi, am făcut mici modificări la fiecare scenă, în funcție de cât de mult ați fost în joc.
De exemplu, dacă începeți pe Scena 1 și primul element pe care îl colectați este o cheie în Etajul 4, atunci când faceți clic pe birou pentru a "colecta" acea cheie, jocul vă trimite la același etaj și la același nivel pe care ați fost la , dar în Scena 2. În Scena 2, lumea este aceeași, cu excepția momentului în care aveți cheia, astfel încât să puteți deschide ușa pe care o deblochează. Nu există niciun sistem care să urmărească faptul că țineți cheia: pur și simplu sunteți în Scena 2, unde biroul este acum gol și ușa poate fi deschisă.
Acest lucru continuă pentru fiecare element pe care îl colectați pe tot parcursul jocului, ceea ce creează o bună între 20 și 30 de copii ale aproape tuturor cadrelor din joc. Din câte știam, nu făceam nimic rău! Și am fost gata să creez și mai mult, în ciuda cât de puțin știam.
Pe măsură ce devenisem din ce în ce mai entuziasmat de proiectul meu, am devenit ambițios și am început să mă întreb cât am putut să creez cu puținul pe care l-am cunoscut. Într-un moment în jocul meu, vă veți întâlni în cele din urmă cu membrii "călugărilor negri" și veți avea un duel de arme; acesta este locul unde lucrurile devin nebunești.
S-ar putea să vă întrebați cum este posibil acest lucru fără cunoștințe de programare. Păi, având niște configurații extrem de complexe de cadre și diverse butoane care vă duc la cadre specifice, în funcție de ceea ce se întâmplase, am fost capabil să creez un pistol foarte curat. În timpul acestui stand-off, puteți apăsa săgeata în jos pentru a vă ascunde în spatele unei cutii uriașe, apăsați pe săgeata sus pentru a ieși din copertă și faceți clic pe dușmani în timp ce ieșiți din capac pentru a le împușca. Pentru a șterge lucrurile, am făcut fiecare cutie în cameră un buton pe care se putea face clic, ceea ce ar declanșa un efect sonor și ar schimba graficul într-o cutie cu o gaură de gloanțe (gaura glonțului a fost predeterminată și nu în locul pe care l-ai împușcat ).
Mai târziu, folosind tehnici foarte asemănătoare, am creat chiar un șef uriaș de rezervor care a împușcat rachete de pe ecran și care avea un punct slab care putea fi împușcat numai atunci când garda sa a fost în jos.
În cazul în care nu v-ați realizat încă: metodele mele de mai sus sunt absolut ridicole în orice mod posibil. Dacă aș fi știut cele mai extreme baze de programare, aș fi putut crea acest joc mult mai repede. Mai mult decât atât, aș fi putut face dimensiunea fișierului mult mai mică, pentru că nu ar fi trebuit să copiez cadrele de mai multe ori pentru fiecare etapă a progresiei în joc.
O înțelegere de bază a array-urilor mi-ar fi permis să creez un sistem simplu de inventar, permițând utilizatorului să colecteze elementele pe care le-au găsit, iar jocul să știe care articole au fost ținute la un moment dat. Cunoștințe de dacă
declarații și Booleani mi-ar fi permis apoi să efectuez verificări asupra tuturor ușilor, vestiarelor, grătarelor și așa mai departe. Aceste două combinate, alături de câteva alte elemente de bază, mi-ar permite să programez jocul în mod corespunzător, permițându-mi astfel să mă editez și să mă extind cum am considerat potrivită. Așa cum a fost, de fiecare dată când am adăugat un element nou la începutul sau la mijlocul jocului, trebuia să fac modificări enorme, din moment ce totul în joc a fost cadru și scena specifice, iar valorile ulterioare s-au schimbat cu orice adăugiri anterioare.
Nu vă împiedicați niciodată prin lipsa cunoașterii
Cel mai valoros lucru pe care l-am învățat din acest joc este că nu trebuie să te împiedici niciodată prin lipsa cunoașterii. Dacă încercați să rezolvați o problemă fără instrumentele potrivite, este mai bine să vă îndepărtați de problemă și să obțineți mai întâi instrumentele potrivite.
Dacă aveți puncte slabe în abilitățile dvs. de programare, faceți un obicei de a aborda un aspect la un moment dat și veți obține încet, dar sigur, cunoștințele care vă vor permite să nu faceți niciodată greșeli ca cele pe care le-am făcut.
După câțiva ani după ce l-am creat pe Omnigosha și l-am eliberat pe Newgrounds, m-am trezit trăind în micul oraș din Moscova, Idaho. Aici am lucrat la un Pizza Hut pentru cinci dolari pe oră, iar aici mi-am hotărât că viața mea trebuie schimbată. M-am săturat de slujba mea și nu aveam nici o direcție în viața mea. Am cumparat anterior o tableta grafica Wacom pentru a-mi imbunatati abilitatile de animatie, insa arta nu a fost niciodata forta mea si in final am acceptat ca animatia mea nu a fost decat un hobby. Deși animația nu părea a fi chemarea mea, totul era bine, pentru că pentru prima dată în viața mea știam ce a fost: dezvoltarea jocului.
Știam că nu am avut abilitățile de a face acest lucru o realitate în curând, dar motivația mea de a părăsi în cele din urmă slujbe de zi ca cea pe care am avut-o în trecutul meu era suficient de puternică pentru a avansa. Câteva luni mai târziu, am lansat primul meu joc real, programat complet - Stabika Episode 1: Escape.
Ca parte a călătoriei mele de a dobândi abilitățile necesare pentru a deveni dezvoltator de jocuri, m-am dus la singurul loc unde știam că m-ar putea învăța la vremea respectivă, Newgrounds. Aici am petrecut nenumarate ore in Flash Forums si am intrebat fiecare intrebare de inceput cunoscuta omului. Am citit tutoriale, am citit întrebările altor persoane și am luat notă de răspunsurile pe care le-au primit. În timp ce ceea ce învățasem nu era în întregime formal sau cea mai bună practică, a fost un pas imens în direcția cea bună și nimic asemănător cu monstruozitatea practicilor pe care le-am folosit anterior.
După ce învățarea mea a continuat, am devenit din ce în ce mai dornic să ajut pe oricine am fost capabil, deoarece acest lucru mi-ar dovedi că învățam de fapt și ar fi minunat să dau înapoi comunității care ma învățat ce puțin știam . Într-o zi, David Mills a pus o întrebare deosebit de interesantă pe forumurile Newgrounds despre crearea unei secvențe temporale de tip God of War și, spre surprinderea mea, m-am trezit capabil să răspund la întrebarea lui. În timp ce codificarea din spatele acestei idei a fost cea mai mare parte logică pe care o putea da cineva, sa întâmplat că am câștigat și abilitatea de a programa acea logică.
După câteva răspunsuri înainte și înapoi, mi-a mulțumit foarte mult și mi-a promis că mă cred în joc. Câteva zile mai târziu, sa întors la forumuri, prezentând un demo cu codul pe care l-am dat și am primit feedback. Nu după mult timp, sa întors la întrebări despre cum să includă ceea ce sugerau oamenii și m-am întors să-i răspund încă o dată. Înainte de a ne cunoaște, am fost parteneri împreună și am creat primul meu joc real.
Acest demo original tehnic l-am furnizat pe Mills cu o dovadă a conceptului că am fost capabil să-mi retrag locul de muncă:
(Kudos pentru ImageShack pentru găzduirea acelui SWF în toți acești ani.)
Jocul în sine a jucat mult ca secvențele programate de la Dumnezeul războiului, așa cum a menționat Mills în postul său inițial. A fost mai mult sau mai puțin o animație cu momente interactive în care timpul ar încetini și jucătorul ar trebui să introducă o cheie selectată aleatoriu înainte de expirarea timpului.
Aceste momente au fost întotdeauna în momentele în care a fost implicat pericolul, așadar lovirea cheii corecte ar duce la continuarea animației într-un mod minunat, în timp ce lovirea unei chei greșite ar avea ca rezultat o moarte grea. Jocul a durat doar câteva minute pentru a învinge dacă ați fost destul de bun, dar majoritatea jucătorilor au trebuit să practice din nou și încoace pentru a obține timpul de reacție în sus și pentru a-și memora când au venit secvențele programate.
Indiferent de durata scurtă, am adăugat un punct de control chiar înainte de scena finală a șefului, pentru a păstra jocul plăcut și nu prea pedepsit. Pentru a termina jocul, am făcut o singură secvență finală referindu-se la Mortal Kombat: timpul s-ar îngheța complet și textul "Finish Him" va fi întins pe ecran. Jucătorii au trebuit apoi să introducă cinci chei generate aleatoriu într-un rând pentru a ateriza lovitura finală. În timp ce jucătorii nu au putut să răstoarne această secvență finală, a fost un mod destul de rău pentru a pune capăt jocului și oamenii păreau să-i placă.
Eliberarea lui Stabika a reprezentat un pas imens spre atingerea scopului meu de a deveni un dezvoltator de jocuri. Am reușit să-mi pun cunoștințele de programare să utilizez, să perfecționez aceste cunoștințe și să formez un parteneriat nou, care să conducă la numeroase jocuri viitoare, ceea ce, la rândul meu, mi-a dat mult mai multă experiență ca dezvoltator.
În timp ce am lansat Stabika 1 doar pentru distracție, atenția și reacția pe care a primit-o au condus la prima noastră sponsorizare cu CrazyMonkeyGames, care ne-a deschis până la o nouă lume a oportunităților.
Sincer, nu pot spune suficiente lucruri bune despre eliberarea primului meu joc și vă recomand să vă depuneți eforturi în vederea atingerii acestui scop dacă este ceva ce vă interesează; rezultatele vă pot surprinde.
Indiferent de nivelul de calificare la care te afli în prezent, tot ce trebuie să faci este pasiunea.
După cum puteți vedea, cele două jocuri mele diferă destul de puțin. Un joc nu necesita aproape deloc cod, iar celalalt era mai avansat, necesita programare si era mult mai lustruit. Indiferent de diferențele lor, au un lucru în comun: dorința mea de a face jocuri este ceea ce le-a adus la viață.
Dacă luați ceva din acest lucru, aș vrea să vă dați seama că, indiferent de nivelul de calificare pe care îl aveți în prezent, tot ce aveți nevoie pentru a face jocuri este pasiunea. Jocurile simple pot fi create fără aproape nicio cunoaștere tehnică, iar jocurile mai complicate sunt chiar în fața dvs. - dacă vă faceți timp să învățați abilitățile necesare. Dacă creați jocuri este ceva ce doriți cu adevărat să faceți, vă promit că sunteți capabil; trebuie doar să vă gândiți la asta.