Interviu cu Adam Saltsman

Adam Saltsman (AdamAtomic) este un dezvoltator de jocuri și creatorul de flixel (o bibliotecă de joc open source AS3). Recent, a petrecut ceva timp, răspunzând la câteva întrebări despre cum a început în Flash și despre munca pe care o face în prezent.

Bună Adam, spuneți-ne puțin despre trecutul dvs. și cum ați început să construiți jocuri Flash. Sunteți un dezvoltator auto-predat?

Am luat câteva cursuri de programare la universitate și apoi am lucrat câțiva ani ca dezvoltator de software pentru o companie mică din Austin. Am plecat acolo pentru a fi un artist independent pentru câțiva ani, și a fost în timpul acelei slujbe că am început să ridic Flash. Prietenul meu Ivan a luat câteva ore din zi pentru a-mi arăta frânghiile și am plecat! Aproximativ 6 luni după ce am început este atunci când am început să experimentez cu chestii flash de înaltă performanță. A durat cel puțin încă un an de lucru pentru a obține prima versiune a formalizării flixel.

Mulți oameni, inclusiv eu, au început în Flash din cauza jocurilor. Ce contribuiți la succesul dvs. ca dezvoltator de jocuri independent și ce sfat aveți pentru alții care doresc să trăiască visul?

Faceți mici jocuri! Faceți demo-uri sau prototipuri puțin lustruite și împărtășiți-le cu toată lumea. Aceasta nu este neapărat calea spre succesul financiar, dar din experiența mea este cea mai bună și cea mai rapidă modalitate de a învăța cum să proiectezi jocuri. Am facut poate o duzina de jocuri de o saptamana si tocmai am inceput sa ma simt confortabil cu procesul meu de design.

Jocurile Flash au un aspect retro pixelat. Vorbiți despre modul în care gestionați bitmap-urile pe scenă, folosiți un motor de țiglă, o blitz sau alte tehnici pentru a obține răspuns rapid, memorie redusă și rate de cadre ridicate?

Flixel folosește o abordare de redare stratificată. Prima verificare a flixel pentru a vedea dacă grafica a fost scalată sau rotită, dacă are, apoi folosește redarea vectorului Flash pentru ao desena, la fel ca un obiect normal Sprite sau Movieclip. Cu toate acestea, în cazul în care nu a fost rotit, chiar dacă a fost colorat sau alfa sa schimbat, Flixel folosește un apel rapid rapid (copyPixels) pentru a ștampila graficul pe tampon grafic. Tamponul grafic este redus și redat folosind vectorul de redare vectorială (pentru a obține efectul pixelilor mărit).

Este interesant să vezi că nu dezvolți doar jocuri în ActionScript. Discutați despre celelalte platforme pe care le dezvoltați și dacă există o similaritate cu lucrul în Flash?

"De zi cu zi" meu a fost de a construi jocuri pentru iPhone în C + + și obiectivul C. Obiectivul C este de fapt ciudat similar cu Flash în unele moduri, doar cu mai multe paranteze!

Paper Moon, care a fost făcută în Unity 3d, este un joc de platformă incredibil, cu un stil de hârtie cutout. Puteți să ne spuneți despre contribuția dvs. la dezvoltarea jocului?

Paper Moon a fost o colaborare cu studioul canadian Infinite Ammo, care a fost interesat să învețe unitatea pentru viitoarele proiecte. Eram prea fericit să le obligem cu niște opere de artă!

Dezvoltarea jocurilor este incredibil de solicitantă pentru resursele sistemului, în special pentru Flash, care nu are nici o accelerare GPU. Discutați puțin despre pașii pe care îi faceți pentru a vă asigura performanța optimă în cadrul codului în sine.

Flixel face doar câteva lucruri pentru performanță, unul se oprește să folosească copyPixels în locul vectorului de redare, ori de câte ori este posibil. Aceasta dă o creștere de 90% a performanței de cele mai multe ori. Utilizarea pixelilor mărunțiți este un lucru bun pentru că încă mai ocupați o mulțime de fereastră a browserului, dar operațiile efective de redare sunt efectuate într-un spațiu destul de mic. În cele din urmă, flixel încurajează, dar nu solicită să reciclați obiectele de joc. Toate jocurile demo de pe github utilizează matrice pre-alocate pentru lucruri precum gloanțe sau efecte particulare. Obiectele au acum o funcție de resetare () care ajută la a face acest lucru chiar mai ușor de făcut.

Într-un proiect normal de joc, cu câte persoane lucrați de obicei și care sunt perioadele tipice de timp?

Doar eu și 4-7 zile. Acest lucru se poate schimba totuși, am ceva mai mult pe placa mea pentru anul viitor ...

Dacă ați putea alege un lucru, ce ați considera partea dvs. preferată a ActionScript 3? De asemenea, ce ați schimba sau doriți să implementați?

În general, îmi place cât de neglijent este. Dacă ar fi o limbă mai strictă, cred că prototiparea și iterația ar fi un proces mult mai lent și mai frustrant. Unele lucruri cu care am probleme sunt atribuirea valorilor parametrilor primitivi din cadrul unei funcții (pot fi doar ignoranți pentru un anumit operator de atribuire pentru acest lucru) și, de asemenea, crearea de referințe la funcțiile care aparțin altor obiecte în zbor. Acest lucru se poate datora si ignorantei mele, dar aici ceva asemanator modului in care C # manevreaza pointeri (delegati?) Poate fi util.

Cod