Un type de monde, c'est en réalité un bout de programme qui permet de générer des mondes qui comportent des caractéristiques identiques, mais dont le résultat final dépend de la semence utilisée lors de la génération de l'Utopie. Le type de monde détermine :
- le nombre de strates qui existeront dans l'Utopie
- le type de strate pour chaque strate
- l'épaisseur de chacune des strates
- est-ce que la semence du relief global est fixe (prédéterminée) ou aléatoire?
- l'écosystème de chacune des strates
- l'image des régions géographiques pour chacune des strates
- est-ce que la branche de magie de l'arbre technologique est activée?
- est-ce que les animaux et peuples fantastiques sont activés?
La semence peut être fixe (toujours la même) pour un type de monde si le concepteur souhaite connaître avec précision le relief des mondes générés. Ou elle peut être laissée au hasard pour permettre la création d'une variété de mondes partageant un ensemble de caractéristiques, mais qui sont légèrement différents.
Le jeu est livré avec quelques types de mondes, ainsi qu'avec des outils et de la documentation favorisant le design de nouveaux types de mondes par la communauté.
Malgré sa visée éducative, UtopieS reste un jeu fortement influencé par le type bac à sable (« sandbox ») et par conséquent il ne restreint pas les types de mondes qui peuvent être créés par la communauté. Par exemple, des designers pourraient créer des types de mondes conçus spécifiquement pour tenir des événements spéciaux, comme des arénas de combat, des jeux d’habileté, des pistes de course, des chasses à l’homme, des chasses au trésor, des concours de construction, des décors pour produire une pièce de théâtre ou un film, etc.
Vision pour les types de mondes
Les types de mondes que je fournis avec UtopieS sont des mondes inventés, malgré qu'ils peuvent être inspirés de la Terre. Je ne fais pas de références à des périodes ou peuples précis.
Mon but avec UtopieS est que chaque type de monde amène de nouveaux défis et une nouvelle ambiance déterminée par l'écosystème choisi (parmi les préexistants) ou créé (par la personne qui conçoit le type de monde). Toutefois, il y a une limitation physique au nombre d'items que le jeu peut avoir en mémoire et aussi à ce qu'un joueur peut gérer en inventaire. Donc, les items et les blocs doivent être réutilisables de manière différente dans les types de mondes. Par exemple, un même bloc de bois pour plusieurs essences d'arbres.
Je vais livrer quelques types de mondes avec mon jeu, mais je veux surtout encourager la création d'une communauté de concepteurs qui vont créer des nouveaux types de mondes. Ce qui permettra que le jeu soit vraiment pérenne, puisqu'il ne sera pas ennuyant d'y jouer. Je ne veux pas qu'il faille des programmeurs qui créent des modules comme dans Luanti. Je veux que n'importe quelle personne suffisamment intéressée pour prendre le temps de suivre le tutoriel soit capable de créer un type de monde, via l'édition de fichiers textes, la création de textures et d'autres tâches relativement simples. Je vais donc fournir des exemples des choses plus difficiles à apprendre, tel que des exemples de formes de blocs utilisant le drawtype nodebox.
Je veux aussi que les concepteurs puissent facilement associer des textures différentes aux blocs dans leur monde, afin qu'ils puissent créer une ambiance visuelle spécifique pour tel type de monde.
Je veux qu'un joueur qui a un ordinateur de faible puissance puisse jouer au jeu et concevoir des types de mondes s'il le souhaite. Mais par contre, je ne veux pas limiter la créativité des concepteurs qui veulent créer par exemple des schémas d'arbres complexes et lourds à afficher. Cependant, comme le jeu consiste simplement à explorer des mondes, si un joueur a un ordinateur de faible puissance, il peut se contenter de télécharger des types de mondes classés peu gourmands en ressources.
Pareil pour le niveau de difficulté de jeu de chacun des types de mondes et du niveau de langage, je ne veux pas limiter les concepteurs et les joueurs adultes. Mais je veux permettre aux parents de limiter leurs enfants aux types de mondes classés "enfant". UtopieS comprend un paramètre "enfant"/"adolescent"/"adulte", que le parent peut verrouiller via un mot de passe et qui limite les types de mondes accessibles à télécharger à partir du site web. Je teste et classe tout nouveau type de monde soumis par la communauté.
Pour inciter les gens à créer des schémas d'arbres, d'immeubles et autres, je fournis un type de monde composé seulement d'une petite plate-forme de 10 x 10 bloc, dans lequel le joueur est en mode créatif et où il a accès aux outils de mon ensemble Outils de construction et créatifs.
Le monde de départ que je fourni a un portail situé au coin N-E du monde (les joueurs apparaîssent au centre du monde). Toutefois, les joueurs doivent découvrir comment l'activer avant de pouvoir s'en servir. Les PNJ qui habitent le monde de départ ne savent pas que le portail existe et encore moins à quoi il sert. Les concepteurs de types de mondes peuvent décider s'ils laissent le jeu placer le portail de leur monde au hasard (sur n'importe quelle strate ou sur telle strate du monde) ou s'ils spécifient un endroit précis en précisant une coordonnée x/y(strate)/z.
Un concepteur de type de monde peut configurer un nouveau type simplement en éditant un fichier texte "monde#####.txt". S'il veut partager avec la communauté son type de monde, il doit enregistrer son type sur le site web, pour que son numéro de type soit unique.
Lien entre le relief et l'écosystème
Le relief d'un type de monde détermine le biotope et par conséquent la biocénose qu'il peut supporter. Dans UtopieS, tel type de relief correspond à tel type de roche. Par exemple, une strate d'un monde à terrain volcanique aura tel type de terre qui supporte tel type de végétation.
Certains types de reliefs régionaux requièrent certains types de roches à la surface du relief ou dans le volume du relief. Par exemple, un relief ruiniforme karstique requiert du calcaire. Et une chaîne de montagnes en dôme requiert du granite. Un stratovolcan se compose quant à lui de plusieurs couches de roches.
Il y a un seul écosystème par monde, mais il peut y avoir plusieurs biocénoses pour un même écosystème, en fonction du biotope qui est déterminé par la strate, l'altitude dans la strate, le relief régional, etc. Par exemple, dans un relief régional de type relief ruiniforme qui est situé dans une strate du monde qui a un écosystème de prairie chaude sur roche de grès, les plantes seront différentes à cause de la présence de la roche calcaire au lieu de la roche de grès qui forme le reste de la strate du monde. Les plantes poussant au sommet des montagnes sont différentes des plantes poussant dans les marécages au bas des vallées. Les reliefs régionaux permettent donc d'ajouter de la variété à un écosystème.
Pour arriver à ce genre de génération de monde, je dois créer mon propre générateur de terrain, soit sous forme de module Lua (mais problème de lenteur?) ou en modifiant le code source en C de Luanti.