Chronicle

o Games

Over 12,000 years of human history…

Background

• Stone Age: 10,500 BC - 4100 BC
• Bronze Age: 4100 BC - 900 BC
• Iron Age: 900 BC - 700 AD
• Middle Age: 700 AD - 1500 AD
• Steel Age: 1500 AD - 1900 AD
• Silicon Age: 1900 AD - 2100 AD
• Diamond Age: 2100 AD - 2200 AD

Setup

Let $V$ be a finite set of vertices, and let $E \subseteq V \times V$ be a set of directed edges such that $\forall v \in V$, $(v,v) \in E$ (i.e., all vertices are connected to themselves).

Let $R$ be a finite set of resources of size $m \in \mathbb{N}$. Let wealth $\in R$.

For all $v \in V$, define the following:
Let $\vec{s}_v \in \mathbb{N}^m$ be the supply vector at $v$, representing the number of each resource at that vertex. Let $\vec{s}_v(w)$ represent the wealth at $v$.

For all $e = (u,v) \in E$, define the following:
Let $c_e(\vec{r}) : \mathbb{N}^m \rightarrow \mathbb{N}^m$ be the cost function for moving $\vec{r}$ resources from $u$ to $v$.
Let $\vec{a}_e \in \mathbb{N}^m$ be the allocation vector of resources moved from $u$ to $v$.
Let $\vec{b}_e \in \mathbb{N}^m$ be the bid vector for the resources paid by $v$ to $u$.

Let $\hat{\vec{a}}_v = \sum_{\left\{(x,y) \in E : x = v \right\}} {\vec{a}_{(x,y)}}$ be the total allocation vector from vertex $v$.
Let $\hat{\vec{b}}_v = \sum_{\left\{(x,y) \in E : x = v \right\}} {\vec{b}_{(x,y)}}$ be the total bid vector paid to vertex $v$.
Let $\hat{\vec{c}}_v = \sum_{\left\{(x,y) \in E : x = v \right\}} {c_{(x,y)}\left(\vec{a}_{(x,y)}\right)}$ be the total cost vector paid by vertex $v$.

Let $\tilde{\vec{a}}_v = \sum_{\left\{(x,y) \in E : y = v\right\}} {\vec{a}_{(x,y)}}$ be the total allocation vector to vertex $v$.
Let $\tilde{\vec{b}}_v = \sum_{\left\{(x,y) \in E : y = v\right\}} {\vec{b}_{(x,y)}}$ be the total bid vector paid by vertex $v$.
Let $\tilde{\vec{c}}_v = \sum_{\left\{(x,y) \in E : y = v \right\}} {c_{(x,y)}\left(\vec{a}_{(x,y)}\right)}$ be the total cost vector paid to vertex $v$.

For all $v \in V$, define a function $\phi_v : \mathbb{N}^m \rightarrow \mathbb{N}$ to be the utility function for $v$.

Let $\hat{b}_v^* = \sum_{i=1}^m {\hat{\vec{b}}_{v}(i)}$ be the total bids paid to vertex $v$.
Let $\hat{c}_v^* = \sum_{i=1}^m {\hat{\vec{c}}_{v}(i)}$ be the total cost paid by vertex $v$.
Let $\tilde{b}_v^* = \sum_{i=1}^m {\tilde{\vec{b}}_{v}(i)}$ be the total bids paid by vertex $v$.

Let $\vec{0}=(0, \ldots, 0) \in \mathbb{N}^m$.
For $\vec{x}, \vec{y} \in \mathbb{N}^m$, define $\vec{x} < \vec{y}$ if and only if $\forall 0 \leq i \leq m, x_i < y_i$. Define the other relations similarly.
For each $e \in E$, find $\vec{a}_e$ and $\vec{b}_e$ such that for all $v \in V$, $\phi_v(\vec{s}_v + \tilde{\vec{a}}_v - \hat{\vec{a}}_v)$ is maximized while:
$\vec{s}_v + \tilde{\vec{a}}_v - \hat{\vec{a}}_v \geq \vec{0}$, and
$\vec{s}_v(w) + \hat{b}_v^* - \hat{c}_v^* - \tilde{b}_v^* \geq 0$

Some sample utility functions

For $\vec{x} = (x_1, \ldots, x_n)$ and $\vec{y} = (y_1, \ldots, y_n)$, define $\vec{x} \div \vec{y} = (x_1/y_1, \ldots, x_n/y_n)$ with $x_i / 0 = 0$ and $\vec{x} \star \vec{y} = (x_1 \cdot y_1, \ldots, x_n \cdot y_n)$.

Let $\vec{\pi}_e = \vec{b}_e - c_e(\vec{a}_e)$ be the profit vector for $u$ from $v$.
Let $\hat{\vec{\pi}}_v = \sum_{\left\{(x,y) \in E : x=v\right\}} {\vec{\pi}_{(x,y)}}$ be the total profit vector for vertex $v$.
Let $\bar{\vec{\pi}}_v = \hat{\vec{\pi}}_v \div \hat{\vec{a}}_v$ be the average profit vector for $v$.

Most vertices will have a production function $f : \mathbb{N}^m \rightarrow \mathbb{N}^m$.
Let $\grave{\vec{s}}_v = f(\vec{s}_v + \tilde{\vec{a}}_v - \hat{\vec{a}}_v)$ be the new supply vector for $v$.

Let $\grave{\vec{\pi}}_v = \bar{\vec{\pi}}_v \star \grave{\vec{s}}_v$ be the expected profit vector for $v$.

Many vertices will have a utility function then of $\phi_v = \sum_{i=1}^m {\grave{\vec{\pi}}_v(i)}$, or, total expected profit.

Play

Easy screenshots
Easy record / playback
Easy Modularity for Modifiability
Editing tools
Easy/seamless multiplayer
Complete separation of game system model and visualization