Partage
  • Partager sur Facebook
  • Partager sur Twitter

[CONSEIL] Choix pour jeu en réseau

    25 mars 2008 à 11:30:40

    Salut à tous.
    Je sais que la question a été posée mainte et mainte fois mais j'ai des doutes.

    Je souhaites réaliser une petite appli client-serveur.
    Je souhaites utiliser
    - SDL pour le fénétrage
    - OpenGL pour le rendu graphique
    - Newton Game Dynamics pour les collisions et autres gestions

    Maintenant j'aimerais savoir ce que je peux utiliser pour la gestion réseau,
    j'avais commencé avec SDL_Net, est-ce un bon choix ?

    De plus, que dois-je utiliser pour les événèments (souris, clavier), est-ce judicieux d'utiliser les evenements SDL ?

    Merci à tous & bonne journée.
    BloodyDark.
    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2008 à 11:54:04

      Un jeu réseau en 3D ? (OpenGL, bien qu'utilisable en 2D, est souvent choisi pour la 3D)
      Si c'est le cas, tu vises haut.

      Quel est ton niveau en programmation ? Il faut un bon niveau pour ça
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        25 mars 2008 à 12:05:50

        Salut,
        Bon quand je dis 'Jeu réseau 3D', je vise pas forcement un RPG ou encore un jeu de voiture online, juste un petit jeu avec un decors simple (limite un surface plane blanche qui s'étend sur quelques km), et une gestion de collisions.

        Mon niveau en programmation, je saurais pas trop le définir:
        Je pratique le C (et le C++) depuis 6 mois, j'ai essayé beaucoup de chose, j'ai utilisé pas mal la SDL,
        donc maintenant je souhaiterai m'essayer au 3D.

        Je découvre depuis quelques jours les bases d'OpenGL.
        Mais le problèùe est que je veux commencer sur de bonnes bases avec de bon outils dont je connais les possibilités (ou du moins je sais que c'est réalisable).

        J'ai donc besoin de conseil au niveau des libraries à utiliser.

        Merci beaucoup.
        BloodyDark.

        PS: J'ai un projet qui a d'abord pour but d'améliorer et d'apprendre encore plus (parce que j'ai une grosse soif de connaissances/competences au niveau du C++), après si je veux le populariser ou pas, c'est une autre question... ;)
        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2008 à 12:16:52

          Ce n'est pas la complexité des modèles ou des textures qui fait la difficulté du jeu pour le programmeur (c'est ce qui fait la complexité du graphiste et du modelisateur, et la puissance requise pour la carte graphique)
          je veux dire par la que meme si ton bonhomme est fait de 20 polygones non texturés, ou de 50 000 polygones super bien texturés, au niveau programmation, ça ne change rien.

          Donc ton jeu sera toujours très complexe a programmer. Il faut bien voir cela.

          Qui plus est, si tu t'essaies dans la 3D, commence par faire tourner des cubes, et a faire des choses simples. Si tu sautes directement sur un jeu 3D complet, tu risques de te casser les dents.
          • Partager sur Facebook
          • Partager sur Twitter

          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

            25 mars 2008 à 12:40:35

            Ouais et de devenir chauve :p (je rigole, juste pour mettre de l'ambiance)

            Ok je sors --->[]
            • Partager sur Facebook
            • Partager sur Twitter
              25 mars 2008 à 13:05:51

              SDL_Net n'est pas terrible niveau réseau. Et en plus, c'est du C.

              Niveau C++, tu as le choix : Boost.Asio, Raknet, ACE (peut-être un peu trop gros pour ton jeu), socket++, ...
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                25 mars 2008 à 14:06:57

                Citation : Midoagent47

                SFML.Network

                oui. Et si tu optes pour cette solution, tu peux utiliser la SFML pour le rendu aussi (t'apprendras des choses ^^ ).
                Mais garde bien en tête la remarque de Fvirtman.
                • Partager sur Facebook
                • Partager sur Twitter
                  25 mars 2008 à 20:25:39

                  Oui je comprends bien ce que tu veux me dire.
                  Mais je voulais dire par là que je veux me concentrer d'abord sur les choses importantes avant de faire des choses belles & précises en 3D.
                  J'ai déjà fait tourner des cubes, déplacer des sphères dans un repère 3D.
                  (J'ai même utilisé SDL_Net pour faire un réseau, je voyais les sphères des autres clients qui se déplaçaient (ou pas forcement)).

                  D'accord, j'ai déjà utilisé un peu SFML.
                  Je vais aller voir du côté de SFML network et SFML pour le fenêtrage...
                  Donc pour le moment je garde en tête:
                  - SFML pour le fenêtrage
                  - SFML network pour le réseau
                  - OpenGL pour la modélisation 3D
                  - Newton Game Dynamics pour la partie physique.

                  Bon bon bon...
                  Sinon au niveau des évènements du clavier & souris, je peux utiliser ce que propose la SFML ? ;)

                  Merci à tous pour vos réponses :D.

                  (Petite question comme ça, pour mes premiers test réseau, j'envoyais chaque fois que le client bouge, sa position au serveur... ça risque pas de faire beaucoup d'information à envoyer & recevoir pour le serveur ?
                  Ou il n'y a pas d'autres solutions ?)

                  [Deuxième petite question, euh... pour modéliser un personnage il faut autant de polygone ou c'était une exagération ? ^^ ]

                  Bonne soirée, je vous tiens au courant de mes choix :) .
                  BloodyDark.

                  [EDIT: vous avez des noms d'API pour gérer les bases de données (type MySQL for example) ? ]
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 mars 2008 à 20:44:28

                    salut,

                    je sais pas si SFML le fait (le sql) mais si jamais il y a QT pour le réseau, le fenetrage, et openGl et le sql (et en plus les socket sous Qt c'est vraiment pas dur.)

                    a+
                    hedi07
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      25 mars 2008 à 21:03:22

                      Citation : bloodydark

                      Sinon au niveau des évènements du clavier & souris, je peux utiliser ce que propose la SFML ?


                      Si tu prends la SFML, je pense que le mieux c'est d'utiliser les évènements qu'elle propose. ;)

                      Citation : bloodydark

                      (Petite question comme ça, pour mes premiers test réseau, j'envoyais chaque fois que le client bouge, sa position au serveur... ça risque pas de faire beaucoup d'information à envoyer & recevoir pour le serveur ?
                      Ou il n'y a pas d'autres solutions ?)

                      Beaucoup d'info, oui surement s'il y a beaucoup de clients. Mais je vois mal comment faire autrement (en mieux, en moins bien c'est facile de trouver :p ).

                      Citation : hedi07

                      je sais pas si SFML le fait (le sql)

                      non elle ne le fait pas.

                      Citation : hedi07

                      il y a QT pour le réseau, le fenetrage, et openGl et le sql

                      Oui c'est bien vrai. Mais Qt "bouffe" pas mal de performance, donc passable des projets type "jeu" légers.

                      Citation : hedi07

                      les socket sous Qt c'est vraiment pas dur

                      Je te crois (car je n'ai jamais essayé). ;) Mais avec la SFML c'est aussi facile à utiliser. :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 mars 2008 à 21:19:01

                        Citation : bloodydark


                        (Petite question comme ça, pour mes premiers test réseau, j'envoyais chaque fois que le client bouge, sa position au serveur... ça risque pas de faire beaucoup d'information à envoyer & recevoir pour le serveur ?
                        Ou il n'y a pas d'autres solutions ?)


                        Cette partie m'intéresse beaucoup, je suis actuellement sur un projet qui devra fonctionner en réseau, et je me demandais aussi quelles données envoyer du client au serveur et du serveur au client.

                        Pour le moment (et après y avoir réfléchit), je me disais que la meilleure facon était la suivante: le client envoie au serveur la (ou les) actions effectuées en local, le serveur centralise les actions de tous les clients, puis il envoie à chacun des clients les actions effectuées, et les évènements ingame (spawn de monstres, déplacements d'élément, peu importe). Chaque client fait alors lui-même la résolution de l'instant en fonction des règles du jeu.

                        Ceci dit, je pense que c'est une discussion assez dense, qui mériterait sans doute d'avoir son propre topic... Je vais créer ca!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 mars 2008 à 21:20:33

                          pour la 3d utilise plus tot irrlicht sa te simplifiras la tache tkt
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 mars 2008 à 21:42:01

                            D'accord Hiura, c'est bien ce que je pensais.

                            Citation : alecool

                            Citation : bloodydark


                            (Petite question comme ça, pour mes premiers test réseau, j'envoyais chaque fois que le client bouge, sa position au serveur... ça risque pas de faire beaucoup d'information à envoyer & recevoir pour le serveur ?
                            Ou il n'y a pas d'autres solutions ?)


                            Cette partie m'intéresse beaucoup, je suis actuellement sur un projet qui devra fonctionner en réseau, et je me demandais aussi quelles données envoyer du client au serveur et du serveur au client.

                            Pour le moment (et après y avoir réfléchit), je me disais que la meilleure facon était la suivante: le client envoie au serveur la (ou les) actions effectuées en local, le serveur centralise les actions de tous les clients, puis il envoie à chacun des clients les actions effectuées, et les évènements ingame (spawn de monstres, déplacements d'élément, peu importe). Chaque client fait alors lui-même la résolution de l'instant en fonction des règles du jeu.

                            Ceci dit, je pense que c'est une discussion assez dense, qui mériterait sans doute d'avoir son propre topic... Je vais créer ca!



                            Je pense qu'on peut en parler ici, puisque je me pose la même question que toi.
                            Ce que j'ai fais pour mon petit réseau c'est:
                            Chaque fois qu'un client bougeait, j'envoyais les coordonnées sous forme 'X|Y', le serveur traitait l'information et renvoyait 'numéro_joueur|X|Y', qui était finalement traité pour l'affichage chez le client.
                            Maintenant est-ce comme ça qu'il faut procéder, je ne sais pas.
                            J'ai testé avec 3 clients, aucun problème, mais est-ce que ce système peut supporter plus de 20 ou ~50 personnes ?

                            Sinon j'ai essayé Qt, mais ça ne m'a pas trop plus, donc je vais rester sur la SFML.

                            Merci à tous ^^

                            BloodyDark.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            [CONSEIL] Choix pour jeu en réseau

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown