|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
C'est pas vrai qu'il n'y a pas de plein écran en Java ni que c'est lent pour afficher de la 3D temps réel! Il y a JOGL Citation:
Citation:
Ca fait belle lurette qu'on n'utilise plus d'assembleur pour programmer les jeux hormis sur les vieux shaders. Citation:
|
||||
|
|
01
|
|
|
#2 | |
![]() ![]() Michel de VerdelhanDéveloppeur informatique Inscription : novembre 2003 Messages : 2 576 ![]() |
non, ce n'est pas un préjugé... Java est nettement plus lent sur du calcul numerique haute performance, nottament par son incapacité à utilisé les dernière instruction processeur efficacement (les compilo C++ configuré en optim max on déjà du mal à les utiliser, alors un compilo JIT est encore moins à même de le faire...)
de plus, Java se traine la lourdeur du JDK avec X niveau d'indirection pour chaque appel de fonction alors que le C++ permet un inlining bien plus performant (mais la, le problème viens plus du JDK que du langage en lui même. La situation est meilleure en JME) et sinon, on peut aussi parler de l'occupation mémoire des float3 en Java ![]() Citation:
__________________
* 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 |
|
|
|
10
|
|
|
#3 | |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
http://www.kano.net/javabench/ http://www-128.ibm.com/developerwork...vaUrbanLegends "allocation in modern JVMs is far faster than the best performing malloc implementations". ![]() De l'assembleur est encore présent à quelques endroits critiques certes mais ça reste anecdotique, l'époque où on écrivait les jeux entièrement en assembleur est révolu. |
|
|
|
01
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Tony BAYARTIngénieur développement logiciels Inscription : avril 2005 Messages : 2 263 ![]() |
Citation:
![]() Citation:
java c'est de l'interprété, il va donc se comporter différement selon l'implémentation de la machine virtuelle le c++ compilé c'est destiné à un processeur, ce n'est pas interprété mais exécuté directement, java ne pourra jamais se permettre d'être plus performant que le c++, au mieux il le battra dans certains domaines comme les allocations / désallocations mémoire mais c'est grâce à un gestionnaire mémoire (le garbage collector), écris en un en C++ (il en existe) et tu enterres java pour les appels de méthodes aussi, le principe d'empilage prend du temps cpu, c'est parfois mieux géré en java, mais faut pas en faire trop java est performant tant qu'on ne va pas saturer la machine virtuelle qui elle même consomme déjà de la resource (ram + cpu) si on arrive aux limites de celle-ci les perfs s'effondrent, faire du calcul ça va, faire un jeu qui demande de la resource CPU + RAM + Graphique ça commence à faire mal si java était plus performant que le c++ pourquoi aucun jeu commercial n'est écrit en java ?
__________________
Tutoriels OpenGL Je ne répondrai à aucune question en MP - Si c'est simple tu dis que c'est compliqué et tu le fait - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire. |
||
|
00
|
|
|
#5 |
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Il faut savoir que java n'est pas que du pur interprété. Avec l'introduction de hotspot dans la machine virtuelle de Sun, les parties les plus souvent utilisées sont compilées en code natif et améliore pas mal les performances (évidemment, à la première exécution, faut un peu attendre que le code soit rodé). La machine virtuelle de Sun Java pourrait être grandement améliorée (dixit gorgonite qui avait travaillé sur des optimisations de la machine virtuelle qui battait largement la vm de sun)
__________________
Je ne répondrai à aucune question technique en privé |
|
|
00
|
|
|
#6 | |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
Regarde ça : http://weblogs.java.net/blog/yensid/...ame_devel.html "And, in some cases the code is faster. JIT compilers can analyze runtime patterns and adjust compilations. Native compilers can't do that." Java tire partie d'optimisations dynamiques impossibles à mettre en place sans JVM, il ne se contente pas des optimisations statiques. |
|
|
|
00
|
|
|
#7 | |
![]() ![]() Michel de VerdelhanDéveloppeur informatique Inscription : novembre 2003 Messages : 2 576 ![]() |
Citation:
![]() sinon, citer le blog d'un mec qui bosse chez sun, ce n'est peut être pas la façon la plus objective d'argumenter... d'ailleurs, si la JVM peut faire des opti à la volé, elle est complètement incapable d'utiliser à bon escient les instruction SIMD et autres que certains compilo C++ réussissent à utiliser (insuffisament certe, mais déjà beaucoup plus que Java) Pour info, les essais de portage pure Java de bullet, le moteur physique open source utilisé par blender etaient 10 à 50 fois plus lents qu'en C++... donc utiliser ça dans un jeu Après, je ne dit pas que Java ne permet pas de faire de jeux, mais faire du AAA en Java, c'est encore loin d'être possible (et d'ailleurs, ce n'est pas l'objectif de ce langage)
__________________
* 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 |
|
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() Tony BAYARTIngénieur développement logiciels Inscription : avril 2005 Messages : 2 263 ![]() |
Citation:
que les compilos natif ne soient pas capables de faire des optimisations dynamiques c'est une chose qui va tendre à disparaitre avec la nouvelle génération de compilateurs destinés aux massivement parrallèle (multiplication des cores toussa) mais de là à utiliser java dans un jeu commercial ce n'est pas une question de changement de technologie Citation:
et puis dire qu'ils ont beaucoup investi là dedans c'est vrai, même qu'ils continuent d'investir beaucoup, mais c'est un peu décalé face à la réalité combien de fois pour un nouveau jeu ils repartent de zéro ? ou achètent un moteur tout fait en jav... euh non en C++, je me demande même s'il existe des moteurs de jeu en java (pas juste une api) aujourd'hui si tu veux utiliser java pour un jeu vidéo, faut t'accrocher et tout te taper à la main, tu as accès à l'accélération 3D avec java3D ou jogl mais... à ma connaissance ça s'arrête là en passant, vu que tu as l'air bien calé sur le java, si tu connais des bibliothèques pour le développement de jeu destinées au java fais le nous savoir, ça intéressera forcément du monde des programmeurs java qui n'ont pas envie de se mettre au C++ il y en a
__________________
Tutoriels OpenGL Je ne répondrai à aucune question en MP - Si c'est simple tu dis que c'est compliqué et tu le fait - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire. |
||
|
00
|
|
|
#9 | ||
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
Puff.... Ok tu veux jouer à ça? Cela aurait pu s'appeler Jake3 mais c'est plutôt "Undead Arena" : http://home.halden.net/tombr/squareh...uareheads.html ![]() Et toi quelles sont tes sources? Avant de critiquer les miennes, fais le ménage chez toi. De plus, il y a des gens qui codent mal en C++, il y a aussi des gens qui codent mal en Java, ça ne veut pas dire que Java est lent. bullet n'est pas le seul moteur physique qui existe à ce que je sache, JME contient un module appelé JME-Physics qui marche plutôt bien et ce n'est pas le seul. Enfin, le langage ne fait pas tout. J'avais lu l'an dernier un article là-dessus. Le choix des algorithmes et la façon de programmer ont plus de poids sur les performances que le langage de programmation en lui-même. Un ancien collègue devait programmer une IA pour un mini-jeu de stratégie, le choix du langage était libre à condition de respecter un protocole réseau. Il a pris Java, les autres ont pris C. Dans ce jeu, il devait se battre en duel avec chacun de ses camarades de classe tour à tour. Il a battu presque tout le monde non pas parce qu'il a pris Java au lieu de C mais parce qu'il n'a pas calculé l'arbre tout entier, il a calculé suffisamment de noeuds pour que ce soit efficace. A bon entendeur. "java a bien 10 ans de retard sur le C" tu balances ça comme ça, quasiment sans preuve, c'est pas constructif. Citation:
- une vieille version de visual J++ permettait d'utiliser DirectX - Java3D utilise Direct3D et DirectX mais ne t'y donne pas accès directement La majorité des jeux vidéo 3D sur PC utilisent DirectX, c'est une des raisons. Ta connaissance sur les jeux vidéo en Java est un peu limité, tu devrais passer un peu plus de temps sur www.javagaming.org. De plus, j'ai déjà cité quelques exemples de moteurs 3D donc tu ne dois pas tout te taper : JME, Aviatrix, Xith3D, JPCT, Irrlicht Engine (Java binding), Espresso3D, 3DzzD.....
|
||
|
|
01
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() Tony BAYARTIngénieur développement logiciels Inscription : avril 2005 Messages : 2 263 ![]() |
j'ai pas l'utilité de passer mon temps sur des site pour le java, je développe déjà en C++
pour irrlicht, tu peux le retirer de ta liste, c'est du binding (tu le dis toi même )irrlicht est un moteur développé en C++ pour le reste j'ai pas tout regardé mais ça peux etre intéressant pour ceux qui ne veulent pas se mettre à un autre langage que java ça permet de développer des démos voire des petits jeux
__________________
Tutoriels OpenGL Je ne répondrai à aucune question en MP - Si c'est simple tu dis que c'est compliqué et tu le fait - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire. |
|
00
|
|
|
#11 | |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
C'est pas juste de dire qu'en gros, seuls ceux qui ne veulent pas faire autre chose que du Java s'en servent pour les jeux et justement, si tu connaissais mieux les développeurs de jeux vidéo en Java, tu saurais que par exemple, Bloodridge est loin d'être juste un petit jeu. Enfin, je ne comprends toujours pas beaucoup de gens ici veulent absolument nous faire croire qu'il n'y a que le C, le C# et le C++ qui sont adaptés pour faire de vrais jeux vidéo bien qu'il existe déjà quelques rares jeux vidéo commerciaux écrits partiellement voire totalement en Java. Pourquoi cet acharnement? Il y a d'autres voies viables, pas seulement Java d'ailleurs. |
|
|
|
00
|
|
|
#12 | |||
|
Expert Confirmé Sénior
![]() ![]() Tony BAYARTIngénieur développement logiciels Inscription : avril 2005 Messages : 2 263 ![]() |
Citation:
Citation:
rarement "en attendant" de réécrire le code Citation:
faire un jeu vidéo en java n'est pas impossible ni très difficile voir plus facile qu'en c++ mais java a des limites dans ce domaine le c et le c++ sont bien plus proches de la machine, java est plus portable chaque langage a ses avantages et ses inconvénients
__________________
Tutoriels OpenGL Je ne répondrai à aucune question en MP - Si c'est simple tu dis que c'est compliqué et tu le fait - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire. |
|||
|
00
|
|
|
#13 | ||||||
|
Expert Confirmé Sénior
![]() ![]() Emmanuel DelogetDéveloppeur informatique Inscription : septembre 2007 Messages : 1 826 ![]() |
Citation:
Il n'y a qu'à voir l'état de l'art dans les moteurs C++ (Source Engine, CryEngine 2, ID Tech 5, Unreal Engine, ...) et le retard accumulé par la communauté Java (pas de bon bindings 3D, ça aide pas). Il faudra du temps pour que les FPS java concurrencent les FPS AAA - ça, c'est objectif. Ca n'empêche pas de voir que Java s'en sort très bien pour ce qui est du développement de jeux, y compris des FPS (ça aussi, c'est objectif). Maintenant, ça ne sert à rien de rester campé sur ses positions: trop de fanboyisme tue le fanboyisme(1). Ce n'est pas parce que Java n'est pas encore au niveau de C++ que Java est un mauvais langage, et qu'il faut le prendre comme une attaque personnelle. Ce n'est pas le cas - c'est juste uns constatation, basée sur l'état de l'art et sur l'état du marché. @harrold35: les finalités d'un langage généraliste, c'est large. En ce sens, Java et C++ ont les même finalités. La différence fondamentale entre les deux langage est liée aux contraintes techniques, qui ne sont pas les même du tout. Citation:
Maintenant, cela veut-il dire que Java n'est pas capable d'en faire autant ? Bien sur que non. Ca veut juste dire que personne n'a envie de prendre le risque de faire un jeu triple A en se basant sur Java, parce qu'il faudrait re-développer toutes les couches bas niveau, et que les problèmes de performances typique des jeux combinée à la masse qui conspue la relative "lenteur" de Java font que le risque est trop grand pour simplement tenter l'aventure (au moins pour un studio pro). Surout si on ajoute à ça que le développement est fait sur plusieurs plateformes, et que sur certaines de ces plateformes les développeurs n'ont pas assez de recul sur les JVM (quand elle existent). Cependant, un peu de réflexion nous amène à la conclusion suivante: 1) un jeu qui n'est pas CPU bound tournera probablement à la même vitesse, qu'il soit écrit en C++, Java ou C#. Ce type de jeu passe son temps à attendre la carte graphique. Nul besoin d'avoir Bac+36 pour comprendre que puisque le CPU n'est pas le facteur limitant, le langage et la techno utilisés n'ont pas d'effet sur le jeu lui-même. 2) les tâches d'un jeu sont de plus en plus assistées par le hardware (rendu graphique, physique, ...). Donc on peut penser qu'on se dirige de plus en plus vers un monde de jeux GPU-bound (et non pas CPU-bound). 3) de fait, il est possible d'imaginer dans le futur que le langage qui servira à l'écriture des jeux vidéo ne sera plus exclusivement le C++. On prends déjà cette route - Rappel: schyzoid (à sortir sur XBLA) est écrit en C#. 4) en dehors de ça, la puissance des CPU augmente (exemple: le Cell de la PS3). En quoi est-ce difficile d'imaginer un jeu du type Farcry (avec la qualité de Farcry) tournant sur une JVM exploitant les possibilités de la PS3? Ceux qui se disent que Java n'a pas encore sa place dans le développement des jeux vidéos se trompent. En aout dernier, pendant la GCDC'07, j'ai interviewé Tarqüínio Teles pour Gamedev.net. Il me présentait son projet de MMO (Taikodom) utilisant des Datacenter IBM. La surprise: ces datacenters sont basées sur des rack Cell, et le programme serveur du MMO en question est écrit en Java. Pire, il tourne sur des machines virtuelles dans des environnements virtualisés - histoire d'en rajouter une couche. Ce qui n'empêche pas les modules du serveur d'être extrêmement compétitif en termes de temps de calcul. Ils gèrent la physique, l'IA des PNJ et le monde (bien plus vivant qu'un monde à la farcry). Le client est lui même en partie basé sur Java (bien que la partie sensible soit gérée par des modules C++). PS: Citation:
Citation:
PPS: Citation:
Citation:
-- (1): notamment lorsque le fanboyisme en question s'abstient de toute utilisation d'un quelconque esprit critique. Il faut réfléchir des fois...
__________________
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...] Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi. Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça. Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas. Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas. |
||||||
|
10
|
|
|
#14 | |
|
Expert Confirmé Sénior
![]() ![]() Tony BAYARTIngénieur développement logiciels Inscription : avril 2005 Messages : 2 263 ![]() |
Citation:
__________________
Tutoriels OpenGL Je ne répondrai à aucune question en MP - Si c'est simple tu dis que c'est compliqué et tu le fait - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire. |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 440 ![]() |
Citation:
Citation:
D'accord il ya Loki Games qui a fait des portage sous Linux avec SDL, mais si les éditeurs et boites de jeu préferrent C++ et Direct X c'est que d'une part Windows c'est 90% des OS installés dans le monde et que DX s'intégre parfaitement... Le vulgum pecum lui tout ce qu'il veut c'est que ça marche.. j'ai installé un simulateur de vol Open Source tournant avec Open GL ça marche pas. Désolé je suis pas là pour des polémiques sans fin moi je me mets au niveau du joueur et je veux que ça marche.. Pareil pour un jeu de stratégie Open Source y'a des tas de bricoles à installer c'est vraiment pénible..genre SDL machin lib bidule... Et ce jeu j'ai jamais réussi à le faire tourner même en recompilant.. Et le Vulgum pecuum il n'a pas envie de se casser la tête avec ça Quant aux jeux Java commerciaux il doit bien y avoir des exceptions mais je doute qu'il y en ait beaucoup.. |
||
|
|
00
|
|
|
#16 |
|
Membre éclairé
![]() Inscription : juillet 2006 Messages : 361 ![]() |
Personnellement je pense qu'un jeu commercial en Java c'est possible, mais à condition que les graphismes ne soient pas la priorité. Toutefois, c'est quand même, pour beaucoup de gens, LE point important, alors je vois mal un gros éditeur s'y risquait.
Il y a des jeux amateurs qui ont l'air assez sympa (exemples), et pas moches du tout (même si graphiquement ça n'a rien à voir avec un Crysis ou autre), qui pourraient très bien être commerciaux. |
|
|
00
|
|
|
#17 | |
|
Membre confirmé
![]() Inscription : juin 2006 Messages : 253 ![]() |
Citation:
Justement c'est intéressant que tu dises qu'il y a plein de trucs bidules machins à installer car c'est une critique que j'ai faite à pas mal de jeux open source sauf qu'il y a plus simple quand on développe en Java. |
|
|
|
00
|
|
|
#18 | ||||
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 21 ![]() |
Citation:
Si je peux faire le projet que je souhaite, avec les fonctionnalité que je souhaite et avec le frame rate visé avec le langage tartampion avec 2 fois moins de temps qu'avec le C++. Pas de soucis le langage tartampion est adopté. Un bon jeu c'est pas un jeu fait en java ou en C++, c'est un bon jeu ! Citation:
Et pour moi jake 2, quel que soit ses qualité ne me permet d'évaluer la valeur du java en matiere de 3d parce que même s'il tourne à 150 fps compte tenu de la 3D désuete je peux pas evaluer qu'elle est la part de puissance prise par le language et celle prise par l'affichage 3D. Alors que même avec une demo technologique qui se tienne un peu au niveau 3d, avec un frame rate correct je me dis le language ne plombe pas les performance et je me dis qu'il y a peut être quelque chose à faire en java... Citation:
Ceci dit je suis bien d'accord j'ai pris un raccourcis pour exprimer mon idée Citation:
je suis totalement d'accord sur ces point, je pense que dans les années a venir la donne va changer, avec toujours plus de puissance sur les machines, il est fort probable que le gain de puissance qu'apporte le c++ deviendra négligeable au regard de la lourdeur du processus de production qu'il impose. Quand un producteur comprendra qu'il peut avoir sensiblement le même produit final en moins de temps, donc moins cher a produire (mais pas a vendre) il fera vite le tour de la question. Mais c'est sur c'est pas pour tout de suite. Et merci pour l'info sur Taikodom c'est une piste interessante. D'ailleurs Si je ne dis pas une bétise il me semble que le jeu Eve online qui tient bien la route n'a pas été developpé en c++ (j'ai oublié en quel langage) pour dire que c'est quand même possible. Pour call of juarez je serais étonné que ce soit du java, mais je pense que le débat serait clos sur le fait de pouvoir utiliser java pour un jeu avec les standard actuels. |
||||
|
|
00
|
|
|
#19 | ||||
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 440 ![]() |
Citation:
Citation:
un jeu c'est pas que afficher des meshes 3d il ya l'IA derrière , est-ce que Java est performant là dessus ? Citation:
De quelle puissance parles-tu ? Intel sort toujours des CPU bloqués à 3Ghz parce que technologiquement on ne peut pas faire des CPU plus puissants... Le problème c'est que les outils de développements et les OS deviennent (inutilement) lourdingues et avec des CPU dont les performances semblent faire du surplace, je ne vois pas comment la puissance des machines peut évoluer.. Citation:
Je te dis et redis que sur mon portable pour faire tourner Flightgear pour ne pas le nommer y'avait rien à l'affichage. Pareil pour un projet de quelqu'un qui fréquente ce forum... Par contre pour des programmes commerciaux comme Vue d'Esprit oui cela fonctionne bien.. |
||||
|
|
00
|
|
|
#20 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 21 ![]() |
Citation:
Par exemple le developpement de projet 3d temps réel de type jeux publicitaires se font de plus en plus avec des middlewares qui on leur propre langage, le c++ n'y est déja plus la régle. C'était impensable il y a quelque années. Je me trompe peut être en effet mais ce n'est pas inimaginable non plus que le C++ passe la main un jour dans l'industrie du jeu vidéo. Parce que le jeu vidéo n'a pour but de developper en c++, mais de faire des jeux qui se vendent et qui sont rentables. Donc je pense qu'il faut rester ouvert, se renseigner sur les évolutions dans telle ou telle direction pour avoir une vision d'ensemble de ce qui existe. A ce titre la discussion sur le java m'interesse et je ne demande qu'a avoir des éléments pour nourrir ma reflexion. |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com