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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Hobbyiste
    Inscrit en
    juillet 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Hobbyiste

    Informations forums :
    Inscription : juillet 2018
    Messages : 35
    Points : 15
    Points
    15

    Par défaut Programmation Socket pour jeux vidéos (partie serveur)

    Bonjour tous / toutes / et /tous seuls,
    Je développe depuis 7 ans un petit jeu 3D en Java et OpenGL. Une sorte de pacman 3D simplifié.
    J'ai travaillé dessus un an à peu près puis un peu de temps pour me consacrer à d'autres projets en Java ou PHP.
    Pour le moment je m'y remets et pour la partie serveur je voudrais me simplifier. Tomcat n'énerve, EE m'endort, Spring me fait vivre des cauchemars.
    Alors je veux faire une programmation easy en mode socket sur lequel j'ai lu un bon livre (Network Programming on Unix je pense) et qui m'a fait comprendre pas mal de truc.
    L'idée c'est de faire une brique logicielle à customizer, dans la grande lignée d'Emacs de mon gourouuuu.

    Brique logicielle pour le "Jeu en réseau" (je parle pas des apps pour smartphone).


    https://gitlab.com/Graphics3D/Power-and-Damages

    /*
    * 3D game
    * Copyright (C) 2010-2017 Manuel DAHMEN
    *
    * This program is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with this program. If not, see <http://www.gnu.org/licenses/>.
    */

    package be.manudahmen.apps.opad.choici;

    import java.lang.reflect.Array;
    import java.util.HashMap;

    /**
    * Created by Win on 07-11-18.
    */
    public class CommandResponse {


    public static void reponse(){
    Players players = new Players();
    String[][] commandResponse =
    {
    {"list players",players.listPlayers()},
    {"chat:.*?", "sent"},
    {"list players positions", "(\\([0-9]*\\.[0-9]*,[0-9]*\\.[0-9]*"+
    "\\),)*" +
    "(\\([0-9]*\\.[0-9]*,[0-9]*\\.[0-9]*"},
    {"", ""}

    };
    }
    }
    Par exemple quel est la meilleure manière d'implémenter la relation client-serveur dans le jeu.

    Limite l'idée serait d'écrire un article après tuto (parce que tout je ne crois pas que j'arriverai à faire un jeu avec ... des joueurs )


  2. #2
    Membre à l'essai
    Homme Profil pro
    Hobbyiste
    Inscrit en
    juillet 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Hobbyiste

    Informations forums :
    Inscription : juillet 2018
    Messages : 35
    Points : 15
    Points
    15

    Par défaut En fait comment demander un avis sur des sources? (sans être ignoré)?

    Sinon je cherche des collaborateurs.

  3. #3
    Membre expert Avatar de yildiz-online
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    octobre 2011
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : octobre 2011
    Messages : 1 078
    Points : 3 506
    Points
    3 506

    Par défaut

    Citation Envoyé par DaTheWolf Voir le message
    Par exemple quel est la meilleure manière d'implémenter la relation client-serveur dans le jeu.
    Ca dépend du jeu.

    Pour avoir brièvement regardé les sources du serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Server server = null;
     
    Server serverChoice = ServerChoice.getServer(readRequest);
     
    server.communicate(client);
    Ca va pas bien se passer!
    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2016
    Messages : 6
    Points : 10
    Points
    10

    Par défaut

    Salut à toi!

    J'ai implémenté une petite blibiothèque server (enfin je sais pas si on peut appeler ça une bibliothèque )! Je te la partage sur mon github:

    https://github.com/Callimard/Easy-Server.git

    En fait, avec ça normalement tu peux créer ton propre serveur en créant tes propres commandes que tu veux qu'il traite (ex: commande AUTH pseudo password), tu peux gérer comment tu veux manager tes clients (ex: 1 Thread pour chaque client ou alors autre chose), tu peux gérer comment sont executées chaque commandes du client (ex: un client envoie une commande elle est directement exécutée ou alors elle est mise dans un pool de threads ou autre), etc.

    J'ai malheuresement pas fait d'exemple dans le projet mais j'en ferai peut-être.

    Je sais pas si tu arriveras à comprendre l'archi du truc en tout cas moi ça m'a bien aidé pour certains projets!

    La plupart des class sont abstraites du coup c'est a toi de créer des class filles qui vont justement définir les comportements cités en exemple plus haut! Mais en gros tu n'as pas a implémenter les liens entre chaque composants, tu as juste à définir leur comportements!

    Voilà j'espère que ça te seras utile, si tu veux en savoir plus n'hésite pas a m'envoyer des messages et normalement je mettrais à jour mon code dans les prochains jours (je rajouterai par exemple une implémentation toute bête pour montrer comment ça fonctionne).

    Au revoir!

    Callimard.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Hobbyiste
    Inscrit en
    juillet 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Hobbyiste

    Informations forums :
    Inscription : juillet 2018
    Messages : 35
    Points : 15
    Points
    15

    Par défaut

    Bonjour Callimard,

    J'ai une erreur en compilant le projet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Error:(61, 76) java: cannot find symbol
      symbol:   variable DAO
      location: class server.util.ErrorManager

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/11/2015, 11h48

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