Java

mbotsa Messages postés 3 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 25 février 2008 - 2 déc. 2007 à 14:46
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 - 3 déc. 2007 à 21:32
Esk qlqn peut me donner des avis pour la création de jeux pour les mobiles (J2ME) et des exemples en codes sources?
Et aussi pour la création de jeux 3D sur le même themes?
Merci!!

5 réponses

Utilisateur anonyme
3 déc. 2007 à 13:16
Si tu vas dans Google codesearch, tu trouveras beaucoup d'exemples dont des jeux en Java J2ME. Pour ce qui est de la création de jeux en 3D, sur mobile je n'ai pas d'exemple mais sur PC, il y en a plein : Undead (une tentative de Quake 3 en Java), Jake2 (Quake 2 en Java), TUER (mon jeu)...

Je ne connais pas ton niveau en Java ni en algorithmique et programmation mais si tu n'as jamais programmé de jeux, commence par la base. Si tu pars sur des choses trop compliquées, tu vas te noyer et te décourager. Je programme des jeux vidéo en amateur depuis 1999, je sais de quoi je parle.
Déjà, choisis un langage avec lequel tu es vraiment à l'aise. Après cela, fais le nécessaire pour être à niveau en algorithmique, entraine toi sur des problèmes de base, implémente des méthodes de tri ou d'autres problèmes (tour de Hanoï, manipulation de mots, palindrome...). Cette étape n'est pas nécessaire si tu es étudiant en informatique biensûr.
Ecris toi-même un tetris ou un casse-briques basique avant d'essayer de comprendre des codes sources plus complexes. Ensuite, tu peux envisager d'écrire un petit jeu de plateforme en 2D. Si tu arrives jusque là, alors, tu auras le niveau pour bien comprendre en profondeur les codes sources des jeux en 2D sur mobile.
Pour la 3D, c'est le cran au-dessus. Ca dépend de ton approche. Soit tu veux coder, soit tu prends des logiciels de création de jeux vidéo qui te permettent de te consacrer essentiellement à la partie artistique et tu scriptes les comportements. Si tu veux coder, il y a aussi plusieurs possibilités. Soit tu utilises un moteur 3D existant, soit tu écris le tien. Si tu utilises un moteur 3D, tu devras quand même avoir les bases de l'infographie 3D. Si tu écris ton propre moteur, cela demande un très bon niveau en mathématiques, une bonne connaissance de l'API utilisée pour dialoguer avec la carte graphique (OpenGL, DirectX), une sacrée motivation aussi et de préférence ne pas être seul.
Pour la 3D en Java, tu trouveras plein de bons moteurs 3D (JME, JPCT...) et de scénographes (Java3D, ...). Il y a aussi quelques API en Java pour accéder à la carte 3D (JOGL, LWJGL, GL4Java, ...). A une époque, il était possible de programmer en DirectX avec J++ et il paraît que ça marche encore avec J# mais je n'ai jamais trouvé un exemple de code.

Ca répond à tes questions?

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
3 déc. 2007 à 20:36
Salut à tous





gouessej,
d'après ton expérience, est-ce que java pourrait-il être utilisé pour programmer des jeux vraiment sophistiqués ? la JVM n'est-elle pas un obstacle ?

toi par exemple tu utilises principalement java pour coder des jeux ? où tu fais recours à des langages natifs comme C++ ?

Merci d'avance :)






ma ville
Boissons gratuit
0
Utilisateur anonyme
3 déc. 2007 à 21:01
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
0
Utilisateur anonyme
3 déc. 2007 à 21:06
J'ai oublié de préciser, j'utilise exclusivement Java pour coder désormais et je travaille uniquement sur un seul projet de jeu vidéo depuis un an, c'est trop dur de gérer plein de projets à la fois.

J'utilise JOGL, un échantillon de mon jeu est ici d'ailleurs. JOGL est un binding qui permet d'utiliser OpenGL (écrit en C) depuis du code Java. Cependant, la GLU a été réécrite en Java dans JOGL ainsi que des classes supplémentaires.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
3 déc. 2007 à 21:32
merci beaucoup pour tous ces explications mon ami



ma ville
Boissons gratuit
0
Rejoignez-nous