Comment puis-je m'assurer que les niveaux procéduraux dans un RTS sont équitables?

10

J'ai vu que la symétrie et la cohérence sont importantes dans la conception de niveaux RTS, mais je suis paresseux et je veux faire des niveaux générés de manière procédurale.

Comment puis-je m'assurer de générer des règles du jeu équitables lors de la création procédurale de niveaux pour un RTS?

James Pae
la source
4
Il est progressivement enterré avec l'âge, mais je recommanderais de rechercher des informations sur le fonctionnement des scripts de génération de cartes aléatoires dans les jeux Age of Empires. Il s'agissait de fichiers texte que les joueurs pouvaient éditer décrivant comment générer des cartes d'escarmouche de différents types. Je me souviens qu'ils avaient des méthodes pour définir des correctifs et des grappes de terrain / accessoires particuliers, pour placer équitablement des choses comme les ressources afin qu'elles soient assurées d'être disponibles, et pour se frayer un chemin à travers le terrain pour s'assurer que les joueurs puissent se rejoindre. Apprendre comment leurs recettes ont fonctionné devrait vous donner quelques idées.
DMGregory
2
Vous ne mentionnez pas si votre RTS est en solo ou en multijoueur. S'il s'agit d'une seule personne, un certain équilibrage de niveau peut être effectué en modifiant le comportement de l'IA pour qu'il corresponde aux compétences du joueur. En d'autres termes, l'IA peut avoir accès à plus de ressources que le joueur, mais le jeu ajuste l'agressivité avec laquelle il utilise ces ressources en fonction de l'agressivité que le joueur effectue des attaques ou exploite ses ressources.
Mark Ripley
1
Pour ajouter à ce que Mark a dit, quel genre d'équilibre recherchez-vous? Qu'utilisez-vous les cartes pour accomplir?
Nicol Bolas

Réponses:

26

Personnellement, je trouve ennuyeux la symétrie dans la conception de niveaux, et je ne pense pas que ce soit nécessairement le cas pour des niveaux équitables; la symétrie est un moyen de garantir que tout le monde a accès aux mêmes ressources et aux mêmes goulots d'étranglement en vertu du niveau littéralement reflété pour chaque joueur d'une manière ou d'une autre. Je pense que la partie importante est l'accès (à peu près) aux mêmes avantages et inconvénients. Pas tellement la symétrie elle-même.

Je pense aussi qu'un jeu équilibré de telle sorte que toutes les équipes sont de puissance équivalente et ont des opportunités équivalentes est ennuyeux. Vous ne voulez évidemment pas un déséquilibre total de ces facteurs, mais je pense que cela peut créer une dynamique de jeu intéressante pour offrir à chaque camp des opportunités et des obstacles légèrement différents.

C'est le genre de contexte de conception auquel je pense comme encadrant la réponse réelle à la question:


Si la symétrie est vraiment importante pour vous, vous pouvez simplement générer procéduralement un bloc de niveau, puis refléter ce niveau sur les deux axes. Le morceau que vous générez est essentiellement un quart du niveau et vous le mettez en miroir de sorte que chaque quadrant est le même. Par exemple, une carte de hauteur procédurale avec des gisements de ressources dispersés de manière aléatoire:

entrez la description de l'image ici

Mais comme je l'ai dit plus haut, cela semble terne. Une approche plus intéressante pourrait être de générer le terrain entier de manière procédurale, mais lors du placement des ressources, assurez-vous de contraindre chaque quadrant à avoir le même nombre de chacun (dans une certaine tolérance pour fournir une certaine variabilité). Vous voudrez peut-être biaiser le placement de divers types de ressources vers différentes zones (au hasard, près des points de départ, près des frontières) en fonction de l'importance des ressources. Par exemple:

entrez la description de l'image ici

Vous pouvez effectuer une analyse sur l'image générée pour essayer de trouver des bords d'entités - des canyons étroits, par exemple, qui peuvent être considérés comme des goulots d'étranglement. Vous pouvez décider de relancer la génération de terrain pour une partie de la carte si, par exemple, elle a beaucoup plus ou beaucoup moins de goulots d'étranglement ou de caractéristiques de terrain détectables de manière similaire que d'autres. Vous pouvez également effectuer une analyse de terrain similaire pour vous assurer que chaque ressource placée est, d'une certaine manière, accessible.

Par exemple, vous pouvez décider de relancer le quadrant inférieur gauche car il contient trop d'eau (en rouge) ou les quadrants contenant le vert car ils sont trop avantageux sur le plan tactique (goulots d'étranglement potentiels du canyon):

entrez la description de l'image ici

Vous pouvez également choisir de guider manuellement la génération de vos fonctionnalités; vous pouvez placer manuellement certains éléments, tels qu'une rivière divisant les sections du niveau ou des dépôts de ressources clés, et exécuter la génération procédurale par la suite de manière à préserver les fonctionnalités d'équilibrage des clés placées à la main tout en offrant la variété intéressante et organique que vous souhaitez. de génération procédurale.

Par exemple, un terrain généré qui préserve une rivière placée manuellement divisant la carte en deux et un couvert boisé a fourni une défense supplémentaire autour des bases:

entrez la description de l'image ici


la source
2
Merci, cela fonctionnera bien avec mon système de blocs. Les gens semblent confus par ma déclaration "mais im paresseux". Je ne suis pas artiste, et je trouve la génération de bruit et de maillage plus intéressante.
James Pae
2
@JamesPae: " Je ne suis pas un artiste " La conception de niveaux ne concerne pas l' art . Il s'agit de gameplay. La question est donc: aimez-vous concevoir des jeux?
Nicol Bolas
8
@JamesPae si vous ne pouvez pas fabriquer à la main un niveau amusant, vous aurez beaucoup de mal à rendre votre niveau généré de manière amusante. Je vous suggère de fabriquer à la main au moins un niveau afin que vous puissiez apprendre ce qui sera amusant avant d'écrire votre générateur
Evorlor
2
@Evorlor, il dit qu'il ne l'apprécie pas, pas qu'il ne peut pas le faire. Pourquoi tout le monde ignore-t-il ce point tout le temps?
Davor
5
Pourquoi tout le monde prend-il tout si littéralement? Il faisait clairement une blague avec cette déclaration. Je comprends le point de vue de l'OP, oui, ils pourraient fabriquer à la main quelques niveaux, mais alors vous n'avez toujours que autant de niveaux que vous avez créés. Si vous dépensez le même effort pour créer un bon générateur de niveau, vous avez potentiellement des niveaux infinis à utiliser. Les gens ont des mentalités et des opinions différentes. Certains pourraient aimer créer de grands niveaux à la main, d'autres pourraient vraiment apprécier de créer un excellent générateur de niveaux.
JamEngulfer
7

Dans certains cas, il pourrait être possible de s'appuyer sur les joueurs eux-mêmes pour créer des cartes asymétriques équilibrées en utilisant la mécanique de manipulation des tuiles.

À une extrémité du spectre, vous pouvez permettre aux joueurs de créer la carte, partiellement ou entièrement, en sélectionnant et en plaçant des tuiles de carte. Il y a un tas de façons différentes que cela pourrait être modifié:

  • les joueurs choisissent parmi un jeu de tuiles commun
  • les couches choisissent parmi un jeu de tuiles personnel
  • les tuiles sont sélectionnées via une phase de rédaction
  • certaines tuiles peuvent être corrigées à l'avance via le scénario (c.-à-d. engendrent toujours une rivière pontée au milieu de la carte)
  • les joueurs achètent des tuiles sur un marché central avec des ressources
  • les joueurs peuvent ou non être autorisés à garder une main de tuiles

