Game Development

Age of Mythology: Retold (PC)

Age of Mythology: Retold is a remaster of the classic Age of Mythology realtime strategy game by Microsoft. I worked on the UI team as part of Keywords Australia.

  • Language: C++
  • Platforms: Windows
  • Technologies: DirectX, WPF
  • License: Proprietary/Closed source

AoM: Retold on Steam

Age of Mythology: Retold


Guilty Gear -Strive- Nintendo Switch Edition

Guilty Gear -Strive- is a 2.5D fighting game for PC and various console platforms. It was recently released for Nintendo Switch, and I was part of the Tantalus South team that implemented the port. Most of my work was regarding user interface optimisations, video playback, and network support.

It was considered somewhat of a miracle port and has been well received.

  • Language: C++
  • Platforms: Windows, Playstation, Xbox, Switch
  • Technologies: Unreal Engine 4.2
  • License: Proprietary/Closed source

GG Strive on Nintendo Store

GG Strive on Steam

Guilty Gear -Strive- Nintendo Switch Edition


North Star (Meta Quest)

North Star is a Unity VR showcase for Meta Quest that puts the player in the role of a sailship crew member. The player talks to NPCs, interacting with various ship-related devices (a harpoon, rudder, etc.) purely using hand gestures.

While part of the Tantalus South team that developed the game, I worked on the harpoon and teleporting systems, as well as asset loading optimisations

  • Language: C#
  • Platforms: Meta Quest
  • Technologies: Unity
  • License: Proprietary/Closed source

North Star on Meta Store


Fitbit Ace LTE

While at Tantalus South I worked on three different games for the Fitbit Ace LTE as part of its launch. Galaxy Rangers was the first, and the other two are scheduled for future release.

  • Language: C#
  • Platforms: Fitbit Ace LTE
  • Technologies: Unity
  • License: Proprietary/Closed source

Fitbit Ace LTE


Gravity Helper

Gravity Helper is a mod for Celeste that implements inverted gravity. It was something of a meme in the Celeste community since even the big name modders didn’t want to touch it due to the amount of effort required to get it fully working. I thought ‘challenge accepted’, and so I spent many, many hours getting it to work perfectly. It required over a hundred low level intermediary language hooks to add full backward compatibility with the game. It also adds a bunch of custom entities and an API for other code modders to add gravity support to their entities.

It has been well received in the community, with many maps already using it.

  • Language: C#, CIL
  • Platforms: Windows, macOS, Linux
  • Technologies: FNA, Monocle, MonoMod, Cecil
  • Graphics: GIMP, Aseprite, Affinity Designer
  • License: MIT

GitHub Repository

Gravity Helper Download

Gravity Helper Mini Collab Download

Gravity Helper Reveal Trailer

Gravity Helper Release Trailer

Gravity Helper Mini Collab Release



Strawberry Jam

Strawberry Jam is a modpack for the 2018 platform game Celeste. I am a coding captain for the team and have written thousands of lines of code for the custom mechanics and special effects in the mod. This requires a lot of knowledge of .NET’s intermediary language and injecting hooks into reverse engineered code.

  • Language: C#, CIL
  • Platforms: Windows, macOS, Linux
  • Technologies: FNA, Monocle, MonoMod, Cecil
  • Graphics: GIMP, Aseprite
  • License: Open source

MonoMod

Cecil

Celeste on Steam

Strawberry Jam Trailer



osu! / osu!framework

osu! (lazer) is an open source reimagining of the osu! rhythm game. It is powered by osu!framework, an open source scenegraph-based game framework developed in tandem.

I have been a contributor since 2017, focusing primarily on platform compatibility and iOS/Android implementations.

  • Language: C#
  • Platforms: Windows, macOS, Linux, iOS, Android
  • Technologies: osuTK (OpenTK fork), SDL2, BASS
  • Licence: MIT

osu!lazer GitHub Repository

osu!framework GitHub Repository

osu! Website

Discord

osu!lazer



Rush!

Rush! is a custom ruleset for osu! loosely based on the Muse Dash rhythm game. The player controls an avatar that can punch or kick enemies on the ground or in the air in time with the music.

  • Language: C#
  • Platforms: Windows, macOS, Linux
  • Technologies: osu!framework
  • Graphics: osu!framework, GIMP, Affinity Designer, royalty-free assets
  • Licence: MIT

GitHub Repository

Discord

Rush! Demo Video



Commercial Work

OTR App

OTR App is the iOS and Android mobile app for On The Run. It allows users to browse and order items from various locations, and to pay for fuel at the pump. I took over development in 2021 and implemented the front end of the Scan, Pump, Save! promotion. Written using Xamarin native and MvvmCross.

  • Languages: C#
  • Platforms: iOS, Android
  • License: Proprietary/Closed source

OTR App Website



Deckhand

Deckhand is an iPad enterprise app designed for fishing vessels to report their catch to fishing authorities. Uses CoreLocation to track the boat’s path taken while fishing, and CoreBluetooth to interact with depth measurement devices. I was part of the original development team at NextFaze, and focused on the UX flow, maps, and state persistence. Deckhand development was later moved in-house to Real Time Data.

  • Languages: Swift, Objective-C
  • Platforms: iOS
  • Licence: Proprietary/Closed Source

Deckhand Website



Keepon (formerly PTBIZ)

Keepon is a customer-facing iPhone app for personal trainers to manage their clients’ appointments and payments. Uses a Realm local database and Stripe for payment processing. I developed the initial release while working for NextFaze.

  • Language: Swift
  • Platforms: iOS
  • Licence: Proprietary/Closed Source

App Store

Developer Portfolio



bitHacker

bitHacker is a Unity game where the player navigates a small ship through a Tron-like network of nodes. Players can “hack” nodes with mini-games to unlock items and expand their control of the network. I worked on most parts of the scripting and scene design while at NextFaze.

  • Language: C# (Unity)
  • Platforms: iOS, Android
  • Licence: Proprietary/Closed Source

Google Play

bitHacker



RallySafe

RallySafe is an iOS and Android app that allows users to monitor the locations, positions, and times of cars in rallies. Users can purchase access to individual rallies or access rallies that are marked as free. I worked on most areas of the iOS app while at NextFaze.

  • Languages: Swift, Kotlin
  • Platforms: iOS, Android
  • Licence: Proprietary/Closed Source

App Store

Google Play

Developer Portfolio



Guvera

Guvera (now defunct) was an international music streaming service in operation from 2008 to 2017. It provided native mobile apps for iOS and Android. I worked with the iOS team at NextFaze, mostly in the area of music playback.

  • Languages: Objective-C, Java
  • Platforms: iOS, Android
  • Licence: Proprietary/Closed Source

Wikipedia



TMS

Transport Management System (TMS) is a suite of applications used by Pacific National to manage trains, trucks, and cargo across Australia.

The main desktop application is developed with Java Swing, and runs in a Citrix environment. It uses a custom transport layer that connects to a Pro*C daemon to perform transactions with an Oracle database.

The web interface is called FreightWeb and uses the Zk framework. FreightWeb also has a native iOS application for read-only access to the system.

There is also a text-based interface developed using Charva that runs on Windows CE rugged computers. These are mounted in equipment used by terminal operators to move shipping containers.

Maintained by a team of over 50 developers at Fujitsu Consulting, I worked on each of these products between 2004 and 2015.

  • Languages: Java, PL/SQL, Pro*C, C++, JavaScript, Objective-C
  • Platforms: Windows, Web, Terminal/Curses, iOS
  • Technologies: Oracle, Swing, Java2D, Zk, Charva
  • Licence: Proprietary/Closed Source

Pacific National



FazeKit

FazeKit is a set of utilities and helpers for iOS development, written in Swift. The spiritual successor to NFAllocInit.

  • Languages: Swift, Objective-C
  • Platforms: iOS
  • Licence: Apache 2.0

GitHub Repository



NFAllocInit

NFAllocInit is a set of utilities and helpers for iOS development, written in Objective-C.

  • Language: Objective-C
  • Platforms: iOS
  • Licence: Apache 2.0

GitHub Repository



Older Stuff

Diddy

Diddy is a game framework and collection of utilities developed with and for the Monkey programming language. At the time of release, Monkey was missing a lot of niceties that developers have come to expect from a development environment. Myself and a work colleague were impressed by the language, so we worked together to develop a screen-based framework for game developers.

Some Diddy features added to the language:

  • Multithreading support
  • Coroutines
  • I18N support
  • Base64 support
  • XML and JSON parsing
  • Vector and matrix types
  • Advanced collection classes
  • Google Game Service
  • Serialisation
  • Particle Systems
  • Tile-based map engine via Tiled
  • Lua (via monkeylua)
  • SQLite (via monkeysqlite)
  • BASS (via monkeybass)

Monkey is a Basic-like dialect that transpiles to the native language for each of its target platforms. It is developed by the author of BlitzMax and BlitzBasic, Mark Sibly. In 2013, Monkey was released as open source under the zlib/libpng licence.

  • Languages: Monkey, Java, Objective-C, C++, C#
  • Platforms: Windows, macOS, Linux, iOS, Android
  • Licence: MIT

Diddy GitHub Repository

Monkey GitHub Repository



Shai-Hulud 2000

Shai-Hulud 2000 was a map editor for the realtime strategy game Dune 2000. Developed during my university years, it required me to reverse engineer all of Dune 2000’s data files, which were in a proprietary format. It ended up becoming the first and most popular map editor for the game at the time.

  • Language: Visual Basic 6
  • Platform: Windows
  • Licence: Closed Source