Histera
Histera
Platform: PC
Engine: Unity 3D
Duration: 8 years (I worked an entire year until the release)
Team size: >70
Role: Game Design
Histera is a FPS with some twist and special mechanics. The project started back on 2016. However, I worked on it the last year 2023-2024 until its release on 20th of July of 2024.
The core of the game was already done, but I was hired to bring new ideas and work on the game as a live service. Designing new features, systems and balancing the live game.
A small list of things I have done:
Gameplay Systems - Plan, Design & implement
The Ability System (Data-driven) - Plan, Design & Implement
Weapons - Design, Implement and Balance
Data Planning, Creation and Implementation
Game Balance for a competitive state
Progression Systems and its Balancing
Design Game Modes (Including AI for PvPvE)
Game Overview
Histera is a multiplayer FPS where the map shifts into another architecture in the middle of the match.
It merges different eras meaning that an old prehistoric man with a bow can fight a futuristic android with a laser weapon.
The game has multiple combinations of weapons and abilities not tied to characters so everyone can play their own style.
Ability System
Adapting the Core to the current Market
The Core Game was done I was in charge of creating new sysems over the actual ones without breaking the loop. The game needed some more flavour as at that point was a "vanilla FPS" with a single feature (the live-changing levels).
Since hero shooters are the most popular sub-genre I decided to plan, design and implement an Ability System that could be easy to expand, to be as modular as possible and reproducible.
Please, for more detailed info and to see the entire Design Document contact me directly (at shocsey@gmail.com) as this is under NDA.
//change this part to say "generate as much content as possible with the minum tech effort, just by data
Basic things to consider and the defined Pillars to design the abilities:
Abilities are packed in sets. Each set has a Passive and Active ability tied to it.
Those sets should represent (by design) one of 4 possible "roles" in a FPS game: Sniper/Stealth, Brawler, Speeder, Support
All the possible functionalities an Ability could have should be deconstructed into the smaller possible part.
Use as much as possible the features that were already programmed with the smaller changes.
How to achieve the fun and modularity data-driven:
Abilities should be created in a Data Table and not hard-coded to ensure the reproducibility and ease of creation by designers. As well this would reduce the charge of programming and resources on the other teams, programming, production, VFX...
How does the workflow work? Simple: Designers just get a Data Table with fixed fields, insert the data into the fields and import it to the game. The game should read it in smaller parts, field by field and execute it in small parts of code in the proper order. Easy to reproduce, easy to test.
This may be easier to understand with an actual example:
Let's say we want to create a set of abilities that do the following:
For the Passive Ability: When the player uses the "Slide" (a movement option like crouching or sprinting) gives +5% extra damage for 2 seconds. This effect does not stack.
For the Active Ability: Become invisible for 15 seconds, gain +30% move speed. Dealing damage makes you visible for 2 seconds.
This set would look like this:
Each Ability got up to 3 effects (could be more)
Each Effect has different values:
Effect - Which effect is being activated: DamageBoost, MoveSpeed, Slow...
Trigger - What triggers it
Time To Activate - is it instant or takes time?
Value - The value that Modifies the effect: 5% DamageBoost
Duration - The duration of the Effect
Target - To whom the effect affects: Oneself, Enemies, AllyTeam...
Not shown in the image but necessary:
Sound - The sound file that is activated when the ability is triggered
VFX - The visual effect that is activated when the ability is triggered
Icon - The visual representation of the ability in the UI
As for the developing part there is a list of different things to be programmed (or extracted from any other part of code but tweakable by designers). Those requirements could be divided in two simple categories:
1 - Effects: What are the actual things that need to be programmed in small parts or just extracted/modified from any other feature. So with these small parts a big and complex ability can be done as seen above.
2 - Trigger Conditions: Small and simple parts of code to just let the program know when to call for an effect. For example: When pressing a key, when someone is below 30% of HP, etc.
In the image below there is a list of stats that already exist that could be modified and "Special" which could be done using other features the game already had. For example: Exploding around was already done by grenades.
Game Modes
Finding Originality in a Saturated Market
The only game mode that existed when I joined was a 8v8 and kill until one team gets 75 kills. The game lacked spicy so we decided to add different game modes that could adapt into a competitive state with some uniqueness. The callenge was to adapt all of that into the "Glitch" mechanic which is the one that makes the map to shape-shift. Here I'm going to show you one Game Mode I Planned and Designed.
Please, for more detailed info and to see the entire Design Document contact me directly (at shocsey@gmail.com) as this is under NDA.
Things to keep in mind about the game features and design around them:
The Core Feature of the game happens every ~60s (the Glitch)
Tams and its size should remain the same as the previous existing Game Modes (8v8)
Should solve problems and fill out needs that other Game Modes had.
The duration of the matches should be similar to other Game Modes
The Maps used should be the default ones. Meaning not a special and unique map should be created for this mode.
Game Mode Overview
In "Glitch Guardian" mode, there is a giant neutral AI-controlled Guardian that appears every time the map shifts ('glitches') on the zone that is shifting. During that period teams can earn its 'favour' by damaging it. The team that deals most damage gets the Guardian, this will make it fight by the winner team's side until the next "Glitch".
The Guardian
In "Glitch Guardian" mode, there is a giant neutral AI-controlled Guardian that appears every time the map shifts on the zone that is shifting. During that period teams can earn its 'favour' by damaging it. The team that deals most damage gets the Guardian which will fight by their side until the next "Glitch".
Overview
The guardian appears at the first glitch and “makes glitches happen”.
It can be recruited by any team during glitch phases. The team that has recruited it will receive boosts. In order to recruit the guardian, players have to deal damage to it.
Guardian Abilities
The guardian has two Abilities: Charge and Weapon Throw
Charge:
Charges to an enemy location and hits them with the melee weapon.
There has to be a path available to do so.
If there is a small geometry between target and guardian, it can glitch through it.
It does not update based on if the player has been moving during the charge time.
Deals 100 damage to the enemy hit.
While running towards the enemy target, any other player hit would receive 75 damage.
Weapon throw:
Selects an enemy target inside the “Throwing Range” and throws the weapon to that location.
The weapon has a large hitbox that deals 90 damage to anyone hit by it.
It does not stop until it hits any terrain.
The weapon thrown stays for a while (1-2s) wherever it has landed.
During that duration it does glitch damage to any player that touches it
After that, the weapon “glitches” and appears again in the hand of the Guardian
If the weapon collides with any geometry it sticks there.
Guardian Behaviour
It’s only vulnerable while in the glitching area after the “glitch preparation” until the “Glitch ends” ends.
After being defeated, the Guardian starts to move to the next area (during glitches interphase).
While in glitch phase:
Guardian moves around the glitching area, with a small extra margin on the zones.
More details in this section: Glitch Guardian X - Game Mode
The Guardian attacks players from both teams.
While there are no enemies around, it randomly patrols slowly within the glitch.
How does it select target and attack:
It detects any enemy in the area of the glitch it is standing
Selects randomly an enemy of those that are in its zone.
When it has a target the criteria of choosing an attack is the following:
If the target is in the “charge range” it charges to it
If the target is outside the “charge range” it throws the weapon
Time between any attack has a Cooldown of 2 seconds.
While in interphase:
Once the guardian has been recruited, it moves to the next area to make it glitch.
It is invulnerable to any source of damage.
It attacks enemy players but only by throwing the weapon.
So it may avoid the possible bugs of charges.
Gives the “Guardian’s boost” to the team that has recruited it.
Damaging it:
In order to make the fight more tactical the Guardian receives different damage based on where it is hit:
Damage received from the front is reduced by 90%
Damage received from the rear is reduced by 50%
Damage received from the back is reduced by 25%
It has a small weak spot in the head where they receive 100% headshot damage, no matter where the hits come from.
Gameplay Loop
Timeline of the Glitch + Guardian:
Glitch starts
The guardian appears in the glitching area
Players have to defeat the guardian
Once the guardian is defeated, the team that has defeated (dealt most damage to it) recruits it for its team and wins a good amount of score
The guardian does not necessarily be defeated in order to recruit it
In case of tie, the team that has done the “executing hit” to the guardian, earns it
While waiting for the next glitch the recruited guardian helps that team
It moves around attacking enemy players
Gives a boost based on the new era that has glitched.
E.g.: PRE; each bullet hit applies 1 poison stack, FoH; adds heat vision, etc
This boost has a certain duration, approximately until the next glitch appears.
The boost is given to anyone of the team that has recruited it.
Next glitch starts
From here teams have to keep fighting until the max score amount is reached or timer ends
What problems solve and why is different?
Solves the problem of not having "a defined objective".
States the phases and the gameplay loop way more clear.
Forces players to move around the map and not camp one site forever.
Gives room for diferent strategies: Focus on killing enemies, focus on recruiting the guardian, block strategic positions...
Players would use different Abilities and weapons to fit better to this game mode and try the game wider not just stucking to the "killing enemy players" meta-game other modes had.
Sets a defined game duration (as it has a controlled parameter)
Open to different win conditions: Scoring is not limited only to the Guardian (as player kills still give points), but playing around it makes it easier to win
The game mode can be easily tied up to the meta-narrative of the game: It opens the door to create different events, change the lore of the guardian, tie it to any of the eras that the game already had...
Open to more newbie players since the skill required to hit the guardian is way less than hitting any enemy player moving around.
A "balance" in a real life is no more than a tool, so why do not start with that?
In order to have a proper balancing system I did create a tool via Excel that helps to compare values among weapons.
The game at that point was not data-driven so I started to create systems with a data-driven approach to make it easier to balance the existing weapons and to design and implement new ones. The first step was to unify all the weapons and their values into Data Tables.
Once the data is in the Data Tables I just created different sheets:
The Full Weapon Data -> The one that contains all the information of the current live version of the game
The Weapon Comparision -> Here the fields got the data from the Full Weapon data by default but those values were tweakable.
Damage Calculator -> Tool that gets data from the other sheets and can modify some variables to see the expected damage output in different situations.
A How To Use Guide -> This may be obvious. But I'm here to state the truth so I have to say that it exists :P
After Creating the spreadsheet it required some tools to make it visual so I created the weapon comparison which basically reads the data and shows it into a graph, being multiple stats able to be compared. For instance, we can see visually how the dmg reduction by distance scales on every weapon comparing the mid-range damage reduction and long-range damage reduction
Damage Calculator tool: Basically it calculates how much potential damage a weapon can do. Given the plain data from weapons, take into account different situations such as a combat that last 10s, 15s, etc. It calculates the time required to empty the charger, the reload time, etc and gives a DPS amount. There are some modifiers as well such as "distance to the target", Headshot percentage (this is useful as with the data collected from gameplays we can know the % of headshot accuracy so place it there), accuracy percentage (same as the headshots). So many situations can be "manually compared" and tried to adjust the numbers. The fun & game feel are not in this tool.
dmg calc
Thanks for reading this far, hope you have a good day :)