[Debat] Le flash player est-il adapté aux jeux vidéo ?

Le , par flasheur, Inactif
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)


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de p3ga5e p3ga5e - Membre confirmé http://www.developpez.com
le 01/03/2011 à 15:11
Je viens de tester FlashPlayer 11, et comme je m’y attendais, il ne permet pas l’accélération GPU pour les shaders écrit avec Pixel Bender ….

J’ai également réussi a me constituer un environnement de développement gratuit pour tester Molehill en suivant cet article

Molehill propose un mini compilateur pour l’écriture des Shaders, malheureusement celui-ci compile uniquement de l’assembleur ,toutefois il peut être possible de pré-compiler les shaders et l’ajouter au clip flash en tant que ressource embarquée
Avatar de flasheur flasheur - Inactif http://www.developpez.com
le 01/03/2011 à 17:12
les shaders flash c'est joli, mais quand à la garantie que ça va passer sur le gpu du client, c'est autre chose...
Avatar de daYop daYop - Membre à l'essai http://www.developpez.com
le 06/03/2011 à 19:08
"For those graphics cards that aren’t supported, Flash Player will elegantly fallback to a fast software rasterizer called SwiftShader, a technology licensed from TransGaming."

Sinon, en + de max racer il y a aussi zombie tycoon.
http://molehill.zombietycoon.com/
Avatar de flasheur flasheur - Inactif http://www.developpez.com
le 06/03/2011 à 22:50
yop merci pour l'info

zombie tycoon j'ai testé, c'est pas horrible comme performances (on fait pire) mais c'est très en deça de ce que peut faire un truc comme unity3d

je vais aller tester molehill côté code pour voir plus précisément ce qu'il a sous le capot
Avatar de flasheur flasheur - Inactif http://www.developpez.com
le 12/04/2011 à 18:33
nouvelle news, j'ai vu des tech démo sur molehill qui explosent unity

donc ça dépend du contexte...

attendons d'en voir plus...
Avatar de flasheur flasheur - Inactif http://www.developpez.com
le 13/04/2011 à 12:48
par contre la mauvaise nouvelle c'est que flash plugin plante de plus en plus

voilà peut-être enfin une bonne raison de revenir aux jeux en applets java...

De toute façons je maintiens mon point de vue sur le flash player: je déconseille avec virulence de développer des jeux avec ce truc.

Molehill ne va pas régler les problèmes structurels profonds du player flash, à savoir qu'il gère la ram n'importe comment et de manière farouchement inadaptée aux jeux vidéo, que les cartes son plantent quand on mix trop de channels, que le script est lent, que son langage de classes n'est pas adapté aux jeux à petits budget (tous les jeux des années 80/90 étaient codés en procédural), qu'adobe rajoute des nouveaux bugs à chaque mise à jour...
Et ça ne va pas non plus régler les problèmes structurels profonds du marché des jeux flash, à savoir que c'est payé une misère, des budgets absolument insuffisants pour faire ne serait-ce qu'un malheureux supermario, alors c'est même pas la peine d'espérer faire un quake.

bref méfiance avec les effets de mode et les gros coups de pub d'adobe
Avatar de p3ga5e p3ga5e - Membre confirmé http://www.developpez.com
le 13/05/2011 à 12:41
Il est dorénavant possible d’écrire le pipeline de rendu 3D de Molehill avec un langage Shader de haut niveau grâce a Pixel Bender 3D, finit l’assembleur en AGAL .

L’actuelle preview de Pixel Bender 3D ne dispose pas d’éditeur ni d’un run-time pour tester ces Shaders comme sur le Pixel Bender classique, c’est un peu contraignant car le source d’un shader sous PB 3D est un mix syntaxique entre l’XML, le JSON et le C.

PB 3D offre un compilateur et des helper en ActionScript, la compilation d’un shader génère un bytecode intermédiaire sous la forme de plusieurs fichiers PB3DASM, il faut donc utiliser un compilateur au run-time pour transformer les fichiers PB3DASM en bytecode AGAL avant de pouvoir l’utiliser avec l’API Molehill.

Cette phase de compilation intermédiaire s’explique par le fait que Pixel Bender 3D impose une nouvelle notion (enfin nouvelle pour moi) qui n’existe pas en Cg/HLSL/GLSL : la séparation de la déformation/projection de la géométrie du rendu de la surface d’un matériau.
Il faut donc ecrire 2 Shaders :
  • Le VertexKernel : contenant uniquement un VertexShader permettant la projection des sommets;
  • Le MaterialKernel : contenant un VertexShader permettant le calcul des normals, des vertexcolors etc … et d‘un PixelShader;


