Les Grainies Forum Index


Roadmap 2010
Goto page: 1, 2  >
 
Post new topic   Reply to topic    Les Grainies Forum Index -> Les Grainies -> planning -> Programmation
Previous topic :: Next topic  
Author Message
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Sun 18 Apr - 12:26 (2010)    Post subject: Roadmap 2010 Reply with quote

Bonjour à tous,


Sur demande de Blackant, je reprends toute la partie développement du jeu à mon compte.


Afin de faire avancer le projet, je vais vous présenter d'ici les prochains jours une Roadmap pour 2010. Le but est d'afficher des priorités et de faire un point à chaque étape.
Ainsi, si des développeurs nous rejoignent par la suite, ils sauront de suite sur quoi bosser.


Pour le moment, il nous est nécessaire d'avoir un site Web, un module d'inscription au site/jeu et un forum sur ce même site.
Pour le site, j'ai transmis quelques infos à Blackant en PM comme le fait de prendre un nom de domaine + hébergement pour la durée d'un an chez OVH (ovh.com).
Ce type d'offre nous conviendrait parfaitement pour débuter : http://www.ovh.com/fr/hebergement_mutualise/hebergement_web_mutualise_perso_25go_trafic_500go.xml?step=tech
Eagle, nous allons partir sur un module d'inscription simplifié. Une formulaire sur le site qui enregistre dans la base de données les informations nécessaires à la création du compte site/forum/jeu.
Il faudrait également coder une page en php par exemple uniquement accessible par le serveur de jeu. Cette page aura pour vocation de valider ou non le l'accès d'un joueur au serveur. Dans l'immédiat, ne te soucie par de protéger la page pour qu'elle ne soit accessible que par le serveur, nous nous en occuperons par la suite.


En ce qui concerne le client du jeu, je vais m'atteler à la partie qui précède la connexion du joueur au serveur. C'est à dire, le lancement du jeu, l'affichage d'éventuels artworks puis l'affichage du formulaire de connexion au jeu. Par la suite, j'attaquerai la connexion au serveur et le choix du personnage.


To be continued,
Magoth


Back to top
Publicité






PostPosted: Sun 18 Apr - 12:26 (2010)    Post subject: Publicité

PublicitéSupprimer les publicités ?
Back to top
Blackant
Chef de Meute
Chef de Meute

Offline

Joined: 27 Apr 2008
Posts: 919
Localisation: CAEN
Masculin
Point(s): 605
Moyenne de points: 0.66

PostPosted: Sun 18 Apr - 13:54 (2010)    Post subject: Roadmap 2010 Reply with quote

Voila donc le liens pour noter site Web sera :


http://www.grainies-blackmanaquest.fr


je penses plus tard faire evoluer la chose vers une traduction anglaise pour toucher plus de joueurs donc je rajouterais un .com plus tard.


Back to top
Visit poster’s website Skype
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Sun 18 Apr - 20:37 (2010)    Post subject: Roadmap 2010 Reply with quote

Impeccable, le nom de domaine et l"hébergement sont d'ailleurs déjà actifs.
Eagle aura certainement besoin des accès du serveur ftp pour qu'il injecte le site.


Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Mon 19 Apr - 12:49 (2010)    Post subject: Roadmap 2010 Reply with quote

Je m'en charge sous peu, du moins pour l'inscription, c'est ok... pour le forum, ça reste a finaliser mais dès que j'ai du temps, je m'y mets a fond.

Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Mon 19 Apr - 12:57 (2010)    Post subject: Roadmap 2010 Reply with quote

A Magoth : quelques questions au sujet de l'inscription : dois-je créer un fichier pour l'exploitation coté logiciel a l'inscription ( car j'ai cru comprendre que le jeu n'utilisera pas directement de base de données ). Si oui, tu pourras me préciser les attributs du fichier, et tout ce qu'il doit contenir?
Je n'ai pas encore eu l'occasion de réaliser ce genre de script, mais je pense que ça ne prendra pas beaucoup de temps a intégrer au script actuel.


Back to top
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Mon 19 Apr - 14:25 (2010)    Post subject: Roadmap 2010 Reply with quote

Hello Eagle,
en effet, le jeu (côté client) ne fera aucun appel à la BDD. Seul le serveur de jeu peut le faire.

Donc, dans l'architecture ultra-simplifiée (et à moindre coût) que nous allons mettre en place, deux choses sont importantes :
1/ Le procédé d'inscription sur le site : l'utilisateur remplit le formulaire du site qui enregistre les informations dans la BDD du site.
2/ Le serveur de jeu, dès la réception des accès du joueur, appel un script php du site pour savoir si l'utilisateur à le droit ou non de jouer. Il est important que seul le serveur de jeu puisse accéder à ce script php. Pour se faire, deux possibilités, soit tu protéges par un htaccess avec l'ip du serveur de jeu, soit tu mets une condition à la première ligne de ton fichier php qui teste l'ip du serveur et exécute la suite du script ou non.

Si tu ne te sens pas chaud pour le 2/, je pourrais t'écrire un exemple de script php sur lequel tu pourras t'appuyer.


Back to top
Blackant
Chef de Meute
Chef de Meute

Offline

Joined: 27 Apr 2008
Posts: 919
Localisation: CAEN
Masculin
Point(s): 605
Moyenne de points: 0.66

PostPosted: Mon 19 Apr - 19:27 (2010)    Post subject: Roadmap 2010 Reply with quote

j'ai une petite question a savoir sur l'importance ou non que le jeu soit telechargeable en .exe ou qu'il soit jouable directement depuis le web comme la demo actuelle, 


ca changerais quelque chose entre les 2 versions ?


Back to top
Visit poster’s website Skype
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Mon 19 Apr - 19:51 (2010)    Post subject: Roadmap 2010 Reply with quote

En théorie, selon ce que nous dit Unity, non.Maintenant j'émets quelques doutes quant aux performances pour la version Web. Nous le verrons dans le futur de toute façon.

Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Mon 19 Apr - 21:10 (2010)    Post subject: Roadmap 2010 Reply with quote

si tout se charge coté serveur, ça risque d'etre très très limité je pense... il faudrait que les ressources soient au minimum coté client pour avoir un minimum de probleme de ce coté.

Back to top
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Tue 20 Apr - 08:09 (2010)    Post subject: Roadmap 2010 Reply with quote

L'application Web est bien lancée sur le client grâce au player Unity. Les doutes que j'ai sur les performances concernent le player mais il ne devrait pas y avoir de problème de toute manière.
Nous verrons bien le comportement des différents clients quand la première zone sera fonctionnelle.


Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Tue 20 Apr - 17:36 (2010)    Post subject: Roadmap 2010 Reply with quote

Blackant : Merci, phpmyadmin est ok, je te donnerai le mot de passe via msn
Magoth : je mettrai en ligne : la page d'inscription avec confirmation par mail, la page d'identification, une page de visualisation du compte et un lien de déconnexion. Pour ce qui est de l'algorithme pour la connexion serveur, je pense pouvoir le coder normalement.
Question : au sujet du jeu, j'en ai discuté avec un des admin de Evolution ( http://www.evolution.fr ) qui s'y connait pas mal en MMORPG ( ils ont notamment un serveur de jeu privé Aion ) . Selon lui, l'idéal est de créer un client de jeu coté utilisateur ( pour ne pas avoir a charger 7Go de ressources à chaque lancement), pour ne pas surcharger le serveur et surtout pour ne pas avoir notre navigateur qui entrave les performances du jeu. D'ailleurs, un jeu 3D aussi poussé que le sera les Grainies n'est pas adapté au navigateur, meme si Unity permet de lancer l'appli du navigateur.
De plus, contrairement à ce que mavait signalé Idrakis, la lecture fichier pour les données joueur est, toujours selon l'admin d'Evolution, un assez mauvais choix car il est a la fois gourmand en ressources ( a chaque action : ouvrir, modifier,enregistrer un fichier CHMOD ) et assez difficile a assurer une sécurité fiable, toujours à cause de l'htaccess qui va ralentir l'accès au fichier. Le mieux selon lui est de passer par une base de données, qui ne posera aucun problème de sécurité et a une vitesse raisonnable. D'ailleurs, cest ce qu'ils utilisent chez Aion.
Voilà, dis moi ce que tu en penses.
A bientot


Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Tue 20 Apr - 17:37 (2010)    Post subject: Roadmap 2010 Reply with quote

Mince le lien : http://www.evolution-fr.com
Voilà Smile


Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Tue 20 Apr - 20:23 (2010)    Post subject: Roadmap 2010 Reply with quote

Petit soucis avec le serveur : la configuration php ne correspond pas tout à fait à mon code, le serveur me bloque pas mal de fonctions. Je vais devoir revoir tout ça :s
Je ne pourrais malheureusement pas mettre en ligne ce soir, à moins de trouver tous les problèmes immédiatement.


Back to top
Magoth
Programmeur
Programmeur

Offline

Joined: 04 Jan 2010
Posts: 86
Localisation: Paris
Masculin
Point(s): 86
Moyenne de points: 1.00

PostPosted: Tue 20 Apr - 21:48 (2010)    Post subject: Roadmap 2010 Reply with quote

Bonsoir,


alors, dans l'ordre.


- Ton ami a raison, c'est de cette manière dont fonctionnent les émulateurs de serveur MMO depuis 2002 (EQemulator auquel j'ai d'ailleurs participé avant de migrer sous le projet Mangos pour WoW).


En résumé, dès qu'on parle de jeu multijoueurs multizones et nécessitant un accès, nous avons quatre domaines principaux :
- 1/ Le client. Il s'agit du programme chargé de s'exécuter sur la machine du joueur. Dans le client nous retrouvons tous les "arts" du jeu (images, sons, interface, fenêtres, fonts, ...) et la programmation intéractive, il s'agit de la façon pour le joueur d'intéragir avec son interface.
-2/ Le serveur de monde (World Server). Il s'agit d'un programme qui s'exécute sur un serveur dédié chargé des premières tâches relatives à la connexion du joueur. Il vérifie ses accès, le connecte sur le bon serveur de jeu (à voir en 3ème point), lui propose de choisir ses characters, etc...
-3/ Le serveur de jeu (Game Server ou Zone Server). Il s'agit d'un programme qui gère 95% de ce qui se passe en jeu et plus particulièrement dans une zone donnée. Tous les algorithmes inhérents au jeu à proprement parlé sont exécutés par lui seul. Nous ne pouvons pas faire autrement pour la simple et bonne raison que si nous déportions des algos sur le jeu côté client, un joueur pourrait à tout moment tricher sans que le serveur soit au courant. De plus, ce n'est pas le rôle du client de "contrôler" le serveur.
-4/ Le serveur de données. Il s'agit d'un serveur indépendant, de type SGBD, dont la vocation est de contenir tout ce qui doit être "mémorisé".  Il est appelé par le serveur de monde et le serveur de jeu (et en aucun cas le client).
En exemple, quand un joueur se connecte, il est nécessaire de faire entrer en jeu le character qu'il a choisi et qui lui appartient. C'est le serveur de données qui détient ces informations.
Quand ce même joueur tue un monstre et loot le corps qui est censé looter une épée de tel type, à la mort du monstre, le serveur de BDD est appelé pour connaître toutes les possibilités de loot de ce monstre.


Il y a toutefois une notion très importante concernant le serveur de données. Dans le cas du serveur de jeu / serveur de zone, il va y avoir plusieurs instances de ce même serveur lancé par la même application. Nous appelons cela des "threads". En effet, prenons le cas des Grainies par exemple. Le serveur de zone aura une instance par Scène. Nous aurons donc une instance du serveur de zone pour le Village Grainies et une instance pour la Montagne noire, ainsi qu'une instance pour chaque scène du jeu. Selon la fréquence des requêtes, un SGBD peut utiliser pratiquement toute la disponibilité du processeur. Ce que nous faisons donc, c'est qu'au lieu de requêter le serveur de données sans arrêt, nous allons directement injecter en mémoire physique les données à partager entre les différentes instances.


Pour finir, ce que nous avons testé avec Idrakis, et il a d'ailleurs eu raison là-dessus, c'est qu'en I/O nous sommes plus rapide qu'avec un serveur de données tel que MySQL. Tu retrouveras un post sur le forum où j'ai posté des benchmarks. Partant de cet état de fait, Idrakis a voulu coder un système de gestion de bdd custom. Bien que l'idée était séduisante, réinventer la roue n'est pas une bonne chose. En MySQL (et j'ai testé en Oracle également), nous sommes vraiment plus lent qu'en I/O (avec pointer constant sur fichier) mais la perte n'est pas importante dans notre cas tout simplement car du point de vue de la conception du jeu, il ne faut pas que le serveur attende une réponse du SGBD pour pouvoir continuer fonctionner. Donc pas grave, nous allons partir simplement sur un MySQL pour commencer.


Pour finir (bis), quand je te parlais du htaccess, je parlais UNIQUEMENT pour le script php chargé de répondre au serveur d'accès quand il reçoit une connexion d'un joueur. Il est bien évident que le serveur de jeu ne va pas faire des requêtes à un script php pour récupérer les informations en base en plein jeu Very Happy
Voici comme cela devra fonctionner :
A) Le client lance son jeu, arrive sur la fenêtre de login, entre ses accès et clique sur "Se connecter".
B) Le serveur d'accès reçoit la connexion du joueur, vérifie la conformité de la requête. Si la requête est conforme, il lance une connexion (en HTTP) sur le script php du serveur WEB. Ce script est protégé par un .htacess qui ne permet d'être accédé que par le serveur d'accès (très simple à faire). Le script php prend 2 paramètres (en GET ou en POST peu importe): le login et le mot de passe. Il vérifie en base si les deux concordent. Si tel est le cas il affiche "oui" sinon il affiche "non".
C) Le serveur d'accès reçoit la réponse du script PHP. Si c'est "oui", il autorise le client à se connecter au serveur et c'est parti.


Voilà, désolé d'avoir fait une réponse un peu longue mais j'ai voulu détailler le process pour que chacun puisse comprendre.
Je précise aussi que dans notre cas, nous partons sur une architecture ultra-simplifiée : 1 serveur Web et 1 serveur dédié par la suite. Le serveur Web détient uniquement les informations concernant le site, les inscriptions, le forum. Le serveur dédié sera chargé d'héberger le serveur "monde", le serveur de zones et le serveur de données.
Si les moyens futurs nous permettent de faire autrement, nous n'aurons plus qu'à séparer les trois serveurs sur le dédié et/ou de les clusteuriser.
Mais à l'heure actuelle, nous en sommes encore vraiment très loin.


Bonne soirée


Back to top
Eagle
Programmeur
Programmeur

Offline

Joined: 25 Oct 2009
Posts: 216
Localisation: marseille
Masculin
Point(s): 221
Moyenne de points: 1.02

PostPosted: Tue 20 Apr - 21:56 (2010)    Post subject: Roadmap 2010 Reply with quote

Merci pour toutes ces précisions Magoth Smile

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Les Grainies Forum Index -> Les Grainies -> planning -> Programmation All times are GMT + 1 Hour
Goto page: 1, 2  >
Page 1 of 2

 
Jump to:  


Index | Free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation