Team of 26
Unreal Engine 4
June 2020 - December 2021
Cyrah's Ascent is a third-person-action game, completed by team Coffee Break for the DigiPen Institute of Technology's GAM300, GAM350, and GAM375 courses.
I worked on Cyrah's Ascent as a gameplay designer, system designer, technical designer, UX designer, level designer, and creative director. My focus was on gameplay first and foremost, implementing mechanics and iterating upon them based on feedback.
I worked on team Coffee Break from June 2020 until December 2021, with the majority of our work and collaboration taking place remotely due to the COVID-19 pandemic.
Unreal Engine 4
I wanted to create a unique yet familiar 3D action game that is accessible and enjoyable in the roughly
15-minute timeframe we were allowed, and I strove for an impressive and inspiring game to help break into the games industry.
Prototyped gameplay concepts in Unreal Engine 4.
Designed core gameplay loop.
Focused on providing options for a variety of player archetypes.
Prioritized a simple and straight-forward combat game.
Tuned player movement.
Balanced stats across the whole game.
Designed and outlined behaviors to make implementation smoother.
Communicated with producers and leads.
Adjusted designs to lower scope when necessary.
Communicated with department leads about assets and implementation.
Designed and implemented the settings and accessibility options(not including UI).
Environment desaturation and adjustable colored outlines.
Oversaw large development decisions as Creative Director.
Maintained the project vision.
Assisted in modifying the overall level layout to work better for all disciplines.
Assisted the Tech team with implementation, iteration, and bug-fixes.
Created and modified tools to be used by the Art team.
A short-range flamethrower-like attack that does medium-high damage and applies a Burn effect to targets that damages them over time.
Energy Stream was created to fill the spot of close-range ranged combat in the player's arsenal. We were looking to split the player's abilities between three main ranged spells, each covering a different range and playstyle. Energy Stream was meant to fit in the space of high-risk high-reward as it puts the player closer to enemies and more likely to be damaged by them. We also wanted it to act as a useful defensive tool for players who prefer to play at longer ranges, allowing them to deal with close threats quickly.
The burn effect affords more strategies in encounters such as torching a group of enemies with it to apply the burn effect to tick their health down while pelting them with other damage. Energy Stream's high DPS is balanced by putting the player at risk of enemy melee attacks as it is a close-range ability.
The main aspects of the Energy Stream that were tuned to create the feel that we wanted were the projectile's speed, lifetime, quantity, damage, and spread, as well as the energy cost per projectile. I'd prototyped the original behavior before passing my prototype to the Tech Team who built it in a more modular way so that eventually spells could be created easily using the same base Actor Component. There were many times throughout the process where I would request the Tech team expose a variable for me to edit, or with their permission go into the Blueprint and expose it myself.
As the player fantasy for this project is Power and Skill, Energy Stream fits nicely within the fantasy as it helps the player feel powerful and it requires deliberate movement and evasion in order to use safely, tapping the Skill aspect of the player fantasy.
Energy Stream was balanced differently against each enemy type to encourage or discourage it's use, depending on the foe. In any case it's use is afforded although not always optimal.
For regular-sized Reapers, it is decently strong as they are always trying to get in close with the player, and the damage they take from Energy Stream is un-modified.
For Spitters, it is the weakest spell as Spitters not only attack from range and hide when the player gets close enough, the Spitters also take slightly reduced damage from the Energy Stream to discourage this heuristic.
For Elder Reapers it is the strongest spell, as it deals increased damage to them, including the burn effect. This is meant to encourage players to get in close with the Elder Reaper in order to dispatch them quicker.
A medium-range arcing medium damage explosive projectile that detonates after a short fuse time once contacting a surface, and on contact with targets. The explosion can destroy glowing rock piles, clearing a path.
Orb Launch was created to cover Cyrah's mid-range combat abilities. With a focused AoE explosion, Orb Launch was intended to be able to deal with both single targets and grouped-up enemies. Orb Launch is the most generalist of the three spells, as it is can be used anywhere between close and medium-to-long ranges, deals medium damage and can damage multiple targets at once. The benefit to this generalist ability is that it helps bridge the gap between the other two spells in both range-coverage and by being a low-risk medium-reward option (I won't say low-reward, as it does decent damage). And we wanted players to feel like they had a "safe" option to default to, if they felt they were taking too many risks with the other spells.
There were many iterations where Orb Launch did decent damage to the player if they were caught in the blast, and although this was a way to solve the issue of some players spamming orbs at close-range without risk, it introduced more problems than it solved as players were confused as to how they'd been hurt and occasionally accidentally died to their own orb explosion.
Instead, to solve the issue of close-range orb spam, not only was the blast radius reduced, but the delay between throwing orbs was increased to make it more likely for the player to take damage from enemies when attempting to spam Orb Launch at close range. We also added a slight camera zoom for Orb Launch in order to encourage its use in mid-range engagements.
Orb Launch is also the only ability that retained its environmental interaction, as I had proposed that we use environmental interactions to give players a chance to test out each spell before their first enemy encounter. (Essentially just Environmental Tutorialization) Orb Launch having the ability to break glowing rock walls was also considered to be a way to teach the player about specific enemy weaknesses, as we'd considered enemies with "rock armor" or to be coming out of breakable pots in the environment, but we couldn't follow through on those ideas due to scope constraints.
Much like Energy Stream, the main aspects of the Orb Launch that I spent a lot of time tuning were the energy cost, projectile speed, projectile lifetime, projectile damage, projectile spread, but also the blast radius. It also had a slight grace/coyote collider with how it would contact enemies, decreasing the chance of near misses that feel unfair for players.
For the Power and Skill player fantasy, Orb Launch makes the player feel powerful mechanically, as well as through audio and visuals, reinforced by its ability to destroy rock walls in the player's path. And it requires skill with timing and projectile placement.
Like the other spells, Orb Launch was also balanced differently against each enemy type in order to encourage or discourage it's use in specific situations.
For regular-sized Reapers, it is decently strong as they move between close and mid-range, and often form into groups while pursuing the player.
For Spitters, it can instantly kill them if shot at their head, as Spitters will swallow the orb and it will explode inside them. When the orb doesn't contact a Spitter's head and damages them via the explosion, the damage is rather low.
For Elder Reapers it is the weakest spell, as it deals decreased damage to them and doesn't gain the bonus of crowd control in the instances where the player engages Elder Reapers. This is meant to dissuade it's use against Elder Reapers while still allowing it, encouraging the use of the Energy Stream instead.
A long-range projectile that does damage based on how long it is charged up by the player, ranging from low to high.
Javelin Throw was created to be Cyrah's main long-range ability. Using Javelin Throw requires an investment by the player as the spell needs to be charged up, as the longer it is charged the higher the damage gets. Javelin Throw also encourages target prioritization, being the only spell that deals heavy damage to a single target at a time. We created Javelin Throw specifically to cover the long-range engagements that the player would find themselves in and puts them at slight risk when using it near a large group of enemies. Javelin Throw was also intended to appeal to the "sniper" player archetype, players who like sticking to the edge of combat and dealing with enemies before they can get close.
The aspect of Javelin Throw that keeps it balanced is the charge up, it keeps the DPS closer to the Orb Launch and Energy Stream, while allowing it to have high burst damage to dispatch targets in one or two shots depending on the amount the player has charged it.
For over half of development, the player's long-range spell was either Beam Shot or Piercing Beam a spell that worked more as a hitscan laser beam with the same charge effect except with the ability to pierce enemies. Although this was engaging, it was quite difficult to balance and was often preferred by players as they could deal with ranged and melee enemies simultaneously with relative ease. It also didn't fit very well with the game's narrative theme, as it was an abstract effect. We shifted to the singular target Javelin Throw to ground the narrative of the spell to something more believable for Cyrah to perform and resolve the balance issues introduced by the previously implemented piercing effect.
Different from the other spells, the main tuned aspects of Javelin Throw were the energy cost, charge time, projectile speed, and projectile damage. The damage had to be for both minimum and maximum damage, as the spell has variable damage depending on the amount charged.
Like the preceding spells, Javelin Throw was also balanced differently per enemy type to encourage or discourage its use depending on the situation.
For regular-sized Reapers, it deals heavy damage to singular targets, but falls short with groups of enemies.
For Spitters, it is a strong choice as it is the spell with the most range.
For Elder Reapers, it deals decreased damage, but more so than Orb Launch, this is meant to discourage the player from chipping down the Elder Reapers from a distance, but it still affords that heuristic.
A series of close-range melee attacks, there are three different attacks in a sequential melee attack chain. The first is a close-range sweep in front of the player, the second is a spin that hits targets in close-range around the player, the third is a slam down in front of the player which has decent knockback. Each attack in the sequence does more damage than the last.
A quick healing ability that increases the player's health. Can be used occasionally alongside the passive healing to keep the player topped off, the player can also use it to quickly heal more health.
Cyrah's Melee Attacks were meant to cover the player at close range when they're out of energy, as more of a defensive ability to keep enemies away with knockback or to keep damaging enemies when out of energy. We'd determined this due to playtesting, as players felt a down in engagement when waiting for their energy to regen and those were moments that we weren't wanting any downtime. Early on, the Melee Attacks were also tested as being THE way that players regained energy, where damaging enemies with the Melee Attacks would grant the player energy to be able to damage them with the more powerful ranged spells. This was shifted away from due to it creating unwanted heuristics, but I do think it was very valuable to have tested it in as many iterations as we did.
Implementing and balancing melee attacks was simpler on paper than it ended up in practice. I prototyped it to see if could work as an engaging solution to the issue, discussing with both the art and Tech Teams to see how they felt about it. The Art Team was intrigued by it but felt that it could add too much scope, whereas the tech team was less concerned, but it turned out to be more of a struggle on the tech side due to the player's animation blueprint needing an overhaul. Due to these factors, Melee sat on the cutting block several times before the project was finished.
Unique unto itself, Melee was tuned in very different ways compared to the other spells. The main aspects tuned were damage, super-armor damage, collider range, knockback, and, most importantly, animation speed and motion. I was in close contact with the Art Team and animators on the team in order to communicate the desired speed of the attacks, as well as the motion. Motion in this case is how the player's glaive/swordspear moves, as it impacts where the damage can be applied around the player.
For the Power and Skill player fantasy, Melee is one of the most powerful feeling abilities in the game, and requires skill to use, knowing when to attack once, twice or three times, and to evade enemy attacks before dishing out damage.
The balance of Melee attacks for the different enemy types, it goes mostly unmodified in terms of damage, but the shapes of the attacks and damage reach are the main ways that Melee's effectiveness differs per enemy.
For regular-sized Reapers, it can pretty easily deal with both singular targets and small groups of enemies. It loses effectiveness with really large groups.
For Spitters, it is incredible hard to hit them with it as we never did aerial attacks for it as we wanted to encourage players to use the spells, so it is pretty ineffective against Spitters.
For Elder Reapers, it deals decent damage, unmodified, as it's use is meant to be encouraged with the Energy Stream. Although it puts the player at risk with the powerful attacks of the Elder Reapers.
We chose to have a heal to force the player to make more deliberate choices about when to protect themselves and when to dish out damage, as healing pulls from the same pool of energy as attacking. It is worth noting that early on in the project, I'd suggested we use a 4-section segmented health bar with the player's health regenning up to the top of the current segment after a delay.
The segmented healthbar affords the player healing into the next segment and avoiding damage allowing the regen to take over healing, in order to minimize energy use and time invested in healing.
Healing didn't change significantly over the course of development functionally, but it was tuned via the rate healed, the energy cost, and amount that movement was stifled.
For the Power and Skill player fantasy, although healing itself isn't necessarily powerful, the fact that Cyrah regens health within a section of the healthbar helps her feel tougher, and in terms of skill, as it is an animation that you can move while performing, it allows the player to heal in the middle of combat while evading incoming attacks.
Jump & Double Jump
Alongside a simple jump, the player double jump, useful for traversing the environment and evading enemy attacks.
We chose to give Cyrah a jump and double jump for both traversal and evasion. We wanted to break up gameplay with sections of engaging traversal, since the majority of gameplay is combat, and based on playtesting we knew that players wanted something low stress to do between fights.
Jumping and double-jumping were also meant to be able to be used in combat for evasion. As enemies can surround the player if they're not careful, jumping/double-jumping can give them a way to escape that situation, or quickly get around behind enemies. This provided reason to use it for more than just traversal sections, using it as a defensive ability in combat.
Although it was created with traversal sections in mind, this intersection with the combat sandbox made it so that the jump and double-jump had to feel good both inside and outside combat encounters. The aspects of each that I had to tune the most were jump height, jump velocity, as well as air control for the player's standard movement, this allowed me to balance the jump to a point where it felt good.
Later on in the project, both jump & double-jump both had to be locked so that our level designer could ensure that traversal sections were designed to feel good, so I had to make sure that the jumps were as good as they could be by that point. We still made tweaks to them after they were locked, but I made sure that our level designer was directly involved with any change so that he wouldn't have any extra work on the traversal sections.
A swift launch in the direction that the player is currently moving, used in both traversal and evasion.
Much like Jump & Double-Jump, the Dash ability was created to create more engaging traversal sections and to afford evasion in combat encounters.
Dash started as a Roll, it became a Dash as we realized that a Dash could more easily allow the player to pass through enemies, preventing them from being trapped. I also experimented with making it so that dashing through enemies would slow them down for a couple of seconds, incentivizing some set-up by players to dash through enemies to slow them and then turn around to damage them. It was eventually cut as it was unused by most players, likely due to cognitive load, or being hard to tutorialize, and the players that were using it were obliterating encounters too easily. So that aspect was cut and became was it is, with the main tweaked aspects being dash speed and distance.
Another similarity it shares with Jump & Double-Jump is that it was locked later in development to make it so that traversal encounters wouldn't need to have significant changes due to changes to dash distance being altered.
The basic enemy, a melee attacker with limited mobility and range, the Reaper is meant to be more formidable in larger groups than as a singular target. Their damage is generally fairly low, with the exception of their two-claw attack which can deal medium damage.
The most common enemy of the game, the Reaper was always intended to be more of a horde type of enemies, with a small selection of attacks. Originally, we'd planned for the Reapers to be able to teleport to unreachable nav meshes, but it was both difficult to implement and difficult to communicate to the player.
Acting as a good trainer enemy, the Reaper quickly becomes an easy foe for players to overcome, and as such becomes a horde style enemy as they become more challenging in larger groups.
A stationary ranged enemy, the Spitter can pelt the player with damage from a distance, as well as retreat to avoid damage. Globs shot by the spitter are also able to slow the player down. Spitters also have the least health of all foes and deal the least amount of damage.
The spitter can be either a low priority or high priority target depending on the playstyle.
The Spitter was introduced once we were confident about how the Reaper was working, we felt that we needed a lower health ranged enemies that could launch projectiles at the player from relative safety. The concept was initially and eel-like creature that would come out of walls to shoot at the player, and aside from some slight visual iterations it ended up that way. Mechanically, we faced some difficulty with its behavior as it would retract back into the wall after shooting three times, or if the player go too close. This made fighting them frustrating, especially when left for last, we solved this by making it so that they wouldn't retract as often or for as long, as well as making it so if they were the last enemy then they wouldn't retract at all. The gulp feature, where the Spitter swallows the Orb Launch spell, was inspired by similar behavior existing with the Cacodemons in Doom Eternal, as it creates a memorable moment while rewarding players for their accuracy.
The Spitter encourages target prioritization and creates a better sense of tension when the player is facing both Spitters and Reapers.
A combo enemy, the Elder Reaper is able to close the gap and deal heavy melee damage, while also being able to attack the player at range. A bit tankier than the Reaper, the Elder Reaper is a larger and meaner powerhouse meant to be approached with caution.
The Elder Reaper was introduced later in the project, we wanted a mechanical evolution upon the Reaper, taking something familiar and easy and making tougher and more impactful. Making it souped-up Reaper also lowered the scope for the Art Team, as they didn't have to start from scratch, although they did face the challenge of making it feel bigger and meaner which they handled fantastically. With it being bigger and meaner, we also wanted to make it account for the weaknesses of the Reaper, having ranged attacks and gap-closers, putting the player under pressure and keeping them on their toes.
The Elder Reaper acts as a mini-boss that is meant to test the player on the mechanics that they have being using up to the point that the player encounters them.
Corrupted Ancient Core
As the boss enemy, the Corrupted Ancient Core continuously spawns Reapers until the player has dealt enough damage to the Core to make it enter a shielded phase. During shielded phases, the Core cannot be damaged, and the player can now fight an Elder Reaper in the boss arena, once the Elder Reaper is defeated, the Core can be damaged again.
Once damaged enough, the Core can deal damage directly to the player via lasers. This fight is intended to test the player's knowledge of the core mechanics.
Internally referred to as The Monolith, the Corrupted Ancient Core was created to provide a strong final conclusion to the game, we'd had plans for it in the beginning and we wanted to keep it low scope as we were cautiously aware of how much scope can go into a single boss fight. We wanted it to be an escalating summoning boss, and it remained this way throughout development, eventually gaining some abilities of its own like trying to hit the player with a corrupted beam of magic.
Things that went right:
The team was cohesive, and everyone worked well with one-another.
I was able to assist in many aspects of development to help my peers whenever and however I could.
Our game looks incredible!
Our game plays pretty well!
Things that went wrong:
Wearing so many hats had me spread pretty thin multiple times throughout the project.
My method of balancing, where I would repeatedly over-estimate and under-estimate how values should be tweaked in order to narrow down the ideal value, caused slow iteration on a few occasions.
Our game still feels like it is missing an "oomph", an impactful aspect of gameplay that captures player interest. As such, our game doesn't stand out in terms of gameplay when compared with other 3D action games.
I could've been more assertive throughout the project, to create better communication within the team and to better communicate our gameplay to the professors of the course.
What I've learned from this experience:
Wear less hats, when possible.
Take more risks in terms of mechanics, even a small wacky idea could have a large positive impact.
Approach game balance with a slightly more scientific approach, although not purely spreadsheet based.
Be more assertive.