
Solve Problems
Plenty of people make mistakes when first approaching a problem. Here are some ways to avoid common one’s that I see.

Life Without Recursion
Recursion can be useful for certain applications in programming. However, it comes with several downsides that I don’t hear about often that should be considered.

CPU Kitchen
Understanding a CPU can seem like an intimidating task. Luckily, you don’t need to know everything about how a CPU works in order to benefit greatly. This blog post explores the CPU through something a bit more relatable, a kitchen.

Tenacity in Programming
When programming, negative feelings may arise without you even being aware of them. Here I try to address some feelings I had and offer some solutions that worked for me.

Make Your Own File
Choosing a file format is an important decision for how you want to store data. Sometimes one of the off-the-shelf formats works but has a couple downside. Using your own custom format is a powerful tool that give more control over the pros and cons of how you save data.

Beyond Dijkstra’s
Pathfinding algorithms are commonly taught in schools but implementing one in a video game goes beyond a simple algorithm. See how performance and path optimizations can be made for high quality paths in real time.

Life Without Malloc
People often hate low level programming because of the constant use of malloc. Luckily there are plenty of alternative memory allocators and reasons to use them.

Water Simulation in the Blink of an Eye
Making a realistic water simulation for video games can be tricky. He’s an overview about how I was able to add interesting features and optimize the simulation so it’s able to be a core part of gameplay.