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

C++ Discussion :

Vos avis : Simple Gaming Message Transfert Protocol


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut Vos avis : Simple Gaming Message Transfert Protocol
    Slt,

    J'ai écris une petite librairie en c++, SGMTP (Simple Gaming Message Transfert Protocol), qui permet de s'éviter la programmation réseau des applications. c'est orientée jeux en réseau mais peut être utilisée pour n'importe quelle application.

    Le principe est simple : vous voulez faire un morpion, un chat, un pendu ou un autre jeu en réseau, mais vous ne voulez pas ou ne pouvez pas coder la partie en réseau. Ma librairie va vous permettre de coder la logique de votre jeu en réseau sans écrire de code réseau (hormis connect() et disconnect()). Pour cela, vous déclarer des listeners (les messages que chaque app doit écouter) puis les fonctions callback associées.

    Il y a encore un gros travail de puification du code à faire, notamment les mélange c/c++.
    Je travaillerai dans un futur proche à développer des interfaces avec python et java pour allier à ma librairie la faciliter à créer des interfaces utilisateurs dans ces langages.

    Le code est disponible sur github :https://github.com/blixit/cgserveur ainsi qu'un example : le jeu du pendu (https://github.com/blixit/cgserveur/tree/master/pendu). Le wiki, pas totalement à jour depuis la version 1, peut aider à mieux comprendre https://github.com/blixit/cgserveur/wiki .

    J'aimerai avoir vos avis sur l'utilité d'une telle librairie (de votre point de vue) et si possible vos retours de tests.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Salut,

    sans aller bien loin c'est un non direct:
    - des .o sur github
    - des using dans header

    ca marche en TCP ? UDP ? autre ?
    Le coup des listeners on dirait juste un genre de portage du principe de node.js en C++, pourquoi pas c'est suffisament simple en théorie.
    Une utilité, surement, mais ça restera surement dans ton cadre personnel d'utilisation, les resources pour arriver à un tel résultat (plutôt simple) sont pas compliquées à trouver ou appréhender normalement
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut
    Merci pour ta réponse ca a le mérite d'etre clair.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Comment l'utiliser ?
    Quels sont les avantages de l'utiliser ? Quelles sont les garanties/fonctionnalités ?
    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.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 3
    Par défaut
    J'étais parti d'un constat simple, souvent on veut faire une appli avec une interface utilisateur simple et en réseau, sans passer par les QT et compagnie. Et souvent on a une compétence mais pas l'autre. Dans le cas ou on ne maitrise pas les sockets, on n'a pas souvent envie de se farcir la gestion des threads clients, les erreurs de connection, en gros toute la logique réseau.

    En écrivant un protocole au-dessus de TCP/IP, je permets à l'utilisateur de se concentrer sur la logique applicative. Comme l'a dit Bousk le principe est proche de node.js mais je pense qu'avec le niveau qu'il a atteint il a oublié les galères des débutants/amateurs.

    L'avantage c'est la réduction du code relatif au réseau au profit de fonctions callback et de listeners :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //Exemple de listeners dans le main
    cgc.comm.binds.push_back({asBind::TYPE_M|asBind::TYPE_P, string(REQUETE(_session)+"-"+NET_PARAM_START), on_start, &cgc});
    Quand le thread recois un message qui correspond, la fonction enregistrée est lancée.

    Pour l'utiliser juste besoin de linker une .a et d'inclure un .h.
    Les garanties ?! je n'invente pas TCP donc à part la garantie que les applications soient bien connectées et communiquent dans les délais, je n'en vois pas.

    La fonctionnalité de base c'est le transfert de données (fichiers y compris, mais implémentation en cours). c'est ca que tu demandais ?

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 157
    Billets dans le blog
    152
    Par défaut
    Oui, vous avez répondu. Pour une publication, je vous conseille de vous pencher sur la doc (j'ai pas accès à la page wiki, indiquée ci-dessous).
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparatif des hébergeurs payants : Vos avis
    Par RideKick dans le forum Hébergement
    Réponses: 346
    Dernier message: 12/03/2017, 10h47
  2. Réponses: 5
    Dernier message: 15/03/2016, 14h53
  3. [LIVRES] Vos avis nous intéressent !
    Par Maxence HUBICHE dans le forum Livres
    Réponses: 21
    Dernier message: 30/01/2013, 17h33
  4. [Livres/Références] Vos avis..
    Par Community Management dans le forum Livres
    Réponses: 6
    Dernier message: 25/07/2005, 19h31

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