Comment apprendre Flash et AS3 pour le développement de jeux

Aujourd'hui, Adobe Flash est fortement orienté vers le développement de jeux. Outre les portails de jeu basés sur un navigateur tels que Kongregate, Newgrounds et Armor Games, vous pouvez également trouver des jeux conçus avec Flash sur les ordinateurs de bureau, les mobiles et les tablettes (comme Machinarium, Super Hexagon et Wonderputt), en tant qu'applications natives. Dans cet article, nous allons partager des livres, des didacticiels et des suggestions pour apprendre Flash et son langage de programmation AS3 de manière aussi fluide que possible..


Flash n'est-il pas mort?

Flash a connu des moments difficiles au cours des dernières années. Steve Jobs n'a pas aimé. Les iPads, les iPhones et les nouveaux appareils Android ne seront pas exécutés dans le navigateur. HTML5 s'est rapidement amélioré, permettant aux navigateurs de faire chaque jour de nouvelles choses auparavant uniquement possibles avec Flash. Et tout le monde est tombé sur une bannière publicitaire agaçante faite en Flash, ou le plugin Flash est tombé en panne et emporte tout le navigateur..

Flash fait donc l’objet d’une mauvaise presse auprès des développeurs Web et du grand public, et c’est certainement un choix obsolète aujourd’hui dans de nombreux domaines où il était roi, comme le développement de sites Web multimédias. Mais c'est toujours une excellente plate-forme pour le développement de jeux.

Pourquoi Flash est-il toujours bon pour Gamedev?

Une des raisons est la technologie. Le langage de programmation par défaut de Flash, AS3, est très éloigné du code ActionScript des années passées. Il s'agit d'un puissant langage de programmation orienté objet avec accélération matérielle, capacités de réseau en ligne et prise en charge des graphiques 3D. De plus, bien que Flash Player ne soit pas pris en charge par la plupart des navigateurs de portables et de tablettes, les jeux Flash peuvent être exportés sous forme d'applications natives pour iPhone, iPad, Android, Kindle Fire et BlackBerry..

Une autre raison est l'écosystème. Les portails Web Flash ont peut-être commencé comme des sites permettant aux enfants d’héberger leurs jeux malins, mais ils constituent maintenant une industrie de plusieurs millions de dollars, avec de nombreux jeux techniquement complexes et des hits critiques. Et puisque les jeux Flash peuvent fonctionner sur des appareils mobiles et des tablettes, ils peuvent être vendus sur l'App Store, le Google Play Store, Amazon Appstore, etc..

L'autre grande raison, à mon avis, est la communauté. En raison de son évolution particulière, Flash séduit à la fois les concepteurs et les développeurs - un creuset idéal pour le développement de jeux. En plus de constituer une formidable communauté, les développeurs de jeux Flash ont écrit de nombreuses bibliothèques utiles, des outils, des livres et (bien sûr) des tutoriels..

Mais… HTML5!

J'admets qu'il existe une sorte de pression des pairs en ligne contre l'utilisation de Flash dans un but quelconque, ce qui peut être décourageant. Dans toute discussion sur Flash, quel que soit le contexte, Quelqu'un va intervenir et vous dire que vous devriez plutôt utiliser HTML5 - c'est comme la loi de Godwin sur les technologies Web.

Il vaut également la peine de regarder dans HTML5 - cela vaut la peine d'apprendre différentes plates-formes - mais il ne faut pas négliger les nombreux points forts de Flash. La situation n'est pas aussi simple que "HTML5 est le remplacement de Flash".

Outre toutes ces raisons commerciales, comme l'a dit Will Blanton dans une conversation récente à ce sujet:

J'aime être exposé aux nouvelles technologies, mais gamedev n'est pas simplement une technologie, c'est un moyen d'expression (art), et il est injuste d'exiger qu'un artiste modifie ses outils pour refléter une sorte de zeitgeist global perçu..


Installation des outils de développement Flash

Vous n'avez pas besoin d'une copie de Flash Professional pour créer des jeux Flash. C'est assez utile comme outil pour assembler des interfaces graphiques et des sprites animés, mais ce n'est pas bon pour écrire du code.

Si vous utilisez Windows, je vous recommande de télécharger l’éditeur de code gratuit FlashDevelop - c’est mon préféré. J'ai écrit un guide du débutant, et il y a plus d'informations sur le site officiel.

Malheureusement, FlashDevelop est uniquement sous Windows. Si vous utilisez un Mac, essayez FDT. Il existe une version gratuite qui devrait être plus que suffisante pour vous aider à démarrer. Michael Plank a rédigé un excellent guide du débutant pour l'éditeur. Une documentation complète (y compris un guide de démarrage) est disponible sur la page d'accueil de FDT..

