Highlighted Projects

Farming Game

Rust
Bevy
Chunk Loading
Tilemap
AI
  • Leverage Rust to enhance C++ skills
  • Utilize Bevy's advanced ECS framework
  • Implement Chunk Loading
  • Implement Custom AI behaviour tree (In Progress)
  • Implement Pathfinding (TODO)

2.5D Jumping Game

C#
Unity
Animations
Custom Physics
  • Implemented custom 2.5D jumping physics
  • Developed an animation state system using a code-based approach with events
  • Plan to implement custom 2.5D lighting (TODO)

Asteroids Remake

C++
Entt
SFML
Scene Management
  • Developed my first game in C++
  • Implemented custom scene management for ECS using EnTT
  • Designed a pausing scene mechanic
  • Implemented an event system to resolve circular dependencies and achieve general decoupling

Combat Game

C#
Unity
Animations
Combat
  • My first substantial Unity project
  • Iterated on the animation system multiple times
  • Developed a Combat Event and State Machine system
  • Designed a stylized UI featuring health and poise rings

Uno Multiplayer

JavaScript
SocketIO
Multiplayer
Anti-cheat
  • Implemented multiplayer functionality using WebSockets to maintain persistent connections
  • Established server-side verification alongside client-preemptive actions
  • Managed socket connections and synchronized game state between clients and the server
  • Designed a lobby system to facilitate game setup before starting matches

A Level Coursework

Monster Maze

(Playable)

JavaScript
P5
Graphics
Collision
Pausing
  • Created custom 3D graphics using mathematical concepts learned during A-levels
  • Optimized collision detection with a quad-tree data structure
  • Implemented maze generation
  • Designed a heads-up display (HUD) and a pause menu

Personal Projects

Ball Collector Game

(Playable)

C#
Unity
Mobile
  • Random generation of levels based on selected difficulty
  • Mobile scaling resolution with touch controls
  • Scoring based on type of ball caught in the moving bucket

Graphics Module

ThreeJS
WebGL
Models
Lighting
  • Applied WebGL in my third-year Graphics module
  • Imported 3D models from Blender
  • Applied texture and normal maps to objects
  • Implemented directional, spot and hemispherical lighting
  • Generated a maze with two types of levels

Age of Empires Remake

(Playable)

JS
P5
Tilebased
Local Multiplayer
  • Developed my first custom tilemap system, featuring an interactable layer
  • Highlighted available movement options, calculated based on the movement speed of various types of tiles
  • Implemented resource collection and spending mechanics
  • Created a turn-based local multiplayer experience

DurJam Submission

(Playable)

JavaScript
P5
Custom Gravity
Teamwork
  • First group project showing importance of version control
  • First encounter of scope creep and priortising core features
  • Custom physics (gravity rotates as you walk round the square planet)
  • Resource collection from breaking tiles
  • Team communication including non-programmer members

Asteroids JS Prototype

(Playable)

JavaScript
P5
OOP
Particle Effects
  • Developed my first larger game project
  • Utilized object-oriented programming (OOP) for game object separation
  • Created a quick JavaScript prototype for the game
  • Implemented custom particle effects

Snake Algorithm

(Playable)

JavaScript
P5
Collsions
AI
  • Implemented an AI algorithm to play Snake
  • Utilized a queue data structure for efficient snake mechanics
  • Developed a collision system

Courses

Code Monkey's

Cooking Game Course

(Playable)

C#
Unity
UI
Special Effects
  • Reinforced game development foundations
  • Implemented multiplatform support (Web, Phone, Controller)
  • Expanded the user interface (UI)
  • Incorporated additional sound and particle effects
  • Utilized scriptable objects for managing static data

Unity's

Junior Programmer Pathway

(Playable)

C#
Unity
UI
Special Effects
  • Reinforced game development foundations
  • Implemented multiplatform support (Web, Phone, Controller)
  • Expanded the user interface (UI)
  • Incorporated additional sound and particle effects
  • Utilized scriptable objects for managing static data