The versatility of the CGA Rules and the fact that every detail can be processed by hand makes CityEngine a rapid and effective tool for game development.
Réussite client
Une ville en ruine
Objectif du projet : conception procédurale d'un niveau de jeu vidéo
Afin d'illustrer les applications pratiques de son mémoire sur la génération procédurale d'éléments d'architecture dans les jeux vidéo, Christian Holzer et une équipe de cinq étudiants ont décidé de développer un jeu d'action-RPG en 3D. En cours de projet, ils se sont rapidement rendu compte qu'ils souhaitaient situer le principal niveau du jeu en Europe de l'Est, dans un environnement urbain sombre et post-apocalyptique. Ils ont donc défini les contraintes de production suivantes :
- Leur équipe restreinte devait modéliser entièrement l'environnement urbain en un temps limité.
- Cet environnement devait comprendre des bâtiments en ruine, avec une large distribution d'éléments de destruction.
- Le budget limité dédié aux polygones devait être respecté.
Solution : modélisation procédurale avec CityEngine
Christian Holzer et son équipe souhaitaient clairement créer en peu de temps un vaste environnement urbain d'Europe centrale avec un faible nombre de polygones. En outre, ils avaient besoin d'une méthode efficace pour modéliser les ruines, étant donné que 60 pour cent de la ville devait montrer les signes d'une destruction totale ou partielle. Holzer a pu utiliser la grammaire de forme CGA dans la génération procédurale de la destruction des éléments d'architecture.
"Avant de créer les règles à appliquer aux habitations et aux espaces verts, nous avons simplement extrudé les îlots urbains pour étudier l'effet sur l'architecture. Dans notre projet de design, il était important d'établir un juste équilibre entre les zones de ruelles étroites et les espaces verts, les parcs. Le joueur doit pouvoir explorer librement tout le niveau de jeu ‐ mais aussi s'appuyer sur un tracé de rues, d'îlots et de bâtiments importants pour le guider vers les zones de jeu plus compétitives. Il existe une variété de règles CGA, non seulement pour générer des bâtiments et des rues, mais aussi par exemple des parcs avec une végétation distribuée de manière aléatoire. Avec un peu de pratique, le gain de temps devient évident, surtout par rapport à d'autres méthodes."


Processus de production appliqué
Christian Holzer a fait office de level artist et d'environment artist pour son équipe de cinq développeurs. Il s'est servi de CityEngine et des règles CGA pour la modélisation procédurale des bâtiments, espaces verts et rues, mais aussi pour la distribution des modèles de vestiges. Tous les éléments du jeu ont été créés et texturés avec Autodesk Maya. Le processus appliqué a été le suivant :
- Les dessins conceptuels des bâtiments de base et du tracé des rues ont été créés dans Adobe Illustrator, où les rues sont représentées par des tracés vectoriels.
- Les rues vectorisées été importées dans CityEngine pour constituer le principal réseau de rues, puis les outils de mise à jour des rues et des îlots ont été utilisées pour générer les routes subalternes et les sous-divisions.
- Une carte des obstacles est chargée afin de définir les zones non praticables.
- L'architecture et les rues sont générées conformément aux règles CGA. P. ex. : la texture des rues varie selon leur longueur.
- L'éclairage public, les poubelles et autres éléments sont distribuées automatiquement et aléatoirement.
- Le modèle de ville est exporté à partir de CityEngine au format FBX, à l’aide de la fonctionnalité de combinaison par matériaux. Le modèle est ensuite importé dans Maya pour mise au point (voir image).
CityEngine a été utilisé pour générer entièrement le niveau de jeu et pour distribuer tous les éléments. La destruction paramétrique des bâtiments a également été implémenté à l'aide des règles CGA enregistrées dans CityEngine. Pour terminer, le niveau de jeu final a été exporté à partir de Maya pour être utilisé sur le moteur 3D Ogre.


Informations de production
- Logiciels utilisés : CityEngine, Maya, Photoshop
- Durée totale de la production procédurale : 200 heures-hommes
- Durée de la génération procédurale de la zone entière dans CityEngine : env. 25 secondes
- Superficie de la zone générée procéduralement : 10 km2
- Nombre total de polygones finalisés lors de la production procédurale : 300 000
- Nombre de bâtiments et d'entités individuelles sur le terrain : env. 50
Crédits
Modélisation procédurale : Christian Holzer
Équipe : Stefan Grassberger, Ivo Brunnbauer, Lukas Meindl, Nico Harather et Christian Holzer
Projet : mémoire de licence, "Dark Realm Game", FH Hagenberg