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

Développement 2D, 3D et Jeux Discussion :

Quel langage pour un jeu en ligne ?


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Quel langage pour un jeu en ligne ?
    salut a tous,

    j'ai un projet de développement d'un jeu multi-joueurs en ligne par navigation (jeu a deux joueurs) et c'est mon première projet
    j'ai besoin de connaitre quel langage de programmation est le meilleur et aussi le plus simple pour le faire

    merci en avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 579
    Points
    218 579
    Billets dans le blog
    120
    Par défaut
    Bonjour et bienvenue,

    Je dirai pour vos besoins, que si vous voulez faire un jeu dans la navigateur (type ogame), il faut connaitre HTML / PHP / MySQL ( base de donnée )

    Sinon, pour faire les jeux mignons que l'on voit partout, et hautement performants ( dans le sens plus de capacité que le PHP ) c'est du flash qu'il vous faut, je pense. ( ou alors silverlight )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éclairé
    Avatar de N_I_C_S
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 450
    Points : 681
    Points
    681
    Par défaut
    N'oublions pas Java/J2EE, particulièrement adapté aux navigateurs par sa portabilité et son système d'Applets/Servlets/EJB garantissant une grande portabilité coté serveur.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 943
    Points : 1 156
    Points
    1 156
    Par défaut
    Je prendrais silverlight.
    En second choix Flash

  5. #5
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    je pense que si tu nous donnes plus de précisions concernant le contenu de ton jeu, on sera plus à même de t'orienter vers des langages. Les principaux points techniques a regarder sont amha:

    - le jeux sera-t-il de type temps-réel (un tetris, un pong, un bomberman, ...) où plutôt de type 'tour par tour' (jeu d'échecs, de poker, ...).

    - le jeu comportera-t-il des animations plus ou moins complexes nécessitant un 'client lourd', genre les jeux flash, ou ce sera plutôt un jeu 'statique' comme ogame ?

    Bref, plus tu nous en diras, plus on pourra être précis dans nos réponses.

    PS: un langage meilleur que les autres, ca n'existe pas vraiment. Il y a seulement des langages plus ou moins appropriés en fonction du projet et de son contenu.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  6. #6
    Membre habitué
    Profil pro
    Dev
    Inscrit en
    Mai 2009
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Mai 2009
    Messages : 257
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par N_I_C_S Voir le message
    N'oublions pas Java/J2EE, particulièrement adapté aux navigateurs par sa portabilité et son système d'Applets/Servlets/EJB garantissant une grande portabilité coté serveur.
    ça c'est sur la papier

    sinon ya les toujours script cgi avec du code C

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Langage serveur
    Question pour Nounouk ou autres...

    J'ai également un projet de jeux multi-joueurs tour par tour. Très simple les jeux genre bataille navale avec peu d'effets au niveau des graphes. Quelques anims mais pas beaucoup plus.
    L'idée est que l'intelligence du jeu soit plutôt du coté des serveur et que le «client» n'affiche que ce que le serveur lui indique d'afficher. A votre avis quel langage/technos serait le plus adapté pour un développeur de jeu du côté du serveur? Le développeur doit coder directement niveau serveurs.
    Savez-vous quels sont les langages les plus utilisés chez les développeurs de jeux ?

    Merci beaucoup pour votre aide

    Cordialement

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par stef7007 Voir le message
    J'ai également un projet de jeux multi-joueurs tour par tour. Très simple les jeux genre bataille navale avec peu d'effets au niveau des graphes. Quelques anims mais pas beaucoup plus.
    L'idée est que l'intelligence du jeu soit plutôt du coté des serveur et que le «client» n'affiche que ce que le serveur lui indique d'afficher. A votre avis quel langage/technos serait le plus adapté pour un développeur de jeu du côté du serveur? Le développeur doit coder directement niveau serveurs.
    * Savez-vous quels sont les langages les plus utilisés chez les développeurs de jeux ?

    Dans ce cas, tout dépend encore : si des animations en GIF te satisfont pleinement, un MP suffira pleinement (LAMP, WAMP, LLMP et tous les dérivés, PHP et MySQL/PostgreSQL sont fréquemment employés - cf. jeux de la GameForge). Sinon, tu devras passer par du Flash côté client - mais il faut encore assurer quelque chose derrière, côté serveur.*

    Dans un jeu du genre (enfin, comme tout jeu qui se joue sur le web, WoW ou oGame, c'est la même bataille à ce niveau, même si les ennemis à combattre sont assez différents), il faut impérativement passer par du code côté serveur, sinon c'est la pagaille... Le jeu qui passe en torrent ou avec un autre système de P2P, un genre de calcul partagé ? Ça me semble extrêmement dur à mettre en place !*



    C'erst bien beau de dire d'utiliser Flash, mais comment vous faites fonctionner ça sur le serveur ? Ça existe, les serveurs faisant tourner de l'ActionScript ? En tout cas, c'est pas prévu pour... Donc, il faut se tourner vers un "vrai" langage de programmation côté serveur - PHP est extrêmement simple à apprendre, extrêmement simple aussi de faire de grosses gaffes avec ; C/C++ sont plus durs à apprendre mais permettent déjà de meilleures perfs, même si non prévus pour le web ; Python/Ruby émergent dans le domaine, tu as des frameworks comme Ruby on Rails pour faire de très beaux trucs, direct en web. Tous peuvent aussi servir simplement de back-end, de connexion entre le client et ce que tu veux en faire.


    Pour répondre directement à ta question : tous sont adaptés. Tout dépend de ce que tes devs ont comme niveau et envie d'apprendre, de leurs habitudes de codage, de tes moyens, etc. Tu peux très bien commencer par un jeu en PHP hébergé gratuitement puis passer à un "vrai" serveur avec un moteur refait dans un langage compilé et plus performant - C++ selon FaceBook et HipHop.*
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  9. #9
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    Citation Envoyé par stef7007 Voir le message
    Question pour Nounouk ou autres...
    Ca ne doit pas s'adresser à moi (nouknouk), mais je vais répondre quand même

    Je pense que tout dépend ce que tu veux faire exactement et où se situe la limite entre l'intelligence du serveur et celle du client. Mais généralemnt on ne met pas toute la logique du jeu du côté du serveur pour plusieurs raisons: performances, montée en charge, latence, besoins réseau, 'rgidité technique' de la solution, ... Si tu envisages cette solution uniquement pour 'protéger' ton jeu et éviter les hacks, il y a d'autres méthodes (ie. que le serveur vérifie ce que font les clients, mais ne calcule pas tout).


    Quand aux langages/technos tu as probablement l'embarras du choix ; tout dépend qui va développer et les connaissances/langages qu'ils auront le plus de chances de connaître. Par exemple si tu t'adresses à des webmasters, le Javascript est probablement le plus indiqué pour la partie 'customisable' de ton serveur.

    Sinon, tu as plein d'autres choix: Java, C/C++, mais également LUA, voir même du PHP-CLI (PHP-CLI = du PHP non pas embarqué dans une page web mais exécuté en 'standalone' comme n'importe quel programme ou script BASH).

    A noter que les langages interprétés (Javascript, PHP) offrent en général un meilleur niveau de sécurité si les scripts qui seront écrits avec ne sont pas forcément 'dignes de confiance': enfermer les scripts JS par exemple dans une sandbox est bien plus aisé que de sécuriser une lib écrite en C.


    [myLife]

    J'ai personellement l'habitude de faire des serveurs soit en Java, soit en C++, parce que je connais bien ces langages.

    Mais il m'est déjà arrivé par exemple de programmer un 'serveur de sockets' pour un webmaster (pour un de ses jeux flash temps-réel avec pas mal d'utilisateurs). L'appli que j'ai finalement conçue était alors composée de deux parties:

    - le coeur en Java qui gérait les connexions et le parsing des données provenant des clients (Java = pratique et rapide à coder pour moi)

    - la partie 'customisable' qui était programmée par le webmaster en PHP-CLI (car il ne connaissait aucun autre langage).

    Les scripts PHP étaient lancés par le serveur java à son démarrage et les deux parties (Java & PHP) échangeaient leurs données via des sockets locales: le serveur Java recevait les événements (connexion d'un client, réception d'une data, ...), les transférait aux scripts PHP qui effectuaient le traitement approprié et donnaient éventuellement en retour des consignes au serveur Java (renvoie telle réponse à tel client, déconnecte tel client, ...).

    La solution au final était très proche de ce que propose your-socket.com

    [/myLife]

    En bref, ça dépend beaucoup à la fois de ce que tu veux faire, des besoins techniques de ton projet et des connaissances des différents intervenants sur le projet. Evidemment, si tu nous en dis plus, on pourra probablement affiner la chose (mais préfère alors créer ton propre fil de discussion sur le forum).

    A noter une chose: ne pas forcément avoir trop d'à-prioris sur la question des performances (genre JS ça va être super lent, ça tiendra pas 100 utilisateurs simpultanés). Par exemple avec la solution JAVA+PHP ci-dessus, je traitais sans problème plus de 200 000 messages par seconde sur un vieil Athlon 1700+. Mieux vaut donc tester par soi-même pour se faire sa propre idée.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  10. #10
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    A noter une chose: ne pas forcément avoir trop d'à-prioris sur la question des performances (genre JS ça va être super lent, ça tiendra pas 100 utilisateurs simpultanés). Par exemple avec la solution JAVA+PHP ci-dessus, je traitais sans problème plus de 200 000 messages par seconde sur un vieil Athlon 1700+. Mieux vaut donc tester par soi-même pour se faire sa propre idée.

    En effet : même si un même algorithme s'exécute plus lentement sur un langage qu'un autre, ça veut juste dire que l'interpréteur/le compilateur préfère cet algorithme, c'est tout. Deux implémentations d'un même langage pourraient avec des performances diamétralement opposées (parfois une implémentation est assez lente - exemple en C++ : pour faire du calcul de haute performance, mes essais sur GCC ne furent pas convaincants, au contraire de Visual C++ et d'Intel C++).*


    Une solution en PHP peut aussi être beaucoup plus rapide qu'une solution en C (pourtant langage dans lequel l'interpréteur PHP de référence est écrit) faite à la main : PHP existe depuis un certain temps, il est devenu extrêmement optimisé, certaines fonctions PHP te remplacent 20 à 25 lignes de code en C. Évidemment, la version PHP est hyperoptimisée, c'est généralement les fonctions les plus utilisées (file_get_contents, par exemple : plus rapide que l'appel d'une ouverture, d'une écriture et d'une fermeture, et pas qu'un peu).*


    On dit souvent que Java est plus lent à cause de sa JVM, jamais pour DotNet qui a adopté la même solution : une VM n'est pas une cause de mauvaises perfs. C'est d'abord l'algorithme qui doit être optimisé (pas son implémentation !), ce n'est pas en changeant de langage qu'un mauvais algorithme ira plus vite (si, peut-être, un peu : tu y gagnerais plus à bien le concevoir, même sur le plus lent des interpréteur s'il y en a un).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  11. #11
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par N_I_C_S Voir le message
    [...] et son système d'Applets/Servlets/EJB garantissant une grande portabilité coté serveur.
    Ho oui une grande portabilité et surtout des prises de têtes carabinées, surtout pour un débutant .

    Je recommande l'usage de PHP, de Python ou de Ruby, qui sont maintenant des langages mûrs et parfaitement portables aussi côté serveur.

    Pour développer des jeux plus avancés, l'usage d'Haxe est à envisager. MotionTwin font tous leurs jeux avec et ils sont vraiment pas mal.
    Find me on github

  12. #12
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    Pour ne pas dire qu'Haxe est développé par MotionTwin, en remplacement du vieux MTASC (l'ancien compilateur ActionScript)
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/08/2014, 16h46
  2. Quel langage pour mini jeu online ?
    Par Jeyto dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 25/05/2014, 21h34
  3. [Avis]Quel langage pour un jeu web ?
    Par Gibra dans le forum Débuter
    Réponses: 2
    Dernier message: 19/12/2011, 17h22
  4. Quel langage pour un jeu d'action ?
    Par Valter dans le forum Développement 2D, 3D et Jeux
    Réponses: 25
    Dernier message: 21/05/2008, 16h14
  5. Quels langages pour un jeux en ligne
    Par kolomo dans le forum Projets
    Réponses: 3
    Dernier message: 21/04/2008, 14h07

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