
Watch a brief overview that outlines the course content and structure. This introduction explains what the course covers.
Review the free 3D asset package included with this course. The package contains building components, road segments, and decor assets available in both Blend and FBX formats.
Go over the course outline and key learning objectives. This lecture explains the structure of the course and what you will learn in each section.
Learn how to use binary bit values to define tile connections for procedural city generation. Create simple road tiles to help visualize this process.
Learn the differences between arrays and lists in Unity C#, including when to use each data structure when building a fixed-size city grid versus a dynamic collection.
Discover how to represent your city layout using a 2D grid. This lecture explains how to set up the grid with nested loops and visualize grid coordinates in Unity.
Learn to design a custom Tile class to store essential data for each grid cell, such as its world position, transform reference, and a numeric value for road connections.
Explore techniques for scanning and updating neighboring grid cells. This lecture lays the groundwork for the procedural propagation process by showing how to detect and modify adjacent tiles.
Explore common debugging techniques to identify and fix issues in city generation.
Learn how to configure materials for your imported assets. Topics include using External Materials for FBX files and adjusting texture settings for consistency.
Convert your imported assets into Prefabs. This lecture explains how to organize your Prefabs by asset type to ensure efficient reuse in the procedural generation process.
Build complex assemblies by combining individual Prefabs into nested structures, such as road segment tiles that merge roads, building elements, and decor.
Explore techniques for assembling modular buildings and integrating them into the city.
Learn how to use the Unity Package Manager to import and manage dependencies.
Demonstrate a manual city assembly using your modular Prefabs. This exercise shows how the individual pieces integrate to form a cohesive urban layout.
Optimize the generation process by creating all logic first and spawning prefabs only when needed.
After placing initial crossroads randomly, we'll connect all of the intersections with more roads to ensure a fully connected city.
Prevent roads from extending beyond city borders by trimming unnecessary connections.
Eliminate dead-end road networks by adjusting tile connections dynamically.
Simplify and optimize the city generation code using helper methods.
Ensure all roads link properly by adjusting adjacent tiles based on connectivity rules.
Automatically detect and fill large gaps in the city grid to create a more natural layout.
Explore how to introduce visual variety by using multiple Prefab variants for each road or tile type.
Apply height variations based on city zoning rules for a more diverse skyline.
Improve performance by combining meshes and reducing draw calls.
Add decorative elements like streetlights and benches to enhance realism.
Explore your generated city with a first-person walkthrough to experience the results.
Are you ready to master procedural city generation in Unity C#?
This course will teach you how to build grid-based, modular cities using automated road placement, prefab randomization, and height-zoning logic to create realistic urban environments.
You'll start by learning the core programming fundamentals necessary for procedural generation, including understanding arrays and lists, grid mapping, and designing custom classes. Then, you'll dive into creating and preparing prefabs from modular parts, ensuring that your city assets are structured efficiently for procedural placement.
Next, you'll develop a city generation script that automates the process of placing roads, adjusting city borders, and fixing connectivity gaps. You'll also learn how to instantiate prefabs dynamically based on grid data, bringing your procedural city to life.
To add variety and realism, you'll implement randomized prefab variations and runtime randomization techniques to ensure that every generated city looks unique. Finally, you'll integrate height-zoning systems to structure your city in varied heights, making your cities feel more lifelike.
In the final stages, you'll optimize your city for performance by using Mesh Combine techniques, allowing you to drastically reduce draw calls and improve rendering efficiency. This means your procedural cities will not only look great but run smoothly, even in large-scale environments.
By the end of this course, you'll have a fully functional procedural city generator in Unity C#, along with the knowledge and skills to expand and customize it further for your own projects, whether for game development, simulations, or world-building.