- 6.5 hours on-demand video
- 6 articles
- 51 downloadable resources
- Full lifetime access
- Access on mobile and TV
- Certificate of Completion
Get your team access to Udemy's top 3,000+ courses anytime, anywhere.Try Udemy for Business
- Build a cube-based geometric world like that generated in Minecraft.
Navigate and manipulate discrete values in 3d space.
Build and skin meshes from scratch using C#.
- Save and Retrieve Serialised Data.
- Build and manage a voxel data structure.
This lecture gives a general overview of the course and how it will be taught.
Voxels are data points in three-dimensional arrays. Contrary to popular belief a voxel game world need not be blocky. This lecture explains what a voxel really is.
It might seem like a good idea to build a world like Minecraft with cubes. But an examination of the performance of rendering such a world proves otherwise. This lecture takes a look at the issue.
Being able to change the texture that's on a quad really makes the environment start to look like a Minecraft world even if it is only one block. In this lecture we will extend the code to add in block type selection and pick the appropriate texture to display on the quad from a texture atlas using UV mapping.
Generating a realistic terrain requires a degree of predictable and smooth randomness. This can't be accomplished with a random number generator. Instead we must look for another solution in the theory of noise. In this lecture we will examine Perlin Noise and how it can be utilised in procedural content generation.
Now that we've got the hang of building chunks with a set terrain height and layers of different blocks, in this lecture we will start building caves and adding other probablistic minerals using three dimensional Perlin Noise.
In moving the player around the world we need to consider what chunks should and should not appear. In this lecture we will look at a means of producing chunks around the player and determining which new chunks should be built while discussing how chunks can be marked for removal.
As the radius of the world increases so too will the possible number of threads run by the method generating the chunks. In this lecture we will add a thread queuing system to reduce the possibility of program crashes and allow for the safe use of larger radii.
Water of course moves and when you add a block of water to the terrain you would like to see a simulation of the effects of gravity on it. In Minecraft water comes from a water spawn block. In this lecture you will learn how to add such a block that produces a quantity of water and spreads it over the environment.
Some types of blocks react differently to static and flowing blocks, for example, sand. In this case the block might just be one that falls if nothing is beneath it. This is a similar dynamic to flowing, however more blocks of the same type are not produced. It's just a single block moving through the y axis of a chunk.
All you've already learned for building the world lends itself well to creating different biomes. By applying different surface blocks and trees to differing fBM probabilities and world height values you'll be able to create a vast array of different landscapes from deserts to tundra. This lecture gives you some pointers on how to achieve this.
- You should be familiar with C# and the Unity Game Development Engine.
- It would be useful if you have played Minecraft but its not necessary.
Did you know there is not one single cube used in Minecraft? Have you ever looked at Minecraft and wondered, "how did they build it?". And a great thing to ponder it is. If you haven't and think that programming a whole bunch of cubes is child's play, then think again. On the surface Minecraft looks as though it would be a simple world to recreate in Unity. Start placing cubes around a scene and see how far you get before the frame-rate grinds to a mind-numbing halt. So wonder and fret no longer as this course reveals the secrets of programming and rendering procedurally generated voxel worlds, like Minecraft, with C# in Unity.
In this course, Penny teaches all the invaluable skills you will require to build a blocky world from scratch using her internationally acclaimed teaching style and knowledge from over 25 years working with games and graphics. But hold on tight as you'll be taken on a journey across the computer graphics realm as it is taught to post-graduate university students. Through detailed descriptions and hands-on workshops examining all you need to know about 3d data structures, building meshes from scratch, using noise algorithms to generate terrain features and caves, and texturing blocks you will be programming your own world in no time.
Learn how to program and work with:
- custom built polygons and meshes;
- vertices and normals;
- UV mapping;
- texture atlases;
- Perlin noise;
- infinite terrain generation; and,
- loading and saving data.
Contents and Overview
After getting a little experience in why it's such a bad idea to build a Minecraft type world using cubes, you'll start following along with Penny, exercise after exercise, toward the end of building your very own and unique blocky terrain.
You'll begin by dissecting a cube and examining its fundamental parts from vertices to normals to texture mapping. Armed with this knowledge you will then begin writing code that redefines the cube and makes it far more efficient to draw as a terrain component. You'll then bring these pseudo-cubes together to form chunks to optimise rendering performance. Once you've worked on creating a solid world of chunks you will then learn about smooth noise and a little fractal geometry will be introduced to assist you in carving out realistic landscape features including caves.
With terra-firma to stand on, you'll next add a player character and start exploring the new world. But so you don't fall off you will also start working on the logic to build the world around you in real time out to infinite boundaries.
And when you are done with exploring it will be time to start digging and building. It's in this part that you will learn how to add and remove blocks at the click of a button to further mould the terrain to your liking.
To round it off, you'll cover the dynamics of adding flowing water, falling sand and start working on the logic for creating your very own biomes.
What students are saying about this course:
- Hi! I wanted to thank you and compliment you for the Minecraft Unity course. I've been a (web) programmer for 20 years. After so long creating somewhat boring work I'm excited to make games. My interest is in creating procedurally generated, complex worlds. Learning about Minecraft, therefore, seemed like a good idea.
- Love the amount of detail Penny goes into! Not too little, not too much, she manages to hit the sweet spot that gets you a deep understanding of what's going on, coupled with the ability to jump in with confidence and start doing things yourself. VERY pleased with my course purchase, and look forward to more by her!
- Clear, concise, introduction and extension of concepts required to efficiently generate Minecraft style worlds, including Perlin noise and fractal Brownian motion.
- Anyone interested in how to put together a blocky voxel world like Minecraft.
- Anyone interested in building and skinning geometry in a virtual world through code.
- Anyone who loves Minecraft and is interested in the complexities that go on behind the scenes.
- Anyone interested in expanding their Unity technical skills with respect to manipulating geometry with code.
- Anyone interested in optimising the rendering process for large scale data and multiple textures.