Le flash player est-il adapté aux jeux vidéo ?
Donnez-nous votre avis
Je vois qu'un débat a été ouvert sur le sujet à propos de Java, ce qui m'étonne parce que la plupart des jeux des tel mobile sont faits en java, donc la réponse semble évidente... et puis à lire le débat c'est pas si évident.
Je lance donc la même discussion à propos du flash player. La réponse pourrait sembler évident elle aussi puisque la plupart des ptit jeux gratuits du web sont faits avec flash player... et pourtant de mon point de vue qui a pas mal bossé sur des jeux flash, je pense que NON le flash player est vraiment tout ce qu'il y'a de plus mal foutu pour faire des jeux vidéo, et si on peut utiliser autre chose pour les pti jeux dans les navigateurs, c'est mieux.
La preuve c'est que 99.999% des jeux flash ont des gameplays pauvres, des performances exécrables, ça rame, ça bug, C'est la foire à qui ira le plus loin dans la médiocrité.
Les seuls jeux flash qu'on peut sauver dans le tas c'est les rares qui ont été pensés comme du dessin animé interactif - ce pourquoi flash est prévu.
Comme j'ai une assez bonne connaissance de la flash machine voilà tout une série de raisons qui font que c'est vraiment pas fait pour faire des jeux vidéos:
- pas de synchro verticale. rien que ça, pour faire des jeux, ça la fout mal, inutile d'essayer d'avoir une image fluide, sans vsync on peut pas
- moteur de rendu vectoriel lent, qui tourne correctement à une vitesse dessin animé télé, c'est à dire 12 fps, mais si on cherche à atteindre la vitesse d'un jeu soit 50/60 fps on arrive à des performances absolument honteuses, genre il faut plus d'1 ghz pour faire tourner un super mario
- moteur de rendu bitmap à peu près correct depuis la v10 du player, (et encore à condition d'avoir du temps à perdre à trouver les bonnes astuces pour optimiser le tout) on approche presque les perfs d'un émulateur nes, ce qui reste toutefois profondément médiocre
- pas de rendu hardware évidemment, mais même en rendu purement software on peut obtenir un rendu infiniment plus rapide que le flash player, quand on fait des trucs en c avec la lib windows. je ne sais pas comment macromedia/adobe se sont débrouillés pour avoir un moteur graphique aussi lent mais ça pousse à croire que steve jobs n'a pas menti quand il les a traités de feignants
- garbage collector HORRIBLE, une vraie poubelle qui te bourre des gigas de ram de données inutiles avant de vider la ram, en général au mauvais moment ce qui ralentit les jeux.
et évidemment pas moyen d'allouer déallouer quoique ce soit, à moins de passer par des hacks infectes qui pourrissent ton programme
- gestion du son immonde qui te bouffe le processeur et défonce le garbage collector pour jouer un pauvre mp3, pas moyen de coder de la musique à moins de passer par l'affreux émulateur de son gameboy qui pète encore plus le cpu.
Je pourrais encore rallonger la liste des infâmies cachées sous le capot de flash (je laisse les autres flasheurs le faire) mais il y'a une foule de raisons qui font que pour faire des jeux flash t'as deux alternatives:
- soit tu es efficace et donc tu vas faire de la merde qui nique le cpu et la ram tout ça pour faire un jeu du style ms dos des années 80
- soit tu passes 6 mois à trouver des hacks pour arriver à faire presque un pong à peu près propre
Bref... pour beaucoup de gens qui ont bossé sur des jeux flash ça serait un sacré soulagement de trouver une solution alternative pour le jeu RIA, qui permette de faire du boulot propre et efficace, comme quand on bosse en c, qui te laisse contrôler les fondements du moteur (donc on oublie les gadgets virtools/unity/...).
L'applet java + lib jogl/processing/etc me semble le plus indiqué, mais ça a l'air de poser pas mal de problèmes de bugs, portabilité pas top... sinon ça serait utilisé pour faire des jeux ria sur les portails qui les achètent. or ça l'est pas. (et puis la javamachine à la base c'est pas fait pour faire du ria, c'est fait pour émuler des tel mobiles et tester du code pour tel mobile)
Microsoft silverlight ça me fait peur, les jeux faits avec que j'ai vu ont exactement les mêmes défauts que les jeux flash (à croire qu'ils ont payé un mec de chez adobe pour leur fourguer les sources du flash player).
Donc la seule alternative décente qui me semble envisageable, c'est que la communauté open-source se lance dans la confection d'un plugin RIA conçu pour les jeux, et qui soit simple. Un script (avec une syntaxe type vb ou c#... peu importe la syntaxe en fait) qui fait le minimum nécessaire: du procédural (c'est suffisant), les calculs de base du langage c, lire et écrire vite dans la ram avec des pointeurs, et un moteur d'affichage rudimentaire qui fait le minimum, sans spécialement utiliser le hardware (à part pour la vsync)... gérer un bête tableau de pixels pourrait suffire amplement, éventuellement ajouter du blit automatique. et évidemment un moteur de son optimisé, capable de jouer ce qu'on veut quand on veut histoire de pouvoir coder de la musique soi-même.
Je sais pas si ce genre de projet a déjà été tenté... je ne sais pas si la communauté open est suffisemment organisée pour supporter le dev d'un plugin RIA.
En attendant il faudra se contenter de l'épouvantable flash plugin
(sinon pour arrêter de souffrir, on laisse tomber le ria et on fait des exe pour windows à télécharger... mais on perd tout l'interêt du ria: facile d'accès, pas de risque de virus dans l'exe, portabilité, pubs à côté dans la page web)
Partager