Salut ! Dans cet article, nous allons examiner de plus près le système de génération de monde de Hytale, en particulier les diverses techniques que nous utilisons pour créer des paysages spectaculaires générés de manière procédurale dans chacune des zones du mode aventure.
Nous avons abordé ce sujet pour la première fois en janvier 2019, et vous souhaiterez peut-être revenir en arrière et lire ce post afin d’avoir une idée générale du fonctionnement de notre système de génération basé sur des règles et de ce que nous essayons de réaliser avec.
Aujourd’hui, nous allons entrer dans des détails plus précis et montrer comment les modders Hytale seront en mesure de personnaliser le monde d’Hytale en fonction de leurs propres besoins.
NOISEMAP* ET INTERPRÉTATION DE LA HAUTEUR
*Dans le contexte de nos systèmes de génération procédurale, un «noisemap» est un ensemble de nombres aléatoires qui peuvent être combinés avec une variété de fonctions pour prendre en charge un grand nombre de types de génération différents. Toutes ces probabilités font que le monde d’Hytale ne sera pas unique à chaque génération, mais une base commune sera présente afin qu’une map d’Hytale ne se génère pas n’importe comment !
Nous utilisons des noisemaps pour de nombreux aspects différents du système de génération de contenu de Hytale, y compris tous les divers systèmes liés au paysage que nous détaillerons plus loin dans cet article. L’une des utilisations les plus frappantes est la formation des zones elle-même.
Cette image provient d’un outil de visualisation simple et affiche un aperçu du résultat de la combinaison de noisemaps avec une autre caractéristique importante de la génération de paysage : l’interprétation de la hauteur. Dans ce cas, les environnements simulés sont les plateaux rocheux de la zone 2.
L’interprétation de la carte de la hauteur implique des ensembles de nombres supplémentaires qui nous permettent d’établir la hauteur ou la baisse de certaines caractéristiques du plan de bruit apparaîtront sur le terrain généré.
En modifiant les seuils d’interprétation des cartes de hauteur, nous pouvons, par exemple, prendre un ensemble de cartes de bruit qui créeraient une voie navigable sinueuse et les adapteraient pour produire des vallées fluviales spectaculaires.
Comme nous explique Slikey, programmeur de génération de maps. «Nous découvrons constamment de nouvelles façons de combiner les noisemaps pour générer un terrain unique où placer des structures de manière inattendue . “
Lorsque nous sommes satisfaits de notre configuration des noisemaps et des seuils d’un biome, nous implémentons ces règles dans le jeu lui-même.
Ce clip montre plusieurs noisemaps ajoutés à un paysage l’un après l’autre, en commençant par un paysage général, puis en introduisant les règles pour les biomes de rivière et de montagne de la zone 2.
La croissance progressive de la complexité que vous voyez dans ce clip est à des fins d’illustration: en réalité, une fois les noisemaps et les seuils d’une zone établis, le paysage est généré d’un seul coup.
COUCHES, COUVERTURES ET STRUCTURES
À ce stade, nous avons un paysage avec de nombreux blocs et quelques caractéristiques majeures comme les rivières, les montagnes et les rivages.
Le processus consistant à donner aux environnements leur personnalité se déroule en plusieurs étapes, chacune avec ses propres processus de génération procédurale.
Nous commençons par des «couches». Il s’agit d’un autre type de plan qui est utilisé pour spécifier à la fois la profondeur de certains types de blocs dans le terrain, ainsi que les types de blocs qui apparaîtront à la surface.
La capture d’écran ci-dessus montre les différentes couches qui composent un paysage dans la zone 3, avec des plantes et de la végétation retirées pour faciliter la visualisation des matériaux sous-jacents.
La prochaine étape implique des «couvertures». La «couverture» fait référence aux détails environnementaux accessoires comme l’herbe, le feuillage, les champignons, les affleurements de cristaux, etc. En configurant les couvertures pour une zone donnée, nous pouvons dire au système “worldgen” quels types de plantes doivent apparaître sur quelles couches.
Par exemple, nous pourrions établir que les buissons denses ne devraient apparaître que sur les couches herbeuses, tandis que la mousse pourrait se trouver sur les surfaces rocheuses souterraines.
Les structures apportent la touche finale et sont souvent ce qui donne aux environnements leur identité spécifique. Les structures sont des arrangements de blocs, créés par nos artistes techniques, qui sont distribués dans l’environnement par le système worldgen.
Les structures accidentelles comme les arbres sont fréquemment rencontrés par le joueur et sont distribués comme d’autres types de couvre-sol.
Voici un exemple de la transformation qui a lieu lorsque des couches, des couvertures et des préfabriqués accessoires sont appliqués à un nouveau paysage:
Le système prend également en charge des structures et des points d’intérêt plus importants, dont vous vous souviendrez peut-être dans ce billet de blog de mars de l’année dernière. Nous avons construit des milliers de préfabriqués pour prendre en charge le système worldgen du mode aventure, et les moddeurs auront la liberté de les utiliser ou de créer le leur lors de la personnalisation du monde.
Les structures sont configurées séparément afin de garantir que leur apparence dans le monde soit crédible et spéciale. Les zones où des structures plus importantes peuvent apparaître sont cartographiées à l’aide d’un autre type de plan:
Ceci est un exemple de bruit Voronoi, qui crée des motifs de type cellule. Pour Hytale, nous utilisons ces «cellules» pour déterminer où les grandes structures peuvent et ne peuvent pas se produire. Dans l’image ci-dessus, les taches violettes représentent des zones où une grande structure pourrait être rencontrée, et représentent collectivement environ 20% de l’espace généré. Si nous le souhaitions, nous pourrions augmenter ou réduire cette densité.
Lorsqu’ils sont pris ensemble, les couches, le revêtement et les structures nous aident à créer des environnements qui combinent le dynamisme de la génération procédurale avec le sens de l’objectif qui vient de l’intégration de bâtiments conçus à la main et de caractéristiques environnementales.
“Worldgen est un système incroyable”, explique l’artiste technique Amber. “Cela nous donne tellement de contrôle et nous permet d’être incroyablement créatifs avec le système. Nous avons souvent créé des paysages et les avons montrés à Slikey, et il a dit ‘wow, je n’avais pas idée que vous pourriez même faire ça!'”
Il y a d’autres aspects de worldgen que nous n’avons pas abordés dans le blog d’aujourd’hui, en particulier les systèmes de grottes, les donjons et la façon dont les zones se croisent. Ce sont d’énormes sujets en soi, nous prévoyons donc de les couvrir séparément lors de notre prochaine plongée en profondeur dans les systèmes de génération de Hytale.
Nous espérons que cet article vous a aidé à mieux comprendre comment le monde de Hytale est créé. Tous les systèmes que nous avons décrits dans cet article seront accessibles aux moddeurs via des fichiers de configuration largement personnalisables. En combinant la création d’actifs dans Hytale Model Maker, nos outils de création de blocs et le système de génération de monde sous-jacent, vous pourrez générer vos propres environnements.
En voici un que nous avons monté nous-mêmes!
Ce paysage personnalisé utilise toutes les techniques décrites dans cet article, y compris les nouvelles structures pour réaliser un paramètre de science-fiction dans le système worldgen de Hytale.
Nous avons hâte de voir ce que les modders de Hytale sont capables de faire!