Nova, le jeu !

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

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

Re: Nova, le jeu !

Message  Derich le Mar 28 Aoû - 18:45

Nimeroni a écrit:
Apeiron a écrit:Pour la map, je pense qu'il faudrait pouvoir voir d'un peu plus haut (voir tout son domaine d'un coup par exemple) si la lisibilité le permet. Il faudra aussi que les contrôles en bas soient les plus petits possibles pour laisser le plus de place possible à la map.

Je ne pense pas qu'il soit possible de réduire ni la taille de la map, ni la taille des contrôles.
Pas moyen de supprimer des informations en augmentant le nombre de cases affichés à l'écran?
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 Mar 28 Aoû - 20:06

Non, c'est assez consommateur en ressource du navigateur d'augmenter le nombre de cases sur l'écran: cela demande un chargement des informations supplémentaires depuis le serveur puis la réécriture de toute la carte -> en moyenne 2 a 3 secondes de latence, ce qui est relativement désagréable. Y'a peut-être moyen de bidouiller en chargeant le maximum de systèmes affichables a l'avance, ce qui permet de s'en sortir qu'avec la réécriture de la carte quand l'utilisateur active / désactive les options.

Une autre piste serais d'avoir des cases rectangulaires. Même si je trouve cela relativement moche, cela offre la place requise pour les icônes sans diminuer le nombre de cases en hauteur. Ou peut-être une combinaison des deux (cellules carrés sans les icônes et rectangulaires avec), mais j'ai peur qu'un changement de géométrie déboussole le joueur.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 Mar 28 Aoû - 23:57

Faudrait au minimum pouvoir voir son domaine d'un seul coup d'oeil, ainsi que l'intégralité du champs de vision d'un scanner, afin d'éviter d'avoir une vision de myope de la géopolitique... :/

Après, pour la charge serveur ça peut potentiellement se faire en demandant au serveur des informations partielles (du genre, n'afficher que les systèmes et la présence de groupe de flotte alliés/ennemis, avec plus de précisions en cas de "zoom in" vers la résolution que tu as spécifié...).
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  Apeiron le Mer 29 Aoû - 0:43

Le Combat

Technologies associées

Bombe : gros dégâts en un coup.
Canon : dégâts en plusieurs coups.
Ordinateur : augmente nombre de coups du canon.
Moteur : détermine l'initiative entre deux vaisseaux de même classe, un intercepteur ne peut bloquer une torpille ou une nef de niveau moteur supérieur.
Coque : PVs selon la classe du vaisseau.
Bouclier : réduction des dégâts par coup subi.

Les technologies spéciales ne peuvent être obtenues directement (je ferai un post sur la tech plus tard) :

Les drones, bombardiers et intercepteurs pourraient être implémentés au départ comme tech spéciale.
Mine : Si vous êtes défenseur, vos torpilleurs tirent une fois gratuitement au début du combat.
IEM : Remplace la bombe et permet au lieu d'infliger des dégâts de rendre inopérant le vaisseau ennemi pendant un tour.
Occultation
Leurre

Torpilles et Nefs

Les torpilles sont des bombes explosant le tour où elles sont lancées et associées à des moteurs.
Les nefs (contraction de spationef) ont également des moteurs et infligent des dégâts selon leur type : les chasseurs n'infligent que des dégâts de canons, les drones des dégâts de canons améliorés par ordinateur, les bombardiers des dégâts de bombes.
Les chasseurs, les drones et les intercepteurs participent au combat de nef, mais pas les bombardiers.
Au début du combat a lieu le combat des nefs, où celui qui est le moins puissant en nefs perd toutes ses nefs et où le gagnant perd des nefs selon ce qu'a perdu le perdant.
Après le combat de nefs, à chaque tour les intercepteurs contrent les torpilles de vitesse inférieure ou égale à la leur, et les autres nefs infligent des dégâts globaux tout en étant attaqués par les corvettes.

Classes de vaisseaux

Par ordre de taille décroissant :

Cuirassé : Attaque la plus grosse classe adverse. Armé de canons et assisté par ordinateur. Bouclier amélioré.
Porte-nef : Largue des nefs au début du combat.
Croiseur : Attaque la plus grosse classe adverse. Armé de canons et assisté par ordinateur.
Frégate : Attaque la plus petite classe adverse. Armé de canons et assisté par ordinateur.
Corvette : Attaque les nefs adverses. Armé de canons.
Torpilleur : Attaque la plus grosse classe adverse. Armé de torpilles.

Note : il faut le trait Constructeur pour construire des cuirassés ou des porte-nefs.

Vaisseaux civils

Cargo
Colonial
Sonde

Les vaisseaux civils sont détruits s'ils sont attaqués et non protégés.

Ciblage

Un groupe est formé par tous les vaisseaux appartenant à un même joueur et qui sont de même classe et de même initiative. C'est la classe (voir Ordre d'un tour) puis l'initiative qui déterminent l'ordre de tir. Deux groupes opposés peuvent tirer en même temps (les dégâts sont calculés d'abord et infligés ensuite) si la classe et la valeur d'initiative sont les mêmes. Le comportement d'un groupe est déterminé par sa classe (voir Classes de vaisseau). Les dégâts sont répartis équitablement sur tous les vaisseau de la classe cible.

Ordre d'un tour

Répété jusqu'à la mort ou une absence de dégâts pendant un tour :

Frégate
Torpilleur, puis Intercepteurs
Croiseur
Cuirassé
Corvette
Autres Nefs

Commentaires

Les frégates ont pour rôle d'éliminer les torpilleurs puis les corvettes adverses.
Le cuirassé a un rôle de menace et de tank : s'il est détruit, vos autres gros navires sont en danger.
Les nefs finissent le combat même si leur (fragile) porte-nef est détruit.
L'intérêt de ce système de combat réside dans les comportements induits par la classe, ainsi que la différence entre l'ordre du tour et le classement par taille des classes.
Je ne suis pas encore satisfait du fonctionnement des intercepteurs (le contre de torpille n'est pas synergique avec le reste du système, et l'attaque unique des autres nefs dans le combat de nef n'est pas forcément satisfaisant), mais ce n'est pas grave car dans l'alpha je pense qu'il ne faudrait que les chasseurs comme nefs.
Le rôle intermédiaire des croiseurs le rend ambiguë, et peut-être faudrait-il réfléchir à une capa spéciale pour lui.
On peut supprimer les moteurs pour simplifier le système d'initiative et de ciblage, surtout si les intercepteurs ne sont pas présents.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
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 Mer 29 Aoû - 2:35

Commentaires sur la technologie.

Faire un système à la LoL pour les techs est cool, mais il manque un aspect important : la recherche en aveugle mais qui peut tout changer. J'avais déjà tenté d'implémenter ce genre de chose dans les systèmes précédents, et je reviens donc à la charge.

Les technologies classiques seront bien selon un système d'arbre, par exemple (à l'arrache) pour le militaire :



Cependant, je veux que les points non investis dans une case par le chercheur soient considérés comme investis dans la recherche théorique, et que cela augmente les chances (event aléatoire) selon le nombre de points sacrifiés de débloquer des technologies spéciales (de nouvelles cases apparaissent sur l'arbre). Ces technologies peuvent être utilisables par les alliés comme les autres, mais ne sont pas transmissibles.

Exemple de techs spéciales :

Mine
Drone, Bombardier, Intercepteur
Leurre
Occultation

IEM et portail sont des techs requérant en plus des mondes des Anciens (la capitale Astri'll pour la première et la planète sainte de l'illumination pour la seconde).
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
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 29 Aoû - 3:05

Derich a écrit:
Après, pour la charge serveur ça peut potentiellement se faire en demandant au serveur des informations partielles (du genre, n'afficher que les systèmes et la présence de groupe de flotte alliés/ennemis, avec plus de précisions en cas de "zoom in" vers la résolution que tu as spécifié...).


Attention, je ne parle pas de la charge serveur (négligeable dans le cas présent), mais du temps de transfert des données et de la charge du navigateur. Il va sans dire que tout ce qui concerne le formatage des informations et l'affichage est fait par le navigateur du joueur.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 29 Aoû - 4:38

Apeiron a écrit:
Cependant, je veux que les points non investis dans une case par le chercheur soient considérés comme investis dans la recherche théorique, et que cela augmente les chances (event aléatoire) selon le nombre de points sacrifiés de débloquer des technologies spéciales (de nouvelles cases apparaissent sur l'arbre). Ces technologies peuvent être utilisables par les alliés comme les autres, mais ne sont pas transmissibles.

Attention mon ami, scalabilité*, toussa. Le système de choix dans un arbre est scalable peut-importe le bonus uniquement car il n'y a pas de progression au cours du temps, donc qu'il n'y a jamais de cumul des ressources.

Tu peux arguer du fait que l'augmentation est finie, puis-ce qu'il n'y a qu'un certain nombre de technologies qu'un joueur peut trouver. Mais cela signifie qu'au bout d'un certain temps, avoir des points en trop perd tout sens, puis-ce les points en trop que ne débloquent rien de plus. De la même manière, cela implique aussi qu'asymptotiquement toute la galaxie possède toutes les technologies spéciales (chaque groupe sérieux aura un chercheur), sauf pendant les débuts du chercheur.
A terme, la communauté va donc considérer les technologies spéciales comme les joueurs considèrent la technologie de Wey: c'est normal d'être au niveau 12 et la technologie n'est qu'un malus pour les nouveaux joueurs. Ce n'est pas une conséquence acceptable.

Bien sur, il suffit d'augmenter le nombre de technologies disponibles pour régler le problème. D'ailleurs je pense tu a fait ce choix. L'augmentation du nombre de techs est séduisante sur le papier mais en fait elle possède elle aussi des conséquences inacceptables:
  • D'un côté, pour que cette fonctionnalité ai du sens, il faut que la nouvelle option soit choisie par les joueurs, donc qu'elle soit plus intéressante que les autres options du même niveau de l'arbre. Donc au final, cela reviens à une augmentation de la puissance du joueur (au sens ou le joueur peut faire des choses de manière plus performantes que les autres joueurs) au fil du temps, ce qui est nocif vis a vis de l'équilibre du reste du jeu.
  • Ensuite un nouveau chercheur aura de plus en plus de mal a avoir toutes les technologies.
  • Enfin cela implique une croissance régulière de l'arbre technologique, avec un argument Imryssien: le temps qu'un joueur découvre toutes les technologies, on aura eu le temps d'en rajouter de nouvelles.

Mon contre-argument pour le dernier point est plus complexe. Cette logique est signe d'une très mauvaise conception car:
  • rien ne prouve qu'on sera encore derrière le jeu (avec l'investissement temporel conséquent qui va avec) dans 6 mois, 1 an, 5 ans...
  • la quantité de bonnes idées sur un sujet en particulier est borné. A partir un point ou il sera très difficile d'avoir de nouvelles idées de recherches et on sera donc en manque a un moment ou a un autre.
  • le corollaire des points précédents, c'est qu'il y à un moment ou je n'aurais plus le temps de faire de nouvelles technologies avant que les joueurs épuisent les précédentes. C'est aussi valable si le temps que je passe sur le jeu se réduit pour une raison X ou Y (par exemple si je trouve du boulot).


Dit autrement: le temps que l'équipe (et moi en particulier) doit obligatoirement investir dans l'entretiens du jeu doit être minimal. C'est la seule base saine pour un jeu amateur. Je précise qu'il s'agit d'une condition indispensable a ma participation a nova.



*j'ai enfin redécouvert l'équivalent du scaling en français. Il existe un calque pour le mot anglais "scalability" (littéralement "mise a l'échelle"): "scalabilité". La scalabilité reflète parfaitement la notion que je couvre avec le scaling (http://fr.wikipedia.org/wiki/Scalabilit%C3%A9 ).
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 29 Aoû - 7:18

J'ai eu une idée pendant la nuit. C'est complètement indépendant des discussions sur la recherche théorique.

Il y a une chose qui m'a toujours dérangé dans notre système de recherche (dans les deux versions), c'est que cette dernière dépend directement du nombre laboratoire, donc du nombre de planètes, donc du nombre de traits planète. Un joueur qui cherche a s'optimisé pour la recherche a le choix entre 3 traits de planètes et 2 traits de recherche ou l'inverse.
Le passage de 2 a 3 traits de planètes monte de 10 a 15 le nombre de planètes, soit +50% a la recherche (si chaque planète produit un point de tech, alors 2 traits = 10 points, 3 traits = 15 points), ce qui est relativement énorme.

Idée: chaque technologie demande un certain prérequis en traits de recherche. Plus on progresse dans l'arbre et plus le pré-requis est important, les plus puissantes technologies demandant 3 traits en recherche.

  • Un joueur généraliste indépendant (avec un trait de planète et un trait de recherche) va avoir peu de points et ne va pas monter très haut. Rien de choquant puis-ce qu'il touche a tout dans le jeu.
  • Un chercheur dans une alliance généraliste (comprendre: une alliance avec 1 chercheur) va prendre 3 traits de planètes et 2 traits de recherche. Il va avoir beaucoup de points, mais ne va pas pouvoir prendre le bout de chaque arbre. Il sera donc en mesure d'avoir la majorité des technologies pour son équipe dans chaque domaine, mais sans le top des technologies.
  • Un chercheur spécialiste (comprendre: dans une alliance avec 2+ chercheurs) va prendre 2 traits de planètes et 3 traits de recherche. Il va avoir moins de points qu'un généraliste, mais d'un autre coté il ne se focalise que sur un arbre et va prendre les technologies de plus haut niveau.


Par exemple, si on pose que chaque trait de planètes génère en moyenne 5 points et qu'il n'y a que 2 arbres (flottes et planètes*), alors:
  • Un généraliste indépendant génère 5 points, soit 2,5 points par arbre.
  • Un généraliste en alliance génère un massif 15 points, soit 7,5 points par arbre.
  • Un spécialiste génère que 10 points, mais il pose tout dans un unique arbre. Une alliance avec deux spécialistes dispose donc de 10 points par arbre et ce avec les dernières techs.


Bien sur, avoir 2 spécialistes plutôt que 2 généralistes dans une alliance, ça implique qu'il est moins intéressant de prendre les deux arbres complets jusqu'au milieu plutôt que 2 arbres avec des trous mais jusqu'au bout. Donc des effets plutôt puissants en fin d'arbre.


Il reste une dernière question: est-ce qu'un joueur sans trait de recherche peut faire de la recherche ?
Si oui, alors il y a 4 paliers de tech (la base + 1 par trait)
Si non, alors il y a 3 paliers de tech (1 par trait).



Note: Pour qu'une alliance supporte plus de deux spécialistes, il faut des choix dans l’arborescence des technologies. Ainsi, s'il y a 2 chemins dans un arbre militaire et 2 chemins dans un arbre civil, une alliance supporte 4 spécialistes. Mais j'ai trop sommeil pour en dire plus.

*j'en vois pas d'autres
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 1 Sep - 22:36

Forum en ligne (et pour de bon cette fois): http://nova.alwaysdata.net/forum/
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 Ven 7 Sep - 18:14

Quelques algos que je garde dans un coin (en pseudo-code, avec la syntaxe C++ des opérateurs). Je n'en dit pas plus car je suis curieux de voir qui trouvera comment fonctionnent les différents algos et a quoi ils servent ! Razz

Code:

//Rien n'interdit de sauvegardé les masques a la place de l'id dans la BDD, cette fonction ne sert donc qu'a l'ajout dans la bdd.
//O(id) avec id >= 0 et id < 32 (voir assert)
int masque (int id)
  assert(id >= 0 && id < 32)
  return pow(2, id)

//Note: il est possible d'appliquer l'algo sur plusieurs masques en même temps (toujours en O(1)) avec une somme.
//C'est-à-dire: ajout(arbre, masque(1)) et ajout(arbre, masque(2)) = ajout(arbre, masque(1) + masque(2))
//Complexité: O(1)
void ajout (int& arbre, int masque)
  arbre = arbre | masque

//Note: il est possible d'appliquer l'algo sur plusieurs masques en même temps.
//Complexité: O(1)
void retrait (int& arbre, int masque)
  arbre = (arbre | masque) - masque

//Note: il est possible d'appliquer l'algo sur plusieurs masques en même temps.
//Complexité: O(1)
bool possede (int arbre, int masque)
  return (masque == (arbre & masque))

//Retourne les éléments de l'arbre A qui ne sont pas dans l'arbre B (mais PAS les éléments de B qui ne sont pas dans A) sous la forme d'une somme de masque.
//Presque équivalent a retrait
//Complexité: O(1)
int possedeEnPlus(int arbreA, int arbreB)
  return (arbreA | arbreB) - arbreB

//Marche aussi pour un arbre
//Complexité: O( ln(masques) )
bool[32] division(int masques)
  bool[32] pile
  for(int i = 0; i < 32; i++)
    pile[i] = masques % 2
    masques>>
  return pile

Spoiler:
Mes algos sont en pseudo-code avec une syntaxe similaire au C++ mais une indentation pythonienne. Voici une liste des mots clefs histoire d'être bien compris:

int: un entier 32 bits signé
bool: un booléen (deux valeurs: vrai et faux).
Note: un truc qui demande un booléen considère que l'entier 0 est équivalent a faux et les autres sont a vrai.
void: rien
T[x]: un tableau de x éléments de type T

T a: déclaration d'une variable de nom "a" et de type "T". Exemple: bool[32] a signifie "a est le nom d'un tableau de 32 booléens".
"rv" est le raccourcis de right-value, c'est a dire le résultat d'une opération ou une variable ou une constante

typeRetour nom(T a, T' a'): déclare une fonction "nom", qui retourne quelque-chose de type typeRetour, et qui utilise en entrée les variables a, a', ... (de type T, T', ...).
La fonction fait une deep copy des arguments, c'est a dire qu'une modification d'une variable d'entrée a l'intérieur de la fonction n'a pas d'effet dans le reste du programme. Si le type d'une variable est postfixé avec "&" (exemple: int& a), alors il s'agit d'une shallow copy de cette variable uniquement, c'est a dire qu'une modification de la variable se répercute dans le reste du programme.
Une fonction prend fin quand l’indentation se termine ou au passage de l'instruction "return".
nom(T a, T' a', ...): utilisation de la fonction "nom" avec les paramètres a, a', ...
pow(a, b): retourne a puissance b
assert(a): n'a aucun effet si a = vrai et provoque le plantage du programme si a = faux

a = rv: explicite. a et rv doivent être du même type.
rv + rv' = explicite. rv et rv' doivent être des entiers
rv - rv' = explicite. rv et rv' doivent être des entiers
return rv: retourne rv et met fin a la fonction. rv doit être du type de retour de la fonction.
rv % rv': rv modulo rv'. rv et rv' doivent être des entiers
a++: équivalent de "(a = a + 1) après usage de a". (++a pour le "avant usage de a")

rv == rv': retourne vrai si rv et rv' sont de la même valeur, faux sinon. rv et rv' doivent être du même type.
rv >= rv': explicite... rv et rv' doivent être des entiers
rv && rv': (et logique) vrai si rv et rv' valent vrai
rv & rv': (et bit a bit) applique un et sur chaque bit de rv et rv'
rv | rv': (ou bit a bit) applique un ou sur chaque bit de rv et rv'. (ou: vrai si rv ou rv' est vrai)
a>>: applique un décalage vers la droite des bits ( (1101)2 = 13 passe a (0110)2 = 6 )


Dernière édition par Nimeroni le Lun 10 Sep - 23:04, édité 4 fois (Raison : Corrections)
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 9 Sep - 15:44

//O(id) avec 0 >= id < 32 (voir assert)
Ca devrait être 0 <= id < 32

Je mets mes interprétations en spoiler pour que Derich puisse jouer aussi.

Spoiler:

Le but de ces programmes est de travailler sur des id, en les traduisant par masque pour pouvoir avoir des opérations élémentaires en temps constant.
Tu m'as dit toi-même que les algos avaient à voir avec la technologie donc il est clair que id = tech connue par le joueur.

int masque (int id)
  assert(id >= 0 && id < 32)
  return pow(2, id)
L'id n est représenté par 100...00 (en binaire) avec n zéros.

void ajout (int& arbre, int masque)
  arbre = arbre | masque
On ajoute le masque 1000 à l'arbre 101 en faisant un ou bit à bit, pour obtenir 1101.
Par exemple l'arbre 11000101 contient le masque des id 0, 2, 6 et 7.
(Le joueur obtient une nouvelle tech.)

void retrait (int& arbre, int masque)
  arbre = (arbre | masque) - masque
Pour retirer le masque 10 à l'arbre 110 on fait 110 - 10 = 100.
On doit faire (arbre | masque) pour le cas où le masque n'est pas dans l'arbre, de façon à ce que l'arbre soit inchangé. Par exemple, si on retire le masque 10 à l'arbre 100, on a (100 | 10) - 10 = 110 - 10 = 100.
(Le joueur perd une tech.)

bool possede (int arbre, int masque)
  return (masque == (arbre | masque))
Pas compris.
Si arbre = 1001 et masque = 1000 l'arbre contient le masque mais on aura jamais 1000 == 1001.
Moi j'aurais fait return = arbre & masque en posant que 0 = faux et autre = vrai (au pire on met un test pour transformer le autre en 1).
(Vérification si le joueur connaît la tech, par exemple pour débloquer un plan.)

int possedeEnPlus(int arbreA, int arbreB)
  return (arbreA | arbreB) - arbreB
Même principe que retrait, mais cette fois on obtient pas un masque mais un arbre.
Par exemple si arbreA = 1101 et arbreB = 110, on a (arbreA | arbreB) - arbreB = (1101 | 110) - 110 = 1111 - 110 = 1001.
En effet l'arbre A contient les masques des id 0, 2 et 3, et comme l'arbre B contient aussi l'id 2 on ne garde que les id de l'arbre A qui ne sont pas dans l'arbre B, ici les id 0 et 3. Le fait que l'arbre B contienne ou non l'id 1 ne change pas le résultat.
(Savoir si l'ajout d'un autre joueur dans l'alliance va changer ce à quoi le joueur a droit.)

bool[32] division(int masques)
  bool[32] pile
  for(int i = 0; i < 32; i++)
    pile[i] = masques % 2
    masques>>
  return pile
Traduction inverse de plusieurs masques en une pile mémorisant les id correspondantes (l'id n est dans le tableau si et seulement si pile[n] = 1).

avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
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 10 Sep - 22:59

Ca devrait être 0 <= id < 32

Juste, juste.

Voici la réponse (en spoiler):

Spoiler:
Tu y est presque. Il s'agit d'utiliser les entiers pour ce dont il s'agit vraiment: une suite de 0|1, c'est a dire une suite de booléen. 32 booléens pour être précis, puis-ce que je travaille sur un entier de 32 bits.

On vois tout de suite la contrainte de cette représentation: il ne peut y avoir que 32 technologies dans le jeu. Ce n'est pas très grave, puis-ce que rien n'interdit d'utiliser plus d'entiers pour avoir plus de technologies.
Et puis en contrepartie, on stock l'arbre de chaque joueur; les technologies disponibles et le prérequis de chaque plan sur un entier, plus un entier par technologie.
Avec 32n technologies dans l'arbre, on a 2n entiers pour chaque joueur, n pour chaque plans et 2 entiers pour chaque technologie.

Masque: La fonction masque génère effectivement le masque du nième booléen, c'est a dire qu'elle le pose le nième bit a 1 et les autres a 0. Cette dernière n'est requise qu'au début du jeu: il suffit d'allouer un masque différent a chaque technologie, puis de n'utiliser plus que les masques. Pour mon propos, je précise qu'une technologie correspond a chaque case indépendante de l'arbre technologique: si une technologie possède 2 paliers (par exemple Mine 1 et Mine 2), alors chaque palier possède un masque différent.

Ajout: en effet, cette fonction ajoute une technologie a l'arbre. Mais pas obligatoirement qu'une technologie: si ton masque est 1001, alors l'arbre reçoit deux technologies en plus. Et le plus beau, c'est que c'est toujours du temps constant, même si tu ajoutes 14 technologies.

Retrait: en effet, cette fonction retire une technologie a l'arbre. Mais pas obligatoirement qu'une (comme pour Ajout).

Possede: en effet j'ai fait une faute de copie. Il s'agit d'un "&":
Code:
bool possede (int arbre, int masque)
  return (masque == (arbre & masque))

PossedeEnPlus: juste, sauf que le rayon d'application de la fonction est beaucoup plus large.
Par exemple, chaque plan sauvegarde l'arbre des technologies dont il a besoin (rien de plus que la somme des masques des technologies, donc un simple entier). Une application de cette fonction (possedeEnPlus(Plan, Arbre)) te retourne les prérequis qui ne sont pas complétés par le joueur (ou 0 sinon).

Division: juste. Dit autrement, il s'agit de décomposé la somme de booléens qui constitue l'entier en un tableau de booléen.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 Jeu 13 Sep - 15:03

Discutons du système de combat.
Je suis assez concis dans les descriptions parce que normalement vous devez déjà tous connaître les deux systèmes. Il s'agit donc ici non pas d'être exhaustif, mais de pouvoir saisir l'essence des deux systèmes et de les comparer.

Démarche

Le système de combat choisi doit correspondre à plusieurs contraintes.
Il doit être instantané, afin de ne pas obliger un joueur à être devant son écran durant le combat. Cela implique que ce sont les données utilisables avant le combat qui vont déterminer son issue, à savoir le nombre et la taille des vaisseaux, leur contenu, leur technologie (ces trois aspects correspondant à la conception de la flotte), ainsi que la répartition des officiers et une formation (choisie par le commandant de la flotte).
La formation est importante car sinon tout serait déterminé en amont uniquement par les constructeurs de vaisseaux, et les commandants seraient réduits au rôle de gardien ou déplaceur de flotte.
Le système de combat doit être stratégique, dans le sens où il ne doit pas exister une unique configuration (conception & formation) l'emportant sur toutes les autres. C'est donc à nous de prévoir les différents cas possibles et de s'assurant que l'ensemble des options pertinentes ne se réduise pas à un seul élément.
Enfin il doit être économe, c'est à dire dans ses mécanismes avoir une complexité en terme de calculs suffisamment faible pour qu'il soit utilisable sur notre serveur. Cela implique notamment que les vaisseaux ne doivent pas être simulés individuellement, et que le nombre de tours de combat doit être limité un maximum.

Jusqu'à présent j'ai conçu deux systèmes de combat qui respectent ces critères.

Note : Dans les deux systèmes j'ai choisi la même façon de gérer le tir global et la répartition des dégâts.
Quand un groupe tire on mémorise la somme des dégâts et le nombre de vaisseaux ayant tiré. Puis si le nombre de vaisseaux défenseurs est plus faible on répartit les dégâts équitablement, et sinon on les répartit équitablement sur un nombre de vaisseaux défenseur égal au nombre de vaisseaux attaquants.
Cela suppose un ordre dans les vaisseaux défenseurs, afin de déterminer quels sont les vaisseaux touchés. Cet ordre est donné par la liste de ciblage.
Autre point commun : dans les deux systèmes les chasseurs ont un comportement de nuée, permettant aux chasseurs adverses de se battre en eux et d'infliger des dégâts globaux aux vaisseaux.

Système par conception libre et zones

Conception

La conception est complètement libre pour ce qui est des composants utilisés et de la taille.
Le nombre de composants est la taille du vaisseau, et la taille fixe le nombre de points de vie ("coque") du vaisseau ainsi que son coût en minerai. Le coût en combustible est fixé par le nombre de centrales.

Armement

Les armes ont des comportements différents selon les zones qu'elles touchent :
- le canon tire uniquement dans sa zone et touche les chasseurs ;
- les chasseurs ont une comportement global ;
- les missiles touchent jusqu'à une zone plus loin.

Défense

Il n'y a pas de boucliers.
L'absence de technologie de coque pourrait simplifier le système de ciblage.

Ciblage

Les chasseurs sont lancés au début du combat.
Puis les tirs se font par zone et par arme (donc quatre possibilités).
La liste de ciblage est tout simplement la liste des vaisseaux ennemis triée par ordre décroissant de taille. Ainsi si on a peu de vaisseaux c'est que ce doti être des gros donc on est content de tirer sur les gros adverses. Si on en a beaucoup c'est des petits donc on tire sur tout y compris les petits adverses.

Chasseurs

Voir plus bas.

Ordre du tour

Si l'ordre du tour est nécessaire :

Front-canon
Front-missile
Arrière-canon
Arrière-missile
chasseurs

Sinon, comme les dégâts peuvent être calculés puis appliqués ensemble on peut ne pas avoir d'ordre, ce que je préfère.

Formation

La formation dans l'espace est gérée par le joueur par la répartition selon les deux zones, qui reflète en partie la stratégie adoptée.
On peut aussi donner davantage de choix au joueur, par exemple au niveau du ciblage (inversion de la liste de ciblage ?).
L'espionnage devrait pouvoir être utilisé, en ciblant des cibles prioritairement par exemple.
Pour aller plus loin on peut aussi songer à un système de modificateur.

Commentaire

Ce système avait été abandonné parce qu'il impliquait une simulation trop grande de vaisseaux, mais je pense avoir réglé le problème en groupant par zone et par arme. Il est à noter qu'ajouter un exemplaire d'une arme sur un vaisseau augmente à peu de frais le nombre de vaisseaux tirant avec cette arme donc on peut jouer dessus pour le ciblage.
L'avantage de ce système est qu'il a été conçu pour le pierre-feuille-ciseau, donc garantit l'aspect stratégique contrairement au suivant qui est un peu plus discutable.

Système par conception restreinte et vaisseaux typés

Ce système s'inspire des navires du XIXème et XXème siècle, en rigidifiant les classes de vaisseaux disponibles ainsi que leur rôle.

Conception

Les classes de vaisseau sont (par ordre décroissant de taille et donc de coût) : porte-nef, cuirassé, croiseur, corvette, frégate et torpilleur. Il devient alors légitime d'avoir des classes pour les vaisseaux civils (détruits en l'absence de couverture) : sonde, cargo et colonial.
Chaque classe a un comportement défini à la fois sur le ciblage et les armes utilisées, ce qui laisse peu (voire pas) de marge au concepteur.

Armement

Il existe trois types d'arme : le canon, le missile et le chasseur.
Le cuirassé, le croiseur et la frégate utilisent des canons (nb de tirs et dégât par tir), et le nombre de tirs (qui touche) est augmenté par la technologie d'ordinateur.
[Le fait qu'on ne puisse pas augmenter les dégâts du canon sans toucher à la spécificité de la bombe et que l'ordinateur équivaut à avoir plus de canons donc implique un nombre de slots limités et rigides pour les vaisseaux est un autre exemple de restriction de la conception.]
Le torpilleur est le seul vaisseau muni de missiles, qui infligent en une fois de gros dégâts.

Défense

La technologie de coque augmente le nombre de points de vie et la technologie de boucliers réduit les dégâts de chaque tir.
Le cuirassé possède plusieurs boucliers, ce qui ne le rend vulnérable qu'aux bombes.

Ciblage

Les vaisseaux sont classés selon une liste de ciblage : cuirassé, croiseur, porte-nef, colonial, cargo, sonde, corvette, frégate et torpilleur.
Les vaisseaux d'une même classe tirent ensemble sur une classe adverse selon les règles suivantes :
- le cuirassé, le croiseur et le torpilleur tirent sur le début de la liste ;
- la frégate tire sur le bas de la liste ;
- la corvette détruit chaque tour un certain nombre de chasseurs ;

Chasseurs

Pour le combat entre chasseurs, deux possibilités :
- le joueur ayant le plus faible nombre de chasseurs soustrait ses effectifs des effectifs adverses, et ensuite le joueur qui a encore des chasseurs inflige ses dégâts ;
- ou bien (si on veut que les deux camps puissent infliger des dégâts) chaque camp perd à chaque tour des chasseurs proportionnellement au nombre de chasseurs adverses puis inflige ses dégâts.

Pour les dégâts, deux possibilités :
- les dégâts des chasseurs sont répartis entre les vaisseaux restants (donc leur seul avantage est de pouvoir toucher des vaisseaux "à l’abri") ;
- les chasseurs infligent à tous les vaisseaux un nombre de dégâts proportionnels à leur nombre (très puissant alors contre les flottes nombreuses... c'est l'équivalent des dégâts collatéraux à Civ par exemple).

On peut à mon avis faire deux technologies de chasseurs : une qui augmente les dégâts infligés, et une qui réduit les pertes.

Ordre du tour

frégate
torpilleur
croiseur
cuirassé
corvette
chasseur

Formation

[Encore à l'état d'ébauche, et leur implémentation nécessiterait de revoir les autres sections.]

Défensive : les portes-nefs et les vaisseaux civils ne peuvent être touchés pendant le combat. En revanche ils sont bien détruits si le combat est perdu.

Interception : vos frégates et corvettes sont prioritaires.

Bombardement : vos torpilleurs attaquent avant (sauf si l'adversaire est en interception).

Agressive : Vos cuirassés et croiseurs tirent avant. Les cuirassés sont devant (donc dans les autres formations ce ne serait pas le cuirassé qui serait en tête de liste de ciblage ?).

[Il faudrait un pierre-feuille-ciseau sur ces formations ?]

Développement

Les chasseurs pourraient être déclinés en plusieurs variantes :
- drones : bénéficient du bonus de l'ordinateur du porte-nef, mais deviennent inactifs si le porte-nef est détruit ;
- bombardiers : si réserve d'être couverts par des chasseurs ou des drones, il peuvent au bout d'un moment infliger de gros dégâts sous forme de bombes au lieu de canons ;
- intercepteurs : efficacité accru contre les autres nefs voire les torpilles, mais n'infligent pas de dégâts aux autres vaisseaux ;

L'occultation ?

Des bombes (comme le bombardier) envoyée par des missiles ou sous forme de mines ?

Commentaire

Le typage est fun mais suppose implicitement que la composition optimale a déjà été trouvée.
Le jeu entre la liste de ciblage et l'ordre du tour aurait été plus intéressant si j'avais trouvé davantage de stratégies possibles à appliquer, mais au final les possibilités intéressantes sont moins nombreuses que je ne l'imaginais au départ.

Mon avis

Le typage de vaisseaux devait garantir un combat plus fun, mais j'ai l'impression qu'il n'a fait que réduire la liberté du concepteur et d'imposer des stratégies aux militaires sans forcément rajouter des possibilités de combat. Je me dis donc que revenir à l'ancien système pourrait être une bonne chose.

Quel est votre avis ?
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
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 Jeu 13 Sep - 21:26

J'ai une franche préférence pour l'ancien système, tout simplement car il donne plus de choix pour le concepteur (et il est plus... élégant).

Mais bon, de toute façon, je n'ai pas le temps d'argumenter dans un sens ou dans l'autre, donc je m'en remet a toi pour avoir un bon système.
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 Ven 14 Sep - 10:10

Nous connaissons bien les joies de la conception car nous sommes d'anciens joueurs de wey. Aussi notre préférence tend naturellement vers le premier système. Néanmoins je crains que ce système manque de diversité technologique. Ne pas pouvoir avoir des technologies de blindage pour améliorer les points de vie de son vaisseau ou ne pas pouvoir mettre de bouclier, c'est sans doute plus simple pour équilibrer le moteur de combat (on devait pas garder les boucliers pour aider les gros vaisseaux à résister aux nués ? Shocked ), je pense que ça va manquer terriblement de fun. Aussi dans l'état actuel des choses je préfère le second systè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 Ven 14 Sep - 12:34

Imryss a écrit:Ne pas pouvoir avoir des technologies de blindage pour améliorer les points de vie de son vaisseau ou ne pas pouvoir mettre de bouclier, c'est sans doute plus simple pour équilibrer le moteur de combat

Juste pour clarifier les choses (valable aussi pour Ap).

Rien n'interdit d'avoir une technologie de coque, de bouclier ou d'amélioration d'arme car le système de technologie borne intrinsèquement les augmentations. Il y a juste une petite contrainte: une amélioration de coque doit être faite en pourcentage de l'effet de base pour avoir le même effet sur un grosse coque ou une nuée (ou en pourcentage des dégâts subits pour le bouclier).

En fait, je pense qu'avoir des améliorations technologiques défensives est même indispensable.
Spoiler:

Premièrement, je vous rappel qu'avoir un chercheur dans un groupe implique d'avoir un constructeur de moins (a nombre de joueurs constant dans le groupe), donc moins de vaisseaux pour les combats. Donc pour que le rôle de chercheur soit intéressant, il faut qu'il existe des technologies qui augmentent d'une manière ou d'une autre la puissance de combat du groupe qui la possède, et que cette augmentation soit au moins équivalente a la puissance gagnée si le groupe avais pris un constructeur a la place d'un chercheur.
La solution la plus simple, c'est d'avoir des améliorations d'armes dans l'arbre technologique.

Deuxièmement, je me place toujours dans le cas ou les combats se font a technologies équivalentes entre les deux protagonistes. Avec le paragraphe précédent, il est évident qu'un groupe qui possède un chercheur explose un groupe qui ne possède que des constructeurs (a nombre de joueurs constants), donc ce n'est pas un cas qui m'intéresse pour la suite du texte.

Ne pas avoir de technologies de coques alors qu'on possède des technologies d'armement implique d'avoir des vaisseaux qui font plus mal quand le niveau technologique est élevé. Des vaisseaux qui font plus mal, cela se traduit par des combats plus courts, donc une augmentation des effets temporaires (missiles et chasseurs). Donc un équilibre différent des combats avec un niveau de technologie faible.

Cela implique de réfléchir a tous les cas de combats, au lieu de faire un équilibre qui passe peut-importe le niveau de technologies des protagonistes.
Conclusion: au final, ne pas avoir de technologies de coque complexifie la réflexion sur le système de combat.

Par contre, avoir des composants de coques ou de boucliers n'est pas une bonne idée. Cela reviens a offrir au joueur la possibilité de configurer lui-même l'équilibre entre puissance défensive et offensive du vaisseau. Or si on offre la possibilité a un joueur de blinder un vaisseau, on risque de se retrouver avec des combats très long.
Malheureusement, c'est contraire a une des contraintes du moteur (un combat doit avoir une durée raisonnable).

Imryss a écrit:(on devait pas garder les boucliers pour aider les gros vaisseaux à résister aux nués ? Shocked ),

Non, puis-ce que les gros vaisseaux sont faibles contre les nués (et fort contre les vaisseaux de taille moyenne).


Dernière édition par Nimeroni le Ven 14 Sep - 13:10, édité 1 fois
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 Ven 14 Sep - 12:54

on risque de se retrouver avec des combats très long.

Apeiron a parlé de fixer une limite au nombre de tours d'un combat, cela me paraissait une bonne idée.

Si on ne peut pas choisir de mettre de composants de coque ou de bouclier, est-ce que pouvoir concevoir ses vaisseaux ne revient pas à un faux choix ? Malgré le pierre feuille ciseau ne va-on pas tomber en théorycraftant sur quelques compositions de vaisseaux optimaux à doser de façon déterminer dans les flottes pour avoir la meilleur compo ? Dans ce cas il n'y a pas vraiment de "choix" dans la conception tel que c'était le cas à babylone 5 et à weymery.

_________________
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  Apeiron le Ven 14 Sep - 13:20

Néanmoins je crains que ce système manque de diversité technologique. Ne pas pouvoir avoir des technologies de blindage pour améliorer les points de vie de son vaisseau ou ne pas pouvoir mettre de bouclier, c'est sans doute plus simple pour équilibrer le moteur de combat (on devait pas garder les boucliers pour aider les gros vaisseaux à résister aux nués ? Shocked ), je pense que ça va manquer terriblement de fun.
Ma remarque sur l'absence de blindage était une bêtise, je m'en suis aperçu après.
Par contre il y a volontairement une absence de boucliers pour que les petites coques l'emportent contre les grosses coques (résultat du fait que les grosses l'emportent sur les moyennes et les moyennes sur les petites, pour garantir le pierre-feuille-ciseau).
Au niveau technologique, oui, le deuxième système utilise des boucliers et des ordinateurs (mais il n'y a pas de tech, et avoir des types de vaisseaux peut être cool, mais le prix sur la conception est énorme. On peut aussi noter qu'aucun des deux systèmes n'utilise de technologie de moteur.

Après, je me demande s'il n'y aurait pas moyen de mêler les avantages des deux systèmes, à savoir de garder les zones et la liberté sur la conception, mais d'inciter suffisamment (avec certains composants spéciaux et une notion d'initiative) certains fonctionnements pour se retrouver avec un typage sur les vaisseaux et de pouvoir utiliser davantage de technologies.

Par exemple (à la volée) :
(1) Sonde = 1 moteur
(2) Torpilleur = 1 moteur + 1 missile (front, cible les gros loin)
(3) Frégate = 2 moteurs + 1 canon (front, cible les petits proches)
(3) Corvette = 1 moteur + 1 canon + 1 ordinateur (front, cible les chasseurs ou les proches)
(4) Transport = 1 moteur + 3 cargos
(4) Croiseur = 1 moteur + 2 missiles + 1 boucliers (arrière, cible les gros proche)
(5) Cuirassé = 1 moteur + 2 canons + 2 boucliers (front, cible les gros proche)
(5) Porte-nef = 1 moteur + 2 chasseurs + 1 pont d'envol + 1 bouclier (arrière, lâche les chasseurs)
(6) étoile de la mort ?

Types de composants : missile, canon, ordinateur, chasseur, pont, moteur, bouclier, centrale, cargo.
Si on introduit la notion de pont pour l'envol des chasseurs on peut la généraliser à la space Empire pour donner une dimension spatiale à la conception, favorisée par le faible nombre de composants par vaisseau (une dizaine au plus).
Garder les zones est bien, et permet de vraiment différencier les armes (canons dans même zone, missile une zone plus loin, chasseurs un peu partout) sans avoir à poser vraiment autre chose sur leur fonctionnement, ce qui offre un peu de liberté, par exemple pour définir un composant d'ordinateur.
Nous avons supprimé les chances de toucher pour alléger le serveur, et son corollaire qui est d'avoir plus de tirs qui touchent est réglé directement en mettant plusieurs composants. Après, on pourrait arguer que ordi + canon serait plus efficace que canon + canon, mais ça revient à mettre des ordis sur tous les vaisseaux. Et de même que le moteur sur tous les vaisseaux, ça n'encourage pas la diversité. J'ai pensé que du coup l'ordinateur pourrait servir à cibler des choses difficiles à toucher, comme les chasseurs, mais s'il a juste ce rôle ce serait pas très fun.
Si on met un composant de bouclier, il faudrait préciser ce qu'il fait, par exemple de la réduction de dégâts (auquel cas on pourrait utiliser l'idée que ça protège plus contre des canons que contre des bombes). Le moteur pourrait jouer dans l'initiative, par exemple une frégate aurait plus de moteurs qu'un torpilleur et c'est la raison pour laquelle il pourrait le rattraper alors que la frégate est plus grosse.

[je répondais aux deux premiers posts, vous écrivez vite ^^]
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
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 - 13:25

Imryss a écrit:
on risque de se retrouver avec des combats très long.

Apeiron a parlé de fixer une limite au nombre de tours d'un combat, cela me paraissait une bonne idée.

Nan, ça transforme le problème. Au lieu d'avoir des combats trop long, tu va avoir des combats qui ne seront plus gérés par le moteur. C'est pire en fait.

Imryss a écrit:Si on ne peut pas choisir de mettre de composants de coque ou de bouclier, est-ce que pouvoir concevoir ses vaisseaux ne revient pas à un faux choix ? Malgré le pierre feuille ciseau ne va-on pas tomber en théorycraftant sur quelques compositions de vaisseaux optimaux à doser de façon déterminer dans les flottes pour avoir la meilleur compo ?

Non, c'est beaucoup plus complexe que cela.

Par exemple, soit A, B, C des compo telles que A = 2B (dans un combat avec autant de A que de B, il reste 50% des A et 0% des B a la fin du combat), B = 2C et C = 2A. En miroir, chaque flotte s'annihile mutuellement (aka A = A, B = B, C= C).

Flottes monotype
Pour x vs y, 1 = égalité, >1 = victoire de x et <1 = victoire de y

Exemple de calcul pour A vs BC
On considère qu'il y a le même nombre de A que de B+C, et qu'il y a autant de B que de C.
L'équation est donc; A = x(0.5B + 0.5C)
Or A/2 = B et 2A = C, donc si on remplace: A = x(A/4 + A)
On simplifie: 1 = x(0.25 + 1)
Donc x = 1 / 1.25 = 0.8

A
vs B: 2
vs C: 0.5
vs AB: 1.33
vs AC: 0.66
vs BC: 0.8
vs ABC: 0.86

B
vs C: 2
vs A: 0.5
vs AB: 0.66
vs AC: 0.8
vs BC: 1.33
vs ABC: 0.86

C
vs A: 2
vs B: 0.5
vs AB: 0.8
vs AC: 1.33
vs BC: 0.66
vs ABC: 0.86

[finirais plus tard, mais on vois déjà clairement que c'est un cas ou ABC > all car le malus d'avoir un type de coque n'est pas assez fort en comparaison d'avoir le bonus dudit type.]

Imryss a écrit:Dans ce cas il n'y a pas vraiment de "choix" dans la conception tel que c'était le cas à babylone 5 et à weymery.

Dans Weymery, le problème c'est la répartition débile du moteur de combat qui considère qu'un T12 a autant de chance de se prendre une baffe qu'un T1, ce qui rend les chances de ciblage des grosses coques parfaitement négligeable.


Dernière édition par Nimeroni le Ven 14 Sep - 14:31, édité 2 fois
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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 - 13:59

Je pense que la clé pour rendre la conception et les stratégies fun c'est d'avoir du choix, donc pas mal d'effets possibles, quitte à les équilibrer a posteriori. Pour avoir plein d'effets il faut un système assez complexe pour qu'on puisse jouer sur plusieurs aspects. Résumons, qu'est-ce qui rajoute de la complexité ?
1) Une notion de zone, qui permet d'introduire des distances et différencie les armes.
2) Une notion d'initiative, vraiment intéressante si les combats ne sont pas trop longs, et qui devrait pouvoir se régler avec les tailles et les moteurs.
3) Une notion de ciblage, c'est à dire à la fois l'ordre dans lequel un vaisseau décide de tirer mais aussi savoir s'il peut ou non tirer sur quelque chose.
4) Un système de dégâts, où on peut mêler des dégâts ponctuels ou continus, des dégâts d'un coup ou par salve
5) Un système de répartition des dégâts, où le nombre de vaisseaux qui tirent est leurs dégâts est important, ainsi que les points de vie adverses. Le tir peut être dispersé ou concentré.

Au niveau de la conception, un faible nombre de composants impose des choix tout en laissant de la liberté.
Tiens, idée stupide, si on faut un quadrillage (à la Galactic Trucker) pour les composants du vaisseau, un vaisseau pourrait être plus facilement touché par les armes de front s'il est large, et par les armes de côté s'il est long. Sur la hauteur on peut mettre d'autres contraintes, par exemple un bouclier ne protège que le pont où il est, ou des contraintes de connexion par rapport à la centrale.
avatar
Apeiron
Grand Inquisiteur de la Cohérence
Grand Inquisiteur de la Cohérence

Masculin Nombre de messages : 5470
Age : 28
Date d'inscription : 09/11/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Nova, le jeu !

Message  Dana le Ven 14 Sep - 14:17

A la base, je préfère le premier système. C'est vrai que le deuxième est fun niveau stratégique, mais d'une part, le fait qu'on ne voit pas le combat rend les optimums beaucoup moins intuitifs et on perd la compo.


Apeiron a parlé de fixer une limite au nombre de tours d'un combat, cela me paraissait une bonne idée.
Nan, ça transforme le problème. Au lieu d'avoir des combats trop long, tu va avoir des combats qui ne seront plus gérés par le moteur. C'est pire en fait.

Mais... Et si le combat s'arrêtait parce que trop long ?
De façon rp, ils arrêtent de se tirer dessus parce qu'ils voient que ça sert à rien (on a qu'à introduire la convention galactique machin-truc-bidule qui fait un cessez-le-feu automatique au bout d'une semaine de tirs interrompus.)
Ca marcherait aussi avec des munitions limitées, mais il me semble qu'on ne voulait pas les implémenter. Energie limitée ?

Pour parer au problème du pierre feuille ciseaux, on pourrait dire que les petites coques passent au travers des boucliers.

Ou on ne met pas de bouclier, mais moi j'aime avoir pleins de techs partout...


Si on introduit la notion de pont pour l'envol des chasseurs on peut la généraliser à la space Empire pour donner une dimension spatiale à la conception, favorisée par le faible nombre de composants par vaisseau (une dizaine au plus).

En quoi le faible nombre de composant favorise les choses ?


Nous avons supprimé les chances de toucher pour alléger le serveur, et son corollaire qui est d'avoir plus de tirs qui touchent est réglé directement en mettant plusieurs composants. Après, on pourrait arguer que ordi + canon serait plus efficace que canon + canon, mais ça revient à mettre des ordis sur tous les vaisseaux.

C'est pour ça que je préférerais qu'on mette plus de composants. Si l'ordi augmente les dégâts d'un pourcentage des dégâts de base, il aura de l'intérêt sur les grosse coques mais pas les petites. Et pour augmenter la différence de taille entre les coques, on pourrait poser que plus un vaisseau est gros, plus il a besoin de moteur pour la même vitesse/initiative. edit : même chose pour les boucliers ?


edit :

Au niveau de la conception, un faible nombre de composants impose des choix tout en laissant de la liberté.

D'ac. Mais on peut jouer quand même sur la marge ? Ce serait bien qu'on puisse faire un (11) Cuirassé = 4 canons + 1 ordinateur + 2 boucliers + 4 moteurs


Tiens, idée stupide, si on faut un quadrillage (à la Galactic Trucker) pour les composants du vaisseau, un vaisseau pourrait être plus facilement touché par les armes de front s'il est large, et par les armes de côté s'il est long. Sur la hauteur on peut mettre d'autres contraintes, par exemple un bouclier ne protège que le pont où il est, ou des contraintes de connexion par rapport à la centrale.

Euh... pourquoi pas ?


Dernière édition par Dana le Ven 14 Sep - 14:25, édité 1 fois

_________________


S*
avatar
Dana
Ubiquité a déclenchement automatique
Ubiquité a déclenchement automatique

Féminin Nombre de messages : 2067
Age : 26
Localisation : Par delà le temps.
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 - 14:25

Dana a écrit:
Apeiron a parlé de fixer une limite au nombre de tours d'un combat, cela me paraissait une bonne idée.
Nan, ça transforme le problème. Au lieu d'avoir des combats trop long, tu va avoir des combats qui ne seront plus gérés par le moteur. C'est pire en fait.

Mais... Et si le combat s'arrêtait parce que trop long ?
De façon rp, ils arrêtent de se tirer dessus parce qu'ils voient que ça sert à rien (on a qu'à introduire la convention galactique machin-truc-bidule qui fait un cessez-le-feu automatique au bout d'une semaine de tirs interrompus.)
Ca marcherait aussi avec des munitions limitées, mais il me semble qu'on ne voulait pas les implémenter. Energie limitée ?

Pour la même raison qu'on n'autorise pas la fuite: a cause des missiles et du fait qu'un no-life peut relancer immédiatement le combat.

Dana a écrit:Ou on ne met pas de bouclier, mais moi j'aime avoir pleins de techs partout...

Un bouclier qui absorbe un pourcentage des dégâts subits s’adapte automatiquement a toutes les coques. Si le pourcentage est en phase avec l'augmentation des dégâts des armes, alors il n'y a aucune modification d'équilibre a tech équivalente.
Donc pas de soucis pour avoir un bouclier.

Apeiron a écrit:Tiens, idée stupide, si on faut un quadrillage (à la Galactic Trucker) pour les composants du vaisseau, un vaisseau pourrait être plus facilement touché par les armes de front s'il est large, et par les armes de côté s'il est long. Sur la hauteur on peut mettre d'autres contraintes, par exemple un bouclier ne protège que le pont où il est, ou des contraintes de connexion par rapport à la centrale.

Même si l'idée semble bonne...

La première chose que tu dois précisé, c'est si le vaisseau est monolithique ou non, c'est a dire s'il est possible de détruire un élément particulier du vaisseau pendant un combat (et donc que le jeu doit sauvegardé l'état de chaque vaisseau un par un) ou si le vaisseau ne peut qu'être détruit dans son intégralité.

