CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Notch code bien en Java?

alexGODdamn
alexGODdamn
Niveau 4
11 juillet 2013 à 15:20:57

On sait un dériver du Java? Car après avoir vue les possibilités avec Java dans les jeux vidéos (je parle pas de Minecraft, mais de Left 4k Dead) et j'aimerai également me lancer, mais je voulais savoir si c'était bien du Java.

Merci :ok:

[-ArK-]
[-ArK-]
Niveau 30
11 juillet 2013 à 15:25:50

Du java pure avec une librairie (LWJGL souvent si je ne m'abuse), sachant qu'il existe des librairies plus simples qui utilisent elles-même LWJGL comme LibGDX si tu veux te lancer là dedans :oui:

alexGODdamn
alexGODdamn
Niveau 4
11 juillet 2013 à 15:27:51

Ok merci pour la confirmation et pour les librairies, me reste plus qu'apprendre cette langue, j'ai deux mois de boulot. :-)))

stern7474
stern7474
Niveau 10
11 juillet 2013 à 16:05:59

Moi j'aime pas le java, je reconnais qu'il est plus facile, plus facile de faire du multiplateforme mais c'est un langage qui est lourd au niveau des performances et extrêmement verbeux.

Beaucoup vont me dire que c'est trop dur, mais pour moi il n'y a pas mieux que le C++, langage extrêmement complet où il est possible de faire tout ce que l'on peut faire en java et tout ce que l'on peut faire en C avec encore des choses en plus.

Après le C++, c'est quand même fait pour les gens qui savent coder, il demandera beaucoup plus de compétences et de rigueur.

[-ArK-]
[-ArK-]
Niveau 30
11 juillet 2013 à 16:14:19

Comme on le souligne souvent, si tu sais un minimum coder JAMAIS les performances de Java seront un problème si tu développe ton jeu tout seul.
Et je le trouve pas si verbeux que ça :doute:

Le java aussi c'est pour les gens qui savent coder, certes c'est plus haut niveau que le C++ mais t'as pas besoin du bas niveau que te procure le C++ pour faire un jeu indé de toute façon. :( Et avec du java à même niveau de maîtrise tu seras plus productif.

Bref on va pas retransformer ce topic en débat :noel:

stern7474
stern7474
Niveau 10
11 juillet 2013 à 16:23:26

[-ArK-] -> Je pense que des entreprises comme Google savent coder, on voit bien ce que donne le java sur Android, un besoin toujours plus intense de RAM car la gestion de celle-ci par la virtual machine est absolument affreuse.

Ensuite, je pense que si on sait coder, que ce soit en java ou en C++ on ira à la même vitesse de développement, le C++ EXIGE plus de rigueur et c'est pour ça que je l'apprécie plus. En java, tu peux y aller un peu comme tu veux sans réécrire les fonctions finalize et tout ça bref ...

Et puis si, le java est bien plus verbeux que le C++, rien que par le fait que tu ne puisses pas mettre de paramètres par défaut dans tes fonctions (et donc que tu sois obligé de réécrire plusieurs fois tes fonctions pour la même chose) et que tu ne puisses pas surcharger les opérateurs ...

Et puis ... pas d'héritage multiple ...

Transformons ce topic en débat oui :noel:

PatateChocolat
PatateChocolat
Niveau 9
11 juillet 2013 à 16:53:37

Pour palier au manque de l'héritage multiple en java il y a les Interface :ok: .
En se débrouillant bien, ça règle tous les soucis :oui: .

BuretteGraduee
BuretteGraduee
Niveau 10
11 juillet 2013 à 16:59:02

Notch utilise une lib perso issu de LWJGL :ok:
Après faut pas se lancer dans un langage pour imiter quelqu'un ... :ok:

Pour les jeux Java c'est pas super super, pour utiliser le vieux OpenGL ca va encore, mais dès que tu passe au nouveau (avec les FBO, VBO) il y a pas mal de boucherie, leurs tutos sont pas clairs, des fonctions changent, il faut jongler entre les différentes versions ... Bref pour aller plus bas niveau vaut mieux aller en C++ :ok:

Pseudo supprimé
Pseudo supprimé 11 juillet 2013 à 17:13:08

Entièrement d'accord avec stern7474

Le Java est un langage de programmation semi-interprété : les programmes codé en java sont interprétés par une machine virtuelle, donc niveau performance ce n'est pas excellent...