À l'autre extrémité du spectre de manipulation des tuiles, les joueurs peuvent manipuler des tuiles de carte. Dans cette solution, le jeu démarre avec une carte initiale. La carte initiale pourrait être symétrique ou pourrait être «assez juste» en utilisant l'une des autres réponses.

Ensuite, une phase de manipulation de carte se produit au cours de laquelle les joueurs peuvent effectuer certaines des opérations suivantes:

  • faire pivoter une tuile
  • échanger des tuiles (adjacentes ou non)
  • miroir d'une tuile
  • pousser une rangée ou une colonne de tuiles (la tuile qui tomberait du bord s'enroule)

Ces manipulations pourraient être exécutées une par une, auquel cas un joueur aurait une chance de réagir aux manipulations d'un autre joueur, ou le joueur pourrait faire la queue d'une liste de changements qui seront exécutés. De plus, vous pouvez permettre aux joueurs de manipuler la carte entière ou de restreindre les choses à leurs zones de départ.

Un inconvénient de cette approche est que le résultat final doit être protégé contre les résultats indésirables - c'est-à-dire la manipulation d'une chaîne de montagnes impraticable de telle sorte qu'une partie de la carte devient inaccessible. Les solutions possibles à cet inconvénient sont:

  • vérifier les mouvements potentiels et interdire ceux qui mènent à des résultats illégaux
  • autoriser tous les mouvements, mais annuler tout ce qui est illégal
  • construire les tuiles pour qu'aucun mouvement ne soit illégal
  • concevoir d'autres mécaniques de jeu (c.-à-d. mouvement) de sorte qu'aucun mouvement ne soit illégal
Pikalek
la source
2

Demandez à votre algorithme de génération de carte de générer des niveaux symétriques en générant un niveau, en le reflétant et en plaçant chaque joueur d'un côté. Une carte à quatre joueurs peut être créée en la mettant en miroir sur les axes x et y.

De cette façon, la carte sera également bonne (ou mauvaise) pour tous les joueurs. Un effet secondaire dont vous devez être conscient est que cela signifie que les joueurs sont conscients de la position des autres joueurs et de la disposition des autres parties de la carte après avoir exploré la leur.

Une autre option consiste à générer une carte sans cette astuce de symétrie, mais ensuite à montrer toute la carte aux joueurs et à chaque joueur de choisir librement son emplacement de départ.

Philipp
la source
1

Une approche consiste à utiliser d'autres facteurs pour équilibrer la carte. Vous pourriez être en mesure d'automatiser cela en utilisant des algorithmes d'analyse de carte et en fournissant des ressources de démarrage supplémentaires aux emplacements jugés défavorisés. Alternativement, vous pouvez utiliser les joueurs eux-mêmes pour cette étape. Un exemple actuel de ceci est l'utilisation d' enchères inversées en mode révélation dans Offworld Trading Company (OTC) pour fonder votre réclamation initiale (c'est-à-dire choisir un emplacement de base de départ):

Au fur et à mesure que le temps passe, la dette de départ pour la fondation précoce diminue. Cela finira par se transformer en argent de départ si cela prend suffisamment de temps pour que les 2 derniers joueurs soient trouvés. Une fois qu'il ne reste plus qu'un joueur qui n'a pas fondé son QG, les valeurs cessent de changer et ce joueur ne gagne plus à attendre d'être trouvé.

Je ne me souviens pas s'il s'agissait de l' interview de 3 Moves Ahead ou Game Design Round Table , mais dans l'un d'eux, Soren Johnson (le développeur) dit que ce mécanicien change essentiellement le problème de la carte de "puis-je trouver le meilleur emplacement en premier" en " quelle est la 2e meilleure position sur la carte. "

Un avantage est que cette solution permet des cartes très asymétriques. Un inconvénient est que la carte entière est révélée à tous les joueurs, au moins au début. L'approche OTC révèle également les emplacements des bases de joueurs. D'autres mécanismes, comme les enchères à l'aveugle, pourraient éviter de révéler les emplacements de base.

Pikalek
la source