Bonjour,

Je suis un fervent défenseur du C++ et depuis quelques temps déjà je travaillais sur un projet de jeu en C++.
Je voulais entre-autre :
  • répartir tout le jeu dans un système de pluggin pour permettre à tous de "moder" ce jeu sans recompiler tout le projet ainsi que de pouvoir changer les dépendances (bibliothèques) si l'une d'entre elle n'était pas supportée sur une plateforme ou devenait obsolète ;
  • permettre l'exécution du programme via navigateur (en jouant un peu avec les Websocket et un serveur en Node.js, le principe est assez simple).



Sauf que je rencontre pas mal de problèmes :

  • le système de pluggin est relativement long à développer ;
  • l'exécution via navigateur prendra aussi un certain temps et demandera soit que tous les calculs soient effectués côté serveur, soit de réécrire un client en JavaScript ;
  • la non-portabilité des exécutables me dérange aussi quelque peu, je peux difficilement demander aux utilisateurs de compiler eux-même (s'il faut recompiler des dépendances, ou autre ça peut très vite devenir "enquiquinant").





Même si je ne porte pas vraiment le Java dans mon cœur, je suis très sérieusement en train de songer à cette possibilité, ceci :

  • me fera gagner un peu de temps pour la partie "exécution via navigateur" grâce aux applets ;
  • facilitera le système de pluggin (un pluggin sera alors un .class qu'on chargera dynamiquement ?) ;
  • m'évitera quelques cheveux blancs quant à la portabilité de mon jeu ;
  • permettra une exécution sur téléphones (?)



Mais je me pose quelques questions :

  • niveau performances, est-ce qu'il pourra tenir correctement de la 3D ? En effet, il est très difficile de faire des scènes 3D "légères" et sur des prototypes en C++ que j'ai réalisé (affichage de 9*6 objets identiques), je pouvais avoir un nombre de FPS relativement faible. Java ayant des bibliothèques encapsulant openGL, je suppose que les performances sont relativement égales ? Mais j'entends dire que le Java serait 30% à 70% moins performants que des langages natifs par rapport à la 3D ;
  • est-ce que l'exécution sur téléphone est réaliste par rapport aux performances des téléphones actuels ? Est-ce que vous pensez qu'il pourrait y avoir des adaptations à faire ? Si oui, lesquelles ?
  • En revanche, j'ai entendu dire que le Garbage collector posait quelques problèmes de performances pour ce type d'application, est-ce qu'il y a moyen de pallier cela ?
  • est-ce que le Java vous semble un bon choix pour ce cas là ?





Est-ce que vous auriez d'autres conseils à me donner ?