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

Langage Java Discussion :

Questions relative au dev d'un serveur de jeu.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut Questions relative au dev d'un serveur de jeu.
    Bonsoir à toutes et à tous.

    Je poste ici un message qui est la suite logique de celui posté __ICI__:

    Ma première question est à propos des java.utils et java.langs.
    Sachant que mon serveur devra gérer une grosse, grosse, grosse (grosse!) quantité d'infos à la seconde, et que j'utilise beaucoup d'ArrayList, List, HashMap etc, je me demande si cela ne va pas me poser un problème de mémoire/rapidité. J'ai lu que ces objets n'étaient pas "conçus" pour du traîtement de masse, je ne saurais m'avancé sur la véracité de ces propos... Aiguillez moi

    Ma deuxième questions, les Strings. J'en utilise aussi beaucoup, énormément lors de l'envoi/récéption de commandes. J'ai lu pas mal à propos des StringBuffers, mais je ne comprend pas vraiment dans quels cas utiliser quoi. Si quelqu'un pouvait me fournir une récap ou un lien, ça serait chouette

    Troisième question, qui fache et tache... GCJ.
    Comment compiler un binaire natif pour windows ou linux? J'ai essayé sur ma debian box sans succes, sur ma win box sous CygWin sans succes... Quelqu'un aurait un BON tuto pour ça?

    Merci en tout cas de vos éventuelles réponses!
    Pierrot.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Pour ce qui est de la deuxième question : Quand tu fais un + sur deux chaînes de caractères, le compilo va automatiquement convertir ca avec StringBuffer; par contre, dans une double, il faut que tu emploies un StringBuffer, sinon, à chaque itération, tu vas créer une nouvelle instance de StringBuffer, et ca va consommer énormemement de temps processeur.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Tout d'abord bon courage !
    Je suis sur un projet perso de ce genre depuis +2ans et ça commence à prendre sérieusement forme, mais la route est longue !

    Si tu veux éviter de réinventer la roue (comme j'ai commencé à le faire ), tu peux regarder du coté du projet Dark star de serveur de jeu, et sur le forum javagaming.org

    Pour les listes, maps etc. je ne pense pas que cela te posera de problème. Simplement lis bien leurs javadoc, par exemple certaines sont synchronisées et pas d'autres. Si tu as une collection qui va contenir des milliers d'entrées, tu peux la dimensionner à la bonne taille avec son constructeur, ça évite qu'elle se redimensionne tout le temps.

    Pour les stringbuffer, ils sont utiles lorsque tu fais des concaténations.

  4. #4
    Membre averti
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut Ok pour strings & utils.
    Merci pour vos réponses,

    Concernant les Strings + StringBuffers, c'est à peu près l'utilisation que j'en fait. J'ai bien compris le coup de la boucle qui prend beaucoup de mémoire dans le cas de l'utilisation d'une String, je vérifierais mon code pour être sûr que je n'ai pas ce cas...

    Pour les java.utils, merci du tuyeau. La question est, si je déclare un HashMap de 65535 éléments, et qu'un jour je gagne au loto et m'offre un octoprocesseur xéons à douze terra de ram, ça me ferait mal de me retaper toutes les dimensions à nouveau... De plus je ne peux pas savoir quelle sera l'échelle du nombre de connectés, donc je vais mettre ce point de côté et j'y reviendrais plus tard.

    the-gtm
    Quel est le nom de ton projet? Peux tu m'en dire plus sur le style de ton jeu?
    Je t'explique le thème du mien, peut être pouvons nous rester en contact histoire de procéder à des échanges de bons procédés?
    Donc le jeu que je développe (Apocalogies) est basé sur un thème post-apocaliptyque (Je suis fan de ça depuis toujours). Pour se faire une idée, je voudrais une atmosphère similaire à Fallout II mais sans l'horrible impression de se sentir seul parmis des IA. Il y aurait un minimum de NPC dans les débuts, puis plus du tout dès que certaines personnes acceptent de les remplacer. Pour les mobs, pas de trucs genre souris irradiés c'est du pipo, plutot des animaux de base desquels on ne peut retirer que des unités de matière première de différents types afin de construire ses items en s'adressant à un joueur ayant les skills requises. Je veux avant tout éviter le porte-monstre-drop-levelup, étant moi même joueur de plusieurs MMORPG je sais à quel point c'est énervant et ennuyeux à la longue. Pas non plus de "levelup", mais plutot une continuité d'expérience: le concept "je gagne un level je suis trop bon à l'épée d'un coup!" est vraiment mauvais. Je veux aussi éviter la maléabilité des persos après leur création, un perso n'évoluera qu'en fonction de son background de création et ne pourra que très peu changer de spé ensuite.
    Voilà ^^

    En ce qui concerne Dark star, je n'ai rien trouvé sur le net (Disons que Dark Star porte à donner des résultats sur la trilogie de Georges Lucas...) Aurais tu un lien STP?

    Sinon, personne n'a d'idée pour GCJ?

    Dans tous les cas, merci de votre aide, je reste dans le coin pour vous soliciter à nouveau dans pas très longtemps, dès que _CECI_ est résolu je me remet au code.

  5. #5
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Pour darkstar, c'est par là :
    https://games-darkstar.dev.java.net/
    ou sur javagaming :
    http://www.javagaming.org/forums/index.php

    the-gtm, pourrais tu stp nous faire un retour plus complet sur darkstart ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Moi aussi j'avais vraiment bien aimé les deux Fallout alors ça m'intéresse

    Pour mon projet, c'est une sorte de Civilization en ligne : évolution au cours de l'histoire, gestion de villes, etc.

    Pour DarkStar, je ne l'utilise pas car j'étais trop avancé quand j'en ai appris l'existence, mais sur le forum javagaming.org tu devrais pouvoir obtenir des infos.
    Coté technique j'ai un client Java qui communique avec un serveur J2EE (et avec les clients des autres joueurs) en temps réel.

  7. #7
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Hum, fort intéressant tout ça. Je me pose en effet depuis quelques temps des questions sur les communications clients/serveur et clients/clients.

    Pour mon info : ton code est fermé/ouvert ? Y a t il moyen d'en savoir plus ? A l'inverse, j'suis aussi prêt à faire beta testeur si tu en as besoin.

    ++
    ZedroS

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par hickscorp
    Pour les java.utils, merci du tuyeau. La question est, si je déclare un HashMap de 65535 éléments, et qu'un jour je gagne au loto et m'offre un octoprocesseur xéons à douze terra de ram, ça me ferait mal de me retaper toutes les dimensions à nouveau...
    D'ou l'interet d'utiliser des constantes ou, dans le cas ou tu n'as pas envie de recompiler ton programme, un fichier de configuration, plutot que des valeurs ecrites en dur dans le code.

    Citation Envoyé par hickscorp
    De plus je ne peux pas savoir quelle sera l'échelle du nombre de connectés, donc je vais mettre ce point de côté et j'y reviendrais plus tard.
    Tu en auras peut-etre besoin, ou du moins d'une estimation grossiere, pour savoir avec quels parametres de JVM lancer ton server (si besoin d'une plus grande taille de pile par exemple). Tu utilises JEE, plutot que JSE j'imagine* ?

    *Sans tomber dans les API propres a la version JEE, les parametres avec lesquels tournent la JVM ne sont pas les meme et peuvent mieux convenir a un serveur traitant de gros volumes de donnees et un grand nombre de connections.

    Cote client, pour une eventuelle BD embarquee, Java SE 6 ne devrait'il pas contenir une BD legere ? Cela devrait etre suffisant.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre émérite

    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Citation Envoyé par bouye
    Cote client, pour une eventuelle BD embarquee, Java SE 6 ne devrait'il pas contenir une BD legere ? Cela devrait etre suffisant.
    Seul le JDK aura une BD intégrée (en pur Java) et non le JRE.

Discussions similaires

  1. Débutant : Question de base Dev-C++
    Par SebRs dans le forum Dev-C++
    Réponses: 1
    Dernier message: 25/03/2006, 14h21
  2. [Librairies] Questions relatives à l'impression de documents
    Par Ronin dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/12/2005, 15h53
  3. [Certification]Question relative
    Par chady dans le forum Général Java
    Réponses: 2
    Dernier message: 25/01/2005, 10h30
  4. Réponses: 4
    Dernier message: 11/09/2004, 16h38

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