Horizon: The Battle Begins!
In this Action-Adventure Open World RPG, follow the story of a young boy who, against all odds, fights back against the Evil Nexus Corp to free what was once his home.

Team: Solo Project
Role: Game & Level Designer, Programmer, 3D Animator, UI/UX Designer
Timeline: October 2021 – December 2021 (8 Weeks)
Tools Used: Unity Engine (C#), Adobe Photoshop, Mixamo, Sketchfab
Platform: PC
Project Goals
1. Creating an immersive open world.
2. Programming an AI system for player detection via line of sight and incorporating IK mechanics.
3. Designing voice-over cutscenes for an enjoyable single-player experience.
4. Encompassing a visually and functionally polished experience.


Gameplay
Level Design

Core Design Challenges
Early in the project, there were many level design hurdles that I had to overcome in order to make a compelling level for a massive open world experience. The core challenges included:

1. Creating an intuitive and thrilling open world experience. (Optimization issues)
2. Integrating cutscenes into gameplay. (Animation issues)
3. Adding mini puzzles and side missions.​​​​​​​​​​​​​​
How did I tackle these challenges? 
1. I added elements like motion blur and occlusion culling to the camera to optimize the performance and maintain a smooth frame rate.
2. I created animations from scratch for the cutscenes to look more authentic.
3. I added interactive props to the game world, like destructible objects and ladders.
Top-Down Map

Environment Design

Game Design

Core Mechanics
1. Traversal
One of the main goals of the design was to give the player a set of movement-related mechanics that they could use to move around the world. Some of which include: 
1. Vaulting
2. Climbing
3. Sprinting

The player can also traverse the open world by unlocking vehicles in-game. To save game progress, players can easily use the pause menu to either save their current game or load back to a previous checkpoint.
2. Cut Scenes
I have created several cinematics in the game that are voice-acted by me to add an extra layer of emotion to the game. The game progresses further with the help of these scenes.
3. Combat
During the early stages of the prototype, the player had to engage and kill enemy AI. Combat mechanics include basic light and heavy sword attacks, which can later be upgraded to deal more damage. This often lead to the game feeling repetitive and slow-paced. So, I added an auto-targeting system like the ones in the Batman Arkham and Spider-Man games. After killing an enemy, the player would switch targets and jump to the next one.
I also added a magic skill tree, where the player could use magic points to set enemies on fire or use special takedowns. The player could regenerate his health either through campfires or med kits and potions available through loot or the item shop​​​​​​​
4. AI/NPC
There are 3 types of AI in-game:
1. Companion
Help the player by giving him information on enemy locations.
2. Enemy Bots
Attack the player when he is in line of sight and chase him. They defend themselves when attacked by stepping away from the player.
3. Crowd
Spawn automatically in the open world and walk along certain paths. They run away when they detect danger around them.
Coding
I've programmed all the code for the game, including the player, the AI for the crowd and enemies, the save system, and more. The enemy AI works on a line-of-sight algorithm through Ray Cast, in which the player would be attacked if he entered the enemy's vision. I programmed the AI with IK mechanics so that when they shoot, their guns would be aimed towards the player based on his location. The crowd is programmed to travel to random points around their chosen area using a simple goal waypoint code. To reduce the number of game objects in the scene, I coded an algorithm to hide objects if the player’s distance from that object is greater than his field of view. I also had a player use an auto-target system during combat mechanics, which was done through a lerping system in C# in which the player would lerp to the next enemy each time he killed one.
UI/UX Design

The Basics
I added a minimap for easy navigation, as well as graphics settings in the pause menu to change the resolution of the game. 
The player can check where and how far he will have to go for the next mission using the orange navigation icon onscreen.

UI Motion Design
Outcomes

What did I learn?
1. Using the Unity Engine to create an optimized open world game.
2. Creating in-game cutscenes with full voice acting.
3. Developing an inventory system.
4. Implementing IK mechanics into AI/NPC.
5. Save and load the game.

You may also like

Back to Top