Je vais répondre le plus en détail possible à tes questions, Chatbour.
Java peut tout à fait être utlisé pour écrire des jeux de qualité vraiment sophistiqués. Tu peux faire à très peu de choses près ce que tu faisais avant en C++ et même plein d'autres choses encore!
"La JVM est un obstacle" c'est un peu un lieu commun, un préjugé mais c'est tellement répandu comme idée que je ne te jette pas la pierre. La JVM permet des optimisations dynamiques du code totalement inenvisageables dans des langages strictement compilés. Par exemple, la JVM peut corriger à l'exécution des erreurs de précision, des erreurs de cancellation par exemple. La JVM n'est pas un obstacle selon moi, c'est une sécurité supplémentaire, c'est même mieux que ça. La JVM gère la désallocation mémoire pour toi. Cela a deux avantages :
- c'est moins pénible, ça te décharge de cette responsabilité
- ça le fait au moment le plus opportun
La désallocation mémoire a un coup système en temps CPU non négligeable en C++. Ainsi, le "new" de Java est environ 4 fois plus rapide que celui du C++ et les passages du garbage collector quand c'est nécessaire coûtent moins que les appels à free() et delete() car c'est la JVM qui gère son propre secteur mémoire. Un garbage collector optionnel est prévu pour la version ISO 2007 de C++, c'est une idée qui a fait son chemin.
"Langage natif" ça ne veut pas dire grand chose. Certains OS se targuent de supporter nativement Java. Il faut vous défaire de vos idées toutes faites sur Java. C'est un langage puissant. Jake 2 écrit en Java va 15% plus vite sur certaines machines que la version originale écrite en C++. Un de mes anciens professeurs a écrit un programme qui traduit du Java en C et qui le compile mais uniquement pour du Java de base. Résultat : un gain de seulement 5% pour une perte totale de portabilité.
En effet, Java est très portable. Pour les téléphones mobiles, c'est un peu moins vrai. Les téléphones Nokia ont leurs propres types de Canvas, je ne sais pas si ça a changé depuis l'époque où je m'en suis aperçu. Cela te permet d'écrire facilement des jeux qui tournent sur un grand nombre de systèmes d'exploitation. Le mien tourne sous Windows, Linux, Macintosh et Unix Solaris.
L'API de Java est très riche, tu n'as pas à réinventer l'eau chaude. Tu peux écrire bien plus vite des interfaces homme-machine en Java. Il existe aussi des API pour gérer le son, les joysticks et autres manettes... Farfouille sur le net et tu vas comprendre.
Enfin, Java te permet de déployer facilement ton jeu. Un gosse de 7 ans a pu installer le mien. Il suffit de cliquer sur "Ok" deux ou trois fois et c'est bon (sauf si ta JVM n'est pas assez à jour). Avec Java Webstart, tu as juste besoin d'un fichier de configuration pour indiquer comment se servir de tes archives Java et des librairies aditionnelles et c'est tout! J'ai connu l'aire du C++, j'ai programmé des jeux dans plusieurs langages avant de me servir de Java : RPL, C++, python entre autres.
Voilà, j'ai du mal à trouver une bonne raison de ne pas utiliser Java pour programmer un jeu. Je reste à votre écoute.
TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
