top of page
Ember Point is a combat-focused, third-person action game. Play as a disgraced defector from a militaristic mega-corporation, Gravitus, who is stuck cleaning up the terrible mess his former employers left behind — all while wielding a top-secret “cure” for a gruesome disease. I am the combat, enemy designer, and gameplay programmer on this. It is also my college capstone project.
Platform | PC Engine | Unreal Engine 5 Duration | Sept 2022 - May 2023 Team Size | 11
Playtime | 10 Minutes Download | Link Roles | Combat & Enemy Designer, Programmer
Led the design and implementation of gunplay, melee combat, cinematic executions, and camera behavior using animation montages and Unreal Blueprint.
Took ownership of Vulkan boss battle implementation and designed all close and long-range attacks.
Designed and scripted all enemy archetypes and behaviors in collaboration with level designers to create intense encounters.
Adjusted various attack animations to match combat's theme and tone in-engine by focusing on frame data.
Prototyped a system that detects the direction of player attacks, and hit-stop values for responsive directional enemy hit reactions.
Designed and implemented wave gun from concept to completion.
Collaborated with the audio designer on player and enemy attack sounds.
PROTOTYPING AND IMPLEMENTING THE WAVE GUN.
I was responsible for implementing all gunplay and melee combat, so let's get into the nitty-gritty. The wave gun has two firing modes: a heat bullet and a wave bullet. Many factors must be considered to ensure we are nailing our game feel for the wave gun in general: aiming, distance, and damage values.
Let's start with aiming; one of the essential factors behind well-designed ranged combat is user experience. Usually, third-person shooters have a UI reticle in the middle of the screen — many games like Gears of War and Uncharted use this approach. However, while in aiming mode, Ember Point takes inspiration from Resident Evil 4's laser sight, accompanied by Dead Space's movement system. Part of what makes Resident Evil 4 scary is the field of view on aim; it is so close that Leon's head and weapons obstruct most of the screen's boundaries, leaving players unaware of their surroundings, adding that with Dead Space's ADS movement gives leeway for players to distance themselves from enemies since they move tremendously quick in our game.
Wave Gun Actor
Aim Animation with re-edit bones in-engine
The Wave gun is a separate actor created with its logic. It contains a cylinder component with an emissive material to imitate a laser and an end-point particle. The end-point's location is determined by a ray cast which fires every frame and will translate at the site where the ray cast has been hit. Therefore, the end-point will constantly reposition itself wherever the ray cast hits. The wave gun actor is attached to our player character's hand socket as a child component and is rotated or translated to our liking to match our game feel goals. Since our wave gun is attached to the hand socket of our player character's skeleton, I realized it was essential to also edit our aiming animation's spine bone in-engine to match the position of our laser sight to be in the center of the screen.
Our intended target audience for Ember Point is fans of third-person action games like God of War and horror shooters like Resident Evil 4 or Dead Space. Still, we needed to offer accessible gameplay features to audiences interested in these genres but have never played them. I had to consider that some beginners might have difficulties dealing with enemies. I programmed an aim assist and implemented a large collider sphere so bullet shots could still be detected slightly out of bounds. The aim assist uses the raycast logic I discussed previously but will snap to the target depending on whether or not it hits the collider sphere for a specific duration; the collider sphere is essential since it also makes shooting enemies a bit easier since they move pretty quickly. After implementation, I focused on making sure things felt accessible, and easy to use.
Now let's get into the distance and damage values; since I was also responsible for programming the gameplay, I did my best to create highly versatile tools for both the wave gun's projectiles -- the heat bullet and the wave bullet. Our gunplay values are all driven by editable variables in our player character, and they help us control many factors that drive the heat bullet's behavior and feel. The values control the following:
The bullet's radius. (we are using a spherical and elongated ray cast to have more lenient hit windows)
Shot length (to what extent should our shot's distance be?)
Cooldown (how repeatable is it per x seconds)
Ammo loss amount
When initially testing these values, many playtesters didn't bother using the heat bullet of the wave gun since it wasn't inflicting enough damage on enemies. So we had to consider making bullet shots stronger, longer, quicker, and more costly on the player's energy meter.
MORE INFO COMING SOON
I'm working hard on polishing melee combat and enemy AI. I'll add additional documentation to this page regarding these two critical areas. I thought I would write down how I implemented the wave gun and its overall aiming properties since this was my first time working on gunplay.
bottom of page