Si vous possédez une collection Adobe Creative Suite ou si vous êtes abonné à Creative Cloud, vous possédez peut-être déjà une copie de Flash Builder, le propre éditeur Flash centré sur le code d'Adobe. Consultez ce guide pour savoir comment commencer à l'utiliser..

Enfin, vous n'avez pas réellement besoin d'un IDE sophistiqué pour faire du développement Flash; vous pouvez utiliser n'importe quel éditeur de texte pour écrire votre code (John Cotterell m'a pointé vers le kit AS3 TextMate de Simon Gregory, par exemple) et le SDK Flex / AIR pour le compiler - bien que je ne le recommande pas si vous débutez en programmation.

Ne perdez pas de temps à choisir lequel choisir - vous pouvez toujours changer d'éditeur plus tard.


Apprendre l'AS3

AS3 (ActionScript 3.0) est le langage de programmation de facto pour Flash. (Il existe des langages alternatifs - tels que l'ancien AS2 et le multi-plateforme Haxe - mais je ne vais pas les aborder ici.) Si vous voulez créer des jeux Flash, vous devrez apprendre à programmer. Plutôt que d’enseigner à apprendre à coder et comment faire des jeux en même temps, il est plus facile de commencer avec le codage. Oui, cela signifie construire des choses qui ne sont pas des jeux, mais cela vous aidera à créer des jeux à long terme..

Si vous connaissez déjà Java, C # ou un autre langage POO, AS3 ne sera pas très compliqué. Vous devriez cependant lire sur:

  • La liste d’affichage - voir AS3: Liste d’affichage, Programmation de la liste d’affichage dans AS3 et AS3 101: La liste d’affichage.
  • Le système d'événements - voir Introduction à la gestion d'événements et AS3 101: Événements.
  • Collecte des ordures - voir Présentation de la récupération des ordures dans AS3.

Si vous débutez dans la programmation en général, vous aurez besoin d’un guide plus complet. Je recommande AS3 101, une série de 18 articles expliquant tous les concepts de base à partir de zéro..

Deux livres que je vous suggérerais également de lire (et de la lecture à la lecture) sont essentiels à ActionScript 3.0) et à l'animation Foundation Actionscript 3.0: Faire bouger les choses !. Ne vous fiez pas au titre de ce dernier - il ne s'agit pas d'une animation typique dessinée à la main; il s'agit d'utiliser du code pour faire bouger les choses. C'est extrêmement pertinent pour le développement de jeux!

Par ailleurs, Matt Barker recommande cet énorme guide gratuit (600 pages), conçu par Adobe: Programmation ActionScript 3 [pdf]..

Vous aurez également besoin d'un guide de référence. Les Adobe Livedocs sont excellents et, dans la plupart des cas, seront tout ce dont vous avez besoin. (La recherche est un peu bizarre, mais si vous ne faites que Google pour "vous avez réellement besoin-"] ça va tourner.)

Et comme dans tout environnement de programmation, Stack Overflow et Gamedev Stack Exchange sont d'excellents sites de questions-réponses techniques. Le tag AS3 est actionscript-3.


Faire vos premiers jeux

Il y a beaucoup de livres et de tutoriels sur le développement de jeux Flash, mais il est difficile d'en trouver un qui utilise de bonnes pratiques sans trop de connaissances préalables..

Je pense que le meilleur dans cette catégorie est AdvancED Game Design with Flash. Vous devriez pouvoir le comprendre si vous maîtrisez l'AS3 des recommandations précédentes, même si vous avez peu ou pas d'expérience en développement de jeux..

J'aimerais inclure quelques tutoriels gratuits en ligne ici aussi, pour accompagner (ou même remplacer) ce livre… mais je ne connais pas de tuts complet qui convienne. La plupart des tutoriels sur les jeux Flash semblent supposer que vous en savez très peu sur AS3 ou que vous avez suffisamment d'expérience en développement de jeux pour utiliser une bibliothèque ou un framework spécifique..

Bien sûr, il existe des tutoriels, rien de tout à fait définitif. Parcourez les archives d'Activetuts + Games, explorez la plateforme de Tout le monde et essayez au moins de créer quelque chose de simple, comme Pong ou Space Invaders, pour en apprendre davantage sur les bases..


Plus plus plus

Vous maîtrisez la plate-forme Flash, vous pouvez coder en AS3 et vous disposez de bases solides pour le développement de jeux Flash. À ce stade, vous pouvez suivre la plupart des didacticiels d’implémentation sur ce site, même s’ils sont écrits sur une autre plateforme de développement..

Mais vous pouvez en apprendre beaucoup plus sur le développement de jeux Flash en particulier! J'ai rassemblé un ensemble de ressources, sans ordre particulier - choisissez celle qui vous intéresse le plus en ce moment et commencez à apprendre.

