The image above showcases an example of a procedurally generated world


Hi everyone! I’m here to showcase the work I’ve spent the last ten weeks working on. With the collaboration of my classmates Tristan Schonfeldt-Aultman and Alexander Bianca, collectively, we have created a project that has the combined knowledge of everything that we’ve learned while participating in the semester-long Game AI course taught by ALEXANDRE NOGUEIRA over at Champlain College. This class sparked my interest and desire to get as much out of the topics within the course. When the time came to begin the final project. We chose to recreate Minecraft in Unity, and I undertook the task of recreating its procedural generation system. Tristan and Alex were focusing on other topics like developing advanced systems that could integrate pathfinding into the system I created, so stick with me as I walk you through the last ten weeks of development.

For those unfamiliar with procedural generation in the game industry, it is a technique used to generate an environment based on the parameters provided. Playing Minecraft, and starting a new save is a familiar experience, every new playthrough is a new experience. Our project acts similarly to that of Minecraft. They rely on Perlin noise, whether that be 2D or 3D, as well as simplex noise based on the unofficial Minecraft wiki. Where they rely on eight layers of noise for the base Overworld terrain generation, excluding systems like cave or tree generation. In terms of our project, we relied solely on Perlin noise, utilizing the most out of the layers to allow more control at the cost of dynamic and ease of use. Our overall system was based on and learned from the process of using Section 1 and Section 2 of Sunny Valley Studios’ Voxel World videos. Learning how Minecraft works was greatly aided by following the tutorials, especially considering the significant changes in its systems over the game’s 15-year lifespan. Although noise wasn’t central to the overall scope of the project, procedural generation depended on it. Without the core system, the other systems/design mechanics like voxels and chunk generation in the surrounding world would not function.

Systems like procedural generation are very frequently used in roguelikes, open world, adventure games, etc. A system like this could fit in any of the above categories, but in theory, a procedural generation system can be seen in a vast multitude of games, it fully depends on the lens that you have on the game and what you’re looking for. We’ve seen other games like No Man’s Sky, Spelunky, or Don’t Starve are all examples of games that use procedural generation in a multitude of ways, that provide different experiences with the same concept of the technique. While the project itself is solely developed for Windows devices, that doesn’t mean systems like procedural generation aren’t possible outside of a computer or console. Being wary of varying levels of complexity for procedural generation, not all devices like handheld devices like Nintendo Switches or mobile devices would be able to support a system like Minecraft or No Man’s Sky. Being mindful of the concept and the demographic is essential and should be explored consistently in any system. Not all gaming systems work the same, so being able to supply the general mass with a viable product is essential to any aspect of game development.