Procedural Generation
For the IMTNS project I teamed up with 8 other people to create aa RPG, inspired by the Yakuza series. My task was mainly the generation of the city of Bangkok, in which the game was set.
The goal was a designer-friendly workflow that could be easily used to generate cities quickly.
The tools have been developed for Unity 6.0
Road Generation
The road generation is based on splines, allowing the creation of custom roads in any form. Sidewalks are extruded automatically and dynamically adjust to neighboring roads. Intersections connect different road segments together, using the triangle fan method.
Building Generation
First a lot shape is created by the user, forming a concave polygon. The building is generated upwards, with each story sometimes shrinking along an edge.
The building is defined by multiple Scriptable Objects that can be reused for multiple buildings:
- The Facade semantics controls floor heights, window ratios, and store front settings
- The building semantics define materials and prefabs.
- The building settings controls per-building story count, size, and shrinking
After building generation, the decorative generator attaches decoratives to the building. Every decorative prefab defines simple rules such as attachment type, offset, and bounding box, which the decorative generator uses to decide where each decorative is placed.
Final version
The procedural generation tool is currently still in active development. After 8 weeks of development, this is the current state: