Génération du monde procédural orienté sur les fonctionnalités de jeu


36

Dans les grands jeux de paysage procéduraux, la terre semble terne, mais c'est probablement parce que le monde réel est en grande partie terne, avec seulement des endroits limités où le paysage est dramatique ou tactique.

Regardant la génération mondiale de ce point de vue, un générateur de paysage pour un jeu (c’est-à-dire, pas par souci de paysage, mais par souci de jeu) ne doit pas suivre les règles de l’aménagement paysager, mais plutôt certaines règles attentes du joueur. Par exemple, il pourrait y avoir un générateur de points de passage / routes qui crée des ravins, des rivières et des montagnes entre les villes, plutôt que la manière naturelle dont les villes sont dispersées sur la terre en fonction des ressources ou des conditions générées par les montagnes et les régimes de précipitations.

Existe-t-il des travaux existants comme celui-ci? Commencez par les villes ou les centres de population, puis ajoutez le terrain par la suite?

La raison pour laquelle je pose cette question est que j’avais déjà envisagé de prendre des cartes existantes de la fiction fantastique (la mienne et d’autres), de placer les informations dans le système comme point de départ, puis de créer un monde propice. Cela semble couvert par la technologie existante, c’est-à-dire que le concepteur insère toutes les informations nécessaires telles que les populations de la ville, les ressources, les biomes, les réseaux routiers et les rivières, puis permet au GPC de combler les lacunes.

Mais maintenant, je me demande s’il serait possible de faire en sorte que le générateur de contenu génère également la conception globale. Générez les villes et les centres de population, en les équilibrant de manière à créer un besoin naturel apparent de commerce, puis indiquez les positions et la connectivité, puis, à partir du type de ville, générez la liste des ressources nécessaires qui doivent se trouver à proximité. Certaines règles sur la manière de rendre le voyage entre les villes à la fois crédible et intéressant génèrent le contenu final, y compris les routes, les étranglements, les ponts et tunnels, les ferries et le terrain, y compris les biomes et le littoral nécessaires.

Si cela a déjà été fait, j'aimerais savoir et aimerais savoir ce qui n'allait pas et ce qui s'est bien passé.


Votre approche semble étrange. Je ne vois pas pourquoi les villes et les centres de population viendraient en premier. Même alors, ne pourriez-vous pas placer certaines villes et leur attribuer des paramètres favorables mais aléatoires, et travailler à partir de là?
Le canard communiste

1
Je pense que vous êtes sur la bonne voie, avec la conception culturelle en premier lieu, ensuite le terrain (et la météo). Dans le monde réel, les sociétés, les cultures, les réseaux et les structures économiques ne naissent pas n'importe où. Au lieu de cela, ils apparaissent (ou ne surviennent pas) en fonction du terrain. Certains terrains ne sont tout simplement pas propices à l'ascension d'une société, et d'autres le sont. Les grandes villes ne surgissent pas au milieu du désert ou de la toundra gelée car a) on ne trouve pratiquement pas d'eau ni de nourriture, et b) il est difficile d'importer des marchandises en ville.
Tim Holt

2
Je comprends votre point de vue, Tim Holt. À mon avis, la règle de cool et la règle de plaisir ont toujours préséance sur la plausibilité lors de la conception d'un scénario de jeu. Une ville qui forme un pont sur le cratère d’un volcan en activité n’est peut-être pas plausible, mais c’est quand même cool. De plus, lorsque les joueurs ont besoin de villes réparties uniformément dans le monde du jeu à des fins de jeu, vous devez les leur donner, même lorsque leur emplacement géographique n’a pas de sens.
Philipp

Réponses:


12

Voici un excellent exemple de génération de terrain procédurale, utilisant des paramètres tels que l'humidité, la hauteur, etc ... http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/


2
Beau travail, mais la distribution aléatoire encore des caractéristiques du paysage d' abord, des éléments civilisation / gameplay seconde
Richard Fabian

Ce n'est pas complètement aléatoire, mais je suis d'accord, il n'y a pas d'éléments de civilisation. Je pense que la technique peut être adaptée à de nombreux éléments de jeu différents, mais ceux de la démo étaient destinés à un jeu multijoueur (~ 80 joueurs par carte): (a) une île entourée d’eau, afin que les gens n’atteignent pas la limite, b) des zones faciles sur la plage où les joueurs sont dispersés, (c) des zones dures en montagne, où les joueurs sont concentrés, (d) les routes vous conduisent vers d'autres zones de même difficulté, (e) les rivières vous conduisent vers des zones de difficulté supérieure. Les joueurs commençaient en solo sur les plages et se regroupaient au fur et à mesure qu'ils se dirigeaient vers le centre.
amitp

1
La principale chose que j'essayais d'explorer était de commencer par les contraintes de jeu, puis de construire une carte contenant les détails plutôt que de commencer avec les générateurs de terrain aléatoires ou "réalistes" habituels, et d'essayer de placer les éléments de jeu en haut. . Je pense que cela a bien fonctionné pour ce style de jeu mais je ne l'ai pas essayé pour d'autres styles de jeux.
amitp

4

Je crois que je regarde cette question depuis trois jours en me demandant comment la génération procédurale de mondes ou même de galaxies peut être en même temps déterministe (comme générer toujours le même contenu à partir de la même graine ), ont une apparence naturelle et présentent toujours des caractéristiques uniques, intéressantes, insolites ou même belles dans son paysage.

Je reviens toujours à la même réponse générique, à savoir que cela dépend fortement du genre du jeu et de sa propre histoire interne cohérente dans l'histoire. Par exemple, dans le genre post-apocalyptique, pourquoi voudrait-on construire une métropole avec des murs massifs au milieu d’une terre en friche et faire vivre misérablement tout le monde à l’intérieur de celle-ci? Pourquoi coloniser de telles planètes? En haute fantaisie, pourquoi créer une ville au sommet d'une île flottante? Pourquoi les nains font-ils des villes à l'intérieur de montagnes? Et votre ennemi maléfique générique vient d'une terre ardente avec des volcans actifs? Règle de Cool?

Tout revient donc à votre propre réponse, où vous entrez des informations dans le PCG et cela comble le vide, et à une autre réponse concernant la création d'univers qui correspondent aux lignes de l'intrigue et à l'histoire globale.

Donc, l'intrigue génère des éléments de jeu qui génèrent un paysage approprié.

Cela dit, je me demande si une histoire qui génère une arborescence de lignes d’intrigue cohérentes générera le design de jeu global que vous recherchez.

(PS: Ces mêmes trois jours de réflexion m'ont également amené à apporter une autre réponse à un problème qui pourrait survenir: il devrait exister un outil de test automatisé pour vérifier si la conception de jeu générée est correcte. Par exemple, vous devriez avoir une armée médiévale ayant un le temps de vaincre une forteresse générée)


2

Le seul document traitant de problèmes similaires que je pourrais trouver immédiatement est " Un algorithme pour la déformation automatisée du terrain fractal " de Stachniak et de Stuerzlinger . Il suppose que vous créez d'abord le terrain et le déforme (ou plutôt que vous laissiez l'algorithme choisir les paramètres avec lesquels le déformer automatiquement) afin qu'il s'adapte à vos contraintes ultérieurement, afin qu'il ne réponde pas directement à la question. Néanmoins, les méthodes présentées ici pourraient s'avérer utiles pour d'autres personnes ayant des problèmes similaires.


2

Un tel algorithme ne générerait-il pas automatiquement plus de terrain «tactique» lorsque des routes sont générées entre des villes?

En supposant que les routes ne peuvent avoir qu'un certain changement d'altitude par distance, la hauteur de terrain serait adaptée à la hauteur de la route, ce qui entraînerait la génération de points de contrainte chaque fois qu'une route passe à travers une colline / un ravin / peu importe. Bien entendu, il faudrait également limiter la modification de la hauteur du terrain, sinon des routes traverseraient directement les plus hauts sommets.


Je suppose que vous vouliez dire que les routes existantes réduiraient la génération de terrain, conduisant à ce qui pourrait ressembler à des vallées artificielles. C'est intéressant, où avez-vous déjà vu un générateur de terrain prendre le paysage et le juger trop difficile à conduire, mais suffisamment peu coûteux pour le traverser? Cela ne répond pas à ma question, mais cela ajoute à la liste des choses qu'un producteur devrait prendre en compte, par exemple le cas contraire (où une route est très haute) demanderait un pont ou un viaduc, pas quelque chose que l'on voit normalement dans PCG.
Richard Fabian

Je pensais juste à comment cela se passe dans la vie réelle:
Exilyth

1
Les montagnes se forment, s'érodent. Les plantes et les arbres poussent sur les terres. Des millions d'années plus tard, les premiers nomades se présentent, se promènent, s'installent peut-être. Ils commencent à toucher les terres qui les entourent, par exemple par des noyaux de pierre ou des forêts. Plus tard, ils trouveront d'autres villes, commenceront à commercer avec elles et auront donc besoin de routes. Il est généralement plus facile de suivre le terrain que de le modifier. Ils adaptent donc leurs routes au paysage (à l'exception d'un peu de lissage / d'aplatissement). Comme vous pouvez le constater, je considère le problème de plus en plus sous l’angle de la construction du monde.
Exilyth

2

Lorsque j'étais à Cryptic Studios, nous travaillions sur quelque chose comme ceci pour la génération de missions / quêtes. Les concepteurs ont spécifié les objectifs de la mission de manière assez abstraite et les ont placés avec un certain ordre aléatoire dans "l'ordre de déplacement du joueur" et ont tracé des chemins entre eux.

Une première version livrée avec Star Trek Online sous le nom de Genesis Missions (archive) . À l'époque, nous étions très enthousiastes à ce sujet, mais je ne sais pas du tout combien cela a continué après mon départ, ni s'il est disponible dans les outils de l'utilisateur final Foundry. (Quel était l'objectif final.)