Moteurs de jeux flash

Flixel et FlashPunk sont deux bibliothèques populaires, gratuites et open source, conçues pour le développement de jeux en 2D..

Les deux sont bien supportés, avec une communauté enthousiaste et de nombreux tutoriels, et chacun a été utilisé pour créer une tonne de jeux..

Pour en savoir plus sur Flixel, consultez les liens de la page d'aide officielle, ainsi que l'excellente collection de conseils pour le développement de Photon Storm.

Pour apprendre FlashPunk, consultez les tutoriels officiels.
Vous pouvez trouver cette bibliothèque plus confortable si vous avez déjà une expérience de Game Maker, car elle était fortement basée sur le langage de script Game Maker..

Stage3D

Les API Stage3D vous permettent d’utiliser l’accélération matérielle GPU dans vos jeux pour un rendu 3D ultra-rapide. Consultez le livre de Christer Kaitila, Programmation de jeux Stage3D: Guide du débutant, pour un guide détaillé sur ce sujet..

(Cela vaut également la peine de chercher dans Away3D, un moteur 3D avancé pour Flash.)

Malgré son nom, Stage3D est également idéal pour les jeux 2D, offrant des vitesses de rendu courantes de 60 ips. Christer a également écrit une série de tutoriels en six parties sur la construction d'un shoot-up 2D à l'aide de Stage3D - les trois premières parties sont totalement gratuites.!

Si vous voulez aller plus loin, jetez un œil à Starling Framework, une bibliothèque spécialement conçue pour le développement de jeux en 2D, qui vous donne toute la puissance du rendu Stage3D sans avoir à toucher à Stage3D lui-même. Thibault Imbert a écrit une introduction et un excellent ebook pour le framework, tous deux gratuits.!

Développement mobile et tablette

Comme je l'ai mentionné au début de cet article, Flash ne vous limite pas au développement de navigateurs. Vous pouvez créer des jeux fonctionnant en tant qu'applications natives pour iPhone, Android ou BlackBerry, et même les vendre sur les différents magasins d'applications..

Obtenir l’exportation de votre jeu au format d’application native n’est pas particulièrement difficile, mais uniquement Google. [flashdevelop android] ou [fdt ios] ou toute autre combinaison d'outils et de plate-forme appropriée pour obtenir les dernières instructions.

Ce qui est plus difficile, c’est d’optimiser votre jeu pour une autre plate-forme et d’utiliser des fonctionnalités matérielles telles que l’accéléromètre et l’écran tactile. Je recommande le livre de développement Flash pour Android Cookbook et le livre de cuisine Flash iOS Apps, accompagnés de lectures régulières de notre site partenaire, Mobiletuts +, pour en savoir plus sur la conception d'interfaces mobiles..

Divers

Il y a beaucoup plus de bibliothèques dans lesquelles je pourrais aller - comme Box2D, GreenSock et MinimalComps - mais je dois m'arrêter quelque part.

Je vais compléter cette liste avec quelques sites Web intéressants pour les développeurs de jeux Flash:

  • Adobe Gaming
  • FGL
  • gotoAndLearn.com
  • Playtomic
  • Mochi Media
  • AS3 Game Gears
  • Jeu Flash Dojo

Je sais juste que j'ai raté quelques excellents sites de cette liste. S'il vous plaît laissez un commentaire si vous pensez que quelque chose mérite d'être ajouté!


Faire des jeux

Je l'ai dit dans le guide XNA, et je vais le répéter ici. Lorsque vous commencez, ne créez pas quelque chose de complexe, comme un MMO, ou tout ce qui nécessite d'énormes quantités d'œuvres d'art et d'histoire comme un RPG. Commencez avec quelque chose de simple que vous pourrez peut-être développer plus tard.

Par exemple: un jeu à un seul bouton comme Canabalt pourrait être étendu pour créer un jeu de plateforme; un clone de Pong pourrait être transformé en un jeu de casse-briques à plusieurs niveaux; un jeu d'évitement pourrait devenir un clone des envahisseurs de l'espace et ensuite un shoot-'em-up à part entière.

Ne vous inquiétez pas non plus pour l’apprentissage de techniques de programmation avancées; vous aurez le temps de vous familiariser plus tard avec les modèles de conception et l'architecture générale du code. Concentrez-vous sur la finition de certains jeux, même si vos premiers ne seront que petits.


Un grand merci à Djordje Radakovic, Matt Barker, Joseph Burchett, Will Blanton et John Cotterell pour leur aide dans la rédaction de ce guide.!

Si vous avez des suggestions concernant les ressources d'apprentissage Flash et AS3 que nous avons manquées, veuillez nous en informer dans les commentaires..