Entretien avec Adam Saltsman

Adam Saltsman (AdamAtomic) est un développeur de jeux et le créateur de flixel (une librairie de jeux AS3 open source). Il a récemment passé un peu de temps à répondre à quelques questions sur ses débuts dans Flash et le travail qu’il accomplit actuellement..

Bonjour Adam, parlez-nous un peu de votre parcours et de la manière dont vous avez commencé à créer des jeux Flash. Êtes-vous un développeur autodidacte?

J'ai suivi des cours de programmation à l'université, puis j'ai travaillé pendant deux ans en tant que développeur de logiciels pour une petite entreprise, ici à Austin. J'ai quitté la région pour devenir artiste indépendant pendant quelques années, et c'est pendant ce travail que j'ai commencé à utiliser Flash. Mon ami Ivan a pris quelques heures de sa journée pour me montrer les ficelles du métier et j'étais parti! Environ 6 mois après avoir commencé, c'est quand j'ai commencé à expérimenter du matériel au pixel flash plus performant. Il a fallu au moins un an de travail supplémentaire pour obtenir la première version de flixel officialisée..

Beaucoup de gens, y compris moi-même, ont commencé à utiliser Flash à cause des jeux. Qu'est-ce que vous contribuez à votre réussite en tant que développeur de jeux indépendant et quels conseils donneriez-vous à ceux qui veulent vivre leur rêve??

Faites des petits jeux! Fabriquez des démos ou des prototypes raffinés et partagez-les avec tout le monde. Ce n'est pas nécessairement la voie du succès financier, mais d'après mon expérience, c'est le meilleur moyen et le plus rapide d'apprendre à concevoir des jeux. J'ai fait environ une douzaine de jeux d'une semaine et je commence à peine à me sentir à l'aise avec mon processus de création..

Vos jeux Flash ont un aspect rétro pixelisé. Parlez de la façon dont vous gérez les bitmaps sur la scène, utilisez-vous un moteur de tuiles, le blitting ou d'autres techniques pour obtenir une réponse rapide, une mémoire faible et des fréquences d'images élevées?

Flixel utilise une approche de rendu en couches. Le premier flixel vérifie si le graphique a été redimensionné ou pivoté, puis utilise le rendu vectoriel Flash pour le dessiner, exactement comme un objet Sprite ou Movieclip normal. Cependant, s'il n'a pas été pivoté, même s'il a été teinté ou si l'alpha a été modifié, Flixel utilise un appel très rapide (copyPixels) pour marquer le graphique dans le tampon graphique. Le tampon graphique est mis à l'échelle et rendu à l'aide du rendu vectoriel (pour obtenir un effet de pixels zoomés).

Il est intéressant de voir que vous ne développez pas que des jeux en ActionScript. Parlez des autres plates-formes que vous développez sur et s'il y a une similitude avec le travail dans Flash?

Mon travail quotidien consiste à créer des jeux pour iPhone en C ++ et en Objective C. Objective C ressemble étrangement à Flash, à bien des égards, avec plus de crochets.!

Paper Moon, qui a été réalisé dans Unity 3d, est un jeu de plateforme incroyable avec un style de papier découpé lisse. Pouvez-vous nous parler de votre contribution au développement du jeu??

Paper Moon était une collaboration avec le studio canadien Infinite Ammo, qui était intéressé par l’apprentissage de Unity pour ses projets futurs. J'étais trop heureux de les obliger avec des illustrations!

Le développement de jeux est extrêmement exigeant pour les ressources d’un système, en particulier Flash, qui n’a aucune accélération GPU. Parlez-nous un peu des étapes à suivre pour garantir des performances optimales dans le code même..

Flixel ne fait que quelques choses pour la performance, on choisit d’utiliser autant que possible copyPixels au lieu du rendu vectoriel. Cela donne environ 90% de performances en plus, la plupart du temps. Il est intéressant d’utiliser les pixels volumineux agrandis, car vous remplissez encore une grande partie de la fenêtre du navigateur, mais les opérations de rendu réelles sont exécutées dans un espace très restreint. Enfin, flixel encourage mais ne vous oblige pas à recycler vos objets de jeu. Tous les jeux de démonstration sur github utilisent des tableaux pré-alloués pour des choses comme les balles ou les effets de particules. Les objets ont maintenant une fonction reset () qui facilite encore plus la tâche..

Sur un projet de jeu normal, avec combien de personnes travaillez-vous habituellement et quels sont les délais habituels?

Juste moi, et 4-7 jours. Cela est peut-être en train de changer, j'ai de gros trucs dans mon assiette pour l'année prochaine…

Si vous pouviez choisir une chose, quelle serait, selon vous, la partie préférée d'ActionScript 3? De même, que changeriez-vous ou voudriez-vous mettre en place??

De manière générale, j'aime à quel point c'est bâclé. Si c'était un langage plus strict, je pense que le prototypage et l'itération seraient un processus beaucoup plus lent et plus frustrant. Certaines choses qui me posent problème sont l'affectation de valeurs à des paramètres primitifs à partir d'une fonction (je peux simplement ignorer un opérateur d'affectation particulier) et la création de références à des fonctions appartenant à d'autres objets à la volée. C'est peut-être aussi dû à ma propre ignorance, mais ici, quelque chose comme la façon dont C # gère les pointeurs de fonction (délégués?) Pourrait être utile.