This repository contains my journey through various tutorials learning Unreal Engine 5.
I come from a programming background, with Unity experience starting around 2011. Initially, my experience was working on hobby games with early Unity versions. I never gained much 3D modeling, animation or texturing experience, I mostly worked with static meshes. I have some, but limited experience with shader programming or shader-graph-like tools.
I have however been professionally using the Unity engine and programming in C# for it extensively since 2012, building a mobile non-game application. A typical AAA-style game programmer would primarily focus on animation logic, synchronous multiplayer, real-time performance, or AI behaviours. My experience of these topics is at a hobbyist level. My professional experience was mostly gained on cross-platform stability, async backend interaction, general software architecture and 2D UI.
Depending on how similar my background is to yours, you may find the structure of my "tutorial roadmap" more or less useful.
-
Each tutorial project is based on some tutorial content from the internet, listed below. I try to follow the tutorial pretty closely, occasionally exchanging the assets or level basis for my own.
-
If I am learning a lot of new things and doing them while constantly referencing the tutorial, I like to try and practice it one more time, by branching off an early commit and trying to accomplish everything I learned without referencing the source.
-
If I want to explore Unreal's experience with some new module or topic a tutorial exposed me to, I may work on some expansions to the tutorial content (see below).
-
After I have wrapped up a project, I add my learnings, questions, answers, expansions, and inferences in each project's readme, before merging it all back to
master
. Special annotations in my notes:- [xyz ? abc] means i am not sure why/how/what xyz, but abc is my guess
- [xyz !! abc] means abc is a discovery that answers xyz
I have three classes of expansions I try to do, that won't be covered by the tutorials listed below.
- Simple improvements to the game feel, styling, or algorithmic structure of what the tutorial covered, usually within Blueprint (BP)
- Migration of complex and unreadable BP graphs into C++ functions, and then refactoring the BP to invoke the C++. This improves my understanding of the engine code API, and intuition for the relationship between C++ & BP.
- Integration of newly learned concepts into a prior more complex project, to see how to navigate building functionality around an existing codebase.
The README.md
file within each project folder has most of my learnings accumulated in context of the goals and steps of that tutorial or project.
I also keep a log of general purpose tips and where I learned them from in the UETips.md
file.
I often use AI assisted coding as a shortcut to parsing UE documentation and browsing stack overflow, I found myself using in cppprompts.md
within each project folder (if applicable). Despite how wrought AI assistance is in every creative pursuit, it has truly made learning a new software framework exponentially simpler.
These are tutorials I have previewed before starting to work on them. My goal is ordering these is to build out my understanding in the way that let's me get started working on my own game as soon as possible, roughly in this order:
- Understand the shortest path to accomplishing the basics: UI, controls, asset pipeline and tying them together in a simple but specific game (constraints simplify the learning space)
- Understand how to implement certain core game functionality with game-agnostic principles (save/load, pause menu, modify controls)
- Understand implementations of common game dev paradigms (object pools, broadcasters, etc)
- NuMakesGames' Pause Menu part 1.
- Part 2, customizing keybinds, will be returned to, as it was made using legacy Input system, not new Enhanced Input.
- 🕜 2-3h
- abandoned partway -- goes over a few too many features
- Epic's official "first game" tutorial
- RGBGuy's Asteroids playlist.
- 🕜 2-3h x 4
- a 2D pause UI
- save/load functionality
- close full game UX flow*
- improve gameplay feedback*
- bullets and asteroids from an objectpool
- [still evaluating a good guide]
- [still looking for a good tutorial]