In accordance with the roadmap, a combat revamp is due for 0.6. Here is a comprehensive plan on how we can make player interactions with the AI very engaging, broken down in a way that I think is comprehensive and self-containing. I introduce a few new concepts, but most of this is more of a reorganization of thought than anything.
Combat in Thrive can broadly be thought of as any interaction between the player and other cells, but it is most directly expressed through physical confrontations between the player and the AI, usually via predation.
What Makes a Good Combat System?
Using the resource linked above, most games with great combat systems usually have these qualities…
- Abilities - Various fun and distinct powers given to the player.
- Enemy Archetypes - Different varieties of enemies with their own abilities.
- Risk and Rewards - Benefits and risks associated with abilities applied to the above two elements to provide a layer of strategy.
Risks and Rewards
I’ll address this first because it is applied across the other two qualities. Risks and rewards essentially present a balance and strategy across the abilities a player or enemy have. “Rewards” can be thought of as desirable effects for a player, such as damage inflicted, stuns, damage over time, and other effects that generally leave the player in a better position against their opponent. “Risks” on the other hand can be thought of as the trade-off which comes with the benefit. For example, certain abilities might require a cooldown, might cost a resource, or might leave you vulnerable to being attacked, or might otherwise weaken you. As such, the player must consistently gauge which ability is the best one to use in a given situation.
Good combat games set up their risks and rewards so that players often have to consider these factors in deciding how to approach their enemy…
- Distance - How far away am I from the enemy? How close to the enemy’s threat will I end up if I perform an action?
- Time - How long will it take to set up this ability? How long can I use this ability? How long am I vulnerable to attack?
- Anticipation - What is this enemy vulnerable to? What combination of abilities will help me the most in my situation?
Abilities are the tools with which players engage in combat with their enemies. They should be be distinct enough to warrant that certain abilities are better used in certain situations, but viable enough that all abilities are able to achieve the desired result.
Most good combat games have different types of enemies which have different abilities, warranting unique responses from the player. It is important that these enemies have clearly defined options for the player to both attack and defend themselves from the enemy’s abilities. Using the previously mentioned resource, here are some common enemy types…
- Normal - The default enemy.
- Speedy - These enemies are fast, but usually are more delicate.
- Shield - These enemies are able to block damage, but have vulnerable spots.
- Heavy - These enemies dish out and take a lot of damage, but are oftentimes slow.
- Ranged - These enemies are able to dish out damage across a wide distance, but are rather vulnerable up close.
- Bombers - These enemies dish out a large amount of damage if they get close to the player, but are otherwise useless and perish when attacking.
I’ll list a few games that I have played and personally think have good combat systems, and their features organized into the above three traits…
- Batman: Arkham Series: Batman’s default ability is traditional fist-fighting combat which can be used at any time. He can use various special unique abilities if he has high enough of a combo, such as a finisher move. He also has various gadgets with their own unique and situational abilities, such as batarangs which can be thrown, a voice synthesizer which can trick the enemy, and a smoke grenade which can make him disappear. If Batman uses a combo ability, he must chain another combo to get another combo ability, and if he gets hurt, he loses his combo. Many of his gadgets also have a cooldown. There are heavy enemies, speedy ninjas, enemies with riot shields, enemies with assault rifles, normal enemies who fight with their fists, and snipers. Each are more vulnerable to certain abilities: riot shield enemies are hurt by a specific combo, heavy enemies require a certain move to take damage, and enemies with guns can be disarmed by a specific gadget that has a cooldown.
- God of War: Kratos has two weapons: an axe that can be thrown and retrieved like Thor’s hammer and two blades chained to his arms. The axe has a frost effect and is more damaging to fire-elemental enemies, and dishes out heavy damage up close. The blades has a fire effect and is more damaging to frost-elemental enemies, and dishes out less damage but has a much wider area of effect. Kratos can attach two powerful runic attacks to each weapon, but they have cooldowns and can leave Kratos vulnerable for a bit, so you must time them properly. He has a sidestep dodge which doesn’t cover a lot of distance but lets him attack immediately, and a rolling dodge which covers a lot of distance but doesn’t let him attack as quickly. There are heavy enemies, ranged enemies, bomber enemies, speed enemies, shield enemies, and normal enemies.
- Ghost of Tsushima: Jin has a short dodge and a long dodge, and a light quick attack and a slower heavy attack. There are 4 stances; one works best against swordsmen, one works best against shields, one works best against spears, and one works best against heavies. Attacking an enemy without the right stance debuffs damage, meaning the player has to constantly switch across stances. There are also archers.
COMBAT IN THRIVE
Things to be Mindful Of…
- The Player and AI Have Access to the Same Tools - Both the player and AI have access to the same abilities, so they must be properly balanced across the two. Perhaps we might buff AI abilities in the future if balancing for the player makes the AI too weak, but for now, things appear to be working fine like this.
- Choice Through the Editor - The player makes their choices through the editor, meaning they can decide at any moment to adapt or ditch an ability. Balancing should be mindful of this, so that the player can’t easily have every single ability at hand.
- Grounded in Science - We obviously can’t attach guns and jet-engines to cells. Everything we add must be grounded in nature and fact.
- Dynamic Archetypes - Realistically, the AI and player can be multiple archetypes at once. You can be a speedy-ranged cell, a shielded heavy, a ranged heavy, etc. If we are able to emphasize this customization so that cells have the options of specializing into a specific archetype or blending abilities to create their own archetypes, this will spell out amazing news for combat replayability.
- It’s All Relative - We are heavies to flies but speedies to elephants. If we ensure that these archetypes work loosely like a spectrum, one playthrough can vastly differ from the next depending on the player’s choices.
- Easy to Manipulate - Because the player is able to explicitly place whatever parts they want, they can clearly define what combat niche they want to fill. They can also choose to adapt a niche whenever they want.
- Explicit Archetypes are Difficult - We should be wary of allowing most cells the ability to adapt all abilities. If every cell has every ability, then the result could be a messy system with limited replayability.
Currently, we honestly don’t see that many AI cell archetypes for the player to hunt or engage in combat with. I think we should try to ensure that atleast these types of cells show up…
Default cells are a bit difficult to define because the whole idea of evolution is that nothing is a default, but we should define which abilities are accessible by all cells. Default cells should be able to present some threat, but should largely be predictable. Thrive establishes engulfment as a default tool capable of being used by most cells, and I think that is fine. Because engulfment is very powerful, it forces the player to consistently pay attention, but it is such a close range weapon that the player can easily avoid being engulfed.
I think pilus-bearing celsl may also be considered “default” because of how much overlap there is between engulfment and the pilus (perhaps the pilus is a “brawler” archetype).
Cells able to inflict damage across a wide distance. This role will likely be taken up by cells who utilize toxicity. Ranged cells likely should have a decent cooldown so that players are able to time their attacks. The optimal strategy in fighting against ranged cells is learning its cooldown and adapting immunity, though the extent of the latter option should be limited so that the player isn’t able to nullify every type of shooter.
We already do have toxins in game, but the problem is that these toxins aren’t very effective because the projectiles are rather slow and have a very small hitbox. Toxins also only show up in one form so they are rather easy to predict. Existing concepts for methods of delivering toxins should do a good job of defining this role, making toxin cells more threatening.
- Toxin Clouds: Accessible by both prokaryotes and eukaryotes, the default method of transmitting toxins will be through expelling clouds in an area around a cell. This cloud should probably move somewhat quickly through the environment and should linger, but it definitely should dissipate quicker than other compound clouds. Modifications should focus on providing customization for the total area covered by a toxin and total damage potential, with a tradeoff between the two occurring. So toxins which spread across a wide area should inflict less damage, while toxins which spread across a smaller area should inflict more damage. Toxin clouds aren’t very stealthy and only have a set range of effect, so they can be countered by speed, alongside with immunity.
- Nematocysts: Accessible only to eukaryotes, these probably will be the closest thing to a pure projectile in Thrive after the toxin rework. Instead of a toxin cloud, nematocysts will essentially be rapidly extendable stingers which get discarded after use and eventually get replenished. I think the player should be able to modify the length of their stingers, with longer stingers having greater range but having slightly less damage and a longer cooldown, and shorter stingers having less range but slightly more damage and a shorter cooldown. Cooldowns should take some amount of time regardless to prevent spamming, which is a balancing act we can determine upon implementation. Alongside immunity, nematocysts can be countered by whatever we implement as a “shield”.
- Mucilage: Accessible to bacteria and eukaryotes, these will work similar to toxin clouds, but will instead slow down movement of affected cells rather than inflicting damage. Similar to toxin clouds, mucilage clouds should be able to move through the environment somewhat quickly and should linger, but should dissipate quicker than other clouds. Modifications should probably provide an exchange between the potency of the effect, spread of cloud, spread speed, and cooldown time.
I’d like to add that pseudopodia might be considered a range archetype if eventually implemented as a substantial weapon, but having the above three options should serve as a good base.
Cells that are able to absorb and dish out a lot of damage, but aren’t very agile. They should be rather difficult to take head on, requiring consistent firepower and strategy to approach, but the player should be able to run away from them. This role is a bit harder to define in Thrive because we separate the “attack” from the “defense/health”, but there are various ways in which we can approach it…
- Attach Size to Health - We previously had discussions about this, resulting in the nucleus halving damage from bacteria, but I seriously think we should have further conversations and more strongly consider this. We should make it so that bigger cells are able to absorb more damage, so that players have a “heavy” archetype to be on the lookout for.
- Buff the Health Bonus From Membrane Rigidity - I (and most other players I think) universally go for a more fluid membrane because the HP bonuses are too weak to justify the cost in speed. We should make rigid membranes grant more HP.
We can consider finding an ability which dishes out a lot of damage but comes with a heavy cooldown/a lot of mass, but I think even adding health bonuses would do great things to create a “heavy” enemy archetype. Ultimately, I think we would benefit from having certain creatures that a player should absolutely stay clear of. I’m not really scared of other cells in the game because I know we all have the same HP, so I feel like I have no true predators.
Slightly different from heavies in that they still have “normal” HP and don’t necessarily inflict a lot of damage as well, but are able to completely nullify attacks with a “shield” of sort. They should have an external part which completely nullifies damage, but they should still be vulnerable in other areas. This shield should also slow their movement, and likely, their resource absorption.
There are no current analogues to the shielded enemies (pilus can deflect toxins and deter engulfment but that isn’t really their main purpose). I’m sure we can find a real-life adaptation which serves similar roles as a shield. For example, thecal plates (found on dinoflagellates) are plates of either cellulose or polysaccharide microfibrils which protect dinoflagellates from external damage.
Able to whip around the map at considerable speed, these cells are lightweight and difficult to catch, but are usually rather delicate. These enemies should be difficult to target with abilities, but should be rather low in HP so that once they are caught, they can easily be damaged.
Flagella and cilia are currently implemented. We should emphasize their upgrades to reflect this archetype. Attaching HP to health can also reflect this archetype as well; you want to stay small if you want to be speedy, unless you want to spend a lot of energy on flagella, so speedy cells would naturally have less HP.
Mucilage jets, which will be implemented soon, will also serve this role and will likely be the most discrete example of this archetype. When conceptualizing upgrades for mucilage, we should have this archetype in mind.
I put this in quotation marks because I really doubt that a bomber-archetype as seen in most games would actually evolve (that is, an animal literarily evolved to die), but I think we can still somewhat simulate them through the toxin system. We have concepts for endotoxins - toxins which aren’t ejected but are instead generated internally as a deterrent to predation. Perhaps we can make it so that upon death, these cells can rapidly expel their toxins.
These enemies should be able to inflict a lot of damage upon death, but should be rather delicate and otherwise should not have many abilities. We can make this so by defining endotoxins an ATP-intensive adaptation, so that it is harder to adapt more combative traits. Players should be able to combat them by either avoiding them, attacking at range, or adapting immunity.
Eventually, I think we should implement these abilities. I think anything else should be a bonus to combat, but these should be the baseline
- Engulfment - High-risk, high-reward default ability.
- Pilus - Allows damage to be inflicted in close-quarters.
- Toxin Clouds - Great area of effect, but not very fast.
- Nemotocysts - More unpredictable and quick than toxin clouds, though with a smaller area of effect.
- Mucilage - Similar to toxin clouds but slows down cells instead, allowing traps and quick engulfment.
- Size - Connecting HP to size will create threats the player should avoid.
- Membranes - Enhancing the HP-bonus effect of membranes and membrane rigidity.
- High-Damage High-Cooldown Part(?) - Whatever this is, should have a sizable cooldown.
- Thecal Plates - Should block all damage from a direction, but prevents engulfment and compound absorption so that players can’t just encase their whole cell with no detriments.
- Flagella - Constant but energy-intensive speed bonus.
- Cilia - Decent constant speed bonus, strong agility bonus, energy-intensive.
- Mucilage Jets - Less energy-intensive, strong speed bonus, limited time.
- Endotoxins - Damage-intensive yet avoidable and purely defensive.
Ultimately, we don’t need much to create a solidly engaging combat system. The good thing is that our game isn’t necessarily a beat-em-up/brawler. So if we implement a combat system that is decently replayable, that would mean great things for this project. The above breakdown is built on good fundamentals, and I think is a well-informed approach to making cell-to-cell interactions very fun.