The Gabmeister Resources
This page is a collection of links that have helped me throughout my career as a VR, AR, Unreal Engine, and Unity Developer. I’m constantly updating this list, removing old items and adding new ones. I try to remove those that are older than 5 years old. However, there are exceptions which I truly believe contain information that are relevant today. Furthermore, this list is not for beginners. It covers mostly intermediate-advanced topics. I hope that these resources assist you in your journey.
XR
"Unfortunately, no one can be told what the Matrix is. You have to see it for yourself." - Morpheus, The Matrix (1999) -
- Best practices for VR and mobile AR graphics in Unity (2020) by Unity Technologies
- Unreal Engine XR Development Docs
Virtual Reality
- Oculus Documentation for Unreal Engine
- Oculus Documentation for Unity
- OpenVR API GitHub Wiki
- Showdown on Quest Part 1 (2022) by Zac Drake
- VR Optimization and Performance Tips for Unity (2021) by VRwithAndrew
- VR Content Examples for UE 4.24 by DownToCode
- How to improve visual rendering quality in VR (2019) by Ryan O’Shea
- ARKTIKA.1 Strategies for Great Effects in VR (2017) by Nikita Shilkin
Augmented Reality
Programming
"Talk is cheap. Show me the code." - Linus Torvalds, creator of Linux -
Clean Code and Design Patterns
- A Short Summary On Clean Coding Best Practices (2021) by Thilina Ashen Gamage
- Refactoring Guru
- Game Programming Patterns (2014) by Robert Nystrom
- Summary of “Clean Code” by Robert C. Martin
- C³: Common Coding Conventions
Career Advice
- The Hacker Mindset (2019) by Davyd McColl
Unity
"I think the unmissable "skill" is the drive to create. If you have that drive, Unity will give you back thousandfold." - David Helgason, Co-founder of Unity -
C# Programming
- Level up your code with game programming patterns by Thomas Krogh-Jacobsen (2022). Complete PDF version here.
- Game programming patterns in Unity by Erik Nordeus
- Unity Clean Code by Lucas Sampaio Dias
- Unity Architecture for Noobs – Game Structure (2021) by Tarodev
- Three ways to architect your game with ScriptableObjects (2020) by Unity
- How to get a variable from another script in Unity (2020) by John French
- How to Get Variables from Other Scripts in Unity (2020) by Jason Storey
- Game Architecture with Scriptable Objects (2017) byRyan Hipple
- Unity Software Design – Introduction (2016) by Luke Thompson
Optimization
- Performance optimization tips: Physics in Unity (2021) by Unity Technologies
- Optimization tips for maximum performance – Part 1 (2020) by Unity Technologies
- Optimization tips for maximum performance – Part 2 (2020) by Unity Technologies
- Fixing Performance Problems (2020) by Unity Technologies
- Optimizing Graphics in Unity (2018) by Unity Technologies
- Squeezing Unity: Tips for raising performance (2017) by Unity Technologies
- Unity Draw Call Batching: The Ultimate Guide (2020) by Ruben Torres Bonet
- Event Performance: C# vs. UnityEvent (2016) by Jackson Dunstan
- Unity Optimization Tips: Mobile & Desktop (2022) by Makaka Games
- Performance recommendations for Unity (2022) in Microsoft Documentation
Networking / Multiplayer
- Multiplayer Game Architecture in Unity (2020) by Shrine Wars
- High Performance Game Networking in Unity3D + Q&A (2019) by Kyle Olsen and Jason Weimann
Unreal Engine
“Within our lifetimes, we will be able to push out enough computational power to simulate reality.” - Tim Sweeney, CEO of Epic Games -
- Unreal Engine Documentation
- Unreal Engine 5 Style Guide by Michael Allar
- Open Unreal Conventions by Jonas Reich
C++ / Blueprints
- The Gabmeister Unreal Engine C++ Code Reference by The Gabmeister
- Unreal Engine Multiplayer Framework (2022) by Kekdot
- Blueprints vs. C++: How They Fit Together and Why You Should Use Both (2021) by Alex Forsythe
- The Unreal Engine Game Framework: From int main() to BeginPlay (2020) by Alex Forsythe
- Unreal Engine C++ Project Setup, From Scratch (2020) by Alex Forsythe
- Best Practices for Creating and Using Plugins (2019) by Max Preussner
- How the C++ Compiler Works (2017) by The Cherno
- How the C++ Linker Works (2017) by The Cherno
- Unreal Property System – Reflection (2014) by Michael Noland
- Unreal Engine 4 Network Compendium by Cedric “eXi” Neukirchen
GPU / Graphics Profiling and Optimization
- An In-Depth Look at Real-Time Rendering (2019) by Sjoerd de Jong
- Profiling and Optimization in UE4 (2019) by Paulo Souza
- Performance Optimization for Environments (2020) by Matt Oztalay and Jakob Keudel
- UE4 Graphics Profiling Part 1 – Measuring Performance (2017) by Tech Art Aid
- UE4 Graphics Profiling Part 2 – Graphics Pipeline (2017) by Tech Art Aid
- UE4 Graphics Profiling Part 3 – GPU Visualizer (2017) by Tech Art Aid
- UE4 Graphics Profiling Part 3.5 – GPU Visualizer (2017) by Tech Art Aid
- UE4 Graphics Profiling Part 4 – Intel Frame Analyzer (2017) by Tech Art Aid
- How to improve game thread CPU performance in Unreal Engine (2014) by Bob Tellez
Lighting
- Understanding Lightmapping in Unreal Engine in documentation
- Generating Lightmap UVs in documentation
- Modular Asset Lighting Problem
- Unreal Engine 4 Lighting Masterclass Summary (2017) by Tom Looman (talk by Jerome Platteaux)
- Unreal Engine 4 Lighting Academy by 51Daedalus
Networking / Multiplayer
- Unreal Engine Multiplayer Tips and Tricks by WizardCell
- Persistent Data Compendium by WizardCell
- [UE4] The Secret of Multiplayer | Ownership (2021) by Aaron Hunt
- Multiplayer in Unreal Engine: How to Understand Network Replication (2020) by Alex Forsythe
Pixel Streaming
- Pixel Streaming documentation
- Interacting with the Pixel Streaming System
- Pixel Streaming servers and frontend GitHub repo
- Frontend Communication with Unreal Engine Client (2023) by Betide Studio
- Voice Chat with Unreal Engine Client (2023) by Betide Studio
- How to Pixel Stream Unreal Engine 5.2 on AWS Instance (Windows) (2023) by Eagle 3D Streaming
- 4Players ODIN – Voice Chat SDK compatible with pixel streaming
Crash Troubleshooting
- GPU Crash Debugging in Unreal Engine: Tools, Techniques, and Best Practices (2023) by Thijs van Wingerden
- Crashing With Style in Unreal Engine (2022) by Ari Arnbjörnsson
- What do you do when Unreal Editor crashes? (2020) by Alex Forsythe
- Crash Reporting in Unreal Engine. NOTE: Download Editor symbols for debugging if you’re using Unreal Engine from the Epic Launcher. These will allow the Crash Reporter to show you a detailed call stack. Moreover, the Crash Reporter does not show up when you’re using a UE5 Editor Source Build from GitHub. Instead, you need to run Debug Mode in Visual Studio.
Networking / Multiplayer
"People come to The Oasis for all the things they can do, but they stay because of all the things they can be." - Wade Watts, Ready Player One (2018) -
- The Ultimate Guide to Forwarding Ports in Your Router (2021) by Jason Bauer
- Netcode 101 – What You Need To Know (2017) by Battle(non)sense
- Gaffer On Games Articles by Glenn Fiedler
- BaaS + Game Server Comparison Sheet by Imperium42
3D Environment Art
"Art is never finished, only abandoned. " - Leonardo da Vinci -
Polycount Wiki
The Polycount Wiki is “a catalog of information aimed at game development artists; whether professional, student, or hobbyist.” To be honest, this is the only resource you need if you’re starting out as a 3D Game Artist. It covers all the topics. Don’t be fooled by the old-school UI. This is the place where the AAA game artists hang-out. I’ll try and hand-pick a couple of links which are pertinent to 3D environment art:
Environment Art Theory
- Environment art isn’t about ‘making pretty things’…so, what’s it about? (2017) by Jason Hickey
- Color in games: An in-depth look at one of game design’s most useful tools (2015) by Herman Tulleken
- The Aesthetics of Game Art and Game Design (2013) by Chris Solarski
- Applying the Elements of Design and Principles of Design in Level Art (2011) by Jeremy Price
Concept Art
- Concept Fundamentals
- FZD School of Design videos by Feng Zhu
3D Modeling
- Topology
- Subdivision Surface Modeling
- Vertex Normal
- Topology Guides by Johnson Martin
Texturing
- Environment Texturing Tutorials
- Texture Coordinates
- Channel Packing
- Multi-Texture
- Photogrammetry Thread (2014 to present) by littleclaude
Normal Maps
- Normal Map
- Texture Baking
- A Practical Guide on Normal Mapping for Games (2015) by Alexey Oshchepkov a.k.a. Superfranky
- Of Bit Depths, Banding and Normal Maps (2015) by Joe “EarthQuake” Wilson
- Skew you buddy! Making sense of skewed normal map details. (2015) by Joe “EarthQuake” Wilson
- You’re making me hard. Making sense of hard edges, uvs, normal maps and vertex counts (2012) by Joe “EarthQuake” Wilson
- Understanding averaged normals and ray projection/Who put waviness in my normal map? (2011) by Joe “EarthQuake” Wilson
Lighting & Rendering
- Lighting Resources
- An In-Depth Look at Real-Time Rendering (2019) by Sjoerd de Jong
- Unreal Engine 4 Lighting Academy by 51Daedalus
Physically-Based Rendering
- Basic Theory of Physically-Based Rendering by Jeff Russell
- Physically-Based Rendering, And You Can Too! by Joe “EarthQuake” Wilson
- PBR Texture Conversion by Joe “EarthQuake” Wilson
Modular Environments
- Modular Design & Workflow
- Creating Trim Textures 4 Part Free Tutorial – Step by Step (2019) by Tim Simpson
Landscapes & Foliage
- Terrain Modeling and Texturing
- Environment Scupting – Sculpting Tiled Maps
- Foliage Tutorials
- Grass Technique
- Vertex Color
Optimization
- Polygon vs. Triangle vs. Vertex Count
- GPU Performance for Game Artists (2017) by Keith O’Conor
- Polycount vs Vertex count (2013) by Matías Nazareth Goldberg
Technical Studies and Research
- Game Art Tricks by Simon Schreibt
- Graphics Studies Compilation (2020) by Adrian Courrèges
- Interesting Research Thread (2014-2020) by littleclaude
Career Advice
- Freelance
- Game Industry Tips
- 8 Tips for Artists Struggling With Motivation (2018) by Tim Simpson
- 10 Insider Tips for Digital Artists Applying to Game Studios (2018) by Tim Simpson
- WHY Your portfolio needs to be on ArtStation (2018) by Tim Simpson
- The Death of Curiosity (2016) by Joe “EarthQuake” Wilson