Adam Saltsman (AdamAtomic) ist ein Spieleentwickler und Entwickler von flixel (einer Open Source AS3-Spielebibliothek). Er hat kürzlich einige Zeit damit verbracht, einige Fragen zu beantworten, wie er mit Flash angefangen hat und welche Arbeit er gerade macht.
Ich habe einige Programmierkurse an der Universität besucht und dann einige Jahre als Softwareentwickler für eine kleine Firma hier in Austin gearbeitet. Ich bin dort für ein paar Jahre als freischaffender Künstler gegangen, und während dieser Zeit habe ich angefangen, Flash zu lernen. Mein Freund Ivan hat sich ein paar Stunden von seinem Tag genommen, um mir die Seile zu zeigen und ich war los! Ungefähr 6 Monate nach dem Start begann ich mit dem Experimentieren mit Pixel-Flash-Material mit höherer Leistung. Es dauerte mindestens noch ein Jahr, bis die erste Version von flixel formalisiert wurde.
Machen Sie kleine Spiele! Machen Sie kleine polierte Demos oder Prototypen und teilen Sie sie mit allen. Dies ist nicht unbedingt der Weg zum finanziellen Erfolg, aber meiner Erfahrung nach ist es der beste und schnellste Weg, um zu lernen, wie man Spiele gestaltet. Ich habe vielleicht etwa ein Dutzend einwöchige Spiele gemacht und fange gerade an, mich mit meinem Designprozess sehr wohlzufühlen.
Flixel verwendet einen mehrschichtigen Rendering-Ansatz. Zuerst überprüft Flixel, ob die Grafik skaliert oder gedreht wurde. Wenn dies der Fall ist, verwendet sie den Flash-Vektorrenderer, um sie wie ein normales Sprite- oder Movieclip-Objekt zu zeichnen. Wenn es jedoch nicht gedreht wurde, selbst wenn es getönt oder das Alpha geändert wurde, verwendet Flixel einen sehr schnellen Blitting-Aufruf (copyPixels), um die Grafik in den Grafikpuffer zu stempeln. Der Grafikpuffer wird mit dem Vector Renderer skaliert und gerendert (um den Effekt der vergrößerten Pixelgröße zu erzielen).
Mein "Tagesjob" ist sozusagen das Erstellen von Spielen für das iPhone in C ++ und Objective C. Objective C ähnelt Flash in gewisser Weise merkwürdig, nur mit mehr Klammern!
Paper Moon war eine Zusammenarbeit mit dem kanadischen Studio Infinite Ammo, das Unity für zukünftige Projekte lernen wollte. Ich war nur zu gerne, um sie mit einigen Kunstwerken zu unterstützen!
Flixel leistet nur ein paar Dinge für die Leistung. Man verzichtet darauf, möglichst copyPixels anstelle des Vector Renderers zu verwenden. Dies führt meistens zu einer Leistungssteigerung von etwa 90%. Die Verwendung der vergrößerten, klumpigen Pixel ist schön, da Sie zwar immer noch einen Großteil des Browserfensters ausfüllen, die eigentlichen Rendervorgänge jedoch in einem relativ kleinen Bereich ausgeführt werden. Schließlich ermutigt flixel Sie nicht, Ihre Spielobjekte zu recyceln. Alle Demo-Spiele bis github verwenden vorab zugewiesene Arrays, beispielsweise für Geschosse oder Partikeleffekte. Objekte verfügen jetzt über eine reset () - Funktion, die dies noch einfacher macht.
Nur ich und 4-7 Tage. Das könnte sich ändern, ich habe für das nächste Jahr ein paar größere Sachen auf dem Teller…
Generell mag ich, wie schlampig es ist. Wenn es eine strengere Sprache wäre, denke ich, dass Prototyping und Iteration ein viel langsamerer, frustrierender Prozess wären. Einige Dinge, mit denen ich Probleme habe, sind das Zuweisen von Werten zu primitiven Parametern innerhalb einer Funktion (ich kann nur einen bestimmten Zuweisungsoperator dafür nicht kennen) und auch Verweise auf Funktionen erstellen, die zu anderen Objekten gehören. Das mag auch an meiner eigenen Unwissenheit liegen, aber hier mag die Art und Weise, wie C # Funktionszeiger (Delegierte?) Behandelt, nützlich sein.