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.
- Engulfment - Default ability accessible to all cells, unless it is conceded in exchange for greater defense. High reward, so should come with considerable risk, hence the value of introducing endotoxins and countermeasures.
- Pilus - Easily placed part accessible to both prokaryotes and eukaryotes. Makes cells difficult to engage with up close, but otherwise useless at range. In my opinion, blocking ability should be nerfed a tiny bit in the future, especially if we introduce shielding parts. Will probably happen regardless since we plan to move away from traditional projectile toxins.
- Probiscis Pilus (Pilus Variant) - A variant of the pilus, doesn’t deal as much damage but can be similarly destructive, allowing cells to steal resources from targets. Forces cell to get up close, meaning the potential for wasted energy if prey item is too fast or danger if prey item is unpredictable.
- Toxin Pilus (Pilus Variant) - A variant of the pilus, significantly reduces initial damage, but introduces toxin effects. Immunity can make this variant useless.
- Toxin Clouds - The “default” form of utilizing toxins available to both eukaryotes and prokaryotes, involves the emission of clouds into the environment. Easily noticeable, so it might end up serving better as a defensive measure rather than a predation strategy, unless modifications are a factor.
- Nemotocysts - A quicker, more aggressive measure of transmitting toxins, where a rapidly extending “spike” will damage and then poison a target cell. Unpredictable and more direct, but has a cooldown.
- Mucilage - Slime clouds, which slow down potential prey items and predators. Not necessarily offensive, but can be used creatively.
- Axopodia - Long, hair-like extensions of the membrane which essentially serve as a trap, dragging in other cells. Requires time to set up, slows down the player, and has the potential of capturing a predator, so risky strategy.
- Suction Cilia (Cilia Variant) - Cilia which generates currents, potentially trapping prey items. High energy cost, so must be used wisely.
- Haptocyst (Axopodia Variant) - A variant of axopodia, allows hostile resource transfer upon contact and slightly quicker to set up, but doesn’t pull in prey as much.
- Holdfast Organelle - Makes a player attach to a substrate and allows rapid extension, akin to a predatory venus fly trap. Requires the player to wait for prey items, but quick and decisive. Can be combined with other abilities.
- Trichocysts (Toxin Variant) - A toxin variant, expels threads which apply damage regardless of immunity, but at a noticeably reduced level.
- Size Attached to Health - Having health attach to size works to create large cells which the player should avoid.
- Rigid Membranes Reducing Physical Damage - As Buckly suggests, more rigid membranes can reduce damage received from abrasive forces, such as nematocysts and pilus.
- Thecal Plates (Pellicle Variant) - Upgrade variant accessible to cellulose-wearing cells, can outright nullify damage, but significantly reduces absorption and slows down movement. Can be modified to become spike-like as seen in dinoflagellates, significantly increasing mass but making it more difficult to be engulfed.
- Mucocysts - A togglable ability which temporarily blocks the player from receiving damage and being engulfed for a short time, but disables other abilities, slows down resource absorption, and significantly slows down the player. Noticable cooldown and only for a brief amount of time.
- Flagella - Constant and powerful but high-energy speed bonus, most viable in a straight line.
- Cilia - Less energy intensive and multidirectional speed bonus, but doesn’t increase speed to the extent of flagella.
- Mucilage Jets - Allows the propulsion of slime for a more dramatic but unsteady speed bonus.
- Endotoxins - Makes it damaging to ingest an organism without immunology. Upon death, can release a burst of toxins.
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.