Forum francais Minecraft. Serveur de jeu FR-Minecraft et astuces pour Minecraft.

Pages :: 1

#1 04/12/2012 00:27:07

Membre
Lieu : Beleriand

Messages : 25

Minecraft, un monstre dévoreur de Ram ? [Prog]

Bonsoir à tous !

J'aimerais vos avis sur un sujet qui me tracasse depuis un bout de temps... En effet comme vous le savez tous Minecraft est entièrement codé un Java ce qui le rend accessible à bon nombres de programmeurs lambda permettant a des milliers de mods de voir le jour mais nous éblouis également par ces millions de lignes de codes. J'ai constater cependant que la quantité de Ram dévoré pour un si petit jeu est astronomique et ayant discuté avec un bon pote qui code comme un chef, j'me demandais si le fait de compiler Minecraft permettrai l'avènement de serveur sans lag, parfaitement fluide, avec des capacités énormes aux détriments peut être d'une grande diversité de mod/plug in ... Balancez vos avis et expliquez pourquoi !

Hors ligne


Les nains sont des sprinteurs, redoutables sur de courtes distances !

#2 04/12/2012 01:47:25

Membre

Messages : 78

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

C'est à dire, compiler Minecraft?
Il est déjà "compilé" en bytecode Java, lui-même interpreté par la machine virtuelle java (JVM).
A ma connaissance, ce n'est pas possible de le "compiler d'avantage"... ^^
Après, c'est clair que Java est loin d'être le langage le plus rapide. Si Minecraft avait été conçu en C ou C++, il aurait été nettement plus rapide.
Mais reprogrammer un programme tel que Minecraft dans un autre langage, ça demanderait un temps fou...

#3 04/12/2012 11:56:08

VIP

Messages : 568

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

Perso ce n'est pas la compilation de  Minecraft en lui meme qui pose probleme je trouve .... mais plutot Java!
qui soit dit en passant n est pas fait pour les jeux, deja Java se limite a 1024 Mo de ram utilisé donc Minecraft et plutot bien compilé pour seulement 1go de ram je trouve... ( il est toujours possible d augmenter la ram , je connais des astuces mais dans ce cas, java me pose des problemes pour d autres programmes qui se mettent a bugé )

Mais si tu peu reduire encore plus les lignes de code, personnellement je ne dit pas non... d autant que sa rendrait un grand service pour les serveurs mais aussi pour les petite configuration de pc.

Hors ligne


mca.png
La folie, c'est de faire toujours la même chose et de s'attendre à un résultat différent.
Albert Einstein.

#4 05/12/2012 19:39:41

Membre
Lieu : Beleriand

Messages : 25

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

D'un point de vue compilation je suis pas expert ne serait-ce que pour le terme en lui même ... On constate quand même que y'a un paquet de ligne qui sont inutiles et pourrait être réunie/supprimée ! Pis donc on est d'accord le Java c'est pas genial sauf pour les petits moddeurs toussa ... Merci pour vos réponses, le débat reste ouvert !

Hors ligne


Les nains sont des sprinteurs, redoutables sur de courtes distances !

#5 07/04/2013 20:21:13

VIP
Lieu : Je cherche encore ...

Messages : 606

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

Je ne mis connee absolument pas en coddage, mais vue toutes les mise a jour qu'il y a et toutes les nouveaute ajoute a chaque nouvelles versions je pense que minecraft commence a devenir trop "lourd". Mais perso je trouve que depuis que l'on a quitte la Beta le jeu tourne plus vite.
Bis'

Hors ligne


goldore + furnacefront = gold
diamond + chestfront = 05

#6 13/04/2013 00:53:48

VIP
Lieu : Nice

Messages : 109

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

Non mais en réalité d'une part Java n'est pas un langage adapté pour un moteur physique tel que Minecraft doit avoir besoin, et d'autre part le code en Java est pas spécialement bien optimisé.

Pour en revenir à un autre langage de programmation, il est possible de reprogrammer le jeu en C++ cependant la façon de joueur va être très différente sur " certain point ".

Hors ligne


mca.png

#7 13/04/2013 11:13:12

VIP
Lieu : Partout (je suis quantique)

Messages : 849
Site Web

Re : Minecraft, un monstre dévoreur de Ram ? [Prog]

bon, juste parce que lire çà, ça me brûle les yeux, je vais répondre...

donc non, il n'est pas possible de compiler minecraft, étant donné que pour que vous puissiez l'utiliser comme vous l'utilisez.... il a déjà été compilé !

Même les modeurs ne compilent pas minecraft: ils compilent leur propre mod, que vous même devez rajouter dans votre minecraft.jar (quoi, ne me dites pas que vous ne savez pas installer un mod ?)

un exemple simple... je créé un fichier .java avec un simple éditeur de texte ou avec NotePad++ en y mettant de quoi afficher juste le classique et très connu "Hello world" (souvent utilisé pour du débug)

class Hello {
    public static void main(String[] args) { //faut juste indiquer que ma classe est vide au départ mais qu'elle contiendra une chaine de caractère
        System.out.println("Hello World!"); // hop, on affiche le Hello world
    }
}

les phrases après les // ne sont pas interprétées par le compilateur)
j'enregistre ca dans un fichier hello.java

vous allez me dire "ben c'est bon, c'est un fichier java, ca marche maintenant!"

