I'm a game and engine programmer at Blizzard Entertainment and have been making games since 1990 (starting out with QBasic and TI-85 games) My shipped titles include: * Heroes of the Storm * StarCraft II: Heart of the Swarm & Legacy of the void * Insanely Twisted Shadow Planet (PC) * Gotham City Impostors (PC, 360, PS3) * Line Rider (PC, Wii, DS) I also like hiking, making music, learning cool new stuff and attempting the impossible.

## Is Code Faster Than Data? Switch Statements vs. Arrays

The last post explored compile time hashing a bit and at the end showed a way to use compile time code to assist a string to enum function, by having a minimal perfect hash that was guaranteed at compile time … Continue reading

Posted in C++

## Exploring Compile Time Hashing

Never put off til run time what can be done at compile time. C++11 gave us constexpr which lets us make C++ code that the compiler can run during compilation, instead of at runtime. This is great because now we … Continue reading

Posted in C++

## Path Tracing – Getting Started With Diffuse and Emissive

The images below were path traced using 100,000 samples per pixel, using the sample code provided in this post. Path tracing is a specific type of ray tracing that aims to make photo realistic images by solving something called the … Continue reading

## Incremental Averaging

This is a super short post about something I want to be able to reference again in the future (: Let’s say that you need to average N things, where you don’t know what the final N will be, but … Continue reading

## Understanding The Discrete Fourier Transform

I’ve been working on getting a better understanding of the Discrete Fourier Transform. I’ve figured out some things which have really helped my intuition, and made it a lot simpler in my head, so I wanted to write these up … Continue reading

## Fourier Transform (And Inverse) Of Images

I attended SIGGRAPH this year and there were some amazing talks. There were quite a few talks dealing with the Fourier transform of images and sampling patterns, signal frequencies and bandwidth so I feel compelled to write up a blog … Continue reading

## Intro To Audio Synthesis For Music Presentation

Today I gave a presentation at work on the basics of audio synthesis for music. It seemed to go fairly well and I was surprised to hear that so many others also dabbled in audio synth and music. The slide … Continue reading

## The Beating Effect

This post is going to be a pretty short one, so here it is ðŸ˜› The Beating Effect The beating effect occurs when you play two similar frequencies of sound at the same time. Because playing two sounds at once … Continue reading

## Synthesizing a Plucked String Sound With the Karplus-Strong Algorithm

If you are looking to synthesize the sound of a plucked string, there is an amazingly simple algorithm for doing so called the Karplus-Strong Algorithm. Give it a listen: KarplusStrong.wav Here it is with flange and reverb effects applied: KPFlangeReverb.wav … Continue reading

## Who Cares About Dynamic Array Growth Strategies?

Let’s say that you’ve allocated an array of 20 integers and have used them all. Now it’s time to allocate more, but you aren’t quite sure how many integers you will need in the end. What do you do? Realloc … Continue reading