Kart Drifter — 2D top-down racing game expand_more
notes A 2D top-down racing game made in Ruby!
Features high-octane drifting, a track editor, and the ability to race against your best replays.
package_2 Ruby: Programming language
Gosu: 2D game development library
emoji_objects Procedural programming concepts
State pattern for car logic
Memento pattern for editor undo and redo
Encoding/compression for replay data
Squirrelville — Squirrel adventures down under expand_more
notes Squirrelville is a short Australian adventure where you play as a cheeky squirrel stranded on mountainous 'Acorn Island' in the midst of their annual Acorn Festival.
As one of three programmers on the team, I worked on various aspects of the game including the menus, UI, audio system, eating system, presskit, and the ongoing hosting of the website.
package_2 C#: Programming language
Unity: Game engine
presskit(): Presskit tool
Nginx: Web server (for hosting the website)
emoji_objects Understanding of Unity game engine and C#
Working with a multi-faceted team to plan, develop, and release a product
Identifying and managing scope creep
King Arthur's Gold — Base game contributions expand_more
notes King Arthur's Gold is a free medieval build n' kill multiplayer game with destructible environments. The base game is open source and anyone can contribute improvements to the game.
My contributions include implementing improvements, identifying bugs, reviewing code, and supporting the community through leadership and event organisation. I am amongst the top contributors in all metrics.
package_2 AngelScript: Scripting language
emoji_objects Source control via Git and GitHub
Participating in open-source development
Producing descriptive and meaningful issues, pull requests, and code review comments
Engaging in community discussion to identify and address player and modder needs
Client-server game architecture
Hunter3D — Voxel-based first-person shooter expand_more
notes Hunter3D/4D/5D are iterations of a 3D voxel-based first-person shooter total conversion mod for King Arthur's Gold, inspired by Ace of Spades Classic, Minecraft, and Krunker.
Fun fact: This mod is named after the Hunter class in Krunker and was intended to be a temporary name, but the name has yet to change.
package_2 AngelScript: Scripting language
Python: Programming language (utility scripts)
Blender: 3D modelling software (player model)
MagicaVoxel: Voxel art editor (maps and models)
V-Optimizer: Voxel model optimiser
emoji_objects 3D rendering concepts such as translation, rotation, scale, projection, z-buffer, etc.
Mathematical constructs such as vectors, matrices, and quaternions
Detecting collisions and intersections involving axis-aligned and oriented bounding boxes, as well as rays
Optimisation techniques such as greedy meshing and culling using an octree and frustum
Micro-optimisation techniques such as storing particles as lists of primitives rather than as classes
Efficient data serialisation and deserialisation of the current state of the environment and game objects for any number of players
Networking and interpolation of game objects
EasyUI — UI toolkit for modders expand_more
notes EasyUI is a King Arthur's Gold modding toolkit for building responsive user interfaces with ease using modular components.
package_2 AngelScript: Scripting language
emoji_objects Designing intuitive interfaces that allow modders to fall into the pit of success
Dirty state – recalculating the bounds of UI components only when necessary
Composition – composing UIs of multiple separate components for increased customisability
Creating releases in GitHub
Easy3D — 3D toolkit for modders expand_more
notes Easy3D is a King Arthur's Gold modding toolkit for creating 3D total conversion mods. Easy3D currently focuses on models and animations but also contains various utility classes and functions.
package_2 AngelScript: Scripting language
Tabletop — Tabletop card game mod expand_more
notes Tabletop is an incomplete King Arthur's Gold mod that establishes a foundation from which various card games can be implemented.
package_2 AngelScript: Scripting language
Picto — Pictionary-inspired drawing mod expand_more
notes Picto is an incomplete Pictionary-inspired King Arthur's Gold mod that provides a network synced canvas for players to draw on.
package_2 AngelScript: Scripting language
KAG IntelliSense — VS Code extension expand_more
notes This Visual Studio Code extension provides IntelliSense for the King Arthur's Gold scripting manual. The goal is to provide everything a modder needs right inside their IDE and provide an alternative to KAG Tools.
package_2 TypeScript: Programming language
Node.js: JavaScript runtime
Visual Studio Code Extension API
emoji_objects Introductory understanding of parsers, lexers, preprocessors, and ASTs
Deeper understanding of the language grammar of AngelScript
The realisation that this is very challenging to implement correctly and efficiently, especially when preprocessor directives are involved
Gather — Matchmaking Discord bot and mod expand_more
notes Gather is an King Arthur's Gold CTF event involving the use of this Discord bot to organise matches. Gather provides more structured, team-based gameplay as compared to regular CTF due to its inclusion of tickets (limited number of respawns per team).
GatherBot is the Discord bot that conducts the matchmaking and GatherLite is the King Arthur's Gold mod that the bot maintains communication with to conduct the match.
package_2 AngelScript: Scripting language (mod)
JavaScript: Programming language (bot)
Node.js: JavaScript runtime
Discord.js: Discord bot framework
better-sqlite3: Database
King Arthur's Gold API: Link Discord account
Ubuntu: Operating system (hosting bot and server)
emoji_objects Creating a King Arthur's Gold mod that goes beyond the game itself by communicating with an external program
Performing game balance tweaks based on qualitative (player feedback) and quantitative (match statistics) data
Using a Linux-based operating system via a CLI to host Discord bots and game servers
Preparing descriptive documentation
Leadership – organising and facilitating frequent Gather matches to keep the community engaged
Shark — Official KAG Discord bot expand_more
notes Shark is a Discord bot used on the official King Arthur's Gold Discord server. It most distinctive feature is the ability to view which players are on each server conveniently within Discord.
package_2 JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
eps-bot — First Discord bot expand_more
notes eps-bot is a Discord bot that has various commands for use in the Oceania King Arthur's Gold Discord server.
This could be considered my first significant self-directed coding project that uses a mainstream text-based programming language. Prior to this, I was making small game prototypes using GameMaker Language, and before this I was using drag and drop in GameMaker, Scratch, or the now-defunct PlayCrafter.
package_2 JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
emoji_objects Improved understanding of JavaScript
Developing a Discord bot
KoolBot — Daily questions Discord bot expand_more
notes KoolBot is a commissioned Discord bot developed for the Kooleyy's Discord server. It features a queue of questions configured by moderators, which are released one at a time each day to encourage community engagement.
package_2 JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
better-sqlite3: Database
emoji_objects Effectively communicating with a client to identify and fulfil their requirements
Performing the necessary planning steps to ensure all requirements are addressed before commencing implementation
Implementing Discord slash commands
KAG Server Browser — Browser extension expand_more
notes The KAG server browser conveniently in your web browser!
This extension allows you to view the King Arthur's Gold server browser without needing to open the game. It is a near-identical replication of the in-game server browser with a few extra useful features like desktop notifications.
Available on Chrome and Firefox.
package_2 HTML, CSS, JavaScript: Programming languages
JQuery: HTML traversal and manipulation library
Chrome extensions API: Notifications and local storage of settings
King Arthur's Gold API: Server and player data
emoji_objects Developing and publishing a browser extension
Differences between browser features and APIs
Understanding of CSS grid