A 3D puzzle-platformer built in Unity where players navigate environments, solve spatial puzzles, and overcome obstacles through climbing mechanics.
Course: COMP602 — Software Development Practice
Institution: Auckland University of Technology (AUT)
Year: 2024
Engine: Unity 2022.3.43f1 LTS
Language: C#
ClimbGame is a third-person 3D platformer built entirely from scratch in Unity. The player navigates a series of environments by climbing, jumping, and solving spatial challenges. The focus was on building solid game architecture — responsive controls, physics-driven collision, and a clean state machine to manage player behaviour.
- Player controller — smooth movement, jump, and climb mechanics built with Unity's physics engine
- Collision detection — context-aware surface detection for grounded, airborne, and climbable states
- State machine architecture — C# state machine managing player states (Idle → Run → Jump → Climb → Fall)
- Environment design — multi-level layout with obstacles, ledges, and climbable geometry
- Camera system — follow camera with smooth interpolation
| Tool | Version |
|---|---|
| Unity | 2022.3.43f1 LTS |
| C# | .NET Standard 2.1 |
| Unity URP | Universal Render Pipeline |
| Git | Version control via GitHub |
- Unity Hub with Unity 2022.3.43f1 LTS installed
- Git
git clone https://github.com/All-Missing/COMP602_Project10_New.git- Open Unity Hub → click Add → navigate to the cloned folder
- Select the
COMP602_Project10_Newfolder and open the project - Inside the project, locate and launch
ClimbGameto play
Tip: The
Releasebranch contains the final, submission-ready build.
git clone https://github.com/All-Missing/COMP602_Project10_New.git- Open Unity Hub → Add → select the
Project10folder - Unity will import all assets automatically
- Open the main scene and press Play in the editor
COMP602_Project10_New/
└── Project10/
├── Assets/
│ ├── Scripts/ # C# game logic (player controller, state machine, camera)
│ ├── Scenes/ # Unity scenes
│ ├── Prefabs/ # Reusable game objects
│ └── Materials/ # URP materials and shaders
├── .gitignore
└── .gitattributes
State Machine (C#)
Player behaviour is managed through a finite state machine. Each state (Idle, Running, Jumping, Climbing, Falling) encapsulates its own input handling, physics interactions, and transition conditions — keeping game logic clean and extensible.
Collision & Physics
Surface detection uses Unity's Physics.Raycast and CharacterController to distinguish ground, walls, and climbable surfaces, enabling context-sensitive responses without hardcoding per-object logic.
- Main branch: development history (157 commits, 9 branches)
- Release branch: final submitted build
Josh Ma — github.com/All-Missing
Bachelor of Computer and Information Sciences (BCIS), AUT — Major: Software Development