Le C++ est un langage de programmation compilé : pas besoin d'une machine virtuelle pour faire tourner un programme codé en C++ ;).

Il existe une version de Minecraft codé en C++ avec la lib Irrlicht (développé par un fan), graphiquement il n'y a pas beaucoup de différence (il manque juste les ennemies), mais sur mon PC cette version est deux fois plus fluide que la version originale

Même si le C++ est plus compliqué que le Java, je te conseille quand même d'apprendre le C++ ;)

Paulop
Paulop
Niveau 12
11 juillet 2013 à 17:29:15

Le Java est un langage de programmation semi-interprété : les programmes codé en java sont interprétés par une machine virtuelle, donc niveau performance ce n'est pas excellent...

Non. la JVM officielle de Oracle compile le code JIT, elle ne l’interprète pas. De plus faut dissocier le langages des implémentations. Il y a effectivement des VM qui interprète le code.

steunwellJV
steunwellJV
Niveau 10
11 juillet 2013 à 17:32:38

Minecraft était pas du tout optimisé avant une certaines mise à jour (Je sais plus laquelle mais c'était en béta me semble).C'est pas un débat ça sert à rien de partir la dessus à chaque fois que quelqu'un pose une question :hap:

Sinon pour l'auteur, Java ou C++, ça ne sert a rien d'apprendre pour faire un minecraft-like en 3D, dans les 2 tu devras compter du temps avant d'avoir le niveau donc fait d'autres jeux plus simples avant ça.

stern7474
stern7474
Niveau 10
12 juillet 2013 à 09:20:13

Non. la JVM officielle de Oracle compile le code JIT, elle ne l’interprète pas. De plus faut dissocier le langages des implémentations. Il y a effectivement des VM qui interprète le code.
-> Niveau temps d'éxécution c'est peut être pratiquement la même chose (le C++ est encore un petit peu plus rapide mais c'est pas méchant), mais qu'on ne vienne pas me dire que niveau gestion de mémoire c'est pareil ...

Pseudo supprimé
Pseudo supprimé 12 juillet 2013 à 11:19:25

"Après faut pas se lancer dans un langage pour imiter quelqu'un ..."

+1.

Un jeu comme L4kD tu peux le faire en n'importe quoi, même en javascript si ça te chante, t'auras pas de problème de perf.

Donc si tu connais déjà un langage utilise-le.
Sinon bah java... pourquoi pas. Et tu peux te pencher sur libgdx aussi.

[-ArK-]
[-ArK-]
Niveau 30
12 juillet 2013 à 11:53:49

"Je pense que des entreprises comme Google savent coder, on voit bien ce que donne le java sur Android, un besoin toujours plus intense de RAM car la gestion de celle-ci par la virtual machine est absolument affreuse. "

:d) Je parlais d'un dev de jeu tout seul et là tu me parle d'un système d'exploitation, t'abuses un peu non ? :noel: En plus si on rajoute de la ram c'est pas parce que c'est indispensable mais parce que ça coute plus rien :(
Et d'où la gestion de la ram par la virtual machine est affreuse ? :ouch: Va falloir t'expliquer là :oui:

BuretteGraduee
BuretteGraduee
Niveau 10
12 juillet 2013 à 12:15:27

Et Android n'utilise pas la même machine virtuel :
https://en.wikipedia.org/wiki/Dalvik_(software)

stern7474
stern7474
Niveau 10
12 juillet 2013 à 14:32:47

"Je parlais d'un dev de jeu tout seul et là tu me parle d'un système d'exploitation, t'abuses un peu non ?"
:d) Mais non je parle pas que du système d'eploitation, je te parle bien des applications qui sortent sur Android, tu peux suivre l'utilisation de la RAM par une application et certains jeux prennent à eux seul plus de 600Mo de RAM sur les téléphones Android (pour ma part un SGS3), chose impossible sur un iPhone 4S qui ne possède que 512Mo de RAM et qui pourtant affiche la même performance. C'est donc bien que l'objective-c (qui est du même niveau que le C++) à de biens meilleures performances que le java.

"En plus si on rajoute de la ram c'est pas parce que c'est indispensable mais parce que ça coute plus rien"
:d) Non car si c'était le cas, je vois pas pourquoi Apple se limiterai à 512Mo alors que la concurrence mise sur 1Go voire 2 ... Le besoin en ram s'explique parce qu'on utilise de plus en plus des langages comme le java ou des langages interprété sur le web comme le javascript qui demandent énormément de RAM. On en rajoute pas juste par plaisir, c'est bien parce que la demande augmente ...

