Nova, le jeu !

Page 10 sur 12 Précédent  1, 2, 3 ... 9, 10, 11, 12  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Ven 14 Sep - 15:37

Tout avantage arbitraire que tu rentre dans un type d'arme rentre dans le coeff c. La seule option serait d'avoir un effet de seuil ("s'il y a que des lasers, alors bonus X"), mais cela va complètement a contre-courant du fait d'avoir plusieurs armes sur des vaisseaux. Et puis comme tu dit, c'est moche.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Ven 14 Sep - 16:11

Oui. Et j'ai bien l'impression que c'est structurel a cause du fait qu'il n'y a que 3 types d'armes.
Par exemple, si on pose que A = cB (ou B = A/c), B = cC et C = cA, alors:

A vs ABC
1A vs 0.33A + 0.33B + 0.33C
1A vs 0.33A + A0.33/c + 0.33Ac
1 vs 0.33 + 0.33/c + 0.33c
On veut donc que 1 > 1/3 + 1/3c + c/3
<=> 2 > 1/c + c
<=> -c² + 2c - 1 > 0
<=> - (c-1)² > 0 (faux)

Donc ABC > A avec ces hypothèses.

Pour le cas AB vs ABC
A/2 + B/2 vs A/3 + B/3 + C/3, d'où (en prenant comme unité A par exemple) :
A/2 + A/2c vs A/3 + A/3c + Ac/3
On veut donc que 1/2 + 1/2c > 1/3 + 1/3c + c/3
<=> 3c + 3 > 2c + 2 + 2c²
<=> -2 c² + c + 1 > 0
delta = 1 + 8 = 9
x = (-1 +- 3)/(-4) = 1 ou -1/2
[vérification : -2(x-1)(x+1/2) = (x-1)(-2x-1) = -2x² +x +1, ok]
Comme -2 < 0 pour avoir -2 c² + c + 1 > 0 il faut donc choisir c entre -1/2 et 1.

Donc AB > ABC > A avec ces hypothèses.
Reste à vérifier que A > AB pour que le système soit intéressant :

A vs AB
A vs A/2 + B/2
A vs A/2 + A/2c
donc on veut 1 > 1/2 + 1/2c
<=> 1/2 > 1/2c
<=> 1 > 1/c
<=> c > 1
Or on a déjà que -1/2 < c < 1, fail.

Conclusion : j'ai effectivement l'impression qu'on ne peut avoir de pierre-feuille-ciseau avec trois armes sans que la compo mixte batte les compos spécialisées.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Ven 14 Sep - 16:30

Le pierre-feuille-ciseau donné dans le premier système n'était pas associé à des coefficients comme tu l'as fait pour la simulation (très ingénieuse au demeurant), mais sur les capacités des armes à se toucher. J'avais ensuite équilibré les points de vie pour que les pertes entre Nemesis soient équilibrées.

Ainsi : Canon bat Chasseur bat Missile bat Canon (noté K > C > M > K) car les missiles ne pouvaient pas toucher les chasseurs et que les canons ne peuvent toucher les lance-missiles lointains. En supposant par la suite que les lanceurs de C et les M sont en arrière et les K au front, on a :

1) M' vs KCM : K est inopérant, C intouchable, M et M' sont mutuellement hors de portée. KCM va forcément gagner grâce à C, mais les pertes en K peuvent être lourdes. Donc M' vs KCM -> 0 vs CM.
2) K' vs KCM : K' = 3K, C s'en prend plein la tête et M tire sans se faire toucher. K' vs KCM -> 0 vs M + survivants.
3) C' vs KCM : K est fort, C' = 3C et M inopérant. C' vs KCM -> 0 vs KM + pertes uniquement si les canons descendent assez de chasseurs par tour.

Voui, même de façon qualitative j'ai l'impression que ABC > A.
Dans les cas 1) et 2) c'est obligé car il n'y aura plus moyen au bout d'un moment de faire de nouveaux dégâts (chasseurs intouchables dans le premier, et missiles intouchables dans le second), et dans le cas 3) c'est une interprétation de ma part... pas forcément juste d'ailleurs.

Est-ce qu'on pourrait imaginer M > K > C > KCM et intégrer les MK, KC et CM dans le lot ?
C'est à dire équilibrer l'ensemble les uns par rapport aux autres au lieu de simplement faire le pierre-feuille-ciseau sur les armes ?

[edit] D'un autre côté il est difficile d'avoir une flotte généraliste optimisée, en raison du nombre important de techs et des officiers que cela réclame. C'est en fait une prime au plus fort.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Ven 14 Sep - 17:18

Si une arme n'en touche pas une autre, cela reviens a avoir un coeff 0 (0 x n = 0), d'ou le fait que je suis resté avec des coeffs.
J'avais fait quelques calculs sur des ensembles, mais j'étais arrivé a des coeffs entre le groupe de 3 armes et chaque arme individuellement, c'est pour cela que je me suis concentré sur les extrêmes. Mais on peux toujours revérifié et/ou faire un équilibrage sur cette base.


Dans un autre domaine, je vais essayer de quantifié les calculs requis[1] pour la version du vaisseau non monolithique (aka la grille de galaxy trucker), car je vois un bon nombre de mécanismes qui découlent de cette représentation.

Quelques remarques cools:
-l'origine des dégâts est localisé (par en haut, par en bas, par la droite, par la gauche, par devant ou par derrière). Comme Ap l'a dit, on peux aussi localisé les boucliers.
-un gros vaisseau est naturellement plus vulnérable
-les ordinateurs augmentent de la probabilité de touché un vaisseau au lieu de l'espace
-il est possible de casser en deux un vaisseau détruit au milieu (connexité de l'arbre)
-on peux avoir des effets drôles sur la visé. Par exemple, un chasseur vise automatiquement une zone sans coque et un missile a signature infrarouge vise automatiquement les moteurs ou les cases en direction des centrales.
-on peux avoir des armes qui détruisent plusieurs composants en largeur/hauteur (explosion), ou au contraire en profondeur (tir perforant)

Ect, ect, ect... bref, j'aime bien cette représentation. Encore faut-il que ça passe sur le serveur.

[1]comprendre: je vais pondre un algo python a l'arrache et le faire tourné sur le serveur
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Sam 15 Sep - 1:02

Après un peu de réflexion, voilà l'ébauche du nouveau système que je vous propose.
Pour l'instant je me préoccupe uniquement d'ajouter et de synthétiser un maximum de contenu, car c'est cela qui sera intéressant. La formalisation et l'équilibrage suivront ensuite.

Conception

Il y a peu d'emplacements et la conception se fait à la Galaxy Trucker, avec en plus plusieurs niveaux (des ponts).
Il faudrait voir vraiment ce que cela signifie (voir post de Nime ci-dessus esquissant l'implémentation potentielle). Les armes pourraient frapper selon des directions différentes, ce qui encouragerait les joueurs à concevoir des pavés. On peut éviter cela en donnant des formes de base (avec des trous à remplir), qui peuvent être différentes selon les races.

J'ai songé à quelques contraintes de conception :
- le pont d'envol, donnant le nombre de chasseurs sortant chaque tour. En dessous il y a des réserves de chasseurs indiquant pendant combien de tours les chasseurs vont sortir.
- la centrale peut avoir des contraintes de connexion, et n'alimenter qu'un pont ;
- armes devant et moteurs derrière ;
- le bouclier pourrait ne protéger qu'un pont ;

Ce serait bien qu'en fonction de la forme du vaisseau et / ou de ses composants on ait des noms (frégate légère, corvette lourde, etc.).

Armement

Canon : forte cadence, instantané, peu de dégâts et faible portée.
Laser : faible cadence, instantané, peu de dégâts et forte portée.
Missile : faible cadence, avec délai, gros dégâts et forte portée.

En prenant d'autres combinaisons de ces critères on peut créer d'autres armes, par exemple :

Artillerie : forte cadence, avec délai, peu de dégâts et forte portée.
Bombe : faible cadence, instantané, gros dégâts et faible portée.
Mine : forte cadence, avec délai, gros dégâts et faible portée.
(+ armes en éphémère ?)

Il ne reste qu'à définir les mots-clés :
Cadence n : deux possibilités 1) Un tir tous les n micro-tours ou 2) n tirs tous les tours.
Délai : attente avant que les dégâts ne soient infligés, pouvant être utilisée pour l'interception.
Dégâts : voir défense.
Portée : voir ciblage.

Défense

Le nombre de points de vie d'un vaisseau dépend de sa taille et de la technologie de coque. On peut aussi avoir des modules de coque renforcée.
Les boucliers peuvent faire une réduction de dégâts brute ou par pourcentage. On peut aussi songer à un absorbeur d'énergie.
Les intercepteurs peuvent s'attaquer aux autres nefs ou aux projectiles afin de protéger les vaisseaux.

Positionnement

La notion de distance permet de jouer sur la portée et permet une ébauche de formation de combat.
Les vaisseaux sont rangés avant le combat par leur propriétaire selon une droite de distance, afin de fixer ceux qui seront plus ou moins prêts du front. Au début du combat, on place les deux fronts loin les uns des autres, et les vaisseaux obéissent à l'instruction suivante : ils tirent s'ils le peuvent, et sinon se rapprochent d'un cran du camp ennemi (ce qui garantit un gagnant).

Ciblage

Un vaisseau ne peut toucher un autre que si nv_ordi + portée_arme > vitesse_défenseur + distance_défenseur.
Le joueur donne des directives par plan avant le combat. Le groupe (de vaisseaux de même plan) attaquant cumule ses dégâts en mémorisant n_att le nombre de vaisseaux attaquants, et cible les vaisseaux à portée selon ses directives : privilégier les grosses ou les petites coques, et si le tir doit être concentré sur un vaisseau ou dispersé.
[Implémentation : par exemple si la valeur de concentration choisie par le joueur est C, cela signifie que les dégâts seront répartis entre les n_att / C premiers vaisseaux dans l'ordre de taille de coque choisi.]
Pour éviter qu'il n'y ait trop de plans, on peut poser que les officiers font leur effet par plan et non par flotte ou par vaisseau.

Nefs

Les chasseurs, les drones et les intercepteurs attaquent les autres nefs.
Les chasseurs et les drones attaquent aussi les vaisseaux. Les drones sont plus puissants (ordinateur ?) mais deviennent inactifs (retirés du combat ?) si leur porte-nef est détruit.
Les intercepteurs attaquent les projectiles des armes avec délai avant qu'elles ne touchent.
Les bombardiers d'un vaisseau possédant des bombes transportent celles-ci pour les faire exploser au loin (dégâts de zone ?), mais ils peuvent être abattus s'ils ne sont pas escortés par d'autres nefs.

Le combat entre nefs peut se faire instantanément (soustraction simple n1 - n2) ou être répartis dans le temps (par exemple le joueur 1 perd n2 / (n1 + n2) % et le joueur 2 n1 / (n1 + n2) % chaque tour). On peut aussi pondérer par la puissance des chasseurs, ce qui complique un peu les formules.
On pourrait aussi laisser l'attaque des autres nefs aux intercepteurs.

Les dégâts des nefs contre les autres vaisseaux peut se faire de façon répartie entre les vaisseaux survivants ou en infligeant à tous les vaisseaux un nombre de dégâts proportionnel au nombre de nefs, ce qui pénalise énormément les flottes nombreuse.

Au niveau technologie, on peut songer à une technologie augmentant la puissance des armes des nefs, mais aussi une technologie (pilotage ?) réduisant les pertes.

A la fin d'un combat s'il y a plus de nefs que d'emplacements dans les porte-nefs restants, l'excédent est détruit. Les nefs manquant sont comptés comme des blessures pour ce qui est de la réparation (progressive dans le temps).

Vaisseaux civils

Les cargos pourraient être des composants (dans ce cas ils pourraient se défendre) ou des vaisseaux à part entière.
Si on autorise des vaisseaux civils, il faut des sondes et des coloniaux.
Naturellement ils sont détruits s'ils sont attaqués et non escortés.

Elrohir dit que les cargos menehatim pourraient être les seuls cargos avec des armes (légères), et qu'on pourrait a contrario donner à une autre race (les nomades ?) la capa d’avoir des composants de cargo sur les vaisseaux militaires.

Tactiques

On peut rajouter a posteriori de quoi étoffer le choix du général (en plus du placement de ses vaisseaux et des ordres de ciblage par plans), par exemple une tactique défensive (les vaisseaux civils sont intouchables) ou une tactique offensive (davantage de dégâts subis mais davantage de dégâts infligés), etc.



Je pense n'avoir rien oublié, mais si vous aviez une idée qui ne rentre pas là-dedans, dites la quand même, l'important est d'avoir du contenu ! Smile
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Imryss le Sam 15 Sep - 11:42

C'est assez... massif, je pense qu'il va me falloir un peu de temps pour assimiler.

Je reviens sur la notion de nombre limite de tours au combat car elle me plait : elle rend les affrontements moins absolus comme ça civ 5 et elle sera d'autant plus importante si comme je l'ai compris on a peu de vaisseau. Un combat s'arrête simplement quand les hommes sont épuisés. Il est arrivé dans des batailles que les deux armées se replient pour que les soldats puissent reprendre de forces, que les blessés soient soignés, que l'on réapprovisionne ou répare l'équipement. Aussi on peut très bien dire qu'après x tours de combats, la bataille s'arrête et les flottes sont immobilisés 24h pour pas avantager les no-lifes. On peut aussi envisager de programmer des ordres tel que le ferait un bot du type : au sortir de l'immobilisation réattaquer ou au sortir de l'immobilisation faire un saut (avec priorité d'exécution donné à celui qui saute, ce qui remplace la fuite).

_________________
Depuis que j'ai appris à voyager je suis sorti du rêve.

avatar
Imryss
Rocher-qui-bouge
Rocher-qui-bouge

Masculin Nombre de messages : 3705
Age : 28
Localisation : Là où je suis est ma maison
Date d'inscription : 27/10/2008