et bien non, car je n'ai pas encore compilé... donc ayant installé le jdk (ca marche sous windows ou sous linux de la meme façon (sauf que sous windows, faut pas oublier de rajouter une variable d'environnement pour que la console comprenne ce que vous lui demandez (google est votre ami, j'suis sous linux)). Donc je lance la compilation:

javac hello.java

pas d'erreur, le code est compilé, et un nouveau fichier apparait dans le même dossier: Hello.class

oh bah tiens, vous avez deja dû voir ce type de fichier si vous installez des mods, pas vrai?...  n'essayez pas de l'ouvrir avec un éditeur de texte, vous aurez un bon nombre de caractère invalide... oui, c'est du bytecode java

Maintenant, toujours dans ma console, lancons ce fichier .class

java Hello

Hello world!

maintenant, 2eme point: la mémoire utilisée par java: elle dépend du programmeur, et j'ai envie de dire que même si au niveau de la gestion des thread (les "action du processus", pour simplifier), Minecraft n'a pas du tout été conçu de manière efficace (aucune gestion native du multicoeur, vous aurez beau faire tourner Minecraft sur un octocore, meme un dual core, s'il a une fréquence d'horloge et un nombre de calcul par seconde plus rapide que l'octocore, sera plus performant pour faire tourner minecraft) mais Minecraft se rattrappe quand même sur la gestion de la mémoire avec un système dynamique de vidage. Par contre, il est vrai que le fonctionnement de minecraft fait que plus les chunks chargés sont modifiés, par le minage ou les constructions, plus ils deviennent lourd en mémoire, et peut provoquer certains freeze ou ramage... s'il vous plait, arrêtez de parler de lag sur nos serveurs, le lag c'est lorsque c'est le serveur qui ne supporte pas, et dans 95% des cas, ce sont vos ordis qui ne supportent pas. Mais je ne nie pas que 800mo en moyenne de ram consommée peut paraitre beaucoup... et pourtant, des jeux de très bonne qualité peuvent utiliser jusqu'a 1,5go de ram, et vous ne laggez pas pour autant...

oui, le problème reste java, Notch lui-même a reconnu être un piètre développeur et de ne pas avoir bien songé a minecraft et son avenir... avez vous au moins une fois dans votre vie joué a la version classique ? 0 lag, notre serveur classique ne reboot jamais, et meme quand il y avait 50 joueurs dessus, voir plus, c'est aussi fluide que si vous jouiez en solo...

concernant la "réduction du nombre de ligne de code" proposée par rediode: ca s'appelle de l'optimisation, et c'est ce que font Jeb et Dinnerbone en permanence a chaque fois que de nouvelles instructions sont données. Sachez qu'en java, les termes de surcharge de méthode (lorsqu'on définit plusieurs propriétés en appelant plusieurs fois la méthode) et de doublons (lorsqu'on définit plusieurs  argument de la propriétés dans une même méthode, possible avec des variables) existent, et qu'en général tout est fait pour les éviter. Il n'est donc pas possible de réduire le nombre de lignes de codes. cela est valable aussi pour l'affirmation d'Arghothrond, si on enlève trop de lignes de codes, les méthodes se retrouve alors avec des doublons, et le résultat en bytecode de lq compilation du code et la lecture de celui-ci par la JVM rend l'interprétation de a méthode plus longue = temps de calcul augmenté = ramage

concernant l'affirmation de Megaurel, j'ai juste failli m'étrangler... sais-tu ce qu'est un moteur physique ou un moteur de rendu ?
celui-ci a été mit a jour avec la 1.5, il s'agit d'utiliser une libraire de java, le moteur n'est pas implémenté dans minecraft.... lwjgl, ca te dit un truc ? c'est la "Lightweight Java Game Library", c'est elle qui permet d'utiliser java pour des jeux. java est très utilisé dans les jeux mobile, moins pour les jeux PC mais il a quand meme sa part... je le répète, le probleme n'est pas forcément Java, mais le fait que le Multithread ne soit pas natif dans le code de Minecraft: pas de parallélisation, une seule partie du processeur utilisé... encore, ceux qui ont un intel i7 2600k, il a une bonne capacité en traitement monocore, mais vous pourriez jouer avec un Celeron G440, si vous n'avez pas d'autre programmes qui tournent a coté, les performances seraient quasiment identique...

Enfin, non, recoder Minecraft dans un autre langage est possible sans que la manière de jouer soit modifiée, mais cela ne verra je pense pas le jour, car les mise a jour et nouveauté arrivent si bon train qu'a chaque mise a jour, il y aurait trop de retard pour que les joueurs s'y interessent vraiment, même si les performances seraient augmentées... Cepdenant, certains très gros serveur américains, qui fonctionne sur un pur systeme de business et d'entrée d'argent, ont les moyen de coder la partie serveur dans un langage qui est de leur sens de choisir, permettant au serveur de supporter un très grand nombre de joueur... Mais ces serveurs, ils sont des équipe de 10 ou 20 pour le codage, la configuration et tout ce qui va avec... fr-m, ils sont 2 derrière les coulisses pour tout gérer, site, serveurs, et tout ce qui va avec... Pas besoin de vous dire de qui je parle je pense, ils sont assez connu et pourtant si seuls pour VOTRE plaisir...

je m'attend a ce que certains me posent des questions après ca ou trouvent quelque chose a redire, mais j'ai toujours réponse face à ceux qui parlent sans savoir, alors faites très attention ...

Pages :: 1

Pied de page des forums