Ce n’est pas idiot de vouloir mutualiser la phase de traitement géométrique souvent lié au moteur 3D du traitement des matériaux liés aux model 3D.

Molehill devient de plus en plus sympatique à mes yeux (en tous cas plus que webgl)! Vivement la sortie officiel de Flash Player 11.
Avatar de sylvain230 sylvain230 - Membre à l'essai http://www.developpez.com
le 17/05/2011 à 14:54
Je pense dans un futur proche Molehill va l'emporter mais cependant dans 10 ans, WebGL finira par s'imposer je crois.
En effet, Molehill n'est pour l'instant qu'une solution a court terme pour la 3D.

De plus Molehill n'est pas compatible iOS alors que WebGL l'est.
Mais le plus gros défaut de Molehill est que c'est une solution propriétaire.
Avatar de pierre-y pierre-y - Membre actif http://www.developpez.com
le 13/07/2011 à 14:58
bonjour ,

Il y a quoi comme alternative a flash si on veut faire un truc correcte sur le web? (hors web le c++ me tenterais bien).
Avatar de daYop daYop - Membre à l'essai http://www.developpez.com
le 09/10/2011 à 12:35
Si tu veux coder en c++ pour le web tu as alchemy.

Pour la réponse au débat, flash est'il adapté aux jeux video :
Epic donne une réponse plutot musclée, avec l'unreal engine 3 qui exporte pour flash


la demo live a l'adobe max sur un ecran de 300.000.000 de pixels


Il y avait déja unity, et cryTeck (cry engine) est en train de bosser dessus.

Cette année sera (enfin) celle des jeux la 3D sur le web
Avatar de Le Kamikaze Le Kamikaze - Inactif http://www.developpez.com
le 10/10/2011 à 18:48
C'est facile de frimer avec des vidéos mais j'aimerais bien voir le framerate de leur démo d'unreal3 sur une machine de prolo (je prédis qu'ils vont se faire tarter)

Flash c'est rentable pour un graphiste qui tripote trois bouts de script, qui confond le disque dur avec la carte vidéo, qui ne s'intéresse surtout pas à ce qu'il fait, qui se demande depuis 5 ans ce que veulent dire les mots "private,public,protected,static,dynamic,override,get,set..." sans jamais être allé chercher la réponse dans la doc, et qui jure toujours par les mêmes excuses: "ouais mais c'est pas ma faute si ça rame c'est la faute de la machine du client qui est pourrie et puis de toutes façons c'est pas grave les gens ils verront pas que j'ai travaillé avec les pieds vu qu'ils y connaissent rien en informatique". (dans la communauté flash y'en a une tripotée)

Mais pour les devs, fuyez, flash est la pire arnaque qui soit arrivée au monde de la programmation.

Citation Envoyé par pierre-y  Voir le message
bonjour ,

Il y a quoi comme alternative a flash si on veut faire un truc correcte sur le web? (hors web le c++ me tenterais bien).

Tu peux essayer unity à la place, mais bon... sur le web y'a rien de correct, le ria c'est de la camelote de toutes façons. Le mieux c'est de ne pas faire de jeux r.i.a. C'est un marché minuscule et fauché qui a produit les jeux les plus pourris de l'histoire. Aussi bien au niveau du plugin que du script, tout est bâclé. même id software, pour le plugin quakelive ils ont fait n'importe quoi.

En fait pour faire des jeux vidéos corrects faut payer des développeurs correctement. Sur le web y'a pas de fric. Un jeu flash c'est payé en moyenne 3000 euro la licence de diffusion, sachant que y'a un site et demi qui va te l'acheter, avec ces trois piécettes t'as tout juste le budget pour faire un pong.
Offres d'emploi IT
Développeur java en environnement web et IOT automotive h/f
KUANTIC - Provence Alpes Côte d'Azur - Sophia-Antipolis
Développeur / intégrateur web - 3 ans d'exp
Mirada - Ile de France - Paris 11
Développeur web php & symfony 2 h/f
Abaka Conseil - Bretagne - Rennes (35000)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Développement Web : Xavier Lecomte -