WolfSpirit2a
Messages postés19Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention19 septembre 2007
-
13 mai 2006 à 21:50
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
14 mai 2006 à 10:31
Bonjour !
Je code actuellement un petit MMORPG,
je rencontre une petite difficulté au niveau du serveur en ce qui concerne l'envoi de la position des monstres aux clients.
En effet j'utilise une double imbrication de boucle pour cela, style :
For m = 1 To UBound(mob()) - 1
For c = 1 To UBound(client()) - 1
If client(c).perso.map = mob(m).onMap Then ' Si le monstre se trouve sur la meme carte que le personnage ..
ws(c).SendData "MOB," + Str$(mob(m).caseX) + "," + Str$(mob(m).caseY) ' On lui envoi la position du monstre
End If
Next c
Next m
(mob = le tableau qui contient les monstres : 500 index)
(client = le tableau qui contient les clients : 200 index)
Le problème c'est que ce traitement doit se faire toutes les 3 secondes environs, hors je trouve que ce code est extrèmement lourd pour une gestion correcte du serveur, ca risque de ramer à mort ....
500x200 = 100000 vérifications toutes les 3 secondes .... (surtout que mon serveur doit gérer les connexions, les déconnexions, et beaucoups d'autres choses en même temps, il ne doit donc pas être monopolisé par une fonction).
Quelqu'un aurait-il une idée d'algo pour une gestion correcte des monstres ?
Et aussi j'ai entendu que VB ne gérait pas le multithreading .. est-il vraiment possible de créer un petit mmorpg quand même ?