Something that I find intimidating about game programming blogs is when they’re by folks who are veterans of the industry, working in some impressive lead position with numerous publications/presentations to their name, but they just have a one-liner describing their career. My imagination runs rampant wondering how they got to where they are!
I’m nowhere close to being as impressive as these folks, but I am writing a blog, so I figured I should be the change I want to see in the world and talk a bit about my history as a graphics programmer. This page is structured in reverse-chronological order, so when I update it, my most recent career news will be at the top. If you want to jump to my baby years, scroll to the bottom of the page or just jump there!
I’m currently working for Crytek in Frankfurt, Germany, as a rendering engineer on CryEngine. I was very happy with my work and team at my previous job, but I knew that I eventually needed to make a foray into the games industry on the principle of treading the same ground as some of my heroes. I also knew that a lot of the graphics work I’ve done so far was specialized for the projects themselves, and so I needed to go somewhere where I could properly learn the ropes for graphics in games.
In that regard, I appreciate being given the opportunity by the rendering team at Crytek, and I hope to bring at least a couple things of value from my prior experience. During the interview process, my weakest area was certainly my lack of experience in implementing any state-of-the-art games research, so I recommend others who are similarly looking to do graphics in the games industry to spend time reading papers/presentations and try to implement one or two of them.
As for why I moved to Germany… I determined that I was at a point in my life where I had nothing tying me down, and that wouldn’t always be the case. So I figured that now might be my only opportunity to try working outside of the good ol’ U. S. of A. I didn’t have anywhere in particular in mind, though, so moving to Germany specifically was more of a luck-of-the-draw with my job hunting. One plus for Germany is that it’s known for having a strong work-life balance, and I’m interested in seeing how that fits me?
Work History
Apple Vision Pro
I worked for Apple for almost exactly 4.5 years on RealityKit, the rendering and simulation framework that drives the Apple Vision Pro. I joined in July 2019 and left in January 2024, just before it launched. During my time there, I got to touch a wide variety of tech, including frame graph rendering, advanced transparency handling, novel mixed-reality shadowing algorithms, and more. I feel immensely blessed to have worked on such an interesting project with such a great team, and landing the job was probably a nice blend of things coming together: My AR/VR experience from graduate school, my proprierty engine experience on Isetta, my graphics focus in undergrad, and my experience in working with artists from Anthem. (I still studied the heck out of the rendering equation, though!)
Facebook Reality Labs
For my last semester of grad school, I did a work semester. Through a professor I had in a production course from the previous year, I got a four month contract working for Facebook (now Meta) in their Reality Lab in Pittsburgh, Pennsylvania. There, I did generalist graphics and systems programming in support of all of the super cool “Codec Avatar” tech that the researchers were building. There was practically no process for landing the job – it was largely based on word-of-mouth from my professor and one behavioral interview with him (because he was also working as the general manager of the lab!), which goes to show that “who you know” is still as alive and well as ever.
Isetta Engine
Probably my most formative project from grad school was Isetta Engine, a three-month marathon of building a game engine in C++. It was super exhausting and had a huge scope, no doubt also due to the fact that since most of our faculty was design and art focused, we had to cater the project to them with promises of documentation, blogs, interviews, and even publishing a book and making a documentary! But the team and I learned a ton not just because of the work we did, but also all of the wisdom shared with us by industry veterans. This was my second student pitch project (the first being Music in Motion), so I had some experience with placating the faculty into endorsing our project, but it was still eye-opening to see how effectively we could sell our ideal project by emphasizing some of the less conventional deliverables, like the blog.
If you’re interested in learning more, by all means, go check out the website!
Anthem
Over the summer of 2018, I worked an internship with BioWare on their upcoming IP Anthem. The role was actually as a technical artist, so I supported the art team with Maya tools written in Maya Embedded Language (blegh) as well as my “capstone” project, an icon generation tool to automate a painfully lengthy authoring process the UI designers and artist were using. Getting exposure to EA’s Frostbite engine and building tools to address the team’s pain points were both valuable experiences for my future career, for which I’m glad I took the chance on a technical art position. As for how I got the internship in the first place, it was just a typical “job hunt” grind – I think my prior classroom experience with graphis helped a lot with getting the offer.
Music in Motion
My first long-term project in grad school was Music in Motion, a trippy VR experience whose goal was to drive the visual experience from music that the player would generate. It started much more ambitious as a “tactile” method of learning how synthesizers worked, and the core tech was still very much based on that with leveraging SuperCollider networking with Unity to process the movements and actions from the player and turn them into generative audio, but after a troubling showing at the halfway point in the project, we decided that a creative experience a la LIKELIKE Arcade would suit our work better. We even integrated hardware into the experience with programmatically-driven colored lighting built into some steel stanchions that doubled as a 12-speaker surround sound setup – obviously the person wearing the VR headset wouldn’t be able to appreciate it fully, but it was a treat for the spectators!
This project was one of the rare “student pitched” projects at a program where most of the projects were faculty- or client-sourced, and we definitely put a ton of effort into getting picked. Our demo was an amalgam of distinct cool technologies like metaball rendering in VR, realtime synthesizer playing on a laptop, and a workout rubber band for emulating the physical experiences we wanted to translate into music! The pitch was a valuable experience in creative problem solving, if nothing else.
This type of thing is best experienced in motion, so if you’re curious about it, check out our trailer or the final demo.
Entertainment Technology Center
In 2017, I entered the Entertainment Technology Center (ETC) at Carnegie Mellon University. This was a program I had been interested in since high school because it was effectively a “video games” program at a renowned university, but thankfully it ended up being much better than that. Started in the 90s by the late Randy Pausch, the coursework always focused heavily on how technology can make things “fun”, which of course means video games, but also included location-based entertainment, VR, wearables, and the like. It was also very project-focused instead of theoretical; in the first semester, all of the students build five games with roughly two weeks each.
The ETC was a fantastic learning environment where so many of the students are driven primarily by passion and creativity, and its heavily cross-disciplinary nature exposed me to how to work in a diverse team. My prior graphics classroom experience paired with my time with the VGDC and LATIS in college are probably what got me into the school, and my projects from the first semester let me work with the Vive, HoloLens, ARKit, and a cool custom “controller” called the Jam-o-Drum.
The wonderful design above is by Fangda Luo and Yvette Han – they managed to insert characters from games by literally every student in our class on it! (Mine is the evil-looking snowman coming out of the 0, in case you were wondering)
College
I attended a state university for college (wasn’t quite able to get into the swanky Ivy League level schools – all’s well that ends well, because I paid a lot less going to a public school!). The starting computer science curriculum was pretty generic with classes on algorithms and data structures, operating systems, AI, dynamic programming, C++, etc. But thankfully, the school’s computer science program was large enough to have specialized tracks after your first year, where I chose the “graphics and visualization” track. This is where I was exposed to the more interesting courses, like physical animation and motion planning, raytracing, and fundamentals of graphics. The images in the banner are some of my work from those classes.
There were two other notable experiences from my time in college that impacted my career: the Video Game Development Club (VGDC) and the Emerging Technology and Creativity Lab at the Liberal Arts college (LATIS ETC). The VGDC was less productive for me on a technical level than it should’ve been because I was often paralyzed by imposter syndrome, but despite that, I managed to get elected as president of the club and I learned many lessons on running an organization of creative folks. LATIS was a precursor of my later “ETC” experience, where I cut my teeth with a handful of “advanced” technologies like VR.
High School
I wasn’t exposed to computer programming until my last semester of high school. I did have some experience with modding tools for games, which I used to do things like create custom characters in Super Smash Bros. Brawl, but no programming was involved.
I tried to learn programming by reading the C++ Primer from Pearson, but that was simultaneously overwhelming and boring (in hindsight, I definitely should have looked for Python projects to start with). My real introduction to programming was in GameMaker Studio, which we used as part of a game development class that was offered for the first time my senior year of high school. The class itself didn’t require any programming, but I always found myself ahead of the assignments, so I tried reimplementing them in GML to see if I could do anything more interesting – and the rest was history!
The End/Beginning
That’s it! Hopefully this is useful to any bright-eyed greenhorn who wanders onto my website, or even to my experienced peers should people be feeling imposter syndrome. If you’re curious about any particulars from my work experience, feel free to shoot me an email at mail@cbias.co. Just bear in mind that NDA topics will stay NDA, I’m not eager to burn any bridges (or garner lawsuits) at the moment!