I am a game developer based out of Christchurch who has been working in the industry since 2013. I am currently working at CerebralFix as a programmer, working on mobile games, VR & AR projects, and other interactive applications. Creating games is a passion of mine; making something and having other people experience it and enjoy it is an incredible feeling that I never get tired of. Working with a team makes this experience even more wonderful to me - seeing all the pieces come together into something greater than the sum of its parts is extremely satisfying. As an avid player of games, I enjoy having some say in the design of the games I work on, and debating the merits of various design approaches as they relate to those projects.
Looking to get in touch? Use the contact links above or send me an email at contact (at) craigthomas.info
Release: Late 2017 - Present Role: Lead Programmer / Programmer
Most of my recent work is unfortunately under strict NDAs, but has been largely focused on supporting live mobile games made in Unity with large user bases, and more recently working on an installation experience made in Unreal.
Ace Academy VR
Release: Late 2017 Role: Lead Programmer What I Learned: VR best practices, Motion control processing
Beginning as a VR port of Ace Academy: Black Flight, this game is an experiment in VR design using the HTC Vive. Some of my responsibilites included: implementing an intuitive UI/UX in VR, implementing intuitive and responsive motion controls using the Vive Controllers, and mitigating motion sickness from doing loops in a WWI plane tens of thousands of feet in the air. This project is currently expected to be released later this year.
Ace Academy - Skies of Fury
Release: April 2017 Play Store Link: Skies of Fury Android App Store Link: Skies of Fury iOS Role: Programmer What I Learned: AI behaviour, Input processing, Mobile App Optimization
Designed as a sequel to Ace Academy: Black Flight, Skies of Fury called for many of the same mechanics and logic as the older game. Unfortunately, the existing code proved too difficult to refactor, and so was scrapped in favour of a ground-up rewrite. Working as one of two programmers on this project, I was responsible for helping design more elegant, robust versions of the systems that were created for the original game. My personal responsibilities included processing player input, the plane flight model, AI behaviours, and mobile optimization.
Bee Odyssey
Release: March 2017 Play Store Link: Bee Odyssey Android App Store Link: Bee Odyssey iOS Role: Programmer What I Learned: Localization, Analytics
Bee Odyssey is a 2D side-scrolling adventure game, where players attempt to navigate their bees safely through a series of levels, collecting pollen and attempting to find their missing hive. While I only assisted development near the end of this game's production cycle, I was responsible for implementing the localization system (English and French), the analytics system, and for helping implement some of the UI. For the localization system, I developed a simple tool that implemented with a web interface to allow our (out of house) translators to easily review and update the localization data, and for us to easily sync that data with both the engine and with deployed versions of the game.
Dawn of Mars is a base-building game set in the near future on Mars, where players attempt to establish humanity's first self-sufficient colony on the red planet. I was the lead programmer on this project, and also the sole programmer for the vast majority of development. I was responsible for the overall design of the game logic structure, which included the persistent systems, rover pathfinding AI, UI / localization, and design and balancing tools.
Our company was contracted by Tim Hortons to create an AR experience to accompany their annual hockey cards promotion and their World Cup of Hockey 2016 promotion. We created a mobile application that provided two experiences. The first was triggered when a user scanned a limited edition World Cup of Hockey coffee cup; a short animation played of a rink building around the cup, and showing support for Team Canada. The second experience was triggered by scanning any of the 100+ hockey cards available in restaurant - a short animation of that player would display on top of the card. My responsibilites for this project were to implement the UI and localization logic, and to help fix bugs while the app went through QA.
Ace Academy: Black Flight is a WWI air combat game, featuring historically accurate planes and locations. It was also the first fully-realized game the studio as a whole created and, for the vast majority of the team, the first game they released. I supported the lead developer throughout most of the development, contributing small improvements here and there, and was transitioned onto the project full-time for the final 5 months leading up to release. During this time, I helped fix bugs, implement social features, IAP, and analytics, and ease UI/UX pain points.
Experience preparing and releasing games through Play Store and App Store
Some experience with VR & AR challenges
Some (mostly self-taught) basic web experience (HTML/CSS/JS/PHP)
Some (mostly self-taught) basic database experience (MYSQL/SQLITE)
Experience with C++
Experience with low-level OpenGL
Some experience with shaders (GLSL/CG)
Experience balancing client demands/expectations with player expectations
Education
Bachelor of Information Technology - Game Development and Entrepreneurship from UOIT (2013)
This was a four-year program that put a heavy focus on the technical aspects of creating games, while still encouraging learning about the other disciplines by providing courses on art (traditional and digital), sound, design, writing, and business. The intent was to create graduates who were able to understand (at least at a base level) how each part of a game fit together, so as to be better able to communicate and work within a team. To this end, we were also tasked with creating a game each semester as part of a small team, including:
A text based game, written from scratch in C++
A 2D game, written from scratch in C++/OpenGL
A 3D game, written from scratch in C++/OpenGL
A 3D game, written in C++ using an open source game engine