Category Archives: Programming

Timeslicing Batched Algorithms in Games

This post is part of my Game Programming Series. The source files for generating the animations in this post are on GitHub. A very useful technique to improve the performance of batched algorithms (multiple instances of the same algorithm) is … Continue reading

Posted in C/C++, Gamedev, Programming | Leave a comment

Game Math: Precise Control over Numeric Springing

This post is part of my Game Math Series. Source files are on GitHub Check out this post if you want to see more visual examples of numeric springing. Numeric springing is a very powerful tool for procedural animation. You … Continue reading

Posted in C/C++, Gamedev, Math | 9 Comments

Safe Scope-Based Instrumented Profiler

Let’s say we have an interface for an instrumented profiling library that looks like this: The argument you pass to BeginBlock is a custom block name for you to identify the block in the profiler output. You call BeginBlock at … Continue reading

Posted in C/C++, Gamedev | 2 Comments

Scope-Based Resource Management (RAII)

This post is part of my Game Programming Series. It has been 4 months since I graduated from DigiPen and started working at Naughty Dog as a Game Programmer. Since then, I have been too lazy to write anything big … Continue reading

Posted in C/C++, Design Patterns, Gamedev | Leave a comment

My Recommended Book List to Game Devs

Here’s a list of books I have read that I recommend to to game devs. I’ve divided the books into several categories: computer science, math & graphics, physics, and procedural animation. I intentionally did not include any “gem” or “pearl” … Continue reading

Posted in Design Patterns, Gamedev, Math, Physics, Programming | 3 Comments

Intrusively Linked Lists with Safe Link Destruction

This post is part of my Game Programming Series. My current game project at DigiPen greatly benefits from “smart” intrusively linked lists that support multiple links per object and automatic link removal from lists upon destruction. My implementation was inspired … Continue reading

Posted in C/C++, Gamedev | 5 Comments

Bending Solid Geometry in Planetary Annihilation

This post is part of My Career Series. Two months ago, I started my internship at Uber Entertainment to work on Planetary Annihilation, which is currently in closed Alpha (you can still purchase Early Alpha Access into the game through … Continue reading

Posted in Gamedev, Math, Programming | 20 Comments

Memory Management part 3 of 3: STL-Compatible Allocators

This post is part of my Memory Management Series. In part 1 and part 2 of this series, I showed how to implement a fix-sized memory allocator and a C-style interface. Part 3 will demonstrate how to make an allocator … Continue reading

Posted in C/C++, Gamedev | 1 Comment

Memory Management part 2 of 3: C-Style Interface

This post is part of my Memory Management Series. In part 1 of this series I showed how to implement a memory allocator that allocates fix-sized pages and blocks. Part 2 is going to cover how to implement a C-style … Continue reading

Posted in C/C++, Gamedev | Leave a comment

Memory Management part 1 of 3: The Allocator

This post is part of my Memory Management Series. Why Bother Building Your Own Memory Management System? Memory management is crucial for game development. It is even more important for console game development, since consoles have hard memory limits. Many … Continue reading

Posted in C/C++, Gamedev | 5 Comments