Le 09 janvier 2017 à 17:42:35 DavidAaronson a écrit :
Le 30 décembre 2016 à 13:17:05 Auteur blacklisté a écrit :
D'autant plus que si le jeux est petit et communautaire tu peux instaurer un système de délation pour permaban pour les cheaters.Mauvaise idée. Sur la plupart des jeux en ligne, on se fait traiter de cheater dès qu'on est bon et qu'on commence à battre la plupart des gens.
Exacte
Le 04 janvier 2017 à 16:33:48 florent6262100 a écrit :
MerciLà je viens de mettre en place le système de spawn des mobs coté serveur.
J'ai mis au point un système qui fait que si il y a un joueur présent dans la zone ça spawn les mobs
Je m'explique:
Dans une boucle qui s'exécute toutes les 3 secondes (pour éviter le flood)
Un joueur est proche de la zone ?
Oui > (1)
Non > Supprime les mobs si ily en a au bout de X temps (n'est pas encore implanté)(1) Les mobs de cette zone sont spawns ?
Oui > On envoie les données à tous les joueurs proches de cette zone
Non > On spawn les mobs et on envoie les données à tous les joueurs proches de cette zoneEt actuellement je fait la réception des données coté client, qui va spawn les mobs
J'avais pas vu de GOTO dans un programme depuis longtemps
PS : je me doute bien que c'est juste pour simplifier...
Intéressant
Donc les mobs spawn à la vue de joueur. Est-ce que ça veut dire que deux joueurs différents n'auront pas les mêmes mobs?
Le 11 janvier 2017 à 11:18:58 ulfberht[plus] a écrit :
IntéressantDonc les mobs spawn à la vue de joueur. Est-ce que ça veut dire que deux joueurs différents n'auront pas les mêmes mobs?
Non, dutout, enfaite voici la logique:
Donc tout les joueurs on les mêmes mobs
Voici un exemple:
Mais du coup tu m'a fait penser que j'ai pas fini l'update de la vie des mobs
Voilà
Ce que j'ai fait ce soir:
Ouah... je commence à comprendre la complexité d'un mmo.
Alors au nouvelles pour ceux qui ce demandent ce que je fou a ne plus rien mettre
Je suis entrain d'arranger la structure réseau, j'ai mis en place un sendrate et j'ai optimiser les requêtes
Ce qui fait qu'au lieu de surcharger le serveur de requêtes (ce qui prend du temps au serveur de déchiffrer le tout, entre la reception des position, les dégats etc a dispatcher)
Et bien le client et le serveur envois a un certain rythme ( client à 1/10ème de seconde et serveur 1/30ème actuellement)
Voilà, en gros de la réorganisation
Le 18 janvier 2017 à 01:52:13 florent6262100 a écrit :
Alors au nouvelles pour ceux qui ce demandent ce que je fou a ne plus rien mettre
Je suis entrain d'arranger la structure réseau, j'ai mis en place un sendrate et j'ai optimiser les requêtesCe qui fait qu'au lieu de surcharger le serveur de requêtes (ce qui prend du temps au serveur de déchiffrer le tout, entre la reception des position, les dégats etc a dispatcher)
Et bien le client et le serveur envois a un certain rythme ( client à 1/10ème de seconde et serveur 1/30ème actuellement)
A tes souhaits
Le 18 janvier 2017 à 01:52:13 florent6262100 a écrit :
Alors au nouvelles pour ceux qui ce demandent ce que je fou a ne plus rien mettre
Je suis entrain d'arranger la structure réseau, j'ai mis en place un sendrate et j'ai optimiser les requêtesCe qui fait qu'au lieu de surcharger le serveur de requêtes (ce qui prend du temps au serveur de déchiffrer le tout, entre la reception des position, les dégats etc a dispatcher)
Et bien le client et le serveur envois a un certain rythme ( client à 1/10ème de seconde et serveur 1/30ème actuellement)Voilà, en gros de la réorganisation
Pourquoi tu sync pas les ticks des clients et du serveur ?
Tu vas etre obligé de faire de l'interpolation du coup.... a moins que tout ne soit pas géré par le serveur, ce qui laisse la porte ouverte a pas mal de cheats
Le 18 janvier 2017 à 15:43:57 hself a écrit :
Le 18 janvier 2017 à 01:52:13 florent6262100 a écrit :
Alors au nouvelles pour ceux qui ce demandent ce que je fou a ne plus rien mettre
Je suis entrain d'arranger la structure réseau, j'ai mis en place un sendrate et j'ai optimiser les requêtesCe qui fait qu'au lieu de surcharger le serveur de requêtes (ce qui prend du temps au serveur de déchiffrer le tout, entre la reception des position, les dégats etc a dispatcher)
Et bien le client et le serveur envois a un certain rythme ( client à 1/10ème de seconde et serveur 1/30ème actuellement)Voilà, en gros de la réorganisation
Pourquoi tu sync pas les ticks des clients et du serveur ?
Tu vas etre obligé de faire de l'interpolation du coup.... a moins que tout ne soit pas géré par le serveur, ce qui laisse la porte ouverte a pas mal de cheats
Car ce serait trop casse cou**** pour aucun intérêts
Le serveur gère la position des joueurs, mais pas la simulation, une détection de position cheaté est en place pour éviter les speed hack et les TP (coté serveur évidemment)
Donc oui, dans tout les cas qu'importe le système il faut faire de l'interpolation pour avoir un minimum de fluidité
J'avais mal lu en fait, je pensais que c'etait le serveur qui etait en 10hz pour justement éviter la surcharge.
C'est pour ca que je parlais d'interp
Qu'importe la fréquence du serveur, il faudra du lerp pour éviter les micro freezes dans les déplacements
C'est vrai qu'au lieu de parler de 10ème et de 30ème j'aurais du parler de hertz
Le mieux ce n'est pas de faire avancer les autres personnages avec une IA qui va vers une cible (la prochaine position) ?
Quel avantage ?
Niveau désavantage je vois clairement une utilisation énorme des ressources
Autant directement assigner via un lerp la nouvelle position du joueur, ce qui prend quasi aucune ressource, et qui ce plus rapide a mettre en place
Au passage, meme c'est pas pour du MMO, cet article est tres bon https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
Merci hself
Oui il est connu ce lien
Oui j'imagine :D
Depuis quelques temps je fait le pour et le contre sur le changement d'architecture de dev, et j'ai donc décidé d'écouter votre avis
Je vais passer a une architecture Server simulation & client input au lieu de Client simulation & server data
Ce sera même plus simple pour moi au niveau dev de contenu (pas besoin de mises a jours pour certains trucs, anti cheat plus restrictif etc)
C'est vrai que ça ne sert a rien de rester borner, le but c'est de faire quelque chose de qualité !
Alors, AU BOULOT !
PS: Je vais pourvoir faire du spam de post en montrant l'avancé :V
Et aussi, si tu veux un peu de lecture :
Minecraft: http://wiki.vg/Protocol
ArcEmu (serveur WoW open-source) http://arcemu.org/wiki/Getting_the_source_code