Summary


Game Description

Bardo is an action-adventure game that takes place in the realm between life and death. Explore the fantastical, shattered world of your own mind by gliding through the sky to reach floating islands and faraway vistas. Overcome your inner demons as they threaten to prevent your ascent back to the world of the living.

The Deliverable

For this school project, our team was assigned a visual arts concept from the previous school block. The concept included concepts for the environment, characters, visual effects, and more.

Our goal was to use this concept and create a game demo. So, we were tasked with conceptualizing, producing, and releasing the game within 8 weeks.

Project Information

  • Engine:
    Unreal Engine 5

  • Platform:
    Windows (PC)

  • Genre:
    Action-Adventure

  • Release Date:
    June 2024

  • Context:
    University Project

  • Project Duration:
    8 Weeks

  • Team Size:
    22 people

  • Deliverable:
    Game Demo

Responsibilities


Project Role

In this project, I worked as a Technical and Systems Designer, focusing on designing the Combat of the game.


I also helped as a general Game Designer, concepting the game, brainstorming ideas and playtesting.

Contributions

  • Designing and implementing the player combat system which includes:

    • Melee and Ranged Attacks

    • Aim Assist mechanic

    • Bullet Time mechanic

  • Creating the combat animation system which includes:

    • Input Buffering mechanic

    • Smooth Animation Transitioning

    • Aim Offset

    • Animation Flagging

  • Implementing the combat animations

  • Playtesting the combat and iterating.

  • Interfacing with Animators on the requirements for the combat animations.

  • Interfacing with Enemy Designers about the interactions with the player.

Process


The Concept

With the visual style and environment we chose, the scope for the game seemed to be quite big. So, our biggest challenge was trying to keep a reasonable scope as we only had 8 weeks to develop the game.

We decided that our game would focus on gliding through the world while fighting enemies to reach the top and defeat the boss enemy.

Our Game Design Pillars were Action-Adventure gameplay, which could be found in the platforming and gliding, A Shattered World, which could be seen in the environment and Inner Demons you had to conquer using combat.


Player Combat System

Summary:

  • Goal: Design and create the player combat for Bardo.

  • Design Shift: The combat system transitioned from melee to primarily ranged to reduce animation complexity and workload.

  • Implementation: Created the foundation for the melee attacks and shifted to making ranged projectile attacks with aim assist and bullet time for better precision and more control.

  • Result: Seamless combat integrated with gliding, which was easy for players to learn and enabled showcasing the world.

Situation:

For this project, the visual concept featured a character wielding a katana-like sword, implying that the character would engage in combat within the game. The team decided that we would have some form of combat in the game, and since I had a lot of interest in combat, I became in charge of the combat design. Due to our team only having 2 animators, we had a limited budget for animations. This presented a unique challenge as we wanted to create an experience in which combat is tied to our core gliding mechanic.

Task:

My main task was to design and implement the player's combat system while keeping it low scope. After analyzing the visual concept and considering our animation constraints, we shifted towards a primarily ranged combat system. This reduced the demand for complex animations and still allowed us to create a dynamic experience. I had to create the ranged combat system, including different shooting modes, aiming mechanics and interactions with the environment.

Action:

To achieve this, I first made the foundation for melee combat, creating hitboxes and scripting damage and knockback interactions. After we shifted towards a game revolving around gliding, I focused on making ranged attacks for the player. I created the sword projectiles and added some aim assist after getting playtesting feedback that the sword beams were hard to aim. This made it easier to lock onto targets. I also added 2 different shooting methods, free aim and zoomed aiming. When using the zoomed aim in mid-air, the player enters bullet time, which is another mechanic I implemented to provide the player with more control and precision.

Result:

As a result, the player combat was seamlessly integrated with the core gliding mechanic. Players were able to engage in combat while gliding through the level, defeating enemies and activating interactive crystals. The aim assist and zoomed aiming mechanics provided players with subtle aid, which was especially beneficial to controller users. The combat remained quite simple as the game is only a demo, and new players already have the challenge of learning how to glide and attack. This also enabled the goal of showing off the world and assets that the visual art students made, as the gameplay was a bit more laid back.

One regret however is the fact that due to the lack of time, I wasn’t able to polish the combat with more visual feedback to enhance the game feel.


Combat animation System

Summary:

  • Challenge: Implement dynamic combat animations with limited animator support and no dedicated animation programmer.

  • Task: Develop a modular animation system with input buffering, easy animation swapping, and aim offset functionality.

  • Implementation: Reworked my Melee Combat Animation Toolkit system, integrating ranged attack timing, parameter data tables, aim offset, and smooth state transitions.

  • Result: Achieved consistent, bug-free animations and intuitive attack combos, allowing animators to focus on artistic creation and enabling rapid iteration.

Situation:

As our team only consisted of 2 Animators and we didn’t have any specific programmers in charge of the technical side of animations, I was in charge of the technical side of the combat animations. The slashing animations had to be dynamic enough to work while being idle, walking, jumping and gliding. I also wanted the player to have multiple attacks, which could be used in succession like a combo. So, I was challenged to make a system that would keep the animations coherent in different states while keeping the attacks easy to use.

Task:

My task was to create an animation system that allowed multiple animations to flow into each other while buffering player inputs so that the attack combos smoothly transitioned into one another. The system also had to be modular enough to switch out placeholder animations with the final animations easily. I also had to create the aim offset for the player since aiming was involved with the ranged attacks, and the character had to look at where they were aiming so everything would stay visually coherent.

Action:

To achieve this, I used my Melee Combat Animation Toolkit as a base and built upon it to create an animation system that fits this project. I converted the system to incorporate the ranged sword beam attacks so that the beam would leave the sword at the correct time, using animation notifiers. I also made the system modular by creating a custom data table in which values like damage, stun and knockback could be tweaked. I created the aim offset by editing idle poses made by the animators and tying them to the direction the player looked at with the camera. Other than that, I ensured that animations would blend correctly while running, flying and idle by adjusting the animation blueprint to only animate the upper body while running and flying.

Result:

As a result, this animation system ensured that there were no inconsistencies or visual bugs in the animations and that the attack would feel natural and easy to use for the players. I achieved this with little help from the animators on the technical side so they could fully focus on making the animations. As for the backend, this system also allowed for quick iterations and prototyping. Placeholder animations could easily be replaced with new ones without needing to rework any of the code.

Takeaways


Huge Scope = Less polish

One major takeaway is that the bigger the scope, the less time you will have to polish aspects of the game. With the 8 weeks we had, we managed to make a content-complete demo but lacked some overall polish and game feel that could’ve enhanced the overall gameplay experience. If he had 2 more weeks of development time, I think the result could’ve been much better.

Alignment is key

Another thing I noticed was how once the team was somewhat aligned on the concept, we were able to work much more efficiently. If you need to keep explaining the concept to team members, a lot of time will be lost and they might deliver work that is not aligned with the rest. We were able to align rather quickly and come to mutual agreements, which sped up the development process a ton.

Next
Next

Melee Combat Toolkit