Portfolio
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
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
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
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
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
Gravity Helper Mini Collab Download
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
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!framework GitHub Repository
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
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
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
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
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
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
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
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
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
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
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
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