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

Java Discussion :

Java, un bon choix pour mes besoins ?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut Java, un bon choix pour mes besoins ?
    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 ?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je ne peux pas te répondre sur tous les points (en particulier sur la partie mobile où je n'y connais rien), mais à mon avis, oublie l'argument "applet" pour l'exécution côté navigateur, la technologie semblant virer à l'obsolescence, probablement à cause de nombreux problèmes de sécurité. Pour la partie plugin, regardes du côté OSGI : c'est, à mon avis, un excellent support pour la gestion de la modularité (notamment multi-plateforme).

    Globalement, je verrasi bien une solution hybride java/osgi, C/C++ (via JNI, comme par exemple JOGL pour la 3D) + javascript pour l'exécution côté navigateur (via des bibliothèques style angular, par exemple, pour gagner du temps sur les dev).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Merci pour vos réponses,

    Citation Envoyé par joel.drigo Voir le message
    Pour la partie plugin, regardes du côté OSGI : c'est, à mon avis, un excellent support pour la gestion de la modularité (notamment multi-plateforme).
    Ceci me semble très intéressant et m'évitera de devoir le coder moi-même.
    Par contre je ne trouve pas vraiment de détails "buvables" quant à son fonctionnement

    Citation Envoyé par joel.drigo Voir le message
    javascript pour l'exécution côté navigateur (via des bibliothèques style angular, par exemple, pour gagner du temps sur les dev).
    Le problème c'est qu'il faudra réécrire une partie du code en JavaScript
    Peut-être vaudrait-il mieux créer un client "léger" qui téléchargera les ressources qu'à partir du moment où il en aura besoin ?

  4. #4
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Le problème c'est qu'il faudra réécrire une partie du code en JavaScript
    Regarde du coté de emscripten, il est possible que tu n'ai pas grand chose à changer / refaire.
    (Niveau performance ça à l'air correct, en particulier avec asm.js.)

  5. #5
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Citation Envoyé par Iradrille Voir le message
    Regarde du coté de emscripten, il est possible que tu n'ai pas grand chose à changer / refaire.
    (Niveau performance ça à l'air correct, en particulier avec asm.js.)
    Je connais emscripten, mais :
    • j'ai peur que cela ne pose des problèmes si j'utilise trop de bibliothèques
      • il faudra compiler les bibliothèque pour emscripten ;
      • avoir trop d'indirection risque de se voir au niveau des performances ;
      • certaines bibliothèques pourrait ne pas être compatibles avec emscripten (?)

    • pour l'utilisation de la 3D, je ne sais pas si tous les navigateurs vont supporter la charge requise par emscripten.

  6. #6
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Pour avoir un peu trempé dans ce genre de problématique, franchement, l’exécution sur navigateur, il n'y a pas de solution idéale. Comme déjà dit, les applets sont en train de devenir obsolètes. Si tu veux faire de la 3D, tu seras obligé de les signer. Et si tu ne le fait pas par un vrai certificat (payant), les utilisateurs devront mettre la sécurité java au minimum et elles risquent de ne plus fonctionner à tout moment (le message d'avertissement actuel prévient que les applets non signées par certificat reconnu seront bloquées ultérieurement).

    Concernant le passage Java desktop <-> Android, c'est loin d’être aussi facile qu'on pourrait le croire. Le plus simple, selon moi, serait d'utiliser un moteur 3D qui est déjà compatible. Par exemple JMonkey qui est open source et gratuit. Il y a pas mal de videos qui trainent sur ce moteur qui montrent des exemples. Ca donne une idée des performances. Ceci dit, dans le monde du C++, des moteurs capables de générer du code ou des exécutables pour android existe peut être aussi...

    Au sujet des performances, franchement, je ne suis pas sur qu'il y ait une si grosse différence. Quand on voit ce que font certains jeux, on se dit que ceux qui mettent à genoux une carte graphique en affichant 15 modeles 3D ne s'y prennent pas comme il faut. Meme s'il faut reconnaitre que c'est plus simple de dire que l'outil est mauvais plutot que de reconnaitre que l'architecture choisie ne convient pas

  7. #7
    Membre Expert
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Par défaut
    Hello,

    Niveau performance, si tu es limité par le GPU tu ne devrais voir quasiment aucune différence. Chaque appel à une fonction native (OpenGL par exemple) aura un léger surcout qui devrait être négligeable par rapport au temps que prendra la fonction.
    L'exception étant : si tu as de très nombreux (et court) appels à DrawPrimitives / DrawIndexedPrimitives, là tu sentira vraiment le surcout. Mais si c'est le cas, tu auras de toutes façons des performances faibles aussi en C++ : surement un problème de conception / optimisation.

    Si tu es limité par le CPU, alors le passage à Java se fera sentir.

    Pour la portabilité du code, tu peux fournir un exe Windows, et les sources. Un utilisateur de Linux à déjà probablement dû compiler lui-même de nombreux programmes et devrait savoir le faire.
    Mais sur ce point... C'est vrai que le C++ c'est pas la joie.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/04/2013, 10h04
  2. Réponses: 58
    Dernier message: 29/10/2010, 12h35
  3. Faire le bon choix pour ?
    Par Benew dans le forum Débuter
    Réponses: 1
    Dernier message: 07/04/2008, 21h02
  4. Quel écran pour mes besoins?
    Par virgul dans le forum Périphériques
    Réponses: 11
    Dernier message: 26/04/2006, 15h44
  5. Serveur FTP - Lequel choisir pour mes besoins
    Par etumed dans le forum Réseau
    Réponses: 3
    Dernier message: 19/03/2006, 13h58

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