I’ve been assigned this week to working out the logistics of our game (see this post for an overview of our game pitch).
Previously, I ascertained the two player victory conditions to be:
- All villagers are infected and a player has majority %, or
- A player finds the opponent’s Patient Zero and destroys the disease at its source.
Alternatively the AI victory condition is fulfilled if they notice the disease(s) and have time to build a successful vaccine.
I’ve been focusing on brainstorming a few different combinations of game mechanics in order to achieve balanced gameplay, including:
- AoE (Area of Effect)
- Chance of Transmission
- How “Patient Zero” Spreads Infection vs How AI Spreads Infection
- AI Markers
- Infectious Areas
- How Infection is Tracked
- Buffs vs Debuffs
- Death as a feature
AoE (Area of Effect)
For example, a cone AoE for sneezing, circular radius AoE for vomiting.
Chance of Transmission
For example, when sneezed on let there be a 1/3 chance of infection.
AoE for AI infection and the chance for transmission if an AI comes into contact with the infection are the two major mechanics that will affect the pace and balance of gameplay. It is essential that we balance these in a way that is fun to play.
How “Patient Zero” Spreads Infection vs How AI Spreads Infection
1. Patient Zero
How players each choose to spread their disease as their Patient Zero is a core mechanic of the game.
The first victory condition of “I Am Zer0” is to infect the most villagers in the town – so one would assume that it would be best to immediately infect as many villagers as possible from the get-go.
However, it must be kept in mind that the other victory condition is if a player finds the opponent’s Patient Zero and destroys them. To avoid being caught, players will have to blend in with the AI villagers and learn to find their own balance between speed and stealth when choosing how to infect the villagers.
“There is less chance of the opponent finding the player’s Patient Zero if the player chooses to infect villagers less frequently or through symptoms that are not outwardly showing.”
“If disease is spread too aggressively by Patient Zero the opponent may notice and will move to destroy Patient Zero.”
(as taken from the previous post about our game pitch)
When within radius of AI villager(s) as Patient Zero, the player will have the option to activate one of their symptoms for a chance of infection.
There will be a visible animation dependent on the chosen symptom/method of transmission
There will potentially be a cooldown time (interval dependent on the symptom).
At this point in time, there are two potential paths we can explore to program how AI spreads infection:
- Once infected, the AI is programmed to move towards other villagers. Once they make contact or are in range, they use one of their symptoms (standard AoE and chance for infection).
- Alternatively, AI can display symptoms at timed intervals. These symptoms have standard AoE and chance for infection.
The symptom that manifests will be based on chance – but there will always be exactly one that is generated (i.e. the probabilities for each symptom combined will always equal 1). For example, if the disease strain currently has the sneezing and vomiting symptoms there may be a 2/3 chance of the AI sneezing or a 1/3 chance of them vomiting.
There will be a visible animation dependent on the symptom/method of transmission.
I have been exploring the potential to give each AI a personality trait or ‘marker’. This may affect their in-game behaviour or how they are infected.
- Social villagers may gravitate towards other villagers, increasing chance of contact and infection. (Positive Infection Trait)
- Watchful villagers are more likely to notice – and run away from – other infected villagers. (Negative Infection Trait)
- Resistant villagers may have a strong immune system, meaning that chance for transmission may be affected by a multiplier before infection success or failure is calculated. (Negative Infection Trait)
For each new game, every villager could be randomly assigned one ‘marker’ with the chance of each trait being assigned expressed using probability.
The last mechanic to consider is the implementation of permanently or temporarily infectious areas.
Temporarily infectious areas could include puddles of vomit, blood etc that could be ‘cleaned up’ by AI villagers after a given interval of time. AI that pass within radius of the infectious area have a chance for infection.
If death is implemented, permanently infectious areas could be created around dead bodies.
Programming Watchful AI villagers to avoid these infectious areas is something to be considered.
How infection is tracked
One visually significant mechanic of our game is colour. Villagers will be animated as humanoids with fantasy-coloured skin (eg. blue).
When they are infected by a disease, they will turn a different colour over time (eg from blue to red if infected by Player 1 or from blue to green if infected by Player 2).
This is so that players can track the infection of their own disease among the villagers and also track the prevalence of the opponent’s disease.
Playtesting will ascertain whether we should also include a slider or graphic denoting the % of villager infection for each player.
Buffs vs Debuffs
Debuffs detract fun from play where buffs greatly increase fun. If we are to include any sort of buff in our game it will have a positive effect for the player.
It is essential to maintain balance in gameplay and buffs may overpower this. (Potentially replace with randomised events?)
Death as a feature
We are unsure as of yet whether to include villager death in this game, espeically if the villagers are going to turn colour in order for players to visually receive feedback on infection spread of their own disease vs their opponent’s disease.