I'm really good at Unity 3D, so I have a really good perspective about how it works. For contrast, I'm going to learn the next most popular engine, Unreal Engine. Learning Unreal has the added benefit of allowing me to sell some of my work on the Marketplace. Since I am most definitely working toward making an ocean renderer and a terrain generator, I can take them both a step further and turn them into full-on toolkits for Unreal Engine.
Below is the roadmap I'm planning to take in order to learn it:
- Blueprints
- Quick Start
- Required Setup
- Construct Launch Pad
- Convert Actor to Class Blueprint
- Create Starting Point
- Test Overlapping Actor
- Launch Character
- Assignments
- Basics
- Navigating the Graph
- Placing Nodes
- Connecting Nodes
- Creating Functions
- Setting and Getting Actor References
- Working with Arrays
- Collapsing Graphs
- Making Macros
- Debugging
- Blueprint Communication Project
- Sample Project Setup
- Event Dispatchers/Casting to Blueprints
- Binding Events on Spawn
- Communicating with HUDs
- Communicating with Multiple Blueprints
- Assignments
- More Advanced
- How to Set Up Input on an Actor in Blueprints
- How to Add Components in Blueprints
- How to Set Up Character Movement in Blueprints
- Character Setup
- Input and Game Mode
- Finishing Character Setup
- Creating Blend Spaces
- Animation Blueprint - Idle and Walk States
- Animation Blueprint - Crouch States
- Animation Blueprint - Jog State
- Animation Blueprint - Jump State
- Animation Blueprint - Prone State
- How to Find Actors in Blueprints
- How to Possess Pawns in Blueprints
- How to Reference Actors in Blueprints
- How to Set Up a Game Mode in Blueprints
- How to Set Up Inputs in Blueprints
- How to Spawn/Destroy an Actor in Blueprints
- How to use the OnHit Event in Blueprints
- How to use Raycasts in Blueprints
- How to use Timers in Blueprints
- How to use Cameras in Blueprints
- Class Creation
- C++
- Basics
- Quick Start
- Create a new Project
- Create a C++ Class
- Write and compile C++ Code
- Test
- Player Input and Pawns
- Customize a Pawn
- Configure Game Input
- Program and Bind Game Actions
- Assignments
- Game-Controlled Cameras
- Place Cameras In The World
- Control Camera View in C++
- Place A Camera Director In The World
- Assignments
- Variables, Timers and Events
- Creating an Actor that Uses a Timer
- Expose Variables and Functions to the Editor
- Extend and Override C++ with Blueprints
- Assignments
- Player-Controlled Cameras
- Attach a Camera to a Pawn
- Configure Input to Control the Camera
- Write Cod to React to Input
- Assignments
- Components and Collision
- Creating and Attaching Components
- Configuring Input and Creating a Pawn Movement Component
- Coding our Pawn Movement Component's Behavior
- Using our Pawn and Components Together
- Playing In Editor
- Assignments
- More Advanced
- Survival Game Tutorial Series
- Section 1
- Movement
- Animation
- Object Interaction
- Hunger System
- Networking Support
- Section 2
- Flashlight
- Inventory
- Switching Weapons
- Deal Damage
- Death
- Respawn
- Section 3
- AI Zombie
- PawnSensing
- Behavior Tree
- Section 4
- Dynamic Time of Day
- Advanced Player Spawning
- Game Loop
- Section 5
- Game Networking
- Carrying Around Barriers and Bombs
- Shader Development in Unreal
- Flat Shading
- Basic Diffuse
- Per Pixel Diffuse
- Basic Specular
- Per Pixel Specular
- Normal Maps
- Transparency Maps
- Transparency Masks
- Geometry Shaders
- Procedural Generation
- Procedural Mesh Generation
- Marching Cubes
- Marching Squares
- Basic Terrain Deformation
- Metaballs
- SPH Fluids
- Perlin Noise
- Projects
- Procedural Terrain Generation with Marching Cubes
- Ocean Toolkit
- Ocean Wave Simulation
- Wave Particles
- Object Interaction and Buoyancy
- Hybrid Simulation
- Fluid Toolkit
- SPH Simulation
- Eulerian Simulation
- Hybrid Simulation
This should get me up to speed on how Unreal Does Things. We'll see on Friday how good I feel about this, and we'll update and modify as we go along.