My name is Ian Dunn and I'm a 25 y.o. software engineer with a specialty in computer graphics and game developement. I'm a lecturer at Cal Poly where I teach courses in Game Design and Computer Graphics. I'm also an indie game developer working on an open-world adventure game called Alluvial. You can check out my resume here or read about some of my projects down below!
Alluvial is an open-world rpg/adventure game using procedurally generated content. Find out more about the game at www.alluvialgame.com!
Using CUDA and OpenMPI, I wrote a Madelbrot fractal renderer to run on GPU-accelerated clusters. Using a network of 27 workstations, I was able to produce the below video by rendering each frame individually with super-sample anti-aliasing and smooth coloring.
I've always loved games that let you build and ride rollercoasters. I built a rollercoaster demo to show off the spline interpolation features of ionEngine and discovered that it was a lot of fun to play with.
I wrote a ray tracer for an advanced rendering class at Cal Poly. In early iterations I used CUDA to perform the raytracing in real-time but I eventually settled on using an OpenGL pre-vis with CPU-multithreaded ray tracing on top.
I'm in the process of integrating the ray tracer with ionEngine so that it's possible to quickly and easily create high-quality images from an existing real-time project.
In Spring 2013 I went on a 30-day research trip to Malta to deploy submarine ROVs into water features such as wells, cisterns, and sea caves. My responsibilities included data collection, hardware management and troubleshooting, and visualization software. In early Fall 2015 I returned to Malta to work on 3D reconstruction of submerged wrecks. Check out the blog for the 2015 trip!
I took a game development course at Cal Poly from January 2012 to June 2012 and was part of the team that built Happy Cabbage Adventure. My primary responsibilities were the core game engine, the collision system, and the deferred shading system. Happy Cabbage Adventure is a 2.5D platform adventure game. You can read more at the project page.
I first started programming in 2005, making simple text-based adventures in a BASIC environment called BlitzMax. In 2007, I started to pick up C and C++ and moved on to making 3D games using Irrlicht.
In early 2012, I started using OpenGL in graphics classes at Cal Poly. I took a game development course and ended up responsible for rendering and core game engine components on my team. The engine I developed on that project would later become ionEngine, my largest project and the basis for a lot of the other 3d applications that I work on.
In 2015, I took a year off from Cal Poly to pursue internships in the computer graphics field. From January to May I worked for Intel on their game developer relations team in Folsom and from June to December I worked for Microsoft on the DirectX 12 team. I also spent a week in Malta to help explore future data collection techniques for the ICEX program.
In December 2016, I graduated from Cal Poly with a master's in Computer Science and a bachelor's in Software Engineering. My thesis project was a scaleable open-world game engine. Since then I have been teaching courses at Cal Poly and working on Alluvial.
In Fall of 2010, I started at California Polytechnic State University (San Luis Obispo, CA). I graduated in a blended program which awarded both a bachelor's and master's degree simultaneously in December 2016. My undergradute degree was in Software Engineering and my graduate degree was in Computer Science.
= graduate-level course