Procedural generation in games and virtual environments lends itself to the algorithmic generation of infinitely unique computer-created experiences. Its potential lies in its ability to automatically develop digital content on demand, reducing the amount of work required by programmers and modellers. However, a lot of preparation is necessary for such a strategy to be implemented. A thorough understanding of the role that both sides of the game development coin (technical/logic and art/design) plays in procedural generation is key for a successful implementation. In this course, Penny and Mike bring a unique experience to both programmers and artists alike and combine their skills and many years of industry and academic knowledge to bring you a holistic learning experience, in which you will find content and invaluable mastery.
Procedural generation in games and virtual environments lends itself to the algorithmic generation of infinitely unique computer-created experiences. Its potential lies in its ability to automatically develop digital content on demand, reducing the amount of work required by programmers and modellers. However, a lot of preparation is necessary for such a strategy to be implemented. A thorough understanding of the role that both sides of the game development coin (technical/logic and art/design) plays in procedural generation is key for a successful implementation. In this course, Penny and Mike bring a unique experience to both programmers and artists alike and combine their skills and many years of industry and academic knowledge to bring you a holistic learning experience, in which you will find content and invaluable mastery.
This course uses Unity 2020.3 and Blender 3.0 and is Windows and Mac compatible.
The content has been tested and works with Unity 6.
The content is presented in two parts which can be studied in any order, independently or together.
In Part A, Mike will be taking you through a series of stages, starting with blocking out your city with simple placeholders, a critical design step often overlooked. Taking those placeholders we add a little extra detail to start bringing the city to life and map out the road system properly. Once that warm-up is out of the way, Mike will start focusing on thinking in a more modular manner by looking at the fundamental building blocks required to make our assets. Then finally, we will move from placing the pieces manually to placing them automatically, first with Blender's Modifier Stack and finally completely procedurally using Blender 3.0's new Geometry Node system.
In Part B, Penny will begin by taking you through a variety of workshops using the Unity game development engine, to teaching you how to manipulate and position road models on a plane to create a city street map. Following this, algorithms will be worked through to create data structures to store city information and populate the city with residential, commercial, and industrial buildings. The commonly used algorithms for Voronoi Diagrams and Perlin Noise will be employed to calculate city zones and city population densities.
By the end of this course, you will have a professional toolkit of programming and modelling skills that will give you the advantage over others who are "just programmers" or "just modellers", including knowledge of multiple procedural techniques that can be employed in both Unity and Blender. Understanding game development that tightly integrates both design and logic from this standpoint is critical to making you a valuable commodity in the job market or preparing you for running an indie operation.
What others are saying about Penny's courses:
I do like Penny de Byl's courses and way of teaching, they are much more specific than your average "master Unity" kind of courses and usually, you don't learn just the engine but also how things work behind the scenes. She's really amazing.
I've been coding for about 3 years and since purchasing Penny's "Animation", and "Procedural Terrain" courses, the excitement and fun have returned once again to my programming.
Penny and her team know their stuff and are just amazing in explaining everything, breaking it down. Most importantly she challenges you to do stuff on your own rather than just "spoon-feeding" you everything. Then she comes back and shows you one way of doing it. Just an amazing course.
What others are saying about Mike's courses:
I've used Blender for a number of years, but I'm a total novice next to Mikey and I've learned so very much from him here.
Mikey is an amazing teacher, I can't praise this course highly enough. Worth every penny.
Mikey is a talented, thorough, and clear instructor, and he knows how to make the student think 'for themselves', which is such a great experience.
This lecture contains a welcome message from the instructor.
H3D has a bustling online student community. Here's how to get involved.
How to contact us
Description: Important Reading on Common Issues students have and how to ask for help.
In this video students will learn how to setup the AI Navigation package for the versions of Unity that it is not automatically included with. This package will be used later in this course.
While this course was developed in a previous version of Unity, we've tested the projects and they work with Unity 6. This video is a guide to help you adjust your learning in this course to use Unity 6.
In this lecture, we outline the content in this section.
In this lecture, we download the version of Blender we are going to need to complete the course.
In this lecture, Mike goes over his settings in Blender so you can follow along and understand the changes that have been made. Some might be useful for you as well.
In this lecture, we discuss why placeholders are important and why we start with them.
In this lecture, we discuss our scaling options in this project and how it impacts our modelling in Blender.
In this lecture, we plan out the pieces/buildings that we want in our city.
In this lecture, Mike shows his script that comically does work the first time! However, using it will save a tonne of time when exporting your models.
In this lecture, we look at how to export our models as an FBX file manually.
In this lecture, we create a more detailed road piece so it is no longer a simple plane.
In this lecture, students are challenged to create the rest of their road pieces.
In this lecture, we focus of creating placeholders that have a more detailed silhouette.
In this lecture, Mike creates some more outline buildings so we have a small collection of similar buildings.
In this lecture, we look at origins, they are important and we will look at them again later as well.
In this lecture, we look at how normals affect your model and how if they are orientated the wrong way you can end up with a series of issues.
Brilliant well done for completing this section. Looking forward to seeing your work, and we'll see you in the next section.
In this lecture, Mike introduces the section and the topics we'll be looking at.
In this lecture, we adapt our road pieces and height the benefits of working at a lower detail initially, whilst you are designing your pieces.
In this lecture, we will look at two options that when combined allow you to have a low poly mesh with sharp edges and smooth curves as well.
In this lecture, we start adding areas of detail on to our buildings, by first blocking out where the detail will go.
In this lecture, we look at the other options you have with extruding, which are super useful!
In this lecture, we have a look at a little know feature - being able to create a custom transforms.
In this lecture, we dive into using the mesh bevel tool and show an extra use for it when popping together your models
In this lecture, we take a look at our organisation. Keeping on top of your organisation, even if it is just naming objects in your scene will help you massively later on. Storing objects in collections will help with grouping your objects.
In this lecture, we use the often misunderstood boolean modifier to create cuts into our model whilst being aware of its potential downsides.
In this lecture, we add more detail to our models to a point where the model looks more like its final version.
Excellent getting to the end of this section- I am really looking forward to seeing what you have created so far. You should have a really nice collection of buildings that you can use in your city.
Welcome to modular thinking! In this lecture, we overview what is coming up in this section.
In this lecture, we take a look at existing assets and start to use them and break them down into their potential modular pieces.
In this lecture, we reinforce the importance of the origin of an object. It is really important to get this right now as it is how we will be placing our pieces.
In this lecture, we look at how we can use a piece in more than way, whilst potentially limiting our building options, we also have fewer pieces to manage.
In this lecture, we break our new pieces down even further to give us more control over how we arrange our pieces and how we get the positive side effect of more optimal models.
In this lecture, we look at ways of ensuring better transitions between our individual pieces.
In this lecture, we bring our new models back to the city and check that they work visually when scaled to match.
In this lecture, we look at methods for resetting the scale of an object.
In this lecture, we start to add detail to our new placeholder pieces to bring them up to the same level of detail we had at the end of the last section.
In this lecture, we take a moment to export our model, check for errors and fix them. It is a great idea to check you models often by exporting them regulary.
In this lecture, we will use the array modifier to place our objects rather than doing it manually.
In this lecture, we look at how we can control the array modifier using empties.
In this lecture, we put together the parts needed to make a basic apartment block.
In the lecture, we will focus on creating a simple roof so that our apartment is complete with all of its fundamental parts.
In this lecture, we have a basic introduction to have to use a driver.
In this lecture, we will use drivers so we can have parametric control over our model.
In this lecture, we fix the bottom of the model so that it responds to the parameters we are using to adjust the building.
In this lecture, we place the rest of the building detail onto the building and ensure is adjusts correctly when we change the building's parameters.
In this lecture Mike sums up the content taught in this section.
In this lecture, Mike goes through this section's goals and what we are aiming for.
In this lecture, we set up our geometry nodes interface.
In this lecture, we start by adding simple primatives.
In this lecture, you will learn how to translate, rotate and scale geometry.
In this lecture, we use an input node to set and control the parameters of other nodes.
In this lecture, you will learn about setting up control parameters that are outside of your node setup.
In this lecture, you will start to use math nodes to automate multiple nodes based upon a single input.
In this lecture, we look at creating node groups as both a method of organisation and creating a group that does one thing- like a function in programming.
In this lecture, you will learn how to frame nodes for better organisation.
In this lecture you'll learn some node tips prior to your mid-section challenge.
In this lecture, you will be challenged to put your knowledge of geometry nodes together and create a simple wooden toy only using primatives.
In this lecture, you will learn how to append collections into your scene.
In this lecture, you will learn about the new concept of instancing geometry on points.
In this lecture, you will use one of the objects you have made within geometry nodes.
In this lecture, you'll put together 3 more walls to complete a basic structure.
In this lecture, you will use the existing structure as a template to create a ground floor.
In this lecture, you will learn how to use the collection info node with the instance on point node to great effect.
In this lecture, we will finish our building by adding on a roof!
In this lecture, you will learn how to assign a material to geometry created in geometry nodes.
In this lecture, you will learn the steps you need to take to export your model when using geometry nodes.
In this lecture, we finish off this section and Part A of the course! I hope you have enjoyed the course so far, and reach out if you have any questions.
In this lecture students will learn how to create a simple city road layout in the form of a grid.
In this lecture students will learn how to add straight pieces of road into the grid system to push the crossroads further apart.
In this lecture students will learn how to place other modelled road pieces into the grid and examine the shortfalls of the current technique.
In this lecture students will learn how to program a crawler that will map out a city based on a grid.
In this lecture students will learn and alternative way to have a crawler move around a grid which implements rotation.
In this lecture students will learn how to add corner road pieces to the crawled out city plan.
In this lecture students will learn how to add straight pieces of road to the crawler grid.
In this lecture students will learn how to eliminate duplicate road pieces from the city grid.
In this lecture students will learn how to begin writing the code to replace intersection types with single pieces such as crossroads and t-junctions.
In this lecture students will continue working out where intersection pieces should be replaced with crossroads.
In this lecture students will learn how to complete adding the code for creating T-junctions.
In this lecture students will complete replacing all multi piece intersections with single pieces to complete their city grids.
In this lecture students will learn how to add the necessary colliders onto the roads to assist in house placement on the grid.
In this lecture students will learn how to place houses in the city that avoid the roads.
In this lecture students will learn how to place houses by roads.
In this lecture students will learn how to turn a house to face a road.
In this lecture students will learn how to add more buildings by the roadsides and also push the buildings back from the road.
In this lecture student will learn how to construct an internal city map to keep track of the tiles at each grid location.
In this lecture students will discover how to fix the city mapping to pickup road pieces that are missed at the beginning and end of the crawl.
In this lecture students will learn how to use mesh combining tools and GPU instancing to optimise rendering.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.