Bonjour a tous
Je travail actuellement sur une idée qui m´a traverser la tete ^^
La creation d´un moteur mmorpg 3d sur serveur FTP.
C´est a dire, que tout le jeu serais entierement gerer sur un serveur FTP et donc sans aucun serveur exterieur ( plus facile a trouver, ouvert 24/24, beaucoup moins honereux... )
Pour l´instant, ce projet n´est qu´au stade de "concept" bien que j´ai deja realiser un petit programme montrant que cela doit etre possible.
L´idée serais de gerer le tout par envoie et lecture de fichier sur FTP.
Pour un example concret, les deplacements.
Imaginons un mmorpg a la ragnarok c´est a dire avec un pathway ( on clique ou on veut aller )
Lorsqu´on clique, on inscrit dans un fichier les coordonnées X, Y et Z du clique et le fichier s´envoie ensuite sur un serveur FTP.
Lorsqu´un fichier est envoyer, il declenche une fonction qui fait lire a toutes les personnes connecté ce meme fichier.
A ce moment la, les clients interprette la position actuel du joueur qui a bouger par raport a la nouvelle indiquer dans le fichier. Et le client simule le deplacement.
A ce moment la, un deplacement via FTP est entierement gerable et plutot assez rapide en vue des premiers testes que j´ai effectuer.
Cette idée peut, je le pense, s´appliquer a tout ce qui est demander dans un mmorpg ( sort, combat etc... )
J´aimerais vos impressions sur ce concept et au plus experimentés de me dire si il verais quelques choses qui pourrais clocher ou donnez leurs avis etc...
Je peux egalement repondre a toutes vos questions
Lorsqu´un fichier est envoyer, il declenche une fonction qui fait lire a toutes les personnes connecté ce meme fichier.
c´est bien la le probleme et le nerf de la guerre de tout MMORPG ... et, bien que je ne connaisse pas a fond le protocole FTP, je doute que celui ci te permette le renvoie de donnees sans requete ...
J´ignore comment ca s´appelle en C++, mais dans le monde Flash, ce que tu demande, c´est un serveur socket, et du coup, cela devient plus rare, et plus cher ...
je ne commente meme pas les autres points : celui que j´ai adresse etait, a mon sens, le plus irrealiste de tous ... mais les autres sont pas mal servi aussi
donc en gros, a moins qu´il y ait quelque chose que j´ignore avec le protocole FTP, c´est pas top realiste ton idee ![]()
bé c´est une requete SQL mais jvois pas en quoi sa pose probleme
tu melanges tout
une requete SQL veut dire que tout tes clients vont devoir faire un check de la base tous les x intervales : non seulement, ce n´est plus du temps reel, mais tu vas aussi tres vite saturer ta base ...
puis, si tu utilise SQL, je ne vois pas trop l´interet du concept FTP ?! ? ... pourquoi ne pas ecrire les deplacements en base, plutot qu´en fichier ? puisque tu est de toute facon limite par l´interval de ta rquete SQL ? ![]()
car je suis en meme temps que j´ecris ce poste, en train de reflechir a comment faire. Au debut je faisait par fichier et maintenant je vois par SQL et je ne vois pas en quoi je serais bloquer par l´interval des requetes
le probleme, vois tu, c´est que pour un MMORPG, comme pour n´importe quel jeu multijoueur temps reel, tu ne veux pas de "requetes" ... tu veux que l´information se dispatche elle meme des qu´elle change ... d´ou les "sockets" qui ouvrent un "ecouteur" qui est en continuelle attente de nouvelle information ... c´est ca qui est cher, dans un serveur mutlijoueur, justement ![]()
Les sockets ecoute un port et intercepte les packet qu´on y envoi. Sa reviens au meme que d´envoyer une requete sql et de lire la base
ben, si tu vois pas, c´est soit :
- que t´as pas encore regarde assez loin
- ou que l´on a pas la meme definition de MMORPG ( qui pour moi, est en temps reel ...)
non ... dans le cas des sockets, ton client ne ferme jamais sa connection avec le serveur : il est en perpetuelle ecoute ...
pour SQL, tu peux mentir, et faire une requete toutes les 1 secondes, mais cela saturera vite ta base - et cela ne sera toujours pas du "vrai" temps reel
Je ne suis pas a mon premier mmorpg et je maitrise quand meme un minimum le sujet ( frog creator et compagnie ) Donc je sais a peu pres dans quoi je m´embarque
oui c´est sur que sa ne sera pas reelement du temps reel, mais je ne pense pas etre obliger non plus d´envoyer une requete toutes les X secondes. Je pensais en demander uniquement lorsque y´en a besoin
il ne me semble pas ! moi je crois que t´es un gros noob qui se la pete, et ne sait pas trop ce qu´il raconte ...
Tu ne m´interesse plus : tchao
tres bien bonne soirée ![]()
mes excuses : je me suis emporte pour rien ...mais je crois que je ne te ferai pas changer d´avis, et que notre discussion sera vite sterile : mes excuses encore pour mes mots deplaisants, et bon courage ...
Je prend en compte ce que tu dit, mais je donne egalement mon point de vue. Bien que tu ai raisons sur les points que tu avance. Mais je pense quand meme que c´est a tenter et voir comment reagirais mon idée ( de toute facon je n´ai rien a perdre a pars un peu de temps )
bon, je vais essayer de faire amende honorable ...
voici la ou sa coince :
///---
Les sockets ecoute un port et intercepte les packe
t qu´on y envoi. Sa reviens au meme que d´envoyer une requete sql et de lire la base
///---
La difference :
- L´ecouteur va recevoir une information, au momen
t ou elle change.
Imagine 10 personnes connectes a ton jeu : 1 joueur se deplace au bout de 1 minute d´inactivite - le serveur de socket va envoyer la nouvelle coordonee aux 9 autres joeurs
1 deplacement - 9 "envois" serveurs - 1 minute
- La base SQL, meme jeu :
Le joueur se deplace au bout d´une minute - puisque tu n´as pas moyen de "prevenir" les autres clients - pendant cette minute, tous tes 10 clients auront fait une requete, chaque seconde, pour voir si quelqu´un fait quelque chose : une requete, c´est 2 envois : une question, et une reponse
1 deplacement - 120 "envois" serveur - 1 minute
Je schematise grossierement, mais voici le probleme que je vois dans ton concept
oh ...et la raison pour laquelle je suis en mesure de te parler de tout ca, c´est que je suis en train de developper un MMO, et que j´ai vraiment fait l´essai en PHP/SQL ...
Non seulement, a 1 requete/seconde, mon jeu, oriente action donnait l´impression de se trainer a 4 pattes, mais qu´avec 30 bots connectes ( ce qui n´est pas enorme pour un MMO ) la base se trainait comme une truie neurasthenique
hum ok C´est vrai que le nombre de requete est enorme lol et j´y ai penser ( mais je voulais tester quand meme pour voir reelement ^^ )
Mais je pense avoir moyen de faire les requetes uniquement quand quelqu´un se deplace. Et non en permanance. Donc sa attenuerais considerablement le nombre de requete enfin je continuerais a y reflechir.
Mais je precise aussi que cela est seulement un passe temps pour tester si c´est possible, pour m´occuper etc... et en aucun cas un super projet de la mort pour rivaliser avec WOW lol
Donc voila meme si c´est pas possible c´est aussi pour apprendre :p