"Et d'où la gestion de la ram par la virtual machine est affreuse ? Va falloir t'expliquer là "
:d) Voici un benchmark représentatif des performances de java 7 sous plusieurs utilisation face à celle du C++ : http://benchmarksgame.alilioth.debian.org/u64q/java.php
L'utilisation de RAM peut être de 20% à 4000% supérieur en java suivant les objets gérés.

J'ai toujours eu la sensation que le java était motivé par les vendeur de RAM qui veulent s'en mettre plein les poches.

Après attention, j'ai pas dit que le java était le pire des langage de ce côté là ... Le C#, même s'il apporte des fonctionnalités intéressantes qui n'existent pas en java est bien pire que le java en terme de performances, et les langages interprétés le sont encore plus ...

Paulop
Paulop
Niveau 12
12 juillet 2013 à 14:58:07

Oui la JVM utilise plus de ram, je répondais juste au fait que des gens pensent toujours qu'en 2013 Java est interprété.

[-ArK-]
[-ArK-]
Niveau 30
12 juillet 2013 à 15:01:09

Oauis enfin les applis sur android elles sont souvent codées comme des porcs, mais j'ai remarqué qu'en effet la création d'objets demandait beaucoup de ressources :(
Mais sur PC ça se sent beaucoup moins, après je sais pas si c'est à cause de la JVM android qui serait plus lente (bon bien sur le PC est aussi largement plus puissant mais même, sur android c'est quand même très chaud à ce niveau là)
Pour un jeu créé par un gars tout seul est-ce que la gestion de la mémoire va lui poser problème ? Non, et au pire il y a des astuces pour minimiser cet effet comme utiliser des pools pour limiter un maximum la création d'objets. Beaucoup moins de prises de tête pour le programmeur, moins de bug, et une meilleur productivité :cool:

Sinon c'est chaud j'avais oublié que l'iphone 4s avait que 512 mo de ram, donc ok :noel:

On peut voir d'ailleurs sur ton benchmark qu'en terme de vitesse pure, Java est pas si mal, et donc pour faire un JV ça pose pas de pb (je parle pas des jeux AAA, mais des jeux qu'on fait seul ou avec une équipe réduire ça posera pas de soucis). En plus grace à sa portabilité, tout le monde pourra y jouer et le tester sans que t'aies à te prendre la tête. Tu pourrais même convertir tes jeux avec GWT vers du HTML5 & JS pour une ouverture ultime :cool:

Pour la lenteur du C# t'es sûr ? j'avais lu que c 'était les mêmes perfs que Java à peu de choses prêt :doute:

stern7474
stern7474
Niveau 10
12 juillet 2013 à 15:25:21

[[-ArK-] -> Comme tu l'as dit, certaines applis sur Android sont très mal codées et c'est bien pour ça que je trouve que ce langage est énervant, c'est que justement, il te permet de coder comme une me**de ...

Je ne pense pas que la JVM d'android est plus lente, je pense que c'est juste que le java n'est pas forcément le langage le plus adapté à une utilisation embarqué sur un téléphone qui possède des ressources très limitées face aux PC.

Et en terme de vitesse c'est ce que j'ai dis, c'est pas bien supérieur au C++, c'est vraiment en terme de RAM que le java est pourri.

Même sur PC, très peu de jeux vidéo sont fait en java, même les petits. Regarde les projets du concours posté sur ce forum, aucun n'est fait en java.

Le C# n'est pas plus lent que le java, ou pas de beaucoup, mais il utilise encore plus de RAM (car le java a quand même pas mal d'année dans les jambes et ont pu optimiser leur langage) ...

Paulop
Paulop
Niveau 12
12 juillet 2013 à 15:30:04

Java est plus lent quand il s'agit de travailler sur des structures de données complexe ou des algo complexes.

Avec du C ou C++ tu as beaucoup plus de maitrise sur tes types ( http://stackoverflow.com/questions/258120/what-is-the-memory-consumption-of-an-object-in-java ) tu peux beaucoup plus optimiser tes algos pour bien utiliser le cache processeur par exemple.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment