Contract Work

Sparx Ltd

Alistair has worked as a contractor for Sparx Ltd, an educational software company in Exeter, since 2013. Sparx develops a Mathematics-learning software solution for use in the classroom, independent learning and homework.

Working for Sparx, Alistair has designed and created times-tables learning games that algorithmically respond to student ability, and deliver learning goals. The games also provide data to the statistical research team at Sparx, to optimise its performance as a learning tool.

The first generation of Sparx games were developed in Objective-C as apps for iPad. The current generation of Sparx games are developed in Javascript/HTML5 and are integrated into a web-app platform.

The games communicate with server-side code written by Alistair in Python and Google Cloud code written in Go.

In addition to writing the games, Alistair has created game-creation frameworks for use internally within Sparx. These unify common UI elements, user interaction, animation, quiz integration, and network communication, to make all of the above accessible for new developers seeking to make games for Sparx's platforms.


BBC

In 2014 Alistair developed a web game for the BBC as part of an unreleased BBC product.

The project brief was to take an abandoned prototype by another production team and develop it into a fun and fully featured game that met the Coporation's user-experience and accessibility standards.

The game was developed in Unity for the Unity Web Player.

Alistair's updated design for the project added in meaningful player decisions, room for strategy and experimentation, and social competition.

Alistair also integrated the BBC's bespoke networking features into the project, and optimised load times and performance for use in the browser.


Technical Skills

Examples of use of each toolset given below

Unity

Creation of portfolio games from 2013 onwards.

Creation of B2C Times Tables app for Sparx Ltd in 2021.

Creation of automatic UI for cross-game interaction during stage shows

Bridging application to allow Twitch integration and network multiplayer with emulators

Resonsive UI for interactive Twitch streams

C#

Creation of Unity games since 2013

Creation of XNA games since 2007

Creation of animation and event-management frameworks for portfolio Unity projects

Implementation of game-switching functionality in the open-source BizHawk emulator

JavaScript

Creation of web-based games for Sparx Ltd. since 2015.

Creation of internal game development framework for Sparx Ltd.

Creation of times tables learning algorithm for Sparx Ltd.

Development of student-facing front-end for Sparx Ltd., using React and React-Redux frameworks.

Objective-C

Creation of commercially released iOS games from 2010-2013

Creation of early Sparx Ltd Times Tables games from 2013-2016

Creation of internal game development framework to connect with Sparx Ltd networks and data systems

C

Extension of GenesisPlusGX open-source emulator to implement game-switching and data-corruption effects in Sega Mega Drive games.

Go

Implementation of cloud-based save data for times tables games and learning algorithm progress at Sparx Ltd

Implementation of networked leaderboards (school-wide, class-wide and world-wide) in Sparx Ltd times tables games

Arduino

Creation of portfolio game hardware including Codex Bash, The Book Ritual, Dash & Bash and custom controllers for The Incredible Playable Show and The Scrambled Eggman Show

Creation of wireless-networked controllers for unreleased alternative-controller game

Creation of wireless-networked LED matrix panels for live stage shows

Python

Creation of Discord bots and Twitch chatbots for interactive livestreams.

Implementation of networked play for two-player times tables game for Sparx Ltd

Implementation of persistent progress data for times tables games on Sparx Ltd network

PIXI.JS

Implementation of graphics into Times Tables games for Sparx Ltd

Extending functionality by creating Unity-like entity-behaviour model

Development Profile

Alistair has developed critically-acclaimed games from conception to commercial release entirely as a one-man team.

Through this process he has developed the ability to solve problems independently, and to deal with the challenges of creating stable complete software for a real-world marketplace.

In addition, this process has required him to fearlessly take on all responsibilities of the development cycle. He will proactively learn new skills and pioneer new techniques to achieve his goals. This includes business and promotion skills as well as technical skills.

Throughout the development process Alistair is a great believer in live user-experience feedback. During his projects he frequently draws upon user test sessions to understand the state of the product from an end-user's perspective.

Working at Sparx Ltd has required Alistair to work productively as part of a larger team. During his work for the company he has needed to design games capable of meeting the needs of teachers and students, as well as the broader goals of the company.

In developing the shared games framework used by the company, Alistair has focused his attention on extensible, well-organised and readable code. This allows more developers in the team to work on game projects. The focus of his attention has been on minimising the amount of prior knowledge required to create a Sparx game. He has also strived to make the existing games useful references that future developers can use for guidance.

Throughout these projects Alistair has demonstrated ability to deal with networking issues, performance optimisation, threading issues, user interface design and memory management. He also designed and implemented the algorithm for teaching times tables in both Lua and JavaScript.