Dans le cas ou le vaisseau n'est pas monolithique, cela implique d'avoir un arbre par vaisseau pendant le combat (avec un nœud par composant), ce qui est exorbitant en mémoire (la taille mémoire d'un vaisseau serais de O(nombreComposants + nombreLiaisons) ) comme en processeur (un parcours d'un graphe se fait en O(nombreComposants) ).
Par conséquent, c'est impossible a moins de changer complètement de philosophie et de n'avoir qu'un nombre très restreint de vaisseaux par flotte (une centaine au grand maximum). Je trouve personnellement que l'idée n'en vaut pas la peine.

Si le vaisseau est monolithique, cela signifie que tout les calculs sont fait en phase de conception, donc ça ne change pas grand chose pour les militaires. C'est plus un jouet pour concepteur. Bref, pourquoi pas, mais je ne suis pas certain que ça change grand chose sur le combat.

Enfin dernier point: je ne sais simplement pas faire une interface type Galaxy trucker (ou SEV). En fait, j'ai déjà beaucoup de mal avec l'interface actuelle de nova, qui est pourtant relativement simple (pour les curieux, le work in progress est ici: http://www.nova-jeu.fr/beta/test.php ). Donc pas avant plusieurs mois.


Dernière édition par Nimeroni le Ven 14 Sep - 14:43, édité 1 fois
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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  Dana le Ven 14 Sep - 14:36

mais on vois déjà clairement que c'est un cas ou ABC > all car le malus d'avoir un type de coque n'est pas assez fort en comparaison d'avoir le bonus dudit type)

