Adversator - BROWSER MOBA

PARADOKS
Messages : 33
Inscription : 03 Fév 2010 10:28

Re: Adversator - casual 5v5 moba

Message par PARADOKS » 27 Août 2014 22:40

Merci pour vos encouragements.
Pour ce qui est du Roshan, il ne devrait pas y en avoir... pas tout de suite en tout cas.
Pour info, j'attaque l'intégration de photon ce soir !

Avatar de l’utilisateur
mel68
Messages : 827
Inscription : 04 Fév 2012 14:57

Re: Adversator - casual 5v5 moba

Message par mel68 » 29 Août 2014 16:27

salut, c'est sympa comme projet(même si moi je suis un grand défenseur de LoL et non Dota ^^), tu devrait juste changer les sons parce que a long terme avoir les sons de w3 c'est pas très serieux, m'enfin je suppose que c'est juste pour le test.

Bon courage pour la suite de ton projet!
Bonjour bonjour, je tien juste a vous avertir promptement que ce message ne sert totalement a rien

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: Adversator - casual 5v5 moba

Message par Franck » 30 Août 2014 12:03

axel a écrit :Super, très bon boulot.
+1
Dés fois j'bug, dés fois j'bug pas.

PARADOKS
Messages : 33
Inscription : 03 Fév 2010 10:28

Re: Adversator - casual 5v5 moba

Message par PARADOKS » 24 Sep 2014 10:45

Je suis de retour,

Je me pose une question qui n'est pas technique, en fait c'est un niveau du game design, donc avis aux joueurs de MOBA.

Je ne sais pas comment attribuer l'XP et l'or aux joueurs, je m'explique.

Dans Dota, qui est le seul jeu que je connaisse, on donne de l'or au joueur qui a tué une unité ( last hit) et de l'xp aux joueurs qui sont a moins d'une certaine distance de l'unité tuée.
A peu de choses près, c'est ça.

Mais je trouve que le système du "last hit" défavorise l'esprit d’équipe, donc j'ai pensé à un "global gold" quand un joueur tue une unité ça va au "global gold", et le "global gold" est divisé en nombre de joueurs, pareil pour l'xp. le seul problème c'est que j'ai envie de garder le compteur de kills comme dans Dota... qui du coup ne veux plus rien dire.

En revanche ça a un avantage technique: je ne suis pas obligé de garder de trace du last hitter, ça me fait un calcul en moins.

Qu'en pensez-vous ?,

Ps: j'ai une démo qui tourne mais il y a encore plein de trucs qui manquent.
ps: n'oubliez pas ma page facebook !:
https://www.facebook.com/pages/Paradoks ... 31?fref=ts

Avatar de l’utilisateur
Dragonic
Messages : 116
Inscription : 18 Avr 2014 10:11
Localisation : Somewhere in my voxel World !!!

Re: Adversator - casual 5v5 moba

Message par Dragonic » 24 Sep 2014 11:08

Si j'avais à choisir je choisirais sans doute une alternative pour tester : le joueur qui obtient le last hit reçoit quelquechose comme 50% du gold et de l'XP pour avoir abattu l'unité. C'est le seul à se voir augmenter son compteur de kill. L'or et XP restant est réparti équitablement entre les autres joueurs. Le top serait de garder un historique des dégâts fait à l'unité par les différents joueurs pour distribuer l'or et XP restant en fonction des dégâts fait par les joueurs.

On peut même combiner au final un peu toutes les méthodes :
- 50% or et XP au joueur qui fait le last hit, + augmentation compteur de kill
- 20% or et XP répartis à tous les autres joueurs alliés proches lors du kill
- 30% or et XP répartis aux joueurs alliés ayant contribué à blessé l'unité, en fonction des dégâts fait par chacun

Puis à voir si on applique cela de la même façon pour l'or et l'XP !
En revanche ça a un avantage technique: je ne suis pas obligé de garder de trace du last hitter, ça me fait un calcul en moins.
Est-ce vraiment si problématique ? :mrgreen:
Dernière édition par Dragonic le 24 Sep 2014 11:22, édité 1 fois.
Image

PARADOKS
Messages : 33
Inscription : 03 Fév 2010 10:28

Re: Adversator - casual 5v5 moba

Message par PARADOKS » 24 Sep 2014 11:22

En fait le coup du last hitter qui est gardé en mémoire me pose un problème car je doit faire une recherche par unité a chaque fois qu'un joueur touche cette unité, tu multiplies ça par le nombre d'unité dans le jeu ça fait beaucoup à chaque seconde. Sachant en plus que je dois passer par le réseau à chaque fois, ça fait pas mal.
Autre chose que oublié de dire: je veux qu'il soit possible de quitter le jeu à n'importe quel moment, comme ça, quand un nouveau joueur arrive, il prend le "global gold" / 5, et il n'est pas désavantagé.

pour revenir en détail sur ta proposition:
je devrais garder un tableau pour chaque unité du jeu avec, tous les attaquant et les dégâts qu'ils ont fait en tout.
l'idée est bonne, mais ça me prendrait trop de ressources.

tu joues a Dota ?

Avatar de l’utilisateur
Dragonic
Messages : 116
Inscription : 18 Avr 2014 10:11
Localisation : Somewhere in my voxel World !!!

Re: Adversator - casual 5v5 moba

Message par Dragonic » 24 Sep 2014 11:26

PARADOKS a écrit :tu joues a Dota ?
Un peu de LoL par le passé seulement ^^ !

Le coup des calculs pour le last hit ça m'étonne. Il y a sans doute moyen de gérer plus facilement l'attribution.
Je n'ai pas très bien compris comment tu fais pour attribuer le kill, mais si à chaque fois que tu touches une unité tu es obligé de check toutes les autres unités en jeu je trouve ça bizarre !
Une attaque effectuant des dégâts à une unité possède pour moi une référence au joueur l'ayant effectué. Lorsqu'une unité meurt après une attaque je remonte au joueur concerné via cette référence. Du moins pour l’attribution du last hit c'est comme ça que je le verrais. J'ai du mal à voir où il y aurait besoin d'un check de toutes les unités !
Dernière édition par Dragonic le 24 Sep 2014 11:53, édité 1 fois.
Image

PARADOKS
Messages : 33
Inscription : 03 Fév 2010 10:28

Re: Adversator - casual 5v5 moba

Message par PARADOKS » 24 Sep 2014 11:50

Dragonic a écrit :Un attaque effectuant des dégâts à une unité possède pour moi une référence au joueur l'ayant effectué. Lorsqu'une unité meurt après une attaque je remonte au joueur concerné via cette référence. Du moins pour l’attribution du last hit c'est comme ça que je le verrais
Et bien c'est exactement ça, le personnage attaqué garde une trace du personnage qui l'attaque, mais si 5 personnages attaquent le même ça fait déjà X 5.
Et comme tu as 3 lignes de 10 creeps tu multiplies les appels.
En plus, comme le creep attaqué n'est pas forcement sur le "masterClient" il va falloir a chaque fois qu'il envoie l'attaquant sur le réseau avec son PhotonView.id qui est un (int), en local je récupère ce chiffre et je fais une recherche.... tu imagines à chaque fois ? je pense que c'est faisable, mais j'ai peur de manquer de ressource sous le pied pour autre choses.

Avatar de l’utilisateur
Dragonic
Messages : 116
Inscription : 18 Avr 2014 10:11
Localisation : Somewhere in my voxel World !!!

Re: Adversator - casual 5v5 moba

Message par Dragonic » 24 Sep 2014 12:08

PARADOKS a écrit :Et bien c'est exactement ça, le personnage attaqué garde une trace du personnage qui l'attaque, mais si 5 personnages attaquent le même ça fait déjà X 5.
Et comme tu as 3 lignes de 10 creeps tu multiplies les appels.
C'est le "X 5" ou la multiplication du nombre d'appel en fonction du nombre de personnages attaquant l'unité qui m'étonne, du moins pour cette histoire de last hit.
Qu'une unité possède les références aux joueurs l'attaquant pourquoi pas. Pour le last hit je ne comprends pas pourquoi il y a besoin d'itérer sur tous ces joueurs. Lorsque les dégâts d'une attaque sont résolues sur l'unité, à partir de la référence sur le joueur ayant effectué l'attaque on retourne directement sur ce joueur sans avoir à checker les autres, non ?

Au moment du kill qu'on itère pour les joueurs adjacents pour attribuer l'or et l'XP ça c'est normal. Mais juste au moment du kill et pas toujours lorsqu'on fait des dégâts à l'unité. Je n'ai pas idée exactement de comment l'architecture de ton code est prévu, mais ça me laisse vraiment à penser qu'il y a des appels en trop qui trainent vu comme ça ^^' !

Après pour la gestion réseau c'est sûr qu'il y a toujours de la latence qui se crée quelquesoit le jeu et les types de données qui transitent. Je m'imagine mal par contre des jeux comme LoL ou Dota ne pas pouvoir gérer les idées que je proposais, avec historique et tout. M'enfin je n'en sais pas plus en fait, c'est juste que l'idée de remplir petit à petit des tableaux d'historique sur les unités qu'on a blessé me semble tellement simple et rapide que je considère que l'utilisation de ces données à travers le réseau n'en sera pas plus compliqué ^^ ! Surtout que c'est généralement au "MasterClient" (si ce dernier agit en tant que serveur comme je l'imagine) de valider les attaques, et que donc chaque client devrait remplir ses tableaux à partir de ça. A aucun moment je ne vois l'utilité de passer ces infos d’historique via le réseau.

Après ne t'embête pas trop avec mes retours ^^ ! Je donne un point de vue comme si je codais ma propre solution et je n'ai pas bien idée des quelques difficultés que je pourrais rencontrer pour diverses raisons ^^, ou de comment ton code est construit en toute logique !
Image

PARADOKS
Messages : 33
Inscription : 03 Fév 2010 10:28

Re: Adversator - casual 5v5 moba

Message par PARADOKS » 24 Sep 2014 12:28

C'est cool de discuter de toute manière.

Mais je me suis mal exprimé, il n’itère pas entre tout les joueurs, toutes les unités attaquées doivent faire un GetComponennt à chaque fois qu'elles sont attaquées.
donc 40 unités fois 2 attaques par seconde, je fais 80 GetComponent toutes les secondes + l'appel en [RPC]. c'est ça qui me prend des ressources!

Répondre

Revenir vers « Vos créations, jeux, démos... »