Bone Hunter is a 2D platformer action RPG game in a medieval fantasy-devastated world. In a world swallowed by despair, players embody a lone hunter courageously battling against malevolent forces, determined to vanquish the darkness and restore order.

Amidst an atmosphere of tension, players explore immersive maps, skillfully switching between weapons using a weapon wheel. They strategically assemble their favorite weapon combos to unleash powerful attacks, overcoming formidable enemies.

engineering

technical design

DOWNLOAD


ROLE

Lead Programmer

Game Designer

Technical Artist

DURATION

01/2024 - Present

TEAM

25

TOOL USED

Unity | P4v | C# | Confluence| Hansoft


Humans will never lose their hope, even if they fall into deep despair ✦

Humans will never lose their hope, even if they fall into deep despair ✦

overview

 

As the project's lead technical designer and programmer, my primary role involved taking over the codebase from the previous development team. I comprehensively understood the game's coding logic and framework, ensuring that every technical team member knew how to access the parts of the code they needed to work on. This enabled the integration of new combat mechanics and enemies into the game.

Through communication with the previous programming team and collaboration with animators and technical artists, I program these concepts into functional game systems with my technical group. I worked closely with the team to ensure a seamless integration of these mechanics, while perfectly capturing the artistic vision of the animators and VFX designers.

My responsibilities extended beyond coding. Leveraging my keen sense for action feedback design, I aimed to refine and enhance the overall gaming experience, focusing on a smooth, satisfying combat feel and exhilaration.

Responsibilities

  • Enemy AI

    • Fire Knight AI

  • UI Programming

    • Weapon Wheel

    • Player HUD

  • Combat System

    • Shotgun Weapon

    • Attack Combo

    • Attack Feedback

technical design

enemies ai

Shotgun weapon

Following the AI logic loop outlined by the game designer, I have successfully implemented its running logic within the animation state machine.

Skill 1: Strike

Trigger: when the player is close to the enemy

Strike downwards with a long spear to attack the target in front.

Skill 2: Dash Attack

Trigger: When the player enters the Dash Range

Sprint, charge forward rapidly. Dash attack: It features three phases of damage—at the start, during, and at the end of the dash.

Skill3: Sweep

Trigger: when a player is behind the enemy and in the Sweep Range

Sweep horizontally, turn around, and cause damage and knockback to the surroundings (left and right).

Defining States: For each state identified in the planning phase, create corresponding states in the unity.

Configuring Transitions: Set up the transitions between states, specifying the conditions under which these transitions happen.

Linking to AI Control: Ensure the animation state machine is responsive to the game's control system. For instance, when AI does the melee attack, the fire knight should transition to the "melee attack" state.

fire knight ai

Mini Boss with three different type of attack

Player combat & interaction controller

Shotgun weapon

To accommodate both controller types, the Unity Input System's action mapping feature is utilized, providing a flexible framework that translates player inputs into game actions.

This system not only simplifies the integration of diverse control schemes but also ensures that the game's interactive elements are accessible and responsive.

In the development of our game, which supports both keyboard and gamepad inputs, we've leveraged the Unity Input System to ensure seamless compatibility across both controller types.

This approach allows for an inclusive gaming experience, accommodating players' preferred control methods. Within the technical documentation for the player controller, actions are meticulously categorized into 3 primary groups to cover the game's full range of interactions:

  1. Movement

  2. Attack

  3. Interaction

engineering

combat Feature

parry attack + metal fatigue

Record the number of attacks to unleash the corresponding combo attack animation.

Activate bullet time when opening the weapon wheel, and deactivate bullet time after successfully switching weapons.

combo system + weapon wheel

attack movement

When the player attacks while pressing the move key, the combo allows for player displacement.

Additionally, the displacement parameters are attached to the animation, ensuring a perfect match with the animation actions.

To enhance the combat experience, I've incorporated the following feedback mechanisms:

Special SFX: When players hit an enemy, a special sound effect is played.

The enemy gets hit VFX: Enemies flash with a white light effect upon being struck.

Camera shake: player attacks cause varying degrees of camera shake (lighter with light weapons, heavier with heavy weapons).

Successful parry effect: a successful parry of an enemy's attack triggers special VFX and sound effects.

Dead enemy’s particle effect: When players defeat an enemy, the enemy's body explodes into a large amount of blood plasma with a physics-based particle effect.

combat feedback

After attacking a certain number of times, the player's current weapon enters a state of metal fatigue, significantly reducing the attack speed.

At this point, players can parry enemy attacks by switching weapons at the right moment, thereby restoring the metal fatigue value of all weapons.

HUD

weapon wheel ui

UI /UX

choose character ui