Procedural generation in game development lends itself to the algorithmic generation of unique computer-created environments and gameplay experiences. The power is in its ability to automatically develop game content on the fly, reducing the amount of work required by the game designer. However, a lot of preparation by the programmers and artists is necessary for such a strategy to be implemented. A thorough understanding of the role that both sides of the game development coin (of technical/logic and art/design) play 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 game development lends itself to the algorithmic generation of unique computer-created environments and gameplay experiences. The power is in its ability to automatically develop game content on the fly, reducing the amount of work required by the game designer. However, a lot of preparation by the programmers and artists is necessary for such a strategy to be implemented. A thorough understanding of the role that both sides of the game development coin (of technical/logic and art/design) play 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.1 and Blender 2.9 and is Windows and Mac compatible.
The projects in the course have been tested in and work with Unity 6.
Mike will start by teaching you how to model six separate modular meshes that can be put together perfectly to generate an entire maze. He will take you from there into building pieces for a dungeon, where each module is created with a smaller subset of models that can be mixed and matched to speed up your design workflow and production of game assets. You'll create a set of sewer pieces with pipework that snaps together to build a maze and later create the brickwork-textured elements to define a dungeon. Each model will be readied for use in Unity once completed.
Penny will lead you through numerous exercises in the Unity game engine that examine the logic that will snap modular model pieces together using the magic of geometry and mathematics to form an infinite array of maze and dungeon possibilities, worthy of any avid 3D game player. She will take the pieces you create with Mike in Blender and work through a variety of maze generation algorithms to show you the possibilities, from very random environments to perfect mazes that traverse an entire map. She will also work with you to create dungeons with a variety of rooms and interconnecting corridors before exploring multilevel maps, using the A* algorithm for pathfinding and selecting traversable subsets of a complete maze or dungeon.
By the end of this course, you will have a multidisciplinary toolkit of skills that will give you the advantage over others who are "just programmers" or "just artists". 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 is an introduction to Penny's part of the course.
This is an introduction to Mike's part of the course.
This article provides links to free and short tutorials to give you an overview of Unity and Blender if you need a refresher course or are new to the software.
H3D has a bustling online student community. Here's how to get involved.
How to contact us
Here's how to get the best experience from studying this course and answers to some popular student questions.
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 students will generate a series of basic cubes that will act as the foundation of a maze.
In this lecture we will create an underlying data structure to hold information about the organisation of the maze before any walls are constructed.
In this lecture students will learn how to write a maze crawling algorithm that will ensure there is a continuous path from one end to the other.
In this video students will be given a number of challenges to help hone their crawler algorithm writing skills.
In this lecture students will learn how to ensure there is a border around the entire maze as well as rescale and ready the maze for walking through with a character.
In this lecture students will add a first person character into their environment to explore their maze from ground level.
In this lecture students will create helper methods that will assist the maze generation algorithms.
In this lecture students will be introduced to the Randomised Prims Algorithm that creates a perfect maze within the entire space supplied to it.
In this lecture students will learn about Wilson's maze generation algorithm and start developing the code for it.
In this lecture students will learn how to determine if a random crawler has found part of the maze.
In this lecture students will discover how to better the algorithm to add multiple walkers and control the starting positions.
In this video we troubleshoot the code to determine why rooms are still being created and finalise the Wilson's algorithm.
In this lectures students will learn about the use of recursion for generating maze cells.
In this lecture students will finish the recursive maze generation algorithm by randomising the directions chosen for carving the corridors.
In this lecture Mike introduces the section ahead, giving an overview of what is coming up next.
In this lecture, we discuss what modular means when it comes to putting together pieces using algorithms.
In this lecture, we ditch the computer for a moment and quickly work out the basic minimum pieces we are going to need to make a modular system.
In this lecture, we get Blender setup for everything moving forward in the course.
In this lecture, we discuss the origin of an object and how it affects many things, including the mirror modifier.
In this lecture, we see that Blender is great at hiding incorrect normals, this, however, is a big issue when exporting models so we look at way of exposing incorrect normals.
In this lecture, we have the challenge to make the final 3 pieces of our modular set.
In this lecture, we export out models from Blender into Unity and look at the multiple processed to do this.
In this lecture, we export again, but this time using a script demonstrating the power of using scripting in Blender to automate tasks.
In this lecture, we go and grab some reference material- really important when making any assets.
In this lecture, we look at how to balance a scene so that it is readable and has an overall balance of detail.
In this lecture, we add some medium-level detail to our scene.
In this lecture, we look at a common shading issue and add materials to our models.
In this lecture, we look at how materials come across into Unity and what to watch out for.
In this lecture, we step back and have a look at the overall pipeline now we have some experience with the process.
In this lecture, we add more details to our environment, with an eye on more assets taking additional time.
In this lecture, we add some light to our scene.
In this lecture, Mike wraps up the section and encourages you to share your mazes.
In this lecture students will learn how to prepare the FBX models they created in Blender and ready them for use in Unity and the maze generator.
In this lecture students will learn how to programmatically add a model to the maze in the correct location.
In this lecture students will learn how to add wildcards into their pattern matching algorithm for positioning maze pieces.
In this lecture students will review the patterns required for matching each model to the required area on the maze as well as look at rotating the pieces correctly.
In this lecture students will be challenged to find a way to place the player character inside the maze. They will also examine how to light the environment by creating a torch for their character.
In this lecture, Mike introduces the next section and overviews what we will be doing.
In this lecture, we look at the difference between the Blender and Unity material systems and why materials don't always come across as expected.
In this lecture, we have a look at the various map types and what they are used for.
In this lecture, we use a HDRI in order to light our scene and models better.
In this lecture, we import an image and apply it to a plane quickly use a built in add-on.
In this lecture, we look at how you would export a model with the texture baked into the file.
In this lecture, we block out the scene we are going to make and make sure everything fits together as expected.
In this lecture, we fix an issue with or scene- it is often more productive to fix issues when they are spotted rather than leaving the issue.
In this lecture, we export out pieces and text them in Unity.
In this lecture, we make a pillar, and place it so we can use it across all of our areas.
In this lecture, we add addition detail to the wall to help separate it from its surroundings.
In this lecture, we continue adding further detail to our scene.
In this lecture, we put all of our pieces together and make sure they flow.
In this lecture, we have a look at what UV mapping is and why we need it.
In this lecture, we unwrap our first model in the course, focusing on an easier open mesh.
In this lecture, we tackle our first closed mesh and mark seams allow up to effectively flatten the mesh.
In this lecture, we look at the benefits and drawbacks of mirroring a UV map and pinning vertices of a UV map.
In this lecture, you are challenged to unwrap the rest of our models.
In this lecture, we look at techniques to make a vaulted roof, which at first glance is a reasonably complex structure.
In this lecture, we export our updated models and test them thoroughly, making notes of fixes required and then applying those fixes.
In this lecture, we need to see in our world so we create a lamp that suits the environment.
In this lecture, we notice that in order to make larger rooms we need some additional roof/ceiling pieces for that to work.
In this lecture, we finish off the ceiling pieces through a challenge.
In this lecture, we finalise the work we have done and make sure each piece is named correctly, in the right collect and ready for export.
In this lecture, Mike wraps up the section and encourages you to show off your version of the dungeon.
In this lecture students will practice changing the module maze pieces for a different set and have to deal with scaling, rotation and lighting issues.
In this lecture students will learn how to create rooms that will turn their maze into a dungeon.
In this lecture students will learn how to orient and place individual room pieces of floors, walls, ceilings and doors to build the representation of a space larger than a single spaced corridor.
In this lecture students will examine the patterns required to place floor and ceiling pieces into large room areas within the map.
In this lecture students will learn how to place single walls into rooms to match up with floor and ceiling pieces.
In this lecture, we add some extra pieces that we need when making our world.
In this lecture students will bring newly created models into Unity to act as mechanisms to hide any breaks in the map.
In this lecture students will take a closer look at the locations of where pillars should appear.
In this lecture students will be challenged to place the other pillars into the dungeon to complete the hiding of outer corners.
In this lecture students will work to detect duplicate pillars and ensure they aren't added to the dungeon.
In this lecture students will be challenged to place doorways between rooms and corridors.
In this lecture students will learn about Z-Fighting and what causes it. They will also examine a couple of ways to fix it.
In this lecture students will learn how to create a matrix to store the piece types that have been placed into a maze or dungeon.
In this lecture students will use the labelled piece types matrix to place doorway arches in the correct place.
In this lecture students will quickly refactor the maze class to allow for the storing of the modular piece rotations.
In this lecture, we create a connection between multiple levels with a simple ladder descent.
In this lecture, you are challenged to create another connection between levels.
In this lecture, we block out a stairwell for our dungeon pieces.
In this lecture, you are challenged to finish off the stairwell in a slightly longer than normal video.
In this lecture students will learn how to create equidistant maze levels that can later be linked by a manhole model with a ladder.
In this lecture students will learn how to manage the multiple maze levels by adding a maze manager and the manhole pieces will be readied for use.
In this lecture students will learn how to add the manhole models into the multilevel mazes to connect them.
In this lecture students will learn how to extend the matching of manhole pieces to work with all levels of a multilevel maze.
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.