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

Java Discussion :

programmation d'un jeu [Débutant(e)]


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3
    Par défaut programmation d'un jeu
    bonjour,

    excusez moi de vous deranger, mais je souhaite me lancer dans la programmation d un jeux RPG en ligne, on m a conseille le java ou le PHP.
    Qu'en pensez vous?
    sinon quel est le moyen le plus simple pour apprendre ce langage? (je programme deja en C, matlab et je debute en HTML)

    merci de votre reponse

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    PHP pour un jeu de rôle ??

    php n'est pas du tout adapté à cela !

    il peut être utilisé comme langage de scripts côté serveur, par exemple pour sauvegarder les résultats dans une base de données ou pour coordonner les actions des joueurs (bien que ça ne soit pas adapté à cela, car php doit attendre les requêtes des clients avant d'être activé)

    Le couple gagnant pour moi, c'est un mélange de java/swing pour les interfaces graphiques (côté client) et java/servlet pour le côté serveur

    Pour apprendre java, il faut surtout passer beaucoup de temps, mettre en pratique tout ce que l'on peut apprendre dans des cours et surtout miser à fond sur la compréhension de l'orienté objets, qui est la facette la plus importante de java.

    Bon courage

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Par défaut
    Personnellement je ne recommanderais pas Java pour faire un jeu même si j'ai du en faire un dans le cadre d'un projet.

    La performance d'un langage coté serveur, et d'une machine virtuelle en plus sont préjudiciables pour un jeu.

    Le moteur doit être fait avec un langage de bas niveau et le serveur doit servir à transmettre les données.

    Delphi / Socket est plus adapté je pense.

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par sylk974
    La performance d'un langage coté serveur, et d'une machine virtuelle en plus sont préjudiciables pour un jeu.
    Non, le problème de performances de Java tient plus de la légende urbaine...

    Il arrive même que le compilateur JIT des dernières JVM aie des meilleurs performances que du code natif !!

    Lire ici pour plus de détail


  5. #5
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Et si on fait les mêmes tests avec une application graphique plein écran en triple buffering ?
    Je suis curieux de savoir, mais là dessus j'y crois pas trop.

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par Satch
    Et si on fait les mêmes tests avec une application graphique plein écran en triple buffering ?
    Je suis curieux de savoir, mais là dessus j'y crois pas trop.
    La différence n'est pas forcément si grande...

    Jette un coups d'oeil sur les benchmarks du projet Jake2 : un port Java du moteur de Quake 2. La dernière version est 15% moins rapide que le code C : http://www.bytonic.de/html/benchmarks.html

    Sachant que la plupart des jeux actuels sont developpé en C++ et qu'il y a une différence entre du code C et C++ (un langage objet est forcément plus couteutx)...


    Tu peux aussi jeter un oeil à la page projets de lwjgl.org...


    Le principal problème à mes yeux vient du fait qu'il y a une certaine réticences des utilisateurs et des developpeurs... Le "mythe" Java==lent est bien présent...

    a++

  7. #7
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Et pourquoi pas ?

    il faut bien se rendre compte que la compilation JIT (compilation du code durant l'exécution) permet de prendre en compte toutes les facettes spécifiques au matériel (processeurs multiples, cartes graphiques puissantes, hyperthreading, ...)

    Le code est mieux optimisé qu'avec aucun autre compilateur

    Les perfs peuvent rivaliser avec n'importe quel Delphi

    Il faut arrêter de colporter des idées vieillottes d'un Java qui peine à se hisser à la hauteur de ses concurrents. C'était valable en java 1.0...


  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Citation Envoyé par Pill_S
    PHP pour un jeu de rôle ??
    php n'est pas du tout adapté à cela !
    Cela reste à voir même si dans l'absolu je suis d'accord avec toi.

    PHP et dans ce cas la son "equivalent" (non, ne tappez pas ) java, JSP permettent de creer un jeu qui tu point de vue de l'utilisateur est en html et necessite rien du tout sur son poste si ce n'est un browser. Bien entendu une telle technologie ne "permet pas" et n'est pas asaptée pour faire du "temps réel". Et il vrai que coder un rpg multijoueur en temps réel n'est pas possible.
    MAIS on peut parfaitment coder un genre rpg en ligne cependant les interactions joueurs seront tres limitées. Il existe des exemples... (oui, j'ai pas envi de chercher )

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Par défaut
    La benchmark de Jake2 est intéressant mais les pertes que l'on peut y voit sont assez représentative de ce que je veux dire.

    50 fps c'est pas rien

    L'objet devient de plus en plus indispensable ce qui a fait passer du C à C++, même en perdant un peu.
    Je veux bien que la compilation JIT permette de palier au pb de la VM, mais de la dire qu'il peut rivaliser avec des langages bas niveau, et les compilo de dernière génération qui vont avec, y a un monde quand même.

    Half Life 2, Doom 3, y sont pas en Java ...
    Maintenant pour des raisons ludiques, de productivité, Java peut etre un bon choix mais c'est pas très potimum

  10. #10
    Membre éprouvé Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Par défaut
    Citation Envoyé par sylk974
    Personnellement je ne recommanderais pas Java pour faire un jeu même si j'ai du en faire un dans le cadre d'un projet.

    La performance d'un langage coté serveur, et d'une machine virtuelle en plus sont préjudiciables pour un jeu.

    Le moteur doit être fait avec un langage de bas niveau et le serveur doit servir à transmettre les données.

    Delphi / Socket est plus adapté je pense.
    Préjugé.

  11. #11
    Membre éprouvé Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Par défaut
    Citation Envoyé par Satch
    Et si on fait les mêmes tests avec une application graphique plein écran en triple buffering ?
    Je suis curieux de savoir, mais là dessus j'y crois pas trop.
    He ben fais le.

  12. #12
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par White Rabbit
    ...
    J'adore comment tu fais avancer le débat.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 959
    Par défaut
    Il ne s'agit pas temps du langage que de la technologie employée. Si vous programmez en php, vous êtes limité à la programmation coté serveur. Le joueur ne verra que des pages web. Un jeu basé entièrement sur des pages web est faisable, mais pas très intéressant.
    Java permet également celà. Java supporte beaucoup mieux les impératifs de montée en charge, ce qui est plus intéressant pour un jeu. Mais il y a aussi et surtout la possibilité d'inclure une applet Java dans la page qui peut se comporter comme une application ordinaire. Un exemple est Runescape. (www.runescape.com si je ne me trompe pas.) Il y a aussi la possibilité de créer un client lourd indépendant de tout naviguateur WEB, comme Jake 2.

    Enfin, deux autres technologies peuvent vous intéresser. Flash pour des applications incluses dans une page web a bonne réputation mais je ne le connaît pas personnelement.

    C++ pour un client lourd est le langage le plus utilisé pour les jeux, et le plus rapide. D'environ 15% à en croire ce benchmark très intéressant.

    Au niveau difficulté : php est simple, Java et C++ sont complexes.

    Disgression :
    Au sujet de Jake 2, combien de temps ont-ils passé à optimiser? Parce que si le développement de Jake 2 a duré deux fois plus longtemps que celui de Quake 2, on compare plus le travail des développeurs que les performances des langages eux-même.

  14. #14
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sylk974
    L'objet devient de plus en plus indispensable ce qui a fait passer du C à C++, même en perdant un peu.
    Justement, je suis sûr que si le moteur de Quake 2 aurait été en C++ les résultats aurait été encore plus proche...

    Citation Envoyé par sylk974
    Je veux bien que la compilation JIT permette de palier au pb de la VM, mais de la dire qu'il peut rivaliser avec des langages bas niveau, et les compilo de dernière génération qui vont avec, y a un monde quand même.
    Lorsque'il est exécuté, le bytecode Java est compilé en natif, tout comme du code C ou C++. L'avantage c'est que JIT peut s'adapter aux spécifité de la machine bien mieux que ne le peux un compilateur standard si on veut conserver un exécutable un minimum portable...
    Le compilateur JIT permet la même chose que les compilateurs de dernière génération... et même plus puisqu'il peut recompiler le code à la volé selon l'environnement d'exécution : ceci s'avère très interressant avec la POO car il peut effectuer des optimisations impossible avec un compilateur standard...

    De plus, je te ferais remarquer que ce débat n'est pas nouveau. Au début des années 80 c'est le C qu'on estimait pas adapté au developpement des jeux : c'était alors un domaine réservé à l'assembleur. Puis le même débat a eu lieu entre le C et le C++...

    Citation Envoyé par sylk974
    Half Life 2, Doom 3, y sont pas en Java ...
    Mais il ne sont certainement pas en assembleur non plus...
    Et de nombreux tests montre que du code Java est aussi performant voir plus que du C++ (c'est d'ailleurs également le cas pour .NET).

    Maintenant comme je l'ai déjà dit, il y a quelques réticences à l'utilisation de Java...

    Citation Envoyé par sylk974
    Maintenant pour des raisons ludiques, de productivité, Java peut etre un bon choix mais c'est pas très potimum
    On verra cela dans quelques années...
    Mais bien que Java serait tout à fait adapté pour le jeux, je pense qu'il y ait de fortes chances que .NET ne se traine pas une réputation de langage interprété...

    Citation Envoyé par BugFactory
    C++ pour un client lourd est le langage le plus utilisé pour les jeux, et le plus rapide. D'environ 15% à en croire ce benchmark très intéressant.
    Il s'agit de C et non pas de C++ dans le benchmark. Quake 2 avait été codé en C, mais désormais c'est bien le C++ qui est généralement utilisé pour les jeux...

    a++

  15. #15
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    tribal trouble est codé en java http://tribaltrouble.com/screenshots.php?... CQFD :-)

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Par défaut
    Au début des années 80 c'est le C qu'on estimait pas adapté au developpement des jeux : c'était alors un domaine réservé à l'assembleur. Puis le même débat a eu lieu entre le C et le C++...
    A l'époque, les capacités des ordinateurs étaient tellement moindres ...
    On ne pouvait pas palier à des programmations non optimales grace aux performances matérielles. Aujourd'hui on peut.

    Les jeux ne sont peut être pas en assembleur complet, mais un certain nbre de traitements lourds et mathématiques sont traités en assembleur, qui se lient avec des langages de bas niveau comme C ou C++ beaucoup mieux qu'en Java ...

    C'est les performances des ordinateurs qui font qu'aujourd'hui on peut se permettre de coder des jeux avec des langages moins performants ...

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    [quote="sylk974"]
    C'est les performances des ordinateurs qui font qu'aujourd'hui on peut se permettre de coder des jeux avec des langages moins performants ...
    Ce sujet derive bien...
    Bon je nereviendrais sur les performances de Java... Mais je voudrais preciser egalement que cela n'est pas du uniquement au fait que les ordinateurs on sufisament de puissance pour que l'on puisse en perdre mais que les programmes en eux-même sont plus gros et que les langages de haut niveau permettent comme leur nom l'indique de programmer à haut niveau. Et si'il est "facil" de programmer un pacman en assembleur, en mmorpg dans un tel langage demanderait un temps considerable

  18. #18
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Citation Envoyé par lunatix
    tribal trouble est codé en java http://tribaltrouble.com/screenshots.php?... CQFD :-)
    Preuve que Java est arriéré dans tribalTrouble ils ont des haches et des boucliers en bois alors que dans Quake2, y'a des lances Roquettes


    Désolé promis je le referais plus...

  19. #19
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sylk974
    A l'époque, les capacités des ordinateurs étaient tellement moindres ...
    On ne pouvait pas palier à des programmations non optimales grace aux performances matérielles. Aujourd'hui on peut.
    Il n'y a pas que les capacités des machines qui ont évolués, mais les compilateurs produisent du code bien plus performants. Dans la plupart des cas un compilateur te produira un code natif au moins aussi performant que s'il avait été tapé en assembleur par un programmeur...


    Citation Envoyé par sylk974
    Les jeux ne sont peut être pas en assembleur complet, mais un certain nbre de traitements lourds et mathématiques sont traités en assembleur, qui se lient avec des langages de bas niveau comme C ou C++ beaucoup mieux qu'en Java ...
    Personnellement je ne developpe pas de jeux donc je peux très bien me tromper, mais je doute qu'il y ait beaucoup de developpeurs de jeux qui utilisent beaucoup d'assembleur...
    Il y a plus de chance qu'ils utilisent des API tels que OpenGL ou DirectX pour ne citer qu'eux...

    Citation Envoyé par sylk974
    C'est les performances des ordinateurs qui font qu'aujourd'hui on peut se permettre de coder des jeux avec des langages moins performants ...
    Je me répète, mais le code Java est compilé en natif lorsqu'il est exécuté...

    a++

  20. #20
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 897
    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 897
    Billets dans le blog
    54
    Par défaut
    Si mes souvenirs sont bon (ca remonte a 2~3 ans) la derniere fois que j'ai entendu parler d'assembleur dans un jeu PC (hors language de programmation des shaders*) c'etait lors de la publication du code source de Quake 3 par Id Software.

    Dans une interview John Carmarck expliquait qu'ils avaient decide d'inclure de l'assembleur au debut du devellopement du jeu bien evidement pour des raisons de performance mais que tellement de temps s'etait ecoule, qu'arrive au moment de la distribution les augmentations des performances des compilateurs et des machines rendaient la chose presque inutile. Et qu'en fait ces bouts d'assembleurs avaient plutot ete un frein contre le port du moteur de Quake 3 (Return to Castle Wolfenstein, Call of Duty, Medal of Honor, ...) vers d'autres platformes plus qu'autre chose. Il indiquait donc que ce genre d'optimisations etaient completement inutiles sur les PC actuels.

    * Et meme la tout le monde se lance dans la programmation de shader avec des languages haut-niveau (languages de programmation dedies de nVidia ou ATI). Un copain qui programme de la 3D en C++/OpenGL m'expliquait qu'avec le language de shader de bas-niveau proche de l'assembleur on ne savait pas trop quel effet on avait tant que le rendu n'etait pas effectuer.
    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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/05/2014, 23h03
  2. Programmation d'un Jeu : intelligence exigée
    Par Arson dans le forum C++
    Réponses: 3
    Dernier message: 01/06/2008, 16h23
  3. programmation d'un jeu de poker en python
    Par mnspc dans le forum Général Python
    Réponses: 4
    Dernier message: 10/04/2008, 21h33
  4. Réponses: 2
    Dernier message: 31/01/2008, 21h41

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