Ensuite, si le serveur met 0.5s pour te répondre, c'est pas grave. Si ton appli tourne a 2fps . . .
Mais je te rejoint sur le fait que le GC n'est pas si gênant en termes de ralentissement. Seulement ton exemple n'est pas pertinent
Ensuite, si le serveur met 0.5s pour te répondre, c'est pas grave. Si ton appli tourne a 2fps . . .
Mais je te rejoint sur le fait que le GC n'est pas si gênant en termes de ralentissement. Seulement ton exemple n'est pas pertinent
Même si il semble plutôt jolie et sympa, ça n'as rien avoirs avec un gros jeux.
c'est sensé prouver quoi????
[edit HS car non temps réel]
comme tu t'interesse au rendu, si ca peut t'intéresser, il y as cette appli en java qui es assez bluffante
http://sunflow.sourceforge.net/index.php?pg=gall
[/edit /HS ]
J'ai trouvé un jeux commercial de qualité fait en partie en Java.
Il s'appelle Chrome.
Images
Article Wikipédia anglais
le site de chrome ou ils disent que leur editeur de carte en 3D est fait avec les classes en Java du jeux
Il est sortie en 2003.
Il a eu une suite (Chrome Specforce), et il devrait y avoir une 3eme suite (Chrome 2) d'ici quelques temps.
Java sert pour toute la logique du jeux (l'intelligence artificielle, etc...).
Je ne sais pas si la phisique est traité en Java.
Je n'ai pas trouvé en quoi a été fait le moteur graphique, mais je suppose qu'ils en ont acheté un tout fait en C++.
Donc, en 2003, le GC de Java ne réduisait pas à néant l'interactivité.
Voila gouessej, je pense qu'on peut enfin affirmé sans contestation possible que Java est possible pour les jeux AAA, et pour tous les autres jeux.
Je nuancerais tes propos, personne n'a jamais dis que java n'était pas un bon langage pour scripter les jeux.
Dans "tous" les jeux commerciaux la logique est déléguée à un langage de script, que ce soit du lua, du java, du ruby ou un langage créé pour l'occasion, peut importe.
Ça montre encore une fois Java n'équivaut pas le C++ et vice-versa. (il serait aberrant d'utiliser le C++ en tant que langage de script)
Donc pour répéter ce que beaucoup disent, Java est adapté pour la plupart des jeux amateurs pas trop ambitieux, et pour les jeux à la pointe de la technologie, Java est utilisable pour la logique et non pour le moteur.
Tu noteras que j'ai mis des guillemets à tous (trop subtil peut-être, je m'excuse si ça a fait mal passer mon message) , car bien sûr je me doute (et je sais) qu'il y en a qui n'en utilisent pas. Mais les jeux à gros budget, nécessitant de grosses équipes ont tout à gagner à utiliser un langage de script. Cela permet en plus d'augmenter la durée de vie de certains jeux en laissant à la communauté la possibilité de créer des mods.
J'ai dit aberrant d'utiliser le C++ en tant que langage de script, et laisser à un autre langage (lequel ?) la partie moteur graphique/son/système, ce qui ne doit pas être possible (mais je n'affirme pas parce que je ne connais pas).
Tous les jeux n'ont pas besoin de mods, et même toutes les plateformes ne sont pas faites pour en supporter. Je parle notamment de ce qui est "embarqué" sur console (salon ou portable) vu que c'est mon domaine. Ouis, on peut gagner à utiliser du script, tout comme on peut en perdre de la performance (notamment sur Wii, nous avons décidé de ne pas utiliser de script parce que ca allourdirait trop la programmation sans pour autant faciliter le développement (genre restarter l'application à 0 dès qu'il n'y a qu'une ressource qui change)). Puis la carte SD est interdite à lÄutilisation, donc exit les mods.
Et du moment que ce sont les programmeurs qui mettent en application le gamedesign, le language de script ne sert plus à grand chose...
Je suis tout à fait d'accord avec toi, on va pas faire du hors-sujet parce que j'ai fait une généralité, le débat n'est pas là... et dans ma tête je parlais des block-busters PC (Wow, Crysis, et même Halo sur console), qui eux embauchent des game-designers qui ne sont pas forcement des experts du C++.
Je répondais juste à Tulipebleu qui affirmait que : "Java est adapté aux vidéos AAA car Java est utilisé en tant que langage de script dans un jeu de ce type"; alors que ça n'en n'est pas une démonstration puisque le moteur n'est pas en Java.
Si je suis ta logique, tout n'est pas non plus en C++ (le vrai, le moderne), mais aussi en C ou ASM, ça montre bien que le C++ ne sera jamais inégalé dans ce domaine.
Bref.
Il faut savoir ce qu'on veut montrer.
On veut montrer que Java peut maintenir des performances sensiblement égales à C++, ou bien on veut montrer qu'on peut avoir des perfs de l'ordre de 70-90% au moins d'un jeu C++ avec Java ?
On dirait que certains disent que si c'est pas au moins 95%, c'est le drame ! Les ordres de grandeurs ça vous parle ou quoi ?
Comme si les derniers jeux méga gourmands tournaient très rapidement sur les machines des joueurs dès la sortie en haute résolution...
D'autant que de nombreux jeux ne demandent pas des foudres de guerre comme machine.
Prenez les jeux blizzard par exemple. C'est des block busters et ca tourne chez tout le monde.
Si je ne penses pas que java va se tailler la plus belle part dans le domaine du jeu, je penses que D a du potentiel.
C'est faux, on peut tout à fait utiliser Java pour le moteur même pour des jeux à la pointe alors il faut arrêter de cantonner Java à des jeux à la marge.
D a du potentiel pour l'écriture de pilotes et pour la programmation systèmes, il reste proche de C et C++ tout en permettant d'écrire certaines choses plus simplement, il dispose d'un ramasse-miettes tout comme Java mais il est encore moins utilisé que Java dans les jeux vidéo pour le moment.
Dernière modification par Invité ; 30/08/2008 à 11h29.
Il est clair qu'il faut arrêter de stigmatiser Java en terme de performance car ce n'est pas justifié comme je l'ai déjà dit.
Je n'irai pas jusque là mais je trouve que l'acharnement contre Java est ridicule et qu'il faut arrêter de fétichiser C++. Le jour où un autre langage "mieux" que Java apparaitra, je pencherai mon nez dessus comme je l'ai fait pour d'autres langages. J'ai déjà apporté quelques éléments de réponse concernant ce qui pourrait expliquer que les jeux commerciaux utilisent peu Java. Je ne suis pas d'accord avec ceux qui racontent qu'on ne peut pas faire de jeux Java avec des technologies de pointe alors que les ingrédients sont là (j'ai donné plein d'exemples d'API et de moteurs) même si aucun éditeur n'a encore franchi le pas d'écrire un jeu comme Farcry en Java (ce qui ne veut pas dire qu'aucun jeu commercial n'est écrit en Java).
Pour l'installation des jeux, on peut aussi utiliser Izpack ("package once, deploy everywhere"), c'est très pratique et on peut tirer partie d'un grand nombre de points d'intégration sur la plateforme. Il se peut d'ailleurs que certains d'entre vous aient déjà installé des jeux vidéo écrits en Java sans le savoir.
Dernière modification par Invité ; 30/08/2008 à 11h20.
Je ne comprends plus la question à la base.
A l'heure actuelle, il n'existe pas un seul jeu AAA qui soit purement écrit en C++. Pas un. Comme dans "aucun".
Alors si le but est de montrer que Java peut être employés pour effectuer certaines tâches dans un jeu, je crois que la réponse à cette question a été donné dans la discussion. Combien de fois a-t-il été dit ici même que Java pouvait être employés dans les jeux, y compris pour effectuer certaines tâches dans des jeux classés dans la catégorie des AAA ?
La différence fondamentale, c'est qu'un jeu AAA peut être programmé entièrement en C++ (c'est un process couteux, notamment parce qu'il faut s'assurer que les programmeurs gameplay maitrisent le langage; ca alourdit nettement la base de code, ca rends le jeu difficilement modifiable parce que la plus petite modification necessite la recompilation d'au moins un module, etc. ON prefère donc passer par des langages de script pour simplifier et accélerer le développement).
Peut-on faire la même chose en pur Java ? Franchement, j'en doute. Quand on voit les problèmes de performances posées par des applications un poil complexe comme Eclipse (qui n'en reste pas moins un très bon produit. C'est juste qu'il faut une bécane récupérée sur le bureau de l'Ange Gabriel pour faire tourner un éditeur...), j'ai du mal à imaginer un jeu complexe écrit entièrement en Java.
(pas besoin de parler d'ordre de grandeur; je rappelle que pour qu'un jeu tourne à 60 fps, il faut que toutes les opérations effectuée entre le rendu de 2 frames, y compris le calcul de ce qui va être envoyé au GPU, ne prennent que 16ms).
Mais je reste persuadé que les fans de Java vont me prouver que j'ai tort.
Le souci dans ce raisonnement étant qu'on ne sait pas (je n'ai pas regardé le code d'Eclipse, je ne sais pas si c'est OS) si Eclipse est bien programmé ou si c'est une énorme usine à gaz
Faudrait regarder le code. On peut toujours programmer un Editeur en C++ qui rame à fond, suffit de mal programmer
F.
Eclipse est open source, tu peux donc regarder le code.
Mais la question n'est pas là. J'aurais pu prendre d'autres applications (Borland Together, ... pour être honnête, je me remets de ma soirée d'hier et mon cerveau est un peu en vrac. Mais bon: on connait tous des applications Java...), le résultat est toujours le même: dès que l'on atteint un certain niveau de complexité, une application Java devient lourde. Si on peut admettre que certaines sont mal codées, il est difficile de se dire que toutes les applications Java d'envergure le sont - là, ça serait extrêmement méchant pour les développeurs Java.
Donc si le problème n'est pas lié à la façon dont le programme est écrit, c'est qu'il est lié à autre chose: l'environnement d'exécution. Mais l'environnement d'exécution est fait de deux parties: la partie native, qui est la même pour tous les programmes, et l'environnement d'exécution spécifique à Java. On peut montrer aisément que la partie native n'est pas en cause - qui est-ce qui reste ?
le débat a un peu/complétement dévié sur "Le langage Java est-il adapté pour les jeux vidéo AAA ?"
Java c'est des millions de jeux :
- pour telephones portables,
- Web casual games
mais aussi:
- MMORGP : runescape
- FPS : Night Squad 2
- RTS : Tribal trouble
pour ce qui est du AAA, il n'y a pas je pense de point techniques bloquants mais les binding opengl sont assez recent et il n'y a pas encore à ma connaissance de binding Directx ? mais vu le budget de ce type de jeux ce ne serait pas tres lourd à produire, pas plus qu'une dll.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager