Skip to main content

Personal Projects

 

Action Combat (Untitled)

Hack-N-Slash, 3rd Person 

I've always a fan of the fast-paced or soulslike action combat genre, such as Nier Automata, Sekiro, Omnimusha, etc. In my free time, I've documented ideas and formed this GDD. I did this to upskill and challange myself to branch out as a generalist game designer role. The project is Sci-Fi themed, the player switches between melee and range weapon in the combat loop. The prototype is built in Unreal Engine 5 with visual scripting. 

Health & Guard Components

I created health and guard as Components so that it may reused by the enemies. The health component take care the initialization of the owner's max health, health damage and death events that I could set on the owner. In player's case, the death event would trigger the ragdoll sequence. 

Attack Combo

To prototype a simple 4-hit combo (Light, Light, Heavy, Gun), I hardcoded the combo flow by referencing appropriate combo index with Branch statements (IFs), player is unable to chain the combo with a wrong input, and finally the combo progress resets itself via a retriggerable delay. 


Gun Attack
I use in-game time to timed to get latest guard timing and compared it with the defined Perfect Block value, when succesfully executed it plays a sound and spawn a vfx as feedback, otherwise it prints debug text of "Normal Block" or "No Block". 


Perfect Guard
I use in-game time to timed to get latest guard timing and compared it with the defined Perfect Block value, when succesfully executed it plays a sound and spawn a vfx as feedback, otherwise it prints debug text of "Normal Block" or "No Block". 


Melee Enemy Weakpoint

Based on the GDD, melee enemy's leg weakpoint exploitation turns into a melee follow-up opportunity. This is achieved via Timeline to smoothly interpolate enemy's current position towards the player's coordinate. 
The center core weakpoint act as a bomb that deals a radial damage when destroyed. This is easily implemented with the Radial Damage node, in the future this will be concealed and only reveals itself when the fire debuff requirement is met. 


The enemy's movement and attack behaviour will be temporarily suspended when the "IsStunned" blackboard key is set to true. As per the attached screenshot, the current enemy behaviour tree performs simple actions such as always look, chase and attack the player. The current behaviour tree is sufficient to test and verify the combat loop. 


Preview: 
Video Preview

Iterative Systems Design: Solving the 'Dead Turn' in Tactical Combat

Goal: To achieve fast-pace combat action experience in analog encounter. 

Problem:
Traditional dice roll "Misses" outcome amplifies percieved frustration in an analog high-density combat encounter scenario. 

Solution: Momentum System offloads the dice roll RNG "Misses" to execution-based.  

Result: Cleared 22-enemies encounter in average 9 turns (60% faster).

Technical Documentation: 


Interactive Demo: 

Oddesy Of Phoenix

You play as exiled prince Kyle that are falsely charged with treason by his own brother for the rights to the throne. After survived an attempt assassination, Kyle must find a way back to his planet, assemble an army and confront his betrayer. 


Platform
PC

Engine
UNITY

Team Size
4

Tool Used
Level design: Tiled, Adobe Photoshop
Documentation: Google Docs

Project Duration & Completion
4 Months (July 2016)

Project Role
Level design
Game mechanic & system design
Dialogue writer 
Monsters & boss design

Development Details

World A

For world A, player are required to visit the same dungeon quite frequently to gather crafting resources and head back to safe house to craft quest items, pretty much sums up the first world progression loop. I start off by sketch out the placement of several dungeons, safe house and crafting resources on a piece of paper in a form of a world map.

The idea of the world map is to allow player to quickly and easily navigate between dungeons and the safe house which is the key location of accepting and completing quests.

After finished lay out the placement of dungeons, placeholder names were given to the dungeons to help me sort out the lists for art assets, monsters design, background music and level design.

After I created the documents for the lists, discussion between me and the team to sort out the must have, good to have and nice to have. After the lists been green light by the team, I move on to the level design of the individual dungeon while the artist prepare the necessary tile sets for the world A.



Dungeon layout with Photoshop
Legend of the map layout

I start design my dungeon level layout with Adobe Photoshop. I found it very easy to design with Photoshop since the game is a top down view, I can quickly lay out the map of the dungeon using lines and colours to label different things in the map and present my level prototype in a format of jpeg.

After finish level prototyping, I began to implement my design with provided tile sets into a software call Tiled. Tiled allow me to easily create all the map design related stuff, albeit sometimes it could be very annoying to get used to the program at first but once I get used to the settings and functions, the overall work flow are much more efficient afterwards.

Bandit cave dungeon map
Bandit Cave with props 

The next phase of my part was to come out with monsters, bosses and quests that fits the theme of the dungeon. I create a document detailing monster name, behaviour and stats and proceed have a discussion with my team programmer to lock down the monster behaviour.

World A map
I began to work on the world A world map while my team working on the dungeons and monster related stuff. I basically just try to bring my paper sketch world map prototype with Tiled into an actual world map, well at least as close as it could be.

World B

World B represent a step forward for story progression, as player's main objective in this world B is to recruit 4 types of army representative. Each representative will demand some resources as a form of payment which player are require to travel back to World A to gather.

World B map
Main reason to reuse back World A dungeon instead of creating new dungeon for army recruitment is due to the amount of time we had vs. the overall progression of the project but world B will still have its own world map for representative's house and final dungeon.


Above dialogue is where player received their first quest in the game and in case player skip over the dialogue too fast, player still can re-engage conversation with the NPC for the quest location.

As for dialogue writing this will be the second time I wrote a dialogue for the entire game, first time being an assignment from my game design course. My dialogue writing mostly reflects on the types of book that I read, namely light novels with the mix of comedy. My dialogues contains clues or hints for quests so I kept my dialogue as simple and straightforward as possible to the player. Follow the link for dialogue document at here.

Crystal Forest themed battlefield

Abandoned Warehouse themed battlefield

Bandit Cave themed battlefield

Underground Mine themed battlefield

I also designed some simple battlefield for the army fighting simulation to represent each dungeons with distinct props. The entire battle will be just loading a scene instead of player control it to keep the game within the budget of time.

The final dungeons are basically consists of  4 dungeon boss room only this time with castle theme tile set to go with it, afterwards is just to come out with both intro and ending scene and perform QA testing for game mechanics, balancing and art assets. Testing feedback documents can be view here and here.

Popular posts from this blog

My Portfolio

Cyberpunk 2077: Phantom Liberty Open World, Action Adventure RPG I  designed the Combat Encounter, AI Behaviors, Weapon Progression and Score System for a high-lethality 2D run-n-gun arcarde experience for Cyberpunk 2077: Phantom Liberty. I also le d a team of 3 programmers as the project's lead game designer.  Role: System, Combat, Encounter, Level Designer  Key Results:   Successfully design, intergrate an old school contra style, high-lethality 2D run-n-gun arcade experience for the modern audience. Designed high-lethality 2D combat zones where survival and scoring are tethered to spatial mastery and exploiting weapon-swapping by matching specific weapon trajectories.  Aggresive enemy placement that persistently challanges player's spatial awareness with constant positioning. Mitigate frustration with controlled placements of fixed powerups (1up, weeapon upgrade) that balance randomness vs predictabiltiy while keeping the high lethality tensio...