epsilon
Kart Drifter — 2D top-down racing game expand_more
Description
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.
Features high-octane drifting, a track editor, and the ability to race against your best replays.
Knowledge and skills gained
Procedural programming concepts
State pattern for car logic
Memento pattern for editor undo and redo
Encoding/compression for replay data
State pattern for car logic
Memento pattern for editor undo and redo
Encoding/compression for replay data
Source code
https://github.com/eps0003/KartDrifter
Squirrelville — Squirrel adventures down under expand_more
Description
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.
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.
Tools and technologies
C#: Programming language
Unity: Game engine
presskit(): Presskit tool
Nginx: Web server (for hosting the website)
Unity: Game engine
presskit(): Presskit tool
Nginx: Web server (for hosting the website)
Knowledge and skills gained
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
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
Description
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.
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.
Tools and technologies
AngelScript: Scripting language
Knowledge and skills gained
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
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
Source code
https://github.com/transhumandesign/kag-base
Hunter3D — Voxel-based first-person shooter expand_more
Description
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.
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.
Tools and technologies
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
Python: Programming language (utility scripts)
Blender: 3D modelling software (player model)
MagicaVoxel: Voxel art editor (maps and models)
V-Optimizer: Voxel model optimiser
Knowledge and skills gained
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
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
Description
EasyUI is a King Arthur's Gold modding toolkit for building
responsive user interfaces with ease using modular components.
Tools and technologies
AngelScript: Scripting language
Knowledge and skills gained
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
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
Source code
https://github.com/eps0003/EasyUI
Easy3D — 3D toolkit for modders expand_more
Description
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.
Tools and technologies
AngelScript: Scripting language
Source code
https://github.com/eps0003/Easy3D
Tabletop — Tabletop card game mod expand_more
Description
Tabletop is an incomplete King Arthur's Gold mod that
establishes a foundation from which various card games can be
implemented.
Tools and technologies
AngelScript: Scripting language
Source code
https://github.com/eps0003/tabletop
Picto — Pictionary-inspired drawing mod expand_more
Description
Picto is an incomplete Pictionary-inspired King Arthur's Gold
mod that provides a network synced canvas for players to draw
on.
Tools and technologies
AngelScript: Scripting language
Source code
https://github.com/eps0003/picto
KAG IntelliSense — VS Code extension expand_more
Description
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.
Tools and technologies
TypeScript: Programming language
Node.js: JavaScript runtime
Visual Studio Code Extension API
Node.js: JavaScript runtime
Visual Studio Code Extension API
Knowledge and skills gained
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
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
Source code
https://github.com/eps0003/kag-intellisense
Gather — Matchmaking Discord bot and mod expand_more
Description
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.
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.
Tools and technologies
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)
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)
Knowledge and skills gained
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
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
Description
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.
Tools and technologies
JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
Node.js: JavaScript runtime
Discord.js: Discord bot framework
Source code
https://github.com/transhumandesign/shark-v2
eps-bot — First Discord bot expand_more
Description
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.
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.
Tools and technologies
JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
Node.js: JavaScript runtime
Discord.js: Discord bot framework
Knowledge and skills gained
Improved understanding of JavaScript
Developing a Discord bot
Developing a Discord bot
Source code
https://github.com/eps0003/eps-bot
KoolBot — Daily questions Discord bot expand_more
Description
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.
Tools and technologies
JavaScript: Programming language
Node.js: JavaScript runtime
Discord.js: Discord bot framework
better-sqlite3: Database
Node.js: JavaScript runtime
Discord.js: Discord bot framework
better-sqlite3: Database
Knowledge and skills gained
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
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
Description
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.
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.
Tools and technologies
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
JQuery: HTML traversal and manipulation library
Chrome extensions API: Notifications and local storage of settings
King Arthur's Gold API: Server and player data
Knowledge and skills gained
Developing and publishing a browser extension
Differences between browser features and APIs
Understanding of CSS grid
Differences between browser features and APIs
Understanding of CSS grid