1
Cela ressemble à du travail effectué avec des générateurs procéduraux d’intrigue, a-t-il réellement généré les détails du monde correspondant à l’intrigue requise de ces missions, ou créé-t-il les missions de ce qu’était le monde, ou était-ce simplement chanceux que les missions soient difficiles ou facile en fonction de ce que vous avez généré?
Richard Fabian

1

Une approche typique pour la génération de terrain procédurale consiste à dessiner à la main des caractéristiques spécifiques et à utiliser le générateur pour compléter le reste. VTerrain est lié à quelque chose d'intéressant sur ce sujet.


1

Lighthouse 3D propose un aperçu de certains algorithmes simples pour la génération de terrain. Si vous commencez avec une carte contenant des villes ou d’autres zones intéressantes, vous pouvez utiliser certaines de ces techniques pour générer le terrain de votre choix. Par exemple, l'utilisation intelligente de l'algorithme de défaillance pourrait être utilisée pour créer des falaises ou des vallées autour de votre ville qui agiraient comme des étranglements. En outre, l’utilisation de l’algorithme de cercle serait un excellent moyen de générer un terrian pour le placement de la tourelle. Ce ne sont là que quelques exemples, mais l’utilisation de ces algorithmes simples serait un moyen assez facile de générer un terrain intéressant autour de vos villes.


1

Je simplifie peut-être trop les choses, mais pourquoi ne pas ignorer le fait que les villes sont construites sur des terrains avantageux ou, en l'occurrence, n'importe quelle taille d'une zone civilisée pour une raison quelconque? Peut-être le terrain offre-t-il un avantage tactique pour un contingent militaire ou peut-être existe-t-il une scierie à l'intersection d'une grande forêt et d'une rivière avec un village plus important en aval. Même les lieux "sacrés" sont basés sur le terrain, même si, pour la simple raison que cette partie de la terre a été à un moment réputée sainte, etc. lieu physique pour des raisons très basées sur le terrain. Même dans le cas d'une ville naissante simplement parce qu'il y a suffisamment d'échanges commerciaux entre deux grandes villes pour justifier la présence d'un intermédiaire, si vous voulez, cette ville serait choisie en fonction du chemin de moindre résistance. Il serait placé dans un endroit offrant de bonnes terres agricoles plates pour l’alimentation locale ainsi que des terres qui se prêtent bien à la construction de routes. Je suis sûr que tu as pensé à ça ...

Donc, si vous construisez d'abord les villes, bien sûr, pourquoi pas? Pourquoi ne pas construire la ville, le village, la colonie ou quoi que ce soit, avec un bon morceau de terrain environnant, construit à la main, qui supporte ce type d'établissement?

Prenons comme exemple les biomes procéduraux. Ils sont généralement appliqués aux cartes pseudo-aléatoires de température, d'humidité et de hauteur. Si vous avez déjà conçu la ville (ou le moulin à bois, etc.), alors vous avez probablement une idée précise de ce à quoi la terre doit ressembler, ce qui, si je ne me trompe pas, est exactement ce que vous voulez dire. Prenez un bâtiment fantastique comme Orthanc, regorgeant de plans et de terrains environnants, que vous avez consciencieusement reproduit. Eh bien, nous savons que, selon la chronologie, Orthanc était entouré d'une immense forêt peuplée d'Ents (créatures d'arbres), etc. Si vous essayez de reproduire cela, alors appliquer un terrain aléatoire n'a aucun sens pour moi. Cela étant dit, une fois que vous avez créé ce paramètre pour la tour elle-même et la forêt environnante, qu'est-ce qui se situe entre Orthanc et la ville de votre choix?

Une approche simple peut consister à écrire votre génération procédurale de terrain, à placer votre réglage dans un système de terrain généré aléatoirement et à atteindre votre hauteur autour de votre réglage fixe et votre alto vous pouvez placer Orthanc dans de nombreux mondes différents générés aléatoirement (si c'est ce que vous recherchez).

Je pense toutefois que vous feriez mieux de combiner environnement, terrain et biome défini et de vous assurer que Orthanc est placé à l'intérieur d'un grand biome forestier généré de manière procédurale. Selon la manière dont vous le codez, vous pouvez définir le biome, le terrain, l’humidité, etc. minimum / maximum pour chaque paramètre, bâtiment ou ville prédéfini que vous avez sculpté. Serait-ce une petite tâche dans un monde 3d photoréaliste à part entière? Évidemment pas.

Je pense que si je devais tenter cela, je rechercherais d’abord des algorithmes de procédure côtiers. Considérant que presque toutes les civilisations de l’histoire ont suivi les côtes, qu’il s’agisse d’un océan, d’une mer ou d’un grand lac. C'est le chemin le moins résistant à la croissance car il y a probablement une pêche abondante, des arbres à proximité pour le bois et un déplacement certainement plus rapide, même avec une embarcation rudimentaire (au moins à sens unique).

Je penserais que vous devriez construire complètement en arrière. Pensez, points pseudo-aléatoires sur une carte représentant des points de civilisation éventuellement avec un algorithme de bruit déterminant les populations de ces civilisations avant toute autre chose est déterminée. OK, 1 point sur une population de 1 000 habitants, 2 000 000 de plus (ou le ratio selon la population mondiale, bien sûr). Pourquoi? Pourquoi ce nombre de populations là-bas? Une population de 1 000 habitants pourrait être la petite communauté de scieries. C’est peut-être une communauté minière située au nord de la carte si vous créez un monde sphérique en 3D. Cela devient un peu flou ici parce que je ne sais pas si vous allez à l'infini dans toutes les directions rendant NESW inutile dans la détermination des biomes ou si vous voulez une véritable "Terre"

Cependant, si vous assimilez vos civilisations, en vous basant sur des populations de bruit pseudo-aléatoires, je pense que nous pouvons sans risque supposer quelques règles (mais peut-être pas absolues) comme ... Plus la civilisation est grande, très probablement, plus le nombre de ressources utiles sur la main et le terrain pour les soutenir. Des minéraux précieux, des bois, etc., doivent être présents à tout moment, sans quoi un vaste système commercial doit être mis en place pour soutenir une entreprise de cette envergure. Sur cette base, vous pouvez commencer à générer des autoroutes de ville en ville et des routes menant à des zones périphériques, comme une exploitation minière en profondeur, etc. Choisissez des points de civilisation qui formeraient de bonnes côtes et feraient complètement disparaître les points de population de la carte où vous devrez remplir votre les océans (ou peut-être que vous avez Atlantis dans votre monde, ou des forages pétroliers en mer).

Remplir le terrain entre les deux dépend encore une fois de votre approche du biome. Si vous avez un monde infini dans toutes les directions, placez Orthanc là où cela convient, forcez-le dans un biome forestier et construisez-le vers l'extérieur jusqu'à ce que vous arriviez à mi-chemin de votre prochaine destination prédéfinie pour laquelle votre algorithme effectue la même génération procédurale. environ. Lerp / Mélangez les deux terrains lorsqu’ils se rencontrent et, oui, c’est une simplification évidente.

Sans une réelle connaissance pratique de ce que vous essayez réellement d'accomplir de manière mécanique, je ne peux que lancer des idées, voire de mauvaises. Je pense que votre approche a du mérite, même si elle est complètement fantastique en réalité, parce que vous ciblez ce qui est toujours le facteur le plus important de tout jeu: le joueur s’amuse-t-il? Ou est-ce que je crée un monde aléatoire qui n'est pas ennuyeux et donc pas amusant?

Qu'est-ce qui pourrait aussi devenir intéressant, et cela pourrait faire partie de la génération de civilisations dans n'importe quel jeu, que ce soit le terrain d'abord ou non, que se passe-t-il si vous plongez deux grandes villes l'une à côté de l'autre? Qu'est-ce que ça veut dire? Sont-ils en guerre? S'agit-il d'opérations commerciales massives entre deux pays florissants? Quel genre d'ennemis se cache dans les bois de cette scierie?

Je pense qu’une chose est certaine si vous essayez de construire un terrain basé sur des "villes", c’est-à-dire que le terrain serait directement affecté par la population de ladite ville, tant en termes de paysage que de ressources naturelles (et peut-être même de beauté).

Je ne sais pas si j'ai vraiment répondu à quelque chose ou si c'était approprié, mais c'est un concept très intéressant et j'aimerais savoir où vous vous dirigez.


0

Je voudrais générer les fonctionnalités de jeu simultanément dans le cadre du même processus. Il y a plusieurs façons de construire un terrain basé sur des règles. Cette présentation de YouTube par les développeurs de Path to Exile est un très bon exemple: https://www.youtube.com/watch?v=GcM9Ynfzll0 . En outre, pour une approche moins prédéfinie, cela semble intéressant: https://www.youtube.com/watch?v=RAtdFKiqs34 . Vous pouvez utiliser le bruit perlin pour générer des hauteurs pour chaque sommet de voronoï et partir de là.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.