Du coup àa veut dire que tout le monde va avoir la même flotte ? On peut empêcher ça ?

_________________


S*
avatar
Dana
Ubiquité a déclenchement automatique
Ubiquité a déclenchement automatique

Féminin Nombre de messages : 2067
Age : 26
Localisation : Par delà le temps.
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 - 14:58

Dana a écrit:
mais on vois déjà clairement que c'est un cas ou ABC > all car le malus d'avoir un type de coque n'est pas assez fort en comparaison d'avoir le bonus dudit type)

Du coup àa veut dire que tout le monde va avoir la même flotte ? On peut empêcher ça ?

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

Soit c -> 0
0.33 / c -> infini
1 vs infini => victoire de ABC

Soit c -> infini
0.33c -> infini
1 vs infini => victoire de ABC

Soit c-> 1
0.33c = 0.33
0.33/c = 0.33
0.33 + 0.33 + 0.33 = 1 [1]
1 vs 1 => draw

Conclusion: au mieux, ABC sera équivalent a une flotte monocoque, mais sans la vulnérabilité de cette dernière. Il est donc impossible d'avoir un équilibre qui favorise des compos d'une seule arme (avec un pierre feuille papier) si on ne possède que 3 armes.

Peut être avec 4 armes telles que A =A, A > B, A < C et A < D ?
EDIT: même pas, puis-ce que la somme des forces et des faiblesses de toutes les armes doit être égale.

