
Intro video
What's coming in this section
In this short lecture, we’ll walk through the process of creating a new Unreal Engine 5 project from scratch. You’ll learn how to select the right project template, configure essential settings, and set up your project folder structure to keep everything organized
In this lecture, we’ll create a basic lunar landscape using Unreal Engine’s Landmass plugin and shape it to fit our game’s needs. We’ll also download a free landscape material instance from Fab and apply it to enhance the look of our terrain. By the end of this lecture, you’ll have a solid starting point for your moon environment.
In this lecture, we’ll use Unreal Engine’s Procedural Content Generation (PCG) system to add large rocks to our lunar landscape. Instead of manually placing each rock, we’ll define rules that allow the engine to distribute them dynamically, creating a more natural and varied environment. You’ll learn how to set up a basic PCG graph, control placement rules, and adjust settings to ensure the rocks blend seamlessly with the terrain. By the end of this lecture, you’ll have an understanding of how PCG can automate object placement and improve level design efficiency.
Shortcuts used in this episode:
CTRL + <number> - creates a bookmark in the viewport
<number> - if you have a bookmark, it will move camera to the place where bookmark is set
ALT + LMC - removes the connection between nodes when you click on it
In this lecture, we’ll add small rocks using a separate flow in the same PCG graph. We’ll tweak placement rules to ensure a natural distribution, enhancing the detail of our lunar landscape.
In this lecture, we’ll use PCG to create rock formations by placing a large central rock surrounded by smaller ones. We’ll adjust placement rules to keep them clustered together, making the environment feel more natural and visually interesting.
Rock formation is built from:
Main rock - Rock_Small_3
Small rocks - Rock_Small_1, Rock_Small_2, Rock_Small_3
Shortcuts used in this episode:
CTRL + <number> - creates a bookmark in the viewport
<number> - if you have a bookmark, it will move camera to the place where bookmark is set
ALT + LMC - removes the connection between nodes when you click on it
E - if pressed when node is selected, Enable/Disable the node
In this episode, we’ll set up a post-processing volume to enhance the lunar atmosphere. We’ll adjust bloom, chromatic aberration, and color grading to achieve a more immersive and realistic look.
In this episode, we’ll tweak the colors of our rocks to better match the lunar environment. By adjusting materials, we’ll enhance realism and improve the overall look of the scene.
In this lecture, we’ll add craters to the landscape.
In this episode, we will introduce a special blueprint to automatically remove any rocks when placed. We will add it to every bigger crater to clear it from rocks.
What's coming in this section
In this episode, we’ll learn how to create a large, realistic Earth and place it in the sky using Unreal Engine. We'll start by designing an Earth material, applying it to a large sphere mesh, and fine-tuning its appearance to achieve a natural and immersive look. By the end of this tutorial, you'll have a visually stunning Earth floating in the sky, ready to enhance your Unreal Engine environment.
In this episode, we’ll be adding beautiful stars to our project’s sky, creating a more immersive and dynamic environment.
We’ll walk through the process of setting up the materials and meshes needed to make the stars visible and properly rendered in your scene. By the end of this lecture, you’ll have a stunning sky full of stars that can be customized to suit your game’s needs.
In this episode, we create a lunar time tracker mechanic, which will serve as the foundation for a lunar clock and synchronized Sun rotation.
In this episode, we create a lunar time widget that remains visible on the screen, displaying the in-game time in a lunar format. This will help track time progression in the game.
In this episode, we’ll add the Sun to our scene to complete the lunar sky. This will enhance the lighting and realism of our environment, making it feel more immersive.
In this episode, we’ll set up a system to make the Sun rotate dynamically based on time. Using a timer, we’ll control its position in the sky, affecting how sunlight hits the Moon’s surface. This will create realistic lighting changes throughout the day.
In this episode, we will adjust the night lighting to make the landscape more realistic and create a smooth transition effect for the day/night cycle.
What's coming in this section
In this lecture, we will create a crosshair widget that stays centered on the screen, which will be used for object selection and interaction.
In this lecture, we’ll add object selection functionality. With this in place, any object can be made selectable by simply adding the BPI_Selectable interface and implementing its events. This system also prepares us for adding object interaction in the next step.
In this lecture, we’ll add an interaction mechanism that lets the player perform actions on objects. As an example, we’ll set up a lamp that can be turned on and off. The system is flexible, allowing each object to have its own custom behavior.
In this lecture, we’ll replace our placeholder object with a real lamp mesh downloaded from the FAB marketplace, giving our scene a more realistic look.
What's coming in this section
In this lecture, we’ll set up the PlayerMode system, linking the 'B' key press to display the current mode on the player HUD. You’ll learn how to create Enums, manage PlayerState, and update the UI based on the active mode.
In this lecture, we set up the preview mechanic, allowing you to see exactly where your building will be placed before confirming it. We use a cube as a placeholder for now, with real-time updates as you move in Building Mode.
In this lecture, you'll learn how to set up the placement logic for building objects, continuing to expand our building system step by step.
In this lecture, we focused on validating building placement locations and adding color indicators to our building objects. By the end of the session, our preview object dynamically changes color—turning green when it's placeable.
In this lecture, we replace our placeholder Cube with real building meshes downloaded from the Fab asset store. We construct a full structure with walls, a ceiling, and a floor, and add a light inside to bring the space to life.
In this lecture, we laid the groundwork for our snapping system by creating all the necessary resources and preparing the Cube object with the correct structure and configuration. This sets us up for implementing the snapping logic in the next part.
This lecture covers the full implementation of our snapping system, bringing the setup from the previous part to life in the game.
In this lecture, we implemented logic to automatically hide inner walls between connected cubes during snapping. We modified the PlaceBuilding event to call a custom wall-hiding function when a valid snapping point is found, allowing for clean, seamless connections between adjacent cube structures.
This lecture focuses on refactoring the code to support multiple building types instead of relying on a single hardcoded Cube object. This sets the foundation for adding doors, windows, and other structures in upcoming lectures. It also includes a fix for collision issues on rock assets.
What's coming in this section
This lecture covers how to create a reusable door blueprint that opens and closes automatically based on player proximity.
In this lecture, we create a system that allows players to switch between different building types in real time during building mode. We start by setting up a data table to store our building list, then implement player input to cycle through available structures. Finally, we address a rotation issue with the building previews to ensure everything looks and feels right.
In this lecture, we add the ability to replace walls with doors by adding new snapping colliders, updating placement validation, and hiding existing replacements before spawning new ones. This sets the stage for a flexible wall replacement system.
In this lecture, we extend the current building system by adding a new window structure. You’ll learn how to integrate new objects smoothly and expand your build options with ease.
In this lecture, you learn how to enhance the build preview system by temporarily replacing walls during object placement. This update allows players to see the final look before confirming, hides any existing wall replacements during preview, and ensures everything resets cleanly if placement is canceled—resulting in a smoother, more polished player experience.
In this lecture, we focus on tightening up gameplay by fixing a few small but noticeable issues that improve the player's experience.
What's coming in this section
In this lecture we build a flexible destruction system that lets us target and remove individual objects, wall pieces, or entire cube structures. To help with selection, we display the name of the object we're about to destroy—setting the stage for clearer visual feedback in the next step.
In this lecture you will learn how to highlight objects with a red outline so it’s clear which one’s about to be destroyed. A simple visual tweak that makes a big difference.
In this lecture, we add a few furniture blueprints that players can place inside their buildings—laying the groundwork for the placement system we'll build next.
Learn how to implement a smart furniture placement system with support for surface validation and custom placement rules. Items can be placed on the cube floor or stack on flagged objects, adding flexibility to your building mechanics.
What's coming in this section
Create and organize three core widgets - building selection menu, category section, and menu item. They lay the foundation for an interactive building system.
Refactor your code to make the UI interactive and functional.
Learn how to populate the building selection menu with data, displaying each building section by section through the widgets prepared earlier.
Learn how to click a building icon and instantly start placing that building in the world.
What's coming in this section
Learn how to add collectable surface resources by importing meshes from FAB and setting up resource blueprints, preparing the foundation for resource generation and biome systems.
Build a customizable biome system that controls resource spawning, allowing different resource types, densities, and configurations across the map.
Learn how to make your biome feel more natural by spacing out resources and using weighted probabilities so some resources appear more often than others.
We add a few more biomes with their own unique resources
What's coming in this section
We create a basic harvesting system where you can select a resource, start collecting it, and trigger blueprint events that control the process. This forms the foundation for adding visuals and effects later on.
We make harvesting more dynamic by adding random rotation and scaling down the harvested resource. These simple tweaks bring more life and variation to the harvesting process, making it feel more natural and satisfying.
We add a simple but useful widget that shows the resource name when you point at it. This small detail makes harvesting more intuitive and helps players quickly identify what they’re collecting.
We bring the harvesting system to life with a custom laser beam created in Niagara. Built from core, outer, impact, and burst effects, this visual upgrade makes harvesting look powerful and incredibly satisfying.
We identify and fix several bugs in the harvesting system, ensuring smooth interactions and proper beam behavior. After these tweaks, harvesting feels more reliable and polished.
We make the world feel more alive by adding resource respawning. Collected items now return over time, keeping the environment dynamic and ready for players to interact with again.
Create your own Moon Base survival game in Unreal Engine 5 using Blueprints.
This course is built around a single goal: finishing a real project from start to end. You begin with an empty scene and slowly turn it into a complete, playable survival game while learning how the systems work and connect.
First, you’ll shape the lunar environment. You’ll create the landscape, generate rocks with PCG, add lighting, and set up a day and night cycle with Earth in the sky.
Next, you’ll bring the game to life with survival systems. You’ll build a modular building system with snapping and validation, generate resources with biomes, implement harvesting, create an inventory and crafting system, place furniture, track player stats like health and oxygen, and connect it all with interactive UI.
Everything is done step by step in Blueprints. Each step is explained clearly for beginners. You’ll learn not just features, but how to connect them into a working game system.
By the end of the course, you’ll have:
A complete, playable Moon Base survival game
A clear understanding of how to structure Blueprint systems
Reusable mechanics for your own projects
The confidence to start building games independently
Whether you’re new to Unreal Engine or have tried tutorials before, this course will guide you from an empty level to a fully functional game you built yourself.