18 juil. 2013

Parlons de Flash

Pendant ce temps-là, notre Programmeur s'ennuie.

Le Programmeur s'ennuie

Du coup, pour éviter qu'elle ne fasse des dégâts, occupons-la un peu : aujourd'hui, je vais vous parler de Flash, le moteur que j'ai choisi pour développer notre jeu.

Flash

Flash, c'est quoi ?

Commençons par la base.

Flash est un logiciel qui permet de développer des applications web, des animations et des jeux vidéo. Pour vous donner une idée, on peut dire que c'est un mix entre un logiciel de dessin vectoriel (c'est-à-dire du dessin 2D, calculé en temps réel par l'ordinateur), un logiciel d'animation et un moteur de jeu vidéo.

L'interface de Flash
L'interface de Flash

Le langage de programmation utilisé par Flash s'appelle l'ActionScript, souvent abrégé as. Vous verrez, quand le développement aura commencé, que ce n'est pas si éloigné d'une langue étrangère dont il faut apprendre le vocabulaire, la grammaire et les règles de ponctuation !

Il existe d'ailleurs plusieurs version d'ActionScript. L'ancienne, l'ActionScript 2 (as2), était un peu moins puissante et - à mon avis - plus intuitive. Pour ce projet-ci, je programmerai en ActionScript 3 (as3), la version actuelle.

Attention à ne pas confondre la version du langage de programmation (as2, as3) et la version du logiciel (cs3, cs4, cs5... cs6...!). "CS" signifie "Creative Suite", et sert tout simplement à numéroter le logiciel en fonction de sa date de sortie.

D'ailleurs, tant qu'on en parle, saviez-vous que Flash est un logiciel créé par Adobe ? Allons, ce nom vous dit forcément quelque chose : ce sont aussi eux qui développent Photoshop. Du coup, il existe beaucoup de "ponts" entre ces deux logiciels, qui permettent d'exporter facilement votre travail de l'un à l'autre. Plutôt pratique !

Pourquoi choisir Flash ?

Ah... Flash et moi, c'est une longue histoire d'amour !

D'abord rappelez-vous qu'à l'origine, je ne suis pas Programmeuse mais Game Designer. J'espère qu'avec tout le travail de Game Design que vous avez fait ces dernières semaines, je n'ai plus besoin d'expliquer à personne ce que c'est ! Du coup, mon univers, ce ne sont pas les lignes de code, mais le monde des idées.

Or, quand on est Game Designer, comment prouver que notre idée est bonne ? Il n'y a qu'un seul moyen : la prototyper, c'est-à-dire développer une petite démo qui permet de tester le jeu.


Et pour ça, Flash est parfait :
  • c'est un logiciel professionnel, utilisé dans l'industrie du jeu vidéo, donc on peut vraiment en faire ce qu'on veut !
  • c'est un logiciel relativement simple malgré tout, avec un langage pas trop pointilleux et qui est abordable pour un débutant motivé...
  • et enfin c'est un logiciel très complet, qui gère le code et les graphismes, donc pas de risques de s'arracher les cheveux sur des éléments pas compatibles entre eux !
J'ai donc mis mes mains dans le cambouis et j'ai appris Flash. A force de faire des essais et de construire des jeux, j'ai fini par devenir la codeuse la plus rapide de l'Ouest !

Donc, si je choisis Flash aujourd'hui pour développer notre jeu, c'est pour deux raisons :
  • d'abord parce que je maîtrise super bien la bête ! On a déjà une équipe constituée à 99% de débutants, on ne va pas se rajouter des difficultés en choisissant un nouveau moteur où moi aussi, je serais débutante.
  • mais aussi parce que ça pourrait donner des idées à certains d'entre vous ! Tout au long de l'été, vous me verrez travailler sous Flash... Si, à la fin du projet, vous avez envie d'essayer vous aussi, Flash est un bon logiciel pour une première fois. Et vous aurez de bonnes bases !
D'ailleurs, si vous avez envie de vous lancer, sachez que j'ai écrit deux tutoriels très complets et très illustrés au sujet de Flash, à retrouver dans la section "Tutoriels" du Forum Dessiné !

Apprendre à animer avec Flash
Apprendre à animer
Apprendre à programmer avec Flash
Apprendre à programmer

La triste histoire de Flash

Si mon enthousiasme est communicatif, vous devez vous demander pourquoi tout le monde ne fait pas des jeux avec Flash... Mais laissez-moi vous raconter une histoire fort, fort triste.

Il était une fois une gentille petite technologie qui s'appelait Flash et qui avait plein d'amis : 1,3 milliard de personnes l'avaient installée sur son ordinateur, soit 99% des ordinateurs dans les pays les plus riches (source : Adobe). Du coup, tout le monde faisait du Flash, les jeux gratuits prospéraient sur le web et tout allait pour le mieux !


Mais la vilaine marâtre Apple était terriblement jalouse du succès de Flash. Elle avait très peur que Flash éclipse ses propres rejetons, les jeux de l'Apple Store. En effet, si les jeux gratuits pullulent sur Internet, pourquoi les gens iraient-ils acheter les jeux sur l'Apple Store ?

Bien décidée à gagner, Apple jeta un terrible sort à Flash : elle bloqua toute installation de Flash sur ses iPhones et ses iPads.



Les iPhones envahirent le monde, et les utilisateurs qui voulaient jouer sur leurs téléphones furent obligés de passer par l'Apple Store. Ainsi, petit à petit, on se détourna de Flash.

Les gens se mirent à moins aimer Flash. Les développeurs qui faisaient des jeux en Flash migrèrent vers d'autres moteurs qui permettaient de s'exporter sur les téléphones. Sur le net, le HTML 5 commença à prendre sa place ça et là. Et Flash, petit à petit, perdit ses amis.


Triste histoire, n'est-ce pas ?

Ainsi, aujourd'hui, Flash souffre terriblement de son absence de diffusion sur les smartphones et tablettes. On lui reproche aussi de n'être pas très puissant (vrai), d'être parfois instable (vrai aussi) et de ne pas supporter la 3D (encore vrai). Bref, beaucoup de développeurs méprisent Flash... voire le détestent et lui souhaitent de couler très vite.

Voilà une histoire qui ne se soldera peut-être pas par une fin heureuse.

A gauche : Angry Birds / A droite : Crush the Castle
(source : IGN)
N'empêche que Flash a vu naître pas mal de perles du jeu vidéo. La plupart des jeux Facebook sont en Flash. Dofus aussi, c'est du Flash. Angry Birds, la star des applis mobiles (152 millions d'euros de chiffre d'affaires en 2012), a été fortement inspiré de Crush The Castle, un jeu Flash gratuit. Super Meat Boy, qui a fait un carton sur PC et consoles, a d'abord été un jeu Flash. Sans compter que Flash reste l'une des technologies favorites des petits développeurs indépendants : vous pouvez vivre de très chouettes expériences si vous fouillez !

Alors pour vous occuper en attendant de découvrir la pré-sélection des Game Concepts samedi... allez jouer un peu !
Coma
Poétique, ambiance magnifique !
Bloody Fun Day
Un puzzle-game très addictif
Rebuild 2
Survie et gestion en territoire zombie
Tredmillasaurus Rex
Un dinosaure et des lasers,
qui dit mieux ?
One Chance
Plusieurs fins possibles... mais vous ne pouvez jouer qu'une fois.
Canabalt
Un des jeux fondateurs
du genre "runner"

23 commentaires :

  1. J'aime beaucoup comme tu racontes les histoires *u*

    RépondreSupprimer
  2. Est-ce que tu connais d'autres langages que Flash ?

    RépondreSupprimer
    Réponses
    1. Assez de langages web pour être webmaster du Forum Dessiné (PHP, SQL, HTML et un peu de Javascript), et j'ai fait du C# sous Unity à l'occasion du développement de Tiny White Stones.

      Supprimer
  3. Concernant Flash et la 3D j'étais persuadé que Kube et Galaxy 55 (De Motion Twin) fonctionnait sous flash. Je veux bien comprendre que sa soit limité (la plupart des PC lag sur ces jeux) mais si c'est pas flash, pourquoi a on besoin d'un lecteur flash pour y jouer ?

    RépondreSupprimer
    Réponses
    1. En fait, Flash permet de faire de la 3D, mais ça n'a juste rien à voir en terme de performances avec ce qu'on peut voir avec d'autres moteurs (Unity par exemple, le moteur qu'on a utilisé pour Tiny White Stones).

      Donc dans notre cas, il vaut mieux partir du principe que nous devons faire un jeu en 2D.

      Supprimer
    2. Teste Sky Island par exemple, c'est un jeu Flash en 3D.

      C'est chouette... mais ça ne vaut pas un bon gros moteur 3D ! :)

      Supprimer
    3. En fait Flash player 11 qui est orienté 3D donc amélioration des performances et une utilisation du GPU (processeur de la carte graphique). Il existe des moteurs 3D open source assez performants comme Away3D (que tu peux implémenter dans Flash via l'API) qui permettent de faire d'assez jolies choses...

      Un exemple sympa : https://www.rumblegames.com/kingsroad/

      Mais oui pour le jeu il vaut mieux rester sur de la 2D il n'y a que 3 mois ;)

      Supprimer
  4. Contente de l'avoir sur mon ordi : ce ne sera peut-être qu'une goutte d'eau mais c'est toujours ça. Apple n'a vraiment aucune morale.

    RépondreSupprimer
    Réponses
    1. Haha, nan, faut pas le prendre comme ça XD
      Apple et Adobe sont deux grosses boîtes pas plus morales l'une que l'autre. Les deux veulent des sous, Apple a juste mieux joué son dernier coup, c'est tout : )

      Supprimer
    2. Oui mais si ça cause le déclin voire la fin de Flash, c'est quand même pas beau.

      Supprimer
    3. Apple ne sera pas le seul responsable mais... ouais.

      Supprimer
  5. De ma part et de la part de tout ceux a qui tu as sélectionné les Games Concept. Merci beaucoup Lou !

    Merci de nous valoriser, de nous montrer ce qu'on sais faire. Merci pour tes conseils qui nous ont permit d'avancer ! Et merci a ceux qui n'ont pas eu leur projet validés. On aurait pu être a votre place, mais l'importance, c'est d'avoir essayé !

    On a hâte de voir tout les projets !

    RépondreSupprimer
  6. Pauvre Flash =(
    T'as une façon de raconter les histoires j'ai pitié du logiciel maintenant (Apple c'est le maaaaaall!!)
    Ah et ta sélection de petits jeux est excellente (sauf One Chance, c'est vraiment un jeu déprimant ^^)

    RépondreSupprimer
  7. Si je peux me permettre, Adobe a quand même pas mal contribué aussi à la mort de Flash en faisant comme Oracle avec Java, à savoir laisser de grosses failles de sécurité sans les corriger et faire un updater qui bug complètement ^^'

    D'ailleurs, tu/vous parle/z d'Unity3D dans les commentaires. Il se trouve que je connais très bien ce logiciel. Des tutoriels t'intéresseraient-ils pour le forum dessiné ? (non, je n'y suis pas encore inscrit, d'abord j'essaye de réussir à dessiner un truc regardable, mais promis après j'y vais ^^')

    Et avant qu'on ne pose la question, oui on peut faire de la 2D sur Unity, cf sur mon site Nicolas' Mansion qui a été réalisé sous Unity et qui est en 2D :p

    RépondreSupprimer
    Réponses
    1. De un, le Forum Dessiné ne nécessite pas d'inscription... (c'est fou ça, pourquoi tout le monde veut à tout prix s'inscrire pour participer ? vous êtes libres, profitez-en !)

      De deux, si tu veux faire des tutoriels pour le Forum Dessiné, ça marche comme sur la Petite Fabrique : il faut me présenter un boulot fini (qu'on peut éventuellement retravailler si besoin). Les promesses, sur Internet, ne valent rien. Mais la bonne volonté est toujours bien accueillie !

      Supprimer
    2. Pour le un, c'est noté :) mais reste toujours la même chose : c'est mieux si j'arrive à dessiner quelque chose avant de participer :) )

      Pour le deux... bah c'est noté aussi à vrai dire. Je t'enverrais donc une proposition quand je l'aurais faite :)

      Supprimer
    3. J'imagines qu'Unity coûte une fortune comme Flash et qu'en plus il faut une machine de guerre pour le faire fonctionner ?

      Supprimer
    4. Unity est disponible en version gratuite avec pas mal d'options en moins.

      Par contre, contrairement à Flash, il ne se suffit pas à lui-même : il faut un logiciel extérieur pour toute la partie graphismes 3D (Maya ou 3DsMax par exemple) ou 2D (Photoshop). Et ces logiciels-là sont payants.

      Unity est aussi bien moins intuitif que Flash pour un débutant.

      Enfin oui, il faut prévoir un bon PC pour le faire tourner, et de bonnes connaissances techniques pour optimiser ton jeu. Pour te donner un exemple, nous avons développé Tiny White Stones sur des PC de super qualité et malgré ça, il nous est arrivé qu'ils ne tiennent pas la route quand le jeu était mal optimisé.

      Supprimer
    5. Effectivement, Unity est disponible gratuitement ou en payant, ou encore sur abonnement.

      Pour les logiciels extérieurs, à noter qu'Unity supporte nativement Blender (qui est gratuit) et bien entendu Gimp (bien que celui-ci soit, à mon gout, nettement inférieur à Photoshop).

      Pour la question de l'intuitivité, je ne suis pas du tout d'accord : j'ai donné des cours d'Unity à des jeunes du collège sans le moindre problème, et même avec presque aucune indication ils se débrouillaient parfaitement bien. Je pense que c'est une question de prise en main et d'habitude, on peut faire tout ce qu'on veux avec les deux.

      Pareil pour l'optimisation et la machine, ça dépend beaucoup du jeu qu'on réalise : j'utilise Unity quotidiennement sur un ordinateur vieux de plusieurs années (je l'ai acheté en milieu de gamme il y a six ans) sans le moindre problème. Bien entendu, il existe quelques "techniques" d'optimisation (encore que, depuis la version 4, c'est discutable) qui sont au niveau du code et du graphisme (surtout en 3D) mais très sincèrement je ne le trouve pas si lourd que ça (par comparaison, l'éditeur de Flash fait nettement plus ramer mon pc...)

      Supprimer
  8. Dans le genre oeuvre d'art du jeu vidéo il y aussi:
    http://windosill.com/

    RépondreSupprimer
    Réponses
    1. J'ai mis du temps avant de comprendre qu'il y avait un objectif ^^
      Wow ! Quelle expérience onirique et intriguante !

      Supprimer
  9. Bonjour, petite rectification, Flash a été créé par Macromédia et est racheté par Adobe.
    Concernant l'ActionScript, la version 2 était (la suite de la 1), logique ^^, mais juste un genre de béquille pour accompagner le logiciel. En passant à sa version 3, Adobe à raisonner un véritable langage (douteux tout de même) orienté objet (partiellement).

    Cependant, flash, comme Java and co obligent, pour les applications navigateurs, l'installation d'une machine virtuelle, et dans le cas du player flash, il s'agit de quelque chose de pas libre :'(
    C'est pourquoi beaucoup de développeurs invitent à faire du Javascript et de l'HTML.

    Merci beaucoup pour ce blog très rafraîchissant !

    RépondreSupprimer
    Réponses
    1. Tout à fait vrai : )
      C'est volontairement que je n'entre pas dans les détails, car certains lecteurs ne sont pas du tout familiers de cet univers - certains, par exemple, ne savent pas ce qu'est Flash. J'y vais donc en douceur, je ne veux perdre personne en route...!

      Supprimer

La participation à la Petite Fabrique de Jeu Vidéo est libre, gratuite et sans inscription. Elle ne vous donne droit à aucune contrepartie financière.

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.