Due to being unable to currently access the required Unity installation/project files, a gameplay demo video cannot be generated at this time. This section will be updated with a video showcase once access is restored.
This was my first major game development undertaking, serving as the Final Major Project for my first year at Gateshead College (Games Development, 2023). Built using Unity and C#, my goal was to create a functional 2D platformer with basic roguelike elements (random room progression, random power-ups, and perma-death). While perhaps over-ambitious for a first project, resulting in a simple prototype, it was an invaluable experience in building a complete game loop from scratch.
Despite its simplicity, this project involved implementing several core game systems using C# within Unity:
Player Controller: Developed a Rigidbody2D-based character controller handling:
Basic horizontal movement and jumping (using Physics2D.BoxCast for ground detection)
A multi-jump system, allowing mid-air jumps based on collected power-ups
Basic knockback physics upon taking damage
Combat System: Implemented a simple shooting mechanic:
Aiming controlled via mouse position and input
Basic bullet physics (Rigidbody2D) and collision handling
An ammo system visible through UI
Health & Damage: Created a basic health system for the player (shown through UI) and enemies, triggering a game over screen (with retry and exit buttons) upon player death
Basic Enemies & Hazards: Implemented simple enemy types (bats and snakes) with basic detection/patrol logic, alongside hazards (spikes and dart traps) using triggers and ray casting
Power-ups: Implemented various collectable powerups which increase base stats (jump count, ammo, and health)
Roguelike Structure: Implemented random room loading upon level exit and a persistent room counter with high score saving
Basic UI: Displayed core game information (Health, Ammo, Rooms Visited) using Unity UI
Engine: Unity
Language: C#
Core Concepts: Rigidbody2D Physics, Collision Detection (Colliders, Triggers, Tags, Layers), Player Input Handling (Keyboard, Mouse), Basic AI (Detection/Patrol), Scene Management, UI (Canvas/Text), Prefabs/Instantiate, Raycasting, Data Persistence (PlayerPrefs), Script Communication (GetComponent)
IDEs: Visual Studio
Tools: GitHub
This project, being my first attempt at a complete game, was a significant learning experience, highlighting several key development challenges:
Scope & Design Complexity: The initial ambition to create a roguelike with significant run-to-run variation proved challenging within the timeframe, and due to my experience level then. Generating diverse levels and unique power-ups required substantial design and implementation time. This underscores the importance of realistic scope management relative to deadlines and experience.
Design: Implementing the random room loading proved the significant technical hurdle. Limited initial research and planning led to exploring several inefficient solutions before eventually landing on the correct approach using Unity's Scene Manager. This highlighted the importance of upfront technical design.
Core Game Loop Success: Despite these challenges, successfully integrating player movement, combat, enemies, progression (room loading, high scores), and UI into a complete, playable loop was the project's main achievement and provided a vital foundational experience in building interconnected game systems and further fuelled my passion for game development.