Skip to content

Game Model

Max Fierro edited this page May 15, 2024 · 1 revision

Game-Theoretic Working Model

It is very often that services in this system make fundamental assumptions about how their API can be consumed. While Rust's type system is very helpful when it comes to enforcing data validity (and while error cases are appropriately handled), it is impossible to encode a lot of important behavior into the type system. Therefore, when implementing games and services on the GamesmanNova platform, it is important to have a clear view of how games with different characteristics can be grouped together into different categories, and to have an idea of what categories a game needs to be in to be able to use these services without failure.

Different Types of Games

To reiterate, GamesmanNova is a project for searching extensive-form games. Most games can be presented in the extensive form, so our goal will be to categorize this space into useful subsets. Here is an illustration of a graph of sets, where each arrow can be read as a subset relationship (in other words, as "includes"):

1. Probability

A probabilistic game is one which involves chance when it comes to transitioning histories. This is usually modelled by introducing a "nature" player whose behavior is modelled by a random variable. On the other hand, a deterministic game is one in state transitions can be entirely determined by players' strategies.

Note: The word "can" is doing a lot of heavy lifting here. A game can involve probability (e.g., a player chooses to act randomly as a strategy) yet still be deterministic. You can think of these categories as minimally referring to the nature of the game.

2. Cardinality

An infinite game is one where it is optionally possible for players to transition histories indefinitely, even if there exists a sequence of choices that players can make that leads to the game ending. A finite game is one where this is strictly not true.

A continuous game is one where the history transition function is continuous. This can seem confusing, but the intuitive goal of this category is to classify games that carry some semblance of reality (in fact, the very concept of "history" or "the past" is something we associate with the continuous passing of time). A discrete game is one where histories are mathematically countable. The latter can be conveniently represented as a graph, which this project takes ample advantage of.

3. Utility Measure

4. Player Count

5. Structure

6. Information