Adam Saltsman (AdamAtomic) är en spelutvecklare och skaparen av flixel (ett opensource AS3-spelbibliotek). Han tillbringade nyligen tid på att svara på några frågor om hur han började i Flash och det arbete han för närvarande gör.
Jag tog några programmeringskurser på universitetet och arbetade sedan ett par år som mjukvaruutvecklare för ett litet företag här i Austin. Jag lämnade där för att vara frilansartist i några år, och det var under det jobbet jag började hämta Flash. Min vän Ivan tog ett par timmar ur hans dag för att visa mig repen och jag var borta! Cirka 6 månader efter att jag började är när jag började experimentera med högre prestanda pixel flash saker. Det tog åtminstone ett år eller så av sidarbete att få den första versionen av flixel formaliserad.
Gör små spel! Gör småpolerade demos eller prototyper och dela dem med alla. Detta är inte nödvändigtvis vägen till ekonomisk framgång, men enligt min erfarenhet är det det bästa och snabbaste sättet att lära sig hur man utformar spel. Jag har gjort ett dussin eller så 1 veckors spel och jag börjar bara känna mig riktigt bekväm med min designprocess.
Flixel använder en skiktad rendering. Första flixel kontrollerar om grafiken har skalats eller roterats, om den har, använder den Flash-vektoråtergivaren för att rita den, precis som ett normalt Sprite- eller Movieclip-objekt. Om det inte har blivit roterat, även om det har blivit tonat eller alfabetet har ändrats, använder Flixel ett mycket snabbt blickande samtal (copyPixels) för att stämpla grafiken på grafikbufferten. Grafikbufferten skalas och renderas med hjälp av vektorreferensen (för att uppnå den tjocka zoomade pixel-effekten).
Mitt "dagjobb" som det var är att bygga spel för iPhone i C ++ och Objective C. Objektiv C är faktiskt konstigt liknande Flash på vissa sätt, bara med fler parenteser!
Paper Moon var ett samarbete med kanadensiska studio Infinite Ammo, som var intresserad av att lära Unity för framtida projekt. Jag var bara för glad att tvinga dem med lite konstverk!
Flixel gör bara några saker för prestanda, men väljer att använda copyPixels istället för vektoråtergivaren när det är möjligt. Det ger ungefär 90% ökning i prestanda större delen av tiden. Att använda de zoomade upp-tjocka pixlarna är trevligt eftersom du fortfarande fyller mycket i webbläsarfönstret, men den verkliga återställningsoperationen utförs på ett ganska litet utrymme. Slutligen uppmuntrar flixel men kräver inte att du återvinner dina spelobjekt. Alla demo spel upp på github använder fördelade arrays för saker som kulor eller partikel effekter. Objekt har nu en återställningsfunktion () som hjälper till att göra det ännu enklare att göra.
Bara jag, och 4-7 dagar. Detta kan ändras men jag har några större grejer på min platta för nästa år ...
Generellt sett älskar jag hur slarvigt det är. Om det var ett strängare språk tycker jag att prototyper och iteration skulle vara en mycket långsammare, mer frustrerande process. Vissa saker som jag har problem med är att tilldela värden till primitiva parametrar från en funktion (jag kan bara vara okunnig för en viss uppdragsoperatör för detta) och även skapa referenser till funktioner som hör till andra föremål i fluga. Det kan också bero på min egen okunnighet, men här kan något som C # hantera funktionspekare (delegater?) Vara användbart.