Programmation de jeux en java

Programmeur confirmé depuis belle lurette (C++, C#, as3), j’aimerais me lancer dans la programmation java. En particulier pour faire de petits jeux, histoire de découvrir les API et faire joujou avec.

Que me conseillez-vous comme outils, docs, url, etc pour prendre les bonnes habitudes ?

L’IDE le plus courant et donc le plus « rentable » à apprendre est Eclipse. En plus c’est un très bon IDE, donc pas trop à hésiter de ce côté là.

Les doc officielles Java sont, contrairement aux docs C#, assez bien foutues. Le point de départ est cette page là : http://download.orac…avase/tutorial/

Après tu pourras trouver quelques tutos en français sur developpez.com : http://java.developpez.com/cours/
Mais le truc bien avec Java c’est que le net regorge de tutos, questions, framework et bout de codes dispos.

Have fun ! :slight_smile:

Merci. Je vois qu’il y a trois versions d’Eclipse pour les programmeurs Java sur la page de téléchargement. Il y en a un que tu me conseilles plus qu’un autre ?

Autre question, pour créer des interfaces graphiques rapidement, quelle est la plus performante et facile à utiliser ? J’ai vu qu’il y avait Swing par exemple.

Autre chose. Côté graphique, quelles API/librairies me conseilles-tu ? (2D/3D)

Si tu veux faire du web, prend Eclipse IDE for Java EE Developers, sinon Eclipse classic suffira. Dans le doute prend la version EE.

Pour les interfaces graphiques, client “lourd” utilise Swing et sinon en client leger, le choix est moins aisé mais je te conseille personnellement GWT.

Et enfin ca fait un bail que j’ai pas touché de 3D avec java, donc je vais laisser des personnes plus competentes répondre ( javaFX, java3D ? )

au niveau ide, je te conseille Eclipse Java (pour faire des jeux pas besoins de la version J2EE).

Pour les builds et la gestion des dépendances, maven est une référence et il est,parfaitement intégré à Eclipse.

Pour les interfaces, Swing est la bibliothèque la plus répandu et la mieux documentée.

Pour faire de la 2D, tu peux utiliser Swing (l’objet Graphics2D est ton ami), pour la 3D, il y a la bibliothèque Java3D.

Heu maven quand meme c’est assez hardcore quand meme, utilise le si tu veux mais si tu as des soucis ca sera pour ta pom.
Nan bon serieusement maven c’est bien mais c’est quand meme assez lourd et l’integration avec eclipse est quand meme loin d’etre evidente.
Deja que eclipse a pas mal de bugs (eclipse tout seul pas trop, mais plus tu rajoutes de plug in plus c’est une usine a gaz) et est assez lourd. Developpe sans maven renseigne toi et voit si ca vaut le coup de l’integrer au projet.

Bussiere

Serieux? Ca vaut ce que tu payes Eclipse. Rien. Apres 6 mois a m’arracher les cheveux je code avec Textmate et/ou vi. Mon univers pour un visual studio Java avec le debugguer qui va avec. Entre les fois ou t’as tout l’IDE qui disparait parceque tu tentes un mouse over sur une variable ou les compilation non deterministe qui marchent magiquement une fois que t’as quitte tout l’IDE puis redemarre trois fois de suite… Eclipse le blagueur.

Ha ouai donc en fait je suis dans un univers parellele ou les docs java sont bien foutues et tu y trouves ce que tu veux. Ils ont fait une version francaise separee ecrite par des gens qui savent de quoi ils parlent et qui se borne pas a “getDate” “retourne la date”, ou j’en ai reve depuis 9 mois a quel point c’est de la merde la doc Java? Encore une fois, mon univers pour un truc a la moitie du niveau de MSDN pour Java… Par contre les docs de Spring, ca c’est de l’exemple a suivre…

Sinon Maven: oui. Parceque la gestion de dependences de lib en Java sinon c’est vite un truc de cauchemard.

Je confirme ce qui est dit plus haut: Eclipse EE et Maven c’est inutile pour du dev maison. C’est surtout utilse pour les gros projets en entreprise.

Quant aux phobies trollogènes de Glop, pas envie d’entrer là dedans.

Eclipse… bof… si t’es pas en milieu pro il va te prendre la tête.
Netbeans est sympa pour commencer.

Attaque par Java basique, un menu Swing, un component AWT où tu dessines des trucs à la main. Ensuite ajoute des interactions avec la souris ou le clavier par exemple pour voir les event…
Si tu réfléchis objet ça devrait pas prendre longtemps :slight_smile:

Pour l’aide y’a des tutorials Java officiels, mais plus ça va et plus ils font oldschool, ça pique les yeux :
http://download.oracle.com/javase/tutorial/
Mais ça devrait se comprendre quand même…
Et après y’a des milliards de trucs sur le net.

Une connaissance qui fait un jeu java en 3D m’avait dit trouver beacoup de choses sur ce forum:
http://www.java-gaming.org/

Ce forum est même fréquenté par un certain “Markus Persson” (notch) qui y posait ses questions techniques concernant Java, pendant le développement de Minecraft.

Oui parceque apres 9 mois a coder tous les jours en Java dans une boite ou toute la tech ou presque est en Java (et ca marche plutot pas mal) j’ai que ca a faire de troller sur le truc… Eclipse, en particulier certains des plug ins les plus populaires ainsi que la doc a des progres a faire. Et on a meme pas commence a parler du langage en lui meme.

Par contre un truc a utiliser tout le temps c’est ca: http://code.google.com/p/guava-libraries/

Merci pour le lien je vais filer cela au boulot.

Bussiere

Tu n’est pas le seul a avoir bossé plusieurs années avec les deux technos hein. Donc quand tu nous assènes LA vérité à coup de grandes phrases péremptoires, ça ne donne pas vraiment envie d’engager une discussion constructive.

Java et C# sont deux langages que j’apprécie, chacun pour des raisons différentes. Ce sont des outils, pas des chapelles exclusives qui imposent qu’on les défende l’une contre l’autre.

Effectivement, si tu veux faire un client lourd avec du swing je plussoie netbeans et son éditeur graphique matisse. Mais à choisir entre netbeans ou eclipse, ma ram et mes nerfs sont plus du côté d’eclipse.

Sérieux? Les doc c# sont exemplaires.

Java3D est mort, pour avoir quelque chose de performant en java et en 3D, il faut utiliser Jogl.

Bon si tout le monde le dit c’est qu’il doit y avoir un peu de vrai. Moi je les ai toujours trouvé fouilli. Notamment sur les Winforms et WPF. Mais c’était aux débuts de WPF. Ceci explique peut-être cela.

Toujours est-il que j’ai toujours eu plus de facilité à trouver des infos dans les très vilains mais plutôt clairs tutoriaux Java que dans les docs Winforms/WPF.

Encore une fois je ne prêche pour aucune chapelle. Pour du jeu sur PC je conseillerais même le C# de préférence au Java, de loin. Mais là apparemment le but est d’apprendre le Java, pas de choisir entre tel ou tel langage.

L’intégration de maven s’est vraiment amélioré avec Eclipse indigo, nous l’utilisons au TAF et toute l’équipe en est contente. quand au coté hardcore, Maven c’est juste des conventions à respecter et un fichier pom.xml à écrire, et si c’est juste pour 4, 5 dépendances ton fichiers pom reste très simple à écrire. Le jour ou tu voudras partager ton projet avec un autre développeur pour t5e aire aider ou pour travailler en équipe, si ton projet est basé sur maven, sa facilite la vie à tout le monde.
De plus, Tomma se dit programmeur confirmé, ce n’est pas un outil comme maven qui lui fera peur.

En général, j’aime mieux emacs, mais eclipse c’est vraiment un outil très confortable une fois qu’on s’y fait. Je te conseille de te familiariser avec les raccourcis clavier (http://binlog.tumblr.com/post/4425389238/eclipse-shortcuts). Pour la gestion des versions, il y a sûrement moyen d’intégrer ce que tu connais déjà (git, svn, mercurial, cvs, …) à eclipse. Au pire tu le fais à la ligne de commande, mais tu dois définir des exclusions pour les fichiers de configuration d’eclipse - ou pas, si t’es tout seul dessus ça peut servir).

Ceci dit moi j’ai pas eu une expérience géniale de la programmation de jeu 2D avec Java, mon jeu laggait affreusement sur des configs sans carte graphique, alors que je faisais vraiment rien de fancy (et c’est pas faute d’avoir cherché et testé un bazillions de trucs. Du coup, si je devais m’y remettre, j’utiliserais surement une lib pour utiliser sdl/opengl (voire pourquoi pas java3D si ça permet de faire de la 2D facilement, j’en sais trop rien). De nouveau l’avantage c’est que c’est la même chose qu’ailleurs.

[quote=“Norswap, post:18, topic: 52851”]java3D
[/quote]
Jogl, Java3D est un projet a l’abandon

J’ai fait un peu joujou avec Swing. Est-ce qu’il existe un éditeur graphique pour placer visuellement les composants d’une interface et générer le code ?