Procedural Generation Pipeline with Tang Dynasty Town

Houdini/Unreal Engine 5/Substance Designer

This project is to design and build a procedural generation pipeline with authentic historical data. As one of the main enabling technologies for open-world game creation, this pipeline should provide complete and reusable solutions for large-scale cityscape development and world design, ultimately not only for Tang Dynasty but also for other time periods and cultural themes as needed.

unnamed (6)
unnamed (7)

Screenshots

Pipeline Summary

图片1.png
图片2.png

Roof Iteration in Houdini

While the first problem we encountered was the performance issue: as you can see the the complicated  version of the roof itself already has a lot of primitives and points. It might not be problematic if there was only one building; however, once we have hundreds of them in the map. It takes such a long time to compile since it has to go through so many nodes, and also the users have to wait so long to adjust any of the parameters involving the roof. In our last video, it looks ok, but actually we speed up the video a lot. The actual waiting time was much longer than that.

unnamed.png
unnamed (2).png
unnamed (1).png

Here we decides to have our solution to make the third version of the roof: which is simplify the roof model without causing it loose too much details. We decides to remove most of the Boolean nodes and the details tiles which costs large amount of points, and we decide to represent these details using Substance Designer, and then we use the auto uv in Houdini so that the textures follows the model every time it changes dimensions. With this method, fortunately, our number of points decreases by more than 100% percent and after half, we will continue making more textures on the rest part of the art assets.

References Settings and Node Overview

图片6.png
图片7.png
图片4.png

PCG Tool: Create White Block and Replace with Assets

After doing some city layout research, Inspired by Mondrian art, we tried to generate a city layout with a subdivision algorithm. We can use the subdivision blocks generator to parameterize the look of the grid and add constraints to control the minimized size, width, and height of divided blocks. Based on historical research, the basic unit of a tang city is called a ward. A standard ward contains 16 blocks and each block is composed of different building clusters. So we implemented version 2 with grid filling algorithm to achieve the historical look of a ward. The ward generator defines what a ward looks like. The user can parametrize attributes such as the scale, social status, and functions of each block.

unnamed (8).png
unnamed.jpg
unnamed (6).png

Roads and Walls Tools

图片3.png