Voir le profil de l'utilisateur http://auberge-du-voyageur.1fr1.net

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Sam 15 Sep - 14:04

M'alors, point par point.

Apeiron a écrit:Les armes pourraient frapper selon des directions différentes, ce qui encouragerait les joueurs à concevoir des pavés.

Non, ça incite a minimiser la surface d'accroche la plus probable, sachant que si on passe en 3D (c'est ce que rajoute la notion de pont), alors chaque surface est en 2D.
Par exemple, si je pense que mon vaisseau va subir beaucoup de tir par l'avant, alors je l'allonge beaucoup, mais je réduit la hauteur et la largeur au maximum.

Apeiron a écrit:On peut éviter cela en donnant des formes de base (avec des trous à remplir), qui peuvent être différentes selon les races.

Je ne suis pas certain que c'est nécessaire, mais je ne suis pas contre non plus.
Par contre, pas de forme en fonction de la race, ou en tout cas pas de prise de décision a la légère sur ce sujet: même si ça semble cool comme idée, j'ai l'intuition (pour ne pas dire la certitude) que la forme est un élément très important pour l'équilibre des combats.

Apeiron a écrit:Ce serait bien qu'en fonction de la forme du vaisseau et / ou de ses composants on ait des noms (frégate légère, corvette lourde, etc.).

Possible en fonction de la forme si cette dernière est imposée.
Par contre, vu qu'il est possible d'avoir plusieurs types d'armes dans un même vaisseau (cette forme de conception n'a aucun intérêt si tu imposes les armes), tu ne peut pas donner de nom en fonction des composants.

Apeiron a écrit:Cadence n : deux possibilités 1) Un tir tous les n micro-tours ou 2) n tirs tous les tours.

Un tir tout les n tours implique une sauvegarde des tirs déjà effectués, donc j'ai une préférence pour le 2).

Apeiron a écrit:Le nombre de points de vie d'un vaisseau dépend de sa taille et de la technologie de coque. On peut aussi avoir des modules de coque renforcée.

Tout l'intérêt de ce moteur de combat, c'est de ne PAS avoir de points de vie globaux pour le vaisseau. En fait, voilà comment je vois la chose:

Conception
-Chaque composant possède un certain nombre de points de vie. La coque possède des points de vie plus élevés, en fonction de la technologie coque.
-A la fin de la conception, le jeu rajoute automatiquement un composant coque a chaque emplacement qui se trouve adjacent a un composant non-moteur non-coque et un espace. Bref, le vaisseau se retrouve automatiquement entouré d'une coque. Le composant coque n'est pas disponible pendant la conception.

Exemple d'une séquence de tir.
-Pendant un combat, un vaisseau possède 6 angles: devant, derrière, haut, bas, gauche, droite. Chaque angle offre l'accès a une surface (en 2D donc).
-Les dégâts se font tir par tir. La séquence qui va suivre ne concerne qu'un seul tir, et ne prend pas en compte les considérations de ciblage (en amont).
-Pour chaque tir reçu par un angle, le jeu calcul une coordonnée pour le tir, influé par les ordinateurs en face, la distance et ce genre de choses. Si la coordonnée pointe vers une zone d'espace, le tir est simplement ignoré.
-Si on ajoute des composants boucliers, c'est ici qu'on fait la vérification. Si la case est protégée par un bouclier, alors les dégâts sont infligés au bouclier et le tir n'a pas d'autre effet.
-Sinon, le tir se propage jusqu'au premier composant a qui il reste des points de vie et inflige ses dégâts au composant. Si les points de vie du composant tombe a 0, alors on ignore complètement le composant pour le reste du combat.
-Si le composant détruit est une coque, c'est pas bien grave: cela signifie juste que ce qui se trouve derrière la coque est a présent vulnérable.
-Si le composant détruit est autre-chose qu'une coque... ben, tout va dépendre du composant en question. Si c'est une centrale par exemple, alors cela peut désactiver les composants qui demandent de l'énergie (armes, moteurs, ect). On peux même avoir des effets kisscool comme "une centrale détruite explose et fait des dégâts aux composants environnants".
-Il existe un composant présent en unique exemplaire: le pont. Si le pont est détruit, alors le vaisseau est lui aussi détruit.
-Si le vaisseau se retrouve coupé en deux (divisé en deux graphes non connexes), alors la partie qui ne possède pas le pont est détruite.

Aussi on peut très bien dire qu'après x tours de combats, la bataille s'arrête et les flottes sont immobilisés 24h pour pas avantager les no-lifes.

Je n'aime pas le concept d'immobilisation après un combat, car on a tout fait pour que l'immobilisation fasse suite au mouvement et pas au combat.
Mais bon, pour être honnête, c'est un design qui marche.

Cela ne change pas le fait qu'avoir des vaisseaux blindés est inacceptable du point de vue de l'équilibre du jeu: escorte tes vaisseaux civils par des tanks (ou transforme tes tanks en cargo) et tu n'aura plus rien a craindre des pirates.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Sam 15 Sep - 23:53

Bon, voilà des résultats préliminaires: il faut 5.6s au serveur pour généré 200 vaisseaux (tous identiques: 12 canons, une passerelle et des blocs de coques tout autours). Le temps de génération semble linéaire en fonction du nombre de vaisseaux (2.9s pour 100 vaisseaux).
D'après quelques tests, le temps de génération est surtout lié a l'allocation et l'initialisation (par copie [1]) de la mémoire, ce qui signifie qu'il est incompressible.

[1]: Pattern prototype: je génère un prototype du plan, je l'initialise, puis je copie simplement le vaisseau en mémoire autant de fois que nécessaire.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Dim 16 Sep - 12:27

Bon, j'ai réussi a partager en mémoire certaines informations sur les composants (les noeuds), ce qui réduit le temps de mise en place de 200 vaisseaux a 0,5s.


Dernière édition par Nimeroni le Dim 16 Sep - 13:53, édité 1 fois
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Derich le Dim 16 Sep - 12:39

Nimeroni a écrit:Bon, j'ai réussi a partager en mémoire certaines informations sur les composants (les noeuds), ce réduit le temps de mise en place de 200 vaisseaux a 0,5s.
Joli... et ça devient raisonnable niveau temps.

