Hi, I’m Karl! I’m a Software Engineer.
I had a passion for robotics and programming from a very young age. When I was quite young, I was excited to work in BASIC on a C64 and play games on an Intellivision. I still remember the first time I saw my first NES game – Super Mario Bros. I was quite the Nintendo fanboy, begging my parents for a NES, then SNES, saved up to buy a used Gameboy (original), then N64. At this point I was more interested in PC gaming, so I didn’t get a GameCube for a while, and wasn’t interested in the original XBox, or PS1 and PS2 much. Even the GameBoy Colour and Advance weren’t of much interest at the time. I did eventually get a GBA, though.
I started playing PC games back when there was only DOS (and Windows 3.1, but most games were DOS) and thanks to the rise of the ‘demo version’ distribution method, I played the demos of games over and over, Wolfenstein 3D, Commander Keen, Doom, Duke Nukem 1/2/3D, Crystal Caves, X-Wing, and many more. Some I was lucky enough to buy full versions of. This was also the time that I did some Visual Basic programming, but nothing very complex.
Then came Windows 95, where games like WarCraft II, StarCraft, Quake1, Jedi Knight, and so on were my games of choice. After that Windows 98, and Windows 2000, where I started making levels for Quake2, and eventually worked on a full ‘total conversion’ mod called ‘007 Quake 2’. I learned a lot about making levels for that engine, some gameplay programming, some UI programming, and organizing a team completely remotely (I still have not met any of them in person to this day) to work on the rest of the conversion, like art, sounds, levels, etc. When the full engine source code for Quake 2 was released open-source, I was able to make the mod fully stand-alone by removing all references to original Quake 2 content. I also added some enhancements to the renderer.
Quake 3 is still one of my favourite games, and I remember playing the beta of it with the original NVIDIA Riva TNT, on a 56k modem pinging about 200ms on the official id Software server. They did a great job with client-side prediction on that title. I also remember the first time I ran the game with the original NVIDIA Geforce 1 – the game ran amazing on that card.
I worked on my Quake 2 mod during high school, and right after I graduated I started a ‘game programming program’ at CDIS, a local private arts and technology college. During my orientation day there, I was informed that they had just been purchased by Arts Institute. Unfortunately that meant that during my time there, there was a lot of changes due to the transition to the new owner. It didn’t benefit any of the people in my program. I did learn some useful skills (thanks to the teachers there) and made great life-long friends in some of my colleagues, but the cost of the program was not worth it to me, so I quit after a year and decided to go to university instead.
I started at SFU Surrey in 2004, taking the SIAT program. I worked on some small games as class projects, and was lucky enough to be invited to speak about one of them at a local game exhibition. I then had my first co-op placement at Relic Entertainment in 2006, where I worked on an unannounced (then cancelled) project, then helped ship Company of Heroes, the highest rated PC RTS of all time. I then came back for a longer co-op placement in 2007, where I helped ship Company of Heroes: Opposing Fronts, and started work on Dawn of War 2. In 2008 I came back to work more on Dawn of War 2 with my own negotiated contract, working part-time some of the time due to university classes, but then started full-time work at Relic in the beginning of 2009. I was still finishing up my degree, but graduated with my Bachelors of Science in mid 2009.
At Relic I saw Dawn of War 2 through to ship, then had a lot more responsibility on Dawn of War 2: Chaos Rising, and even more shipping Dawn of War 2: Retribution. After Retribution I was assigned to help Space Marine ship in its last 8-9 months of development. There I was mainly responsible for the PC SKU, coming up with the minimum requirements for the game, making sure it ran smoothly on the minimum requirements and above, dealing with hardware vendors, driver compatibility problems, etc.
During my time at Relic I also had the opportunity to attend a few conference, and spoke at the Canadian Games Conference 2011 in a panel, which was captured on video here.
In early 2012 almost the entire team I was working on at Relic was laid off, and we actually were not working on the Dark Millenium Online project, but what we were working on is something I can’t share. It was really too bad, since I was pretty excited about what I was working on. I then started working at Eruptive Games, a Facebook game start-up that was working on several titles, one of them notably with Citizen Grim. I helped them fix a lot of core issues, did a lot of optimization, and basically helped develop and polish the game. It is now available on Facebook and seems to be getting good reviews in the press.
In August 2012 I decided to join the game design consultancy Adrian Crook & Associates as a Lead Programmer, which probably could now be described as a game development consultancy, since they have me as an engineer now. Since then I’ve been working on internal and client iOS projects, as well as PlayRank, our own start-up social second-screen sports mobile app. In short, think of it as ‘twitter for sports’.
In March 2013 I joined YMC Network as a Lead Mobile Software Engineer, responsible for building and leading a team to build exciting mobile app and game technology.
Near the end of 2013 I joined DeNA Vancouver as a Senior Software Engineer, working on their upcoming mobile game titles.
In June of 2018 I returned to the game industry and helped co-found Gasket Games, a new studio in Vancouver.