Pire: intuitivement, il n'existe pas de cas on obtiens qu'une armée qui regroupe chaque type d'arme est inférieur a des armées spécialisés, puis-ce qu'une armée qui regroupe chaque type d'arme possède la force et la faiblesse de chaque type d'armes, et que la somme des forces des armes doit être égale a la somme des faiblesses des armes [2]. Comme l'armée qui regroupe chaque type d'armes possède chaque force et chaque faiblesse, il y aura autant de forces (arrêtes sortantes) que de faiblesses (arrêtes entrantes) entre l'armée équilibré et chaque autre compo.

Par conséquent, pour que l'armée équilibré soit plus faible qu'une armée spécialisé, il faut que la somme des valuations des faiblesses soit supérieure a la somme des valuations des forces. Si c'est le cas, cela signifie que les valuations ne sont pas symétriques entre les armées monotype, et donc qu'il y a une armée monotype plus puissante que les autres... ce qui n'est pas un pierre-feuille-papier-ciseau équilibré.
Par exemple si A = cB, B = c1C et C = c2A, alors A > ABC ssi c > c2

Le fait que les coeffs soient déséquilibrés ne signifie même pas que l'armée équilibré est toujours la plus faible, juste qu'elle se fait battre par les compos les plus fortes. Du coup, je pense qu'en équilibrant la quantité de chaque type de vaisseau, il est possible de retrouvé une armée équilibré plus puissante que chaque autre type d'armées... [3]


C'est moche, car ça signifie qu'un pierre-feuille-truc sur les armes ne peut jamais être intéressant car soit:
-il existe toujours une compo optimale qui bat les autres, composée de 1/n de chaque type d'armées (avec n le nombre d'armées).
-le pierre-feuille-truc est déséquilibré car il existe une compo qui bat plus efficacement son Némésis

Crying or Very sad Crying or Very sad Crying or Very sad


[1]: en fait c'est 1/3 et non 0.33. Mais je suis une feignasse.
[2] En fait, on peux représenter ça par un graphe orienté, avec:
-un noeud est une arme
-si une arme possède une force vis a vis d'une autre, alors on place une arrête entre les deux armes, qui pointe vers l'arme faible, et avec une valuation égale au bonus de l'arme. Autrement dit, si A c fois plus fort que B, alors B c fois plus faible que A.
Par exemple, si A est plus forte que B d'un facteur c, alors l'arbre est A -> B avec c sur la flèche.
Dans un arbre, la somme des arrêtes sortantes est égale a la somme des arrêtes entrantes. Dans l'exemple précédent, il y a une arrête sortante (A->) et une arrête entrante (->B). Cela se traduit dans notre problème par "la somme des forces des armes doit être égale a la somme des faiblesses des armes".

Edith piaf:
[3] J'ai la formule pour le cas ou chaque type a une force.
Si n est le nombre de vaisseaux, Ci est le coeff d'un type vis a vis du némésis:
Pour les types t de 1 a nbT, il y a n * (ci / somme(c1 a cn) ) vaisseaux de type t.


Dernière édition par Nimeroni le Ven 14 Sep - 16:04, édité 7 fois
avatar
Nimeroni
Drogué de connaissance
Drogué de connaissance

Masculin Nombre de messages : 1652
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  Dana le Ven 14 Sep - 15:19

On pourrait décreter qu'une armée mono-arme ait un avantage arbitraire, mais c'est un peu moche.

_________________


S*
avatar
Dana
Ubiquité a déclenchement automatique
Ubiquité a déclenchement automatique

Féminin Nombre de messages : 2067
Age : 26
Localisation : Par delà le temps.
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 9 sur 12 Précédent  1, 2, 3 ... 8, 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