JeuWeb - Crée ton jeu par navigateur
Traitement massif en PHP ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Traitement massif en PHP ? (/showthread.php?tid=3764)



Traitement massif en PHP ? - dr.jack - 05-03-2009

Bonjour à tous,

Après de nombreuses recherches infructueuses sur le sujet, je cherche des informations sur la résolution dans le cadre de combats "massifs", en fait quand un très grand nombre d'unités (de plus de natures différentes) sont engagées au combat. Existe-t-il des méthodes/algos pour ce genre de problématiques ?

Merci par avance de vos lunières :o)

Cdlt


RE: Traitement massif en PHP ? - Argorate - 05-03-2009

Il n'existe pas d'algorithme qui soit "le vrai algo"! C'est à toi de créer un moteur de combat qui fonctionne, le nombre d'unités n'est pas censé être une difficulté, si tu fait un moteur de combat qui marche pour une variable, après ce n'est qu'une multiplication par le nombre d'unités que tu as...

Encore que c'est à toi de définir comment tu veux que ça marche, si au delà de certains nombres tu veux accorder un bonus c'est à toi de l'indiquer...

Dit nous en plus, quel type de jeu tu veux? quel type de combat? qu'est-ce que tu aimerais que ton jeu soit capable de faire?


RE: Traitement massif en PHP ? - dr.jack - 05-03-2009

Merci pour ce début de réponse.

Pour l'instant je n'ai pas encore d'idée précise sur le jeu en question, d'ailleurs mon but est d'écrire les algos fondamentaux dans un premier temps.

Mon système de combat sera basé sur différents types d'unités qui auront chacune des caractéristique propre au combat. Alors s'il ne s'agissait que de se faire affronter les deux parties ce serait plus simple (cumul des valeurs d'attaques et de défenses). Dans mon cas je souhaiterai que chaque unité au combat se voit attribuée une cible aléatoirement et c'est bien là le problème.

Imaginons que la limite d'unité par combattant soit de 500.000.000, j'imagine que ce n'est pas possible d'attribuer à 500M d'unité une cible aléatoirement, ce qui reviendrai à boucler sur ces 500M.

Pour avoir observé quelques jeux existants (meilleure façon d'apprendre ...), ils sont capables de résoudre en deux secondes des millions d'unités au combat.

J'espère avoir été compréhensible dans mon explication, sinon dite le moi et j'essaierai de mieux m'expliquer ... lol

Cdlt


RE: Traitement massif en PHP ? - wild-D - 05-03-2009

Citation :Pour avoir observé quelques jeux existants (meilleure façon d'apprendre ...), ils sont capables de résoudre en deux secondes des millions d'unités au combat.
les ogame-like se font pas chier :

2) les plus simple somme bêtement toutes les puissance d'attaque et somme toute les armure et somme toute les résistance/pv (ou je sais quoi); et hop tu regarde
attaque - résistance = dégâts infligés
et ensuite dégats infligés/pv total de la flotte = proportion de vaisseau détruits.
-> et hop on à donc pour chaque type de vaisseau:
nombre de vaisseau restant = nombre de vaisseau tour pécédent * proportion de vaisseau détruits.

après on peut naturellement améliorer bcp l'algo:
- introduction de facteurs aléatoire (rand())
- utilisation d'aggrégation plus fine (plutot que la flotte complette on le fait par sous-flotte(chaque sous flotte étant bien souvent toutes les unité d'un certain type) )
- on peut avoir des attaque/armure/résistance différenciée (genre attaque laser/missile/.... comme dans le medfan on a tranchant/contandant/et autre type de dégats magique ou non)
- loi de répartition des dégâts plus complexe
- ...


de manière général tu va pas gérer un combat unité par unité quand t'as des millions d'unité: tu utilise des heuristique statistique: moyenne, variance, loi de répartition, etc...


RE: Traitement massif en PHP ? - dr.jack - 05-03-2009

A la lecture de ta réponse, j'avais bien raison de supposer que beaucoup de jeu ont des mécanismes simples de résolution de combat par exemple.

J'avais dans ma tête un peu réfléchi à faire des résolutions par lots/proportions (avec du random), j'étais finalement pas sur une mauvaise piste, après sur les aspects statistique je ne suis pas spécialiste, je vais donc interroger mon ami -> Google ! Sinon aurai-tu un point d'entrée sur ces notions statistiques appliquées au jeu?

Merci pour cet éclaircissement.

Cdlt