Au pire, disons que le maximum sera aux alentours de 10 000 vaisseaux (pleins de flottes colossales qui s'entrechoquent), ça représente 25s pour faire le combat du côté du serveur, donc ça reste relativement raisonnable vu la taille de la bataille... Razz
avatar
Derich
Expatrié
Expatrié

Masculin Nombre de messages : 941
Age : 27
Localisation : Loin! Enfin, pas ici...
Emploi/loisirs : Essaye de transformer des journées de 24h en 42h (inversion de chiffres non autorisées!)
Date d'inscription : 04/01/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Dim 16 Sep - 13:54

Nan, c'est juste pour l'allocation et l'initialisation mémoire des vaisseaux ça.
Je ne sais pas encore si le combat va être lourd ou pas (pas encore fini l'algo =) ), mais je pense que l’initialisation est la plus petite partie.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Dim 16 Sep - 18:13

Au départ je voulais faire à peu près ce que tu proposes maintenant, mais vous m'aviez dit que ce serait trop gourmand et trop compliqué. Cela étant dit ça peut valoir le coup. Smile

Sinon, il peut y avoir une construction "3D" des vaisseaux pour la conception mais une gestion plus globale pour le combat. Tout dépend d'à quel point la conception influencera le combat.

PS : Il y a moyen d'envoyer un mail à tous les inscrits ? Je voudrais nous excuser pour le retard auprès des testeurs.

Idée d'Elro : Possibilité d'avoir un vaisseau amiral, qui pourrait conditionner l'application des formations. Une stratégie peut donc être d'essayer d'abattre le vaisseau amiral ennemi afin de le priver de ce bonus. Cela rompt l'homogénéité des flottes mixtes, puisqu'il ne peut y avoir qu'un vaisseau amiral par flotte.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Dim 16 Sep - 20:28

Justement: je veux voir a quel point c'est lourd en pratique. On peux toujours faire tourné quelque-chose de lourd si on réduit au maximum le nombre d'éléments, par exemple si on limite le nombre de vaisseaux dans une flotte.

Pour les meta structures, on verra plus tard. Pour le moment, je ne m'occupe que de la gestion des vaisseaux un par un.


Pour les emails, pas a ma connaissance, mais je peux te fournir par email la liste des emails des membres.


------------------------------------------------------------------------------------------------------------------------------------------------------
J'ai réussi a faire une implémentation basique des algos en python. Le code fait environ 500 lignes, donc je n’écrirais que des petits morceaux de python ou de pseudo-code.

Avant de fournir les résultats numériques "bruts", voici les points importants de l'implémentation:
Spoiler:

Le script possède la structure suivante:
Code:
(mise en place des classes et des fonctions)
Description des composants
Mise en place d'un prototype pour chaque composant
Description du vaisseau
Mise en place d'un prototype du vaisseau
Pour chaque vaisseau:
    duplication du prototype
    création des liens du graphe du vaisseau
    création des "portes d'entrées" de chaque vaisseau
    sauvegarde de la position de la passerelle et des armes
Pour chaque round:
    accumulation des tirs
    application des tirs

Explicitement: chaque round de combat a lieu en deux phases.
Pendant la première phase, le jeu rassemble le nombre de tir de chaque arme (ici uniquement les canons), et pendant la deuxième phase, le jeu applique les tirs. Cela signifie qu'un canon/vaisseau détruit fait quand même feu pendant le round en cours et qu'il n'y a pas de notion d'initiative. Cela signifie aussi qu'un canon tire exactement une fois par round.

Les vaisseaux sont tous identiques. Ils sont constitués de 20 canons, une passerelle et le nécessaire en coque (chaque vaisseau fait 91 composants). Le jeu place automatiquement une coque sur chaque emplacement entre une case d'espace et un composant. Les vaisseaux sont de taille du 7 x 7 x 4 (coque comprises).

Je n'ai fait qu'un groupe de vaisseau. Les vaisseaux se tirent sur eux-même.

Si la passerelle est détruite, le vaisseau est complètement retiré du combat. Si un canon est détruit, ce dernier ne fera plus feu a partir des prochains rounds.

Un canon détruit une coque en 4 coups et tout autre composant en un coup. Chaque tir possède une précision (entier positif ou nul). Le nombre de lignes visés par un tir de précision p est de 2p + 1. Un tir de précision 0 touche toujours la case devant la passerelle (dans l'axe du tir).

Un tir possède une des 6 directions: devant, derrière, haut, bas, gauche, droite. Cette direction projette un plan en 2D, c'est a dire qu'elle fixe une dimension de la 3D.
Par exemple, un tir d'en haut fixe l'axe z: la valeur de l'axe z du composant touché sera celle du premier composant a la coordonée (x, y) depuis le haut. S'il y a deux composants en (1, 3, 2) et (1, 3, 3), et que le tir touche (1, 3), alors c'est le composant en (1, 3, 3) qui sera touché car il est devant (1, 3, 2) sur l'axe z.

Quand une arme tir sur un vaisseau, voici l'algo utilisé (a quelques détails d'implémentation):
Code:
tir (direction, dégâts, précision):
      p = position( passerelle )
      //Retourne les axes du plan 2D fixé par la direction
      (var1, var2) = variables( direction, p)
      var1 = random( var1 - précision, var1 + précision )
      var2 = random( var2 - précision, var2 + précision )
      position = (var1, var2)
      if ( ! existeComposant( direction, position ) )
            return
      composant = calculPremierComposant( direction, position )
      composant.subit( dégâts )
      if( composant.pv == 0 )
            //Composant détruit
            if ( composant.nom == "Passerelle" )
                  vaisseauDetruit()
                  return
            vérifieConnexe()

A chaque fois, le combat "dure" 100 tours. En pratique, la plupart des vaisseaux sont détruits en ~30 tours a précision 3.

Pour 100 vaisseaux (9 100 composants):
précision 0: 0,6s
précision 3: 0,9s
précision 5: 1,2s

Pour 200 vaisseaux (18 200 composants):
précision 0: 1,2s
précision 3: 2,1s
précision 5: 2,8s

Pour 500 vaisseaux (45 500 composants):
précision 0: 3s
précision 3: 5,1s
précision 5: 6.5s

Pour 1000 vaisseaux (91 000 composants):
précision 0: 6,6s
précision 3: 12,1s
précision 5: 14,4s

Pour 2000 vaisseaux (182 000 composants), précision 5: 33,5s.

Conclusion: pour le moment, on tape dans les 200 vaisseaux par flottes, avec un grand maximum de 500 vaisseaux par flotte. En fait, je pense que la limitation est en nombre de composants (et non en nombre de vaisseaux).
L'initialisation en mémoire demande environ 1/3 du temps du script. De plus, l'augmentation en temps est très légèrement supérieure a une fonction linéaire (de 1000 a 2000 vaisseaux, on passe de 14,4s a 33,5s, c'est a dire x2,32)
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Lun 17 Sep - 13:33

je peux te fournir par email la liste des emails des membres.
S'il te plaît.

Conclusion: pour le moment, on tape dans les 200 vaisseaux par flottes, avec un grand maximum de 500 vaisseaux par flotte.
C'est très intéressant.
Penses-tu qu'on puisse avoir des armes de la forme : "Je touche une case. Si c'est une coque je l'explose (et les cases de coque adjacentes pendant qu'on y est), et sinon j'inflige des dégâts dans un rayon d'ne case." ?
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Lun 17 Sep - 14:13

Mmm... oui, avec une petite modification du code néanmoins. Pour le moment, un composant ignore tout de l'arme qui le touche (en dehors des dégâts), mais ça ne devrais pas être difficile a modifier. Un composant connais les 6 composants adjacents, donc il est possible de propager des dégâts.
(Et bien sûr un composant connait sa propre nature Razz )
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Mer 19 Sep - 18:21

J'ai adapté l'algo pour que:

-un composant touché reçoit un pointeur sur l'attaquant au lieu des dégâts. Pour le moment, c'est sans importance puis-ce que je n'utilise qu'une arme (le canon).
-les vaisseaux tirent par ordre d'initiative
-les vaisseaux sont divisés en deux armées de taille égales. Un vaisseau du groupe A ne tire que sur les vaisseaux du groupe B et inversement. Le tir reste complètement aléatoire (en direction comme en cible).
Spoiler:

Préparation du combat
Code:
#Génère deux armées
armee = list()
groupeA = list()
#Note: la ligne suivante signifie "répète nombreVaisseaux fois"
for i in range(nombreVaisseaux):
   vaisseau = factoryA("Corvette")
   groupeA.append(vaisseau)
   armee.append(vaisseau)
   vaisseau.groupe = 'A'
   #Augmente la vitesse juste pour être sur que le tri fonctionne bien
   vaisseau.vitesse = 2

groupeB = list()
for i in range(nombreVaisseaux):
   vaisseau = factoryB("Corvette")
   groupeB.append(vaisseau)
   armee.append(vaisseau)
   vaisseau.groupe = 'B'

#Tri les vaisseaux par ordre d'initiative ('vitesse') puis par ordre aphabétique ('groupe'), en ordre décroissant
armee.sort(key=attrgetter('vitesse', 'groupe'), reverse=True)

Le combat en lui même
Code:
#Boucle principale
for i in range(nombreTour):
   #Si un groupe est complètement détruit, on termine le combat
   if(not groupeA):
      break
   if(not groupeB):
      break

   for vaisseau in armee:
      # vaisseau.typeArmes() retourne une liste des armes du vaisseau
      for arme in vaisseau.typeArmes():
         nombreTir = vaisseau.tir(arme)
         for j in range(nombreTir):
            if(vaisseau.groupe == 'A'):
               if(not groupeB):
                  break
               cible = random.choice(groupeB)
            else:
               if(not groupeA):
                  break
               cible = random.choice(groupeA)
            direction = random.choice(directions)
            if(cible.subit(direction, arme, precision)):
               #La cible est détruite, on la retire du combat
               armee.remove(cible)
               if(cible.groupe == 'A'):
                  groupeA.remove(cible)
                else:
                  groupeB.remove(cible)

Conclusion:
En moyenne, le combat est plus rapide que la version précédente, principalement car a puissance égale, le groupe avec le plus d'initiative décime rapidement l'autre groupe. Néanmoins, il arrive qu'un ou deux vaisseaux de l'autre groupe survis(-vent), ce qui impacte fortement le temps de calcul.

Exemple: avec 250 vaisseaux dans chaque armée et avec une précision de 3, la majorité des combats se terminent en 3,5s, avec 100 survivants dans le groupe A. Mais il arrive que le combat dure plus de 6s, a cause d'un unique vaisseau dans le groupe B !
A titre de comparaison, la version précédente durais ~5s.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Mer 19 Sep - 19:21

Tu te bases sur un composant "passerelle" pour déterminer la vie ou mot d'un vaisseau, mais ne pourrait-on pas considérer qu'il suffit qu'une centrale soit détruite pour que le vaisseau dans son intégralité explose ?

Mmm... oui, avec une petite modification du code néanmoins. Pour le moment, un composant ignore tout de l'arme qui le touche (en dehors des dégâts), mais ça ne devrais pas être difficile a modifier. Un composant connais les 6 composants adjacents, donc il est possible de propager des dégâts.
Cool, donc je peux reprendre mes deux idées initiales, à savoir une bombe qui frappe la case ciblée et les cases adjacentes si la case ciblée n'est pas une coque, et un laser qui frappe la case ciblée et les cases suivantes selon une ligne si la case ciblée n'est pas une coque. Les canons pourraient ne pas briller par leur zone de dégâts mais par leur cadence.

-les vaisseaux tirent par ordre d'initiative
A propos, définir la cadence comme "tirer tous les n tours" au lieu de "tirer n fois tous les tours" donne implicitement une initiative par arme.

En moyenne, le combat est plus rapide que la version précédente, principalement car a puissance égale, le groupe avec le plus d'initiative décime rapidement l'autre groupe.
Normal vu que tu n'utilises pas (encore) la notion de distance dans tes simulations, ce qui changerait tout au niveau équilibrage.

Au niveau contrainte de placement des composants, si on définit des directions d'origine pour les tirs alors on peut dire que le bouclier n'arrête les tirs que du côté où il est placé.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Mer 19 Sep - 20:14

Apeiron a écrit:Tu te bases sur un composant "passerelle" pour déterminer la vie ou mot d'un vaisseau, mais ne pourrait-on pas considérer qu'il suffit qu'une centrale soit détruite pour que le vaisseau dans son intégralité explose ?

J'utilise surtout la passerelle comme un indicateur automatique de la partie du vaisseau a conservé en cas de scission du vaisseau. Contrairement a galaxy trucker, il n'y a pas de joueur pour dire "je garde la partie du haut" ou "je garde la partie du bas". Je n'ai pas trouvé de méthode fiable et pas trop coûteuse en dehors d'un point unique sur le vaisseau.

Mais pour en revenir a ta question, n'importe quel composant peut faire l'affaire. Mais j'avais plutôt dans l'idée que l'explosion d'une centrale provoque des dégâts de zone.

Apeiron a écrit:Cool, donc je peux reprendre mes deux idées initiales, à savoir une bombe qui frappe la case ciblée et les cases adjacentes si la case ciblée n'est pas une coque, et un laser qui frappe la case ciblée et les cases suivantes selon une ligne si la case ciblée n'est pas une coque. Les canons pourraient ne pas briller par leur zone de dégâts mais par leur cadence.

Attention a correctement définir ce que tu souhaites. Si un tir arrive au niveau de la flèche:
Code:

      1XX
-> 2XXX
      3XX

Alors il y a deux comportements possibles pour des dégâts de zone.
Soit tu considère que le tir arrive par 3 coordonnées sur une même ligne, et donc affecte aussi les composants 1 et 3. Dit autrement, il s'agit d'une volée de tirs qui touche une large zone.
Soit tu considère que le tir se propage autours du composants 2 sur le même palier, et donc n'affecte ni 1, ni 3 (le composant 2 est entouré par de l'espace). Dit autrement, le projectile explose quand il touche sa cible.

Les deux cas sont possibles, mais ne s'implémentent pas du tout de la même manière: dans le premier cas tu fait plusieurs tirs, dans le deuxième tu touche les cases adjacentes. Bien sûr, je t'ai fait le dessin en 1D, mais le raisonnement est le même en 2D.

Personnellement j'appliquerais l'effet d'une bombe avec la deuxième méthode, et ce peut importe la case touchée.


Pour le laser, il y a une deuxième manière de donner un effet de profondeur: un laser qui touche un composant conserve la même cible (vaisseau, direction et surtout coordonnées) pour le tour suivant. Cela signifie qu'un laser va traverser de part en part un vaisseau au fil des tours.

(oui, j'ai d'autres idées mignonnes comme celle-ci qui traînent dans un coin de mon cerveau)

Apeiron a écrit:A propos, définir la cadence comme "tirer tous les n tours" au lieu de "tirer n fois tous les tours" donne implicitement une initiative par arme.

L'initiative est actuellement par vaisseau, puis-ce qu'un vaisseau décharge toutes ses armes en même temps:

Code:
   for vaisseau in armee:
      for arme in vaisseau.typeArmes():
         nombreTir = vaisseau.tir(arme)
         for j in range(nombreTir):
            #un tir

Note: les armes sortent dans un ordre que je ne maîtrise pas, c'est une conséquence du stockage dans une table de hash. D'ailleurs c'est un ordre qui n'a pas beaucoup d'importance.
Mais rien n'interdit de prendre un autre algo si besoin, je ne suis pas sectaire.

Apeiron a écrit:En moyenne, le combat est plus rapide que la version précédente, principalement car a puissance égale, le groupe avec le plus d'initiative décime rapidement l'autre groupe.
Normal vu que tu n'utilises pas (encore) la notion de distance dans tes simulations, ce qui changerait tout au niveau équilibrage.

Nan, ça ne changera rien au niveau de l'équilibre. Par contre ça va lisser les temps de calcul, puis-ce qu'un unique vaisseau a beaucoup moins de chance de survivre a précision 0.

Apeiron a écrit:Au niveau contrainte de placement des composants, si on définit des directions d'origine pour les tirs alors on peut dire que le bouclier n'arrête les tirs que du côté où il est placé.

Bien sûr.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Lun 24 Sep - 20:04

Le voilà, tout beau, tout propre, le très attendu...

Système de Combat

Conception

La conception se fait composant par composant, avec une limite au nombre maximal de composants (qui peut être augmentée avec le trait Constructeur ou si on est un nomade). Il y a au plus une dizaine de composants par vaisseau, donc il faut faire des choix. Le vaisseau reçoit un nom selon le nombre de composants (frégate légère, croiseur lourd, etc.), et c'est la taille du vaisseau qui fixe les points de vie de vaisseau.

Les composants possibles sont : bouclier, canon, cargo [1], centrale, chasseur, intercepteur, laser, missile et plasma.
Le niveau de chaque composant dépend de la technologie dont dispose le général (ou au moins son alliance). Si le général dispose de plusieurs types de technologie pour un même composant, c'est lui qui choisit laquelle il utilise pour sa flotte. Le niveau du moteur et du scanner s'applique à l'ensemble de la flotte mais n'intervient pas directement dans le combat.

Il est possible de concevoir des vaisseaux mais aussi des stations.
Les stations orbitales seront considérées comme faisant partie de la zone de front, et les stations planétaires comme faisant partie de la zone de repli. L'entretien des stations est bien moindre que celle des vaisseaux et elles ne comptent pas dans le nombre de flottes, mais elles ne peuvent se déplacer ou même changer de zone.

Zones de combat

Le général place ses vaisseaux par plans en zone de front ou de repli. On peut indiquer par défaut à la conception dans quelle zone un vaisseau est placé, et un changement de formation nécessite un peu de temps.
Au début d'un combat il y a formation de la zone commune de front et chaque joueur possède sa zone de repli. Les armes de contact sont celles qui frappent dans la zone où elles sont, et les armes de distance sont celles qui frappent une zone plus loin.

Armement

Le plasma est une arme de contact infligeant beaucoup de dégâts mais avec une mauvaise cadence.
Le canon est une arme de contact infligeant peu de dégâts mais avec une bonne cadence.
Le laser est une arme à distance mais qui inflige peu de dégâts avec une mauvaise cadence.
Le missile est une arme à distance avec une mauvaise cadence qui inflige beaucoup de dégâts mais peut être intercepté.

La cadence est la fréquence avec laquelle les armes tirent, donc une bonne cadence est une cadence faible en nombre de tours. Par exemple une arme avec une cadence de 3 est meilleure qu'une arme avec une cadence de 5 par que la première tirera tous les trois tours alors que la seconde tirera tous les 5 tours.

Les chasseurs et les intercepteurs s'affrontent à chaque tour (ou tous les n tours, si on fixe une cadence aux chasseurs [2]), et chaque joueur perd à chaque fois c' + i' / (c + i + c' + i') % - %pilotage, où c est son nombre de chasseurs, c' celui de son adversaire, i son nombre d'intercepteur et i' celui de son adversaire. Par exemple si j'ai 150 chasseurs et 50 intercepteurs alors que mon adversaire a seulement 80 chasseurs et 20 intercepteurs, je perds 80 + 20 / (150 + 50 + 80 + 20) = 100 / 300 = 33% de mes effectifs. Mais comme j'ai pilotage à 20 en fait je ne perds que 13%.

Ensuite, les chasseurs survivant infligent un nombre dégâts proportionnel à leur nombre et à leur niveau d'arme à chacun des vaisseaux ennemis.

Défense

Les intercepteurs comptent dans le combat entre chasseurs (voir ci-dessus) mais peuvent également intercepter les missiles.

De plus, les vaisseaux peuvent être munis de boucliers, qui fournissent une réduction des dégâts brutes.

Ciblage

Pour chaque zone on trie au début du combat les vaisseaux d'un joueur selon sa taille, du plus grand au plus petit. En cas d'égalité on tire au sort, mais l'ordre ne changera pas durant le combat.
Quand c'est au tour d'une arme de tirer, pour chaque zone on groupe les dégâts tirés par tous les vaisseaux alliés, et on mémorise le nombre n de vaisseaux ayant tiré.
Les dégâts sont ensuite répartis équitablement sur les n premiers vaisseaux de la liste correspondant aux vaisseaux ennemis de la zone touchée.

Entretien et réparation

L'entretien des vaisseaux est puisé directement dans les ressources contenues dans les emplacements de cargo, alors que celui des stations est puisé dans les planètes. L'entretien est une fraction du coût de construction et doit être payé en continu sous peine :
- en l'absence de minerai les vaisseaux perdent des points de vie (réparation négative) jusqu'à être détruits ;
- en l'absence de combustible la flotte est inactive (plus de moteur et de scanner) et ne peut se défendre.
(L'entretien en minerai est proportionnel au nombre de composants alors que l'entretien en combustible est proportionnel au nombre de centrales)

La réparation se fait progressivement et permet de régénérer les chasseurs, intercepteurs et points de vie perdus. Pendant la réparation, l'entretien est augmenté.

[1] Il n'y a plus de notion de vaisseaux civils. La colonisation est un ordre pouvant être exécuté depuis la carte stellaire, et les sondes sont des flottes particulières détruites si elles sont attaquées et non défendues.

[2] Il serait intéressant que pour correspondre à l'effet nuée les chasseurs et intercepteurs soient répartis dans des petites groupes décalés dans le temps. De plus, comme cela seuls les intercepteurs arrivant dans le délai entre le moment où le missile est lancé et le moment où celui-ci touche pourraient intercepteur les missiles.

------------------

Il s'agit en fait d'une synthèse des meilleurs éléments des systèmes précédents.
Ce résumé est fait rapidement et sera mieux rédigé sur le serveur.


Dernière édition par Apeiron le Mar 2 Oct - 18:57, édité 1 fois
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Lun 24 Sep - 21:08

Quelques précisions.

Apeiron a écrit:
Le niveau de chaque composant dépend de la technologie dont dispose le général (ou au moins son alliance). Si le général dispose de plusieurs types de technologie pour un même composant, c'est lui qui choisit laquelle il utilise pour sa flotte.

Sans une explication sur les technologies, ce n'est pas très... clair.

C'est le(s) chercheur(s) de l'alliance qui adapte(nt) les technologies en fonction des armées / technologies utilisés en face, sauf si l'alliance est suffisamment vaste pour avoir toutes les technologies. Bien sûr, cette adaptation dépend des informations des espions.
Une technologie s'applique instantanément a toutes les flottes de l'alliance, mais un temps de recharge sera présent après un changement de technologie (ou avant l'application du changement, c'est a voir). S'il n'existe qu'une seule technologie pour un élément acquise par l'alliance, cette dernière s'active automatiquement sur toutes les flottes de l'alliance. Le général n'a le choix [1] que s'il dispose de deux (ou plus) technologies mutuellement exclusives.

Les conséquences sont les suivantes:
-Un plan n'est presque [2] plus lié a la technologie de la personne a l'origine de la conception. Cela signifie que la technologie ne se transmet pas en même temps qu'un vaisseau et que les vaisseaux d'une même flotte ont tous la même technologie dans une bataille.
-Cela rend beaucoup plus dynamique le rôle du chercheur dans une alliance. C'est sur lui que repose l'adaptation de l'alliance pendant une guerre.
-Cela rend moins intéressant le rôle de général. Mais il a encore les déplacements, les formations et les officiers.
-Un indépendant sera relativement défavorisé dans une guerre contre une alliance (puis-ce qu'il sera plus faible en technologies), mais il sera au même niveau pour le commerce.

Bien sûr, tout cela est aussi valable pour les stations.

[1] Le changement est fait par flotte, instantanément et a volonté (a condition d'être hors combat).
[2] Il est probable qu'il existe tout de même un prérequis technologique sur chaque composant, mais la technologie requise sera disponible au début de l'arbre, sans besoin de traits.

Apeiron a écrit:
Pour chaque zone on trie au début du combat les vaisseaux d'un joueur selon sa taille, du plus grand au plus petit. En cas d'égalité on tire au sort, mais l'ordre ne changera pas durant le combat.
Quand c'est au tour d'une arme de tirer, pour chaque zone on groupe les dégâts tirés par tous les vaisseaux alliés, et on mémorise le nombre n de vaisseaux ayant tiré.
Les dégâts sont ensuite répartis équitablement sur les n premiers vaisseaux de la liste correspondant aux vaisseaux ennemis de la zone touchée.

Autrement dit, on inflige la moyenne des dégâts de l’armée. Si j'ai un vaisseau qui 3 dégâts et deux vaisseaux qui font 1 dégât, l'armée inflige 5/3 dégâts sur les 3 plus gros vaisseaux adverses. S'il n'y a que 2 vaisseaux en face, le premier subit 10/3 dégâts et le deuxième 5/3.

Apeiron a écrit:[2] Il serait intéressant que pour correspondre à l'effet nuée les chasseurs et intercepteurs soient répartis dans des petites groupes décalés dans le temps. De plus, comme cela seuls les intercepteurs arrivant dans le délai entre le moment où le missile est lancé et le moment où celui-ci touche pourraient intercepteur les missiles.

Pour le moment, je ne fait qu'un seul lâché de vaisseaux. Cela m'évite la question épineuse de compter le nombre de lâché.


Enfin dernier point: même si on abandonne une représentation complexe (3D et tout) pour le combat, il est probable qu'on conserve un système de conception plus complexe. Mais ce n'est pas le sujet du jour.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Imryss le Mar 25 Sep - 14:07

Bon globalement j'aime beaucoup, après voila une série de remarques

Le niveau de chaque composant dépend de la technologie dont dispose le général

Et le niveau de tech de général dépend de ce que lui fournis son techeur d'alliance (et mort aux indépendants?), mais du coup le constructeur n'a plus vraiment de rôle. Comment fonctionne les communautés de recherche dans ce cadre ?

Cela rend aussi obsolète la vente de vaisseau ce qui est très dommage.

j'ai 150 chasseurs et 50 intercepteurs alors que mon adversaire a seulement 80 chasseurs et 20 intercepteurs, je perds 80 + 20 / (150 + 50 + 80 + 20) = 100 / 300 = 33% de mes effectifs. Mais comme j'ai pilotage à 20 en fait je ne perds que 13%.

Est-ce qu'il ne faudrait pas un minimum de 1% de perte par tour ?

Ensuite, les chasseurs survivant infligent un nombre dégâts proportionnel à leur nombre et à leur niveau d'arme à chacun des vaisseaux ennemis.

Ca veut dire que les chasseurs tirent deux fois par tour ? Une fois contre les autres chasseurs et une fois contre les vaisseaux, cela fait un peu étrange.

La réparation se fait progressivement et permet de régénérer les chasseurs, intercepteurs et points de vie perdus. Pendant la réparation, l'entretien est augmenté.

Le ravitaillement se fait automatiquement lorsqu'on est en orbite d'un système allié ?

[1] Il n'y a plus de notion de vaisseaux civils. La colonisation est un ordre pouvant être exécuté depuis la carte stellaire, et les sondes sont des flottes particulières détruites si elles sont attaquées et non défendues.

Faut-il tout de même avoir une flotte en orbite du système pour pouvoir le coloniser ?

Apeiron a écrit:
Pour chaque zone on trie au début du combat les vaisseaux d'un joueur selon sa taille, du plus grand au plus petit. En cas d'égalité on tire au sort, mais l'ordre ne changera pas durant le combat.
Quand c'est au tour d'une arme de tirer, pour chaque zone on groupe les dégâts tirés par tous les vaisseaux alliés, et on mémorise le nombre n de vaisseaux ayant tiré.
Les dégâts sont ensuite répartis équitablement sur les n premiers vaisseaux de la liste correspondant aux vaisseaux ennemis de la zone touchée.



Autrement dit, on inflige la moyenne des dégâts de l’armée. Si j'ai un vaisseau qui 3 dégâts et deux vaisseaux qui font 1 dégât, l'armée inflige 5/3 dégâts sur les 3 plus gros vaisseaux adverses. S'il n'y a que 2 vaisseaux en face, le premier subit 10/3 dégâts et le deuxième 5/3.

J'ai rien compris Shocked .

Enfin dernier point: même si on abandonne une représentation complexe (3D et tout) pour le combat, il est probable qu'on conserve un système de conception plus complexe. Mais ce n'est pas le sujet du jour.

Pourquoi avoir abandonné le système 3D?

_________________
Depuis que j'ai appris à voyager je suis sorti du rêve.

avatar
Imryss
Rocher-qui-bouge
Rocher-qui-bouge

Masculin Nombre de messages : 3705
Age : 28
Localisation : Là où je suis est ma maison
Date d'inscription : 27/10/2008

Voir le profil de l'utilisateur http://auberge-du-voyageur.1fr1.net

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Mar 25 Sep - 15:27

Imryss a écrit:
Et le niveau de tech de général dépend de ce que lui fournis son techeur d'alliance (et mort aux indépendants?), mais du coup le constructeur n'a plus vraiment de rôle. Comment fonctionne les communautés de recherche dans ce cadre ?

Les communautés de recherche sont mortes au moment ou on est passé a un système d'arbre de technologies "statique". Les deux concepts sont incompatibles.

En effet, cela affaiblis un indépendant dans une guerre contre une alliance.

Imryss a écrit:Cela rend aussi obsolète la vente de vaisseau ce qui est très dommage.

Tu te trompe.
Si deux vaisseaux ont les mêmes composants, alors ils sont équivalents dans une même flotte puis-ce qu'ils sont soumis au même arbre technologique (celui de l'alliance du propriétaire de la flotte).
Par conséquent, un indépendant n'aura aucun soucis a vendre des vaisseaux puis-ce que la technologie du vendeur ne rentre même pas en compte (enfin presque).

Imryss a écrit:
Est-ce qu'il ne faudrait pas un minimum de 1% de perte par tour ?

Mmm... peut-être.

Imryss a écrit:
Le ravitaillement se fait automatiquement lorsqu'on est en orbite d'un système allié ?

Le ravitaillement, c'est juste prendre les ressources (minerai et combustible) d'une planète et les placer dans ta flotte. Par conséquent, il n'est possible de se ravitaillé sur un système allié que si l'allié te l'autorise (diplomatiquement).

Pour répondre a ta question, je pense mettre une option de ravitaillement automatique dans l'interface. Une flotte avec le ravitaillement automatique actif prendra le maximum de ressources disponibles a l'arrivé et au départ du système.

Imryss a écrit:
Faut-il tout de même avoir une flotte en orbite du système pour pouvoir le coloniser ?

Une flotte ou une planète dans le même système. Sinon cela permettrais une colonisation trop aisée de la galaxie.

Imryss a écrit:
Pourquoi avoir abandonné le système 3D?

Parce que ce n'est pas nécessaire pour le combat et que c'est très consommateur en ressources (les chiffres sont encore dans le coin).
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Imryss le Mar 25 Sep - 15:50

Tu te trompe.
Si deux vaisseaux ont les mêmes composants, alors ils sont équivalents dans une même flotte puis-ce qu'ils sont soumis au même arbre technologique (celui de l'alliance du propriétaire de la flotte).
Par conséquent, un indépendant n'aura aucun soucis a vendre des vaisseaux puis-ce que la technologie du vendeur ne rentre même pas en compte (enfin presque).

Et quelqu'un n'a aucun intérêt à acheter des vaisseaux qu'il peut aussi bien faire lui-même.

_________________
Depuis que j'ai appris à voyager je suis sorti du rêve.

avatar
Imryss
Rocher-qui-bouge
Rocher-qui-bouge

Masculin Nombre de messages : 3705
Age : 28
Localisation : Là où je suis est ma maison
Date d'inscription : 27/10/2008

Voir le profil de l'utilisateur http://auberge-du-voyageur.1fr1.net

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Nimeroni le Mar 25 Sep - 15:56

Bien sur que si: pour des raisons de ressources et pour des raisons de place.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1653
Age : 28
Localisation : Devant mon PC pardis !
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur http://nimeroni.blogspot.fr/

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Apeiron le Mar 25 Sep - 16:49

Cela rend aussi obsolète la vente de vaisseau ce qui est très dommage.
Le constructeur a bien un rôle car c'est lui qui détermine les composants, ce qui influe fortement sur le combat. De plus, il ne faut pas négliger le temps de construction. Ainsi, vendre un vaisseau n'est pas complètement équivalent à vendre les ressources nécessaires à le construire, mais oui désormais cela est séparé de la vente technologique.
Les indépendants n'ont pas accès aux niveaux de technologie les plus avancés mais ils peuvent quand même construire des vaisseaux et les équiper correctement. Une alliance aura bien un avantage brut en ressources et en technologies, et une grosse alliance pourra même éventuellement se payer le luxe d'offrir plusieurs options en temps réel à ses généraux.

Ca veut dire que les chasseurs tirent deux fois par tour ? Une fois contre les autres chasseurs et une fois contre les vaisseaux, cela fait un peu étrange.
Je n'aime pas l'idée que les chasseurs se tapent juste entre eux et après seulement frappent les vaisseaux. Quand on investi dans des chasseurs on veut qu'ils puissent faire des dégâts. Vous avez tenu à ce que les chasseurs se frappent entre eux, donc j'ai décidé d'introduire une frappe dans le temps.
La solution la plus simple serait que les chasseurs infligent des dégâts globaux et qu'ils ne soient détruits que par les intercepteurs et non les chasseurs adverses, mais cela est contraire à l'intuition des batailles spatiales.
Une autre solution serait de larguer les chasseurs en décalé dans le temps afin de pouvoir davantage mettre en valeur l'aspect nuée et que les pertes soient progressives, et de faire en sorte que les dégâts se fassent au différentiel.
De toute évidence il faut que je réfléchisse rapidement à un meilleur système pour les chasseurs.

Autrement dit, on inflige la moyenne des dégâts de l’armée. Si j'ai un vaisseau qui 3 dégâts et deux vaisseaux qui font 1 dégât, l'armée inflige 5/3 dégâts sur les 3 plus gros vaisseaux adverses. S'il n'y a que 2 vaisseaux en face, le premier subit 10/3 dégâts et le deuxième 5/3.
Ce que Nimé raconte c'est que si je dois répartir 100 dégâts sur 4 vaisseaux mais qu'il n'y en a que 3 en face, j'inflige 25 au premier, 25 au second, 25 au troisième puis de nouveau 25 au premier.

Pour répondre a ta question, je pense mettre une option de ravitaillement automatique dans l'interface. Une flotte avec le ravitaillement automatique actif prendra le maximum de ressources disponibles a l'arrivé et au départ du système.
Ce que moi je veux c'est qu'on puisse programmer les destinations les unes après les autres comme dans une liste de production, c'est à dire avec la possibilité d'avoir une destination qui retourne en fin de liste quand elle est exécutée, afin de pouvoir faire des boucles.
De plus je veux pouvoir associer aux destinations des instructions liées aux ressources. Par exemple sur la planète x je remplis un maximum de minerai, sur la planète y je vide ma cargaison de machines.
L'idéal serait en plus d'avoir une conditionnelle, par exemple qu'une destination associée au fait de remplir une ressource soit ignorée si le cargo est déjà plein.
Mais peut-être que ça détruirait trop ce que les joueurs ont à faire ? De toute façon ce n'est pas pressé donc ça ne sera pas dans l'alpha.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5471
Age : 29
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 10 sur 12 Précédent  1, 2, 3 ... 9, 10, 11, 12  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum