My personal game programming bookmarks
- AI
- Career
- Graphics
- Low Level Programming
- Programming Languages
- Math
- Memory Management
- Multithreading
- Networking
- Physics
- Software architecture and design
- Test Automation
- Tools Development
- UI
- Other resources
- Introduction to A* - Red Blob Games
- Implementation of A* - Red Blob Games
- Pathfinding for Tower Defense - Red Blob Games
- Relic's Templatized A* implementation
- Goal Oriented Action Planning: 10 years of AI programming - GDC 2015
- Ellie: Buddy AI in The Last of Us - Game AI Pro 2
- So you want to be a game programmer? Noel Llopis
- How bad is the game industry for new programmers - Quora
- Game Development Salaries
- How to become a game programmer - Fragment Buffer
- Begin a programmer in the games industry - Fragment Buffer
- How to become a Graphics Programmer on the games industry
- How to become an advanced graphics programmer (twitter thread
- Ara's Interview Questions
- Interviewing for your First Job as a Graphics Programmer: a Checklist of Common Interview Questions
- Notes on Robert Martin's Clean Coder
- Render Hell book 1 - Overview
- Render Hell book 2 - Pipeline
- A trip through the Graphics Pipeline
- Understanding modern GPU's part 1 - introduction
- Understanding modern GPU's part 2 - Drivers and Command Ring
- Understanding Modern GPU's part 3 - Command And Setup Logic
- How does a GPU shader core works
- Scheduling the Graphics Pipeline - SIGGRAPH 2011
- Breaking down barriers - part 1
- Breaking down barriers - part 2
- Mobile vs Desktop GPUs - Olivier Franzke
- A look at the PowerVR graphics architecture: Tile-based rendering
- The Mali GPU: An Abstract Machine, Part 1 - Frame Pipelining
- The Mali GPU: An Abstract Machine, Part 2 - Tile-based Rendering
- The Mali GPU: An Abstract Machine, Part 3 - The Midgard Shader Core
- The Mali GPU: An Abstract Machine, Part 4 - The Bifrost Shader Core
- AMD GCN3 ISA Architecture Manual
- Direct3D 12 Programming Guide
- Getting familiar with DX12
- Practical DirectX 12 – Programming Model and Hardware Capabilities - GDC 2016
- Right on Queue: Advanced DirectX 12 Programming - GDC 2016
- D3D12 Shader Live-Reloading Introduction
- A Journey Through DirectX 12 Dynamic Memory Allocations
- Managing Descriptor Heaps in Direct3D12
- Implementing Dynamic Resources with Direct3D12
- Vulkan tutorial
- Vulkan in 30 minutes
- Vulkan Fast Paths - GDC 2016
- Vulkan Multithreading
- Getting explicit: how hard is vulkan really? GDC 2018
- The book of Shaders
- A gentle introduction to shaders in Unity3D
- Shaders, a short story
- Ray Marching and Signed Distance Functions
- Advances in Real-Time Rendering in 3D Graphics and Games
- A quick overview of MSAA
- Physically Based Shading in Theory and Practice - SIGGRAPH 2016
- Real-Time Many-Light Management and Shadows with Clustered Shading
- Order your draw calls around!
- GTA V Graphics Study - Adrian Courreges
- DOOM 2016 Graphics Study - Adrian Courreges
- Metal Gear Solid V - Graphics Study
- How Unreal renders a frame
- The Rendering of Middle Earth Shadow of Mordor
- Software optimization resources
- The microarchitecture of Intel, AMD and VIA CPUs
- Optimizing subroutines in assembly language: An optimization guide for x86 platforms
- Optimizing software in C++
- SSE: mind the gap!
- SIMD at Insomniac Games
- SIMD basics - Handmade Hero
- Converting Math Operations to SIMD - Handmade Hero
- Debugging Tips and Tricks for C++ in Visual Studio
- Practical Guide to bare metal C++
- Simple Live C++ Reloading in Visual Studio
- Building a better jump - Math for Game Programmers
- Bezier Curves
- Essential Math for Game Programmers
- Grassman Algebra in Game Development - Eric Lengyel (GDC 2014)
- Interactive Linear Algebra
- Math for Game Developers
- Math for Game Programmers
- 3D Math Primer for Graphics and Game Development (Free book)
- Hadnles are the better pointers
- Linear Allocator - Nicollas Frechette
- Virtual Memory Aware Linear Allocator - Nicollas Frechette
- Stack Frame Allocator - Nicollas Frechette
- Greedy Stack Frame Allocator - Nicollas Frechette
- Virtual Memory Aware Stack Frame Allocator - Nicollas Frechette
- Allocation Adventures, The Buddy Allocator - Bitsquid
- Local (“Arena”) Memory Allocators, John Lakon, C++ Now 2017
- Memory Allocators
- A gentle introduction to Multithreading
- Multithreading for gamedev students
- Designing the Framework of a Parallel Game Engine
- Destiny's Multithreaded Rendering Architecture
- Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
- Parallelizing the Naughty Dog Engine Using Fibers
- The Poor Man's Threading Architecture
- Introduction to Multithreading - Handmade Hero
- Interlocked Operations - Handmade Hero
- Memory Barriers and Semaphones - Handmade Hero
- Beej's Guide to Network Programming
- Game Networking - Gaffer on Games
- Networked Physics - Gaffer on Games
- Development and Deployment of Multiplayer Online Games
- I Shot You First: Networking the Gameplay of HALO: REACH
- Tribes Networking Model
- The Poor Man's Netcode
- Advanced Character Physics
- Fix your timestep!
- Erin Catto's GDC slides
- Continuous Collision, Physics for Game Programmers. Erin Catto
- Physics and Collision Detection, Alan Hazelden
- RigidBody Dynamics
- Entity Component Samples - sosolimited
- Evolve your hierarchy! - Cowboy Programming
- What is an Entity Component System architecture for game development? - Richard Lord
- Understanding Component-Entity-Systems
- Building a Data-Oriented Entity System (part 1)
- Building a Data-Oriented Entity System (Part 2: Components)
- Building a Data-Oriented Entity System (Part 3: The Transform Component)
- Building a Data-Oriented Entity System (Part 4: Entity Resources)
- Should entities support multiple instances of the same component? - Our Machinery
- Implementing ECS architecture in UE4. Giant space battle
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)
- Data Locality - Game Programming Patterns
- CPU Cache and why you care - Scoot Meyers
- Mike Acton's comments on Ogre's OgreNode.cpp
- Pitfalls of Object Oriented Programming - revisited
- Practical Examples in Data Oriented Design - Bitsquid
- Typical C++ bullshit - Mike Acton
- Single responsibility principle
- Command - Game Programming Patterns
- Component - Game Programming Patterns
- Observer - Game Programming Patterns
- Singleton - Game Programming Patterns
- Service Locator - Game Programming Patterns
- Event Queue - Game Programming Patterns
- Game Architecture
- Why are MVC & TDD not employed more in game architecture? (Gamedev Stackexchange
- Models, views, controllers, presenters, oh my!
- A critique of MVC/MVVM as a pattern for game development
- Don’t bring web development toys to Unity’s kindergarten
- GUI Architectures - Martin Fowler
- Why Game Developers are afraid of Test Automation?
- Why video game coders don't use TDD, and why it matters
- Test Driven Development - Games From Within category
- Automated Testing and Profiling for ‘Call of Duty’
- Insomniac’s Web Tools (a postmortem) - Andreas Fredriksson
- Why Qt and not Imgui - Andreas Fredriksson
- Why I think Immediate Mode GUI is way to go for GameDev tools
- Web Tools for Application UI
- Tools Tutorial - Shipping Call of Duty at Infinity Ward - GDC 2018
- Build Great Tools: Workflow Guidelines from Vicarious Visions - GDC 2018