Simulating Tribal Warfare in the Movable Feast Machine
Also known as: Call of the Movable Feast Machine: Tribal Warfare.
Background
This project is proposing the creation of a tribal warfare framework for the movable feast machine. The idea is to be able to simulate multiple warring factions and see what initial conditions are favorable for tribes. This simulation will also take into accounts which units are effective in certain situations.
There is already some implicit notion of tribalism in the movable feast machine. There are blue carpet bombs and yellow carpet bombs, why not just have a single carpet bomb that we can decide which tribe it belongs to on the fly?
Overview
Defining the scope of the project
These are hostile tribes. The blue tribe hates the red tribe and the red tribe hates the blue tribe, etc. These tribes are not interested in working together. Only total annihilation of the other tribes and world dominance will please them.
The goal is to have at least 4 tribes, but it should be arbitrary to add more than 4.
Motivation
There are a number of things that I foresee being interesting investigating in this simulation; a couple things that come to mind are:
What kind of non-trivial initial conditions benefit one tribe over others?
Is there a way to keep perpetual warfare going on between two or more nations where no nation is completely wiped out? (think 1984 and Oceania).
Resources are an interesting aspect of this simulation, how can we analyze how resource availability affects a nation's growth?
An important question to keep in mind is: How can we get meaningful simplicity from this model?
How might this work? (thinking in C++)
Some sort of Tribal_Element base class which all the other custom elements will extend.
A Tribes enum that lists all available tribes for selection. The slider should depend on this enum.
And then an element class for each of the proposed elements that extends the Tribal_Element class.
Am I missing anything?
Proposed elements
Core units
These are the units that I have defined for a “bare-bones” implementation.
Base (5 Res): This is the fundamental element for each tribe. Every tribe starts with one base. It should generate all troop types and even additional bases! – Since we don't want each tribe to have a single point of failure if we are in the robust mind-set. The base will collect Res that will be used to create additional units. There will be some probability every action that the base will move and that the base will attempt to create a unit. Which unit that it tries to create might also be random…not sure exactly how it will work yet. We want to avoid the case where the base pumps out a bunch of low cost units, we want the potential for base growth to be there, just somewhat less likely.
Infantry (1 Res): The most basic unit. This element chooses a direction within one tile of its current position randomly. If that tile is empty it moves there, else if a hostile unit occupies this square it tries to kill it.
Cavalry (3 Res): Faster units than infantry and also slightly more powerful. The look range is two tiles in any random direction.
Ideas for additional units
Big Papa (5 Res): This is a slow moving unit, but it has a lot of health and when it looks in a direction it can do damage to multiple units at a time.
Wisps (7 Res): This unit is created by tribes that have won the space race. This unit can travel at the speed of light (an event window) and also does massive damage.
Element attributes
These are the bit fields that the above elements contain.
Health
Damage
Move radius
…Possibly more? Need to weigh between complexity and the meaning behind the attributes.
Goals
Provide a generic enough tribal framework for the MFM.
Create a model that is flexible enough to represent different kind of societies and creatures. (may be too difficult)
Simulate Res as a contested resource where tribes that control it have an advantage.
Obstacles and lingering questions
Is a tribe slider feasible given the current architecture of the MFM?
Should units other than the Base use Res?
What kind of U-shaped curve can we get?