IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

OpenGL : java/c++


Sujet :

Développement 2D, 3D et Jeux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 90
    Par défaut OpenGL : java/c++
    Bonjour à tous,

    j'ai été très pris ces derniers temps : nouveaux job depuis 2 mois.
    Je suis passé au Java et je découvre ces derniers temps la possiblité de faire de l'openGL avec le Java.

    Ma question est vis à vis de l'interet d'une telle idée. Le couple OpenGL/Java est-il viable ? Au dela du coté gadget peut-on reellement esperer obtenir un jeux digne de ce nom avec Java ?

    J'ai commencé a regardé du coté du jsr-231 (jogl) comme indiqué dans un post précédent mais tout cela ne me semble pas très réactif.

    j'ai également parcouru les différents forum ou article sur le sujet mais aucune comparaison ou mention n'a été faite sur les perfs reelles !!

    Donc Java/OpenGL Utile ou pas ?
    C++ a-t-il encore un interet du coup ?

  2. #2
    Membre expérimenté Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Par défaut
    C'est pas un débat, ça ....

    Java / openGL c'est eventuellement utile si tu cherche a faire des petits jeux genre jeux en flash, mais en 3D.

    Apres, si tu cherche a faire des vrais jeux, oublie java.

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Par défaut
    En fait new.proger, je me suis retrouvé un peu dans la même situation que toi.
    Fan de C++ et d'OpenGL j'ai du pour des raison professionnelles il y a un bon moment passé a JAVA.

    Au début j’étais contre à 200% et au final je trouve certaines commodités dans ce langages.

    J'ai donc décidé cette été d'entreprendre des recherches sur les résultats Java/OpenGL mais j'ai rien trouvé de concluant.

    J'ai donc pris mes 2 mains (dont une gauche ) et mon clavier et je m'y suis mi. Pour le moment je suis déçu de Java3D. LWGL je n’aime pas par contre Jogl a un coté objet sympa (je pense même m'inspirer de certain truc pour ma bibliothèque perso).

    Mais bon pour le moment les perfs ne sont pas vraiment au rendez-vous, je ne suis pas un monstre de Java (ni de C++ d'ailleurs) mais l'ensemble de fait pas preuve d'une grande réactivité.

    Maintenant Jogl n'en est encore qu'a l'étape de JSR (231) et donc a peu de chose prêt de beta.

    Je pense que des avis plus expert (mais objectif) serait intéressant car aujourd'hui tout le monde veut faire son jeu et le JAVA reste tout de même plus accessible au débutant.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Java c'est des la base pas concu pour les appli tres performantes, mais plutot pour du code souple, reutilisable et maintenable.

    C'est donc une excellente solution pour un petit jeux. Mais si tu compte avoir de grosses perfs oublie.

    En effet, il y a plusioeurs choses qui font que ca ne sera jamais aussi rapide que du C++. Je m'explique (mais il faut deja connaitre C++, et un peu de bas niveau pour comprendre).

    En java, toutes tes fonctions sont virtuelles. Ca a un coté pratique, mais ca ralentis l'execution. En effet, une fonction virtuelle creer un branchcment indirect (on attaque la comprehension du processeur), qui difficilement previsible par la prediction de branchement, et conduit dans la plupars des cas a une rupture de pipeline + un acces memoire pour aller cherche le nouveau code. Au final minimum 40 cycles de perdus . . .

    Coté gestion de la memoire, elle marche via un systeme de compteur de reference (comme les pointeurs intelligents en gros). le probleme c'est que ces compteurs doivent etre thread safe, et donc declenchent des synchro et des barrieres memoires. Ici aussi, beaucoups de temps est perdu.

    Enfin, le fait d'utiliser un SDK tres fournis a un coté tres pratique mais il a son revers : Il faut charger ce SDK en memoire, ce qui fait qu'un simple hello world prendre a lui seul 50Mo de memoire. Ceci a plusieurs effets pervers : des caches crash (sauf si ton cache processeur fait plus de 50Mo ce qui m'ettonerais fort), et deux, les branchement provoqués par 50Mo de code vont grandement diminuer l'efficacité de l'unité de prediction de brachement, enfin ca prend de la bande passante memoire.

    Bon, ceci n'est qu'un bref appercu, et il y aurait pas mal d'autres choses a dire, mais il faut garder en tete que java a pas ete concu pour faire des applis performantes. ca n'en fait pas un mauvais langage (il est portable, peut etre devellopé rapidement, donc gain financier, le code est reutilisable, maintenable, et exempt de la majeur partie des bugs courrants, buffer overflow, fuite de memoire).

    En resumé : oui pour des jeux ne demandant pas trop de ressources, non pour les autres.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2005
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2005
    Messages : 263
    Par défaut
    Tribal Trouble
    Un jeu commercial en 3d fait en java...

  6. #6
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    Citation Envoyé par luckyvae Voir le message
    Tribal Trouble
    Un jeu commercial en 3d fait en java...
    ha bah ca donne envie de faire des jeux en Java

    plus serieusement, on peut tout a fait faire des jeux en Java, il faut juste avoir à l'esprit qu'on ne peut pas faire toutes les optimisations bas niveau nécessaires à la réalisation d'un jeu au top de la technique. Il suffit de voir qu'ils ont mis 10 ans pour arriver au niveau de performance de quake 2
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/10/2010, 04h19
  2. OpenGL en java...
    Par just1980 dans le forum OpenGL
    Réponses: 2
    Dernier message: 09/05/2005, 20h42
  3. comment utiliser de l'OpenGL avec du Java ?
    Par DjiZ dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/01/2004, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo