Game Analysis Using Resource-Infrastructure-Action Flow October 23, 2011Posted by ficial in games.
Tags: game, game analysis, game design
Since talking with Morgan McGuire a while ago about resource flow diagrams as a useful way to represent and analyze economic games I’ve been thinking off and on about ways to expand that idea. A resource flow diagram is a directed graph in which the vertexes represent in-game resources and the edges indicated that resource of the initial vertex may be converted to the resource of the terminal vertex.
The first area I explored was the expansion of resources to more generalized game state dimensions. In addition to explicit in-game resources the graph would include things like cards in hand, actions, and infrastructure. This quickly lead to two refinements.
I differentiated the vertexes into two sub-types. First were resources, explicit or implicit dimensions of the game state which are quantifiable. Second were actions, rules of the game that allowed the conversion of one resource to another. No resource vertex can be directly connected to another resource vertex, and no action vertex can be directly connected to another action vertex; edge paths alternate between resource and action vertexes.
Edges were also subdivided into two types. First were conversion edges, indicating that the resource of the initial vertex is consumed/reduced or that the resource of the terminal vertex is created/increased. Second were influence edges, which always have a resource as their initial vertex and an action as their terminal vertex. The resource of an influence edge is NOT altered. Resources the are the initial vertex of an influence edge are called infrastructure, distinguishing them from consumable resources (from now on called simply ‘resources’).
After trying to use this for analysis I found I needed a refinement – actions were split based on their inputs and outputs. E.g. in the simpler version there might be a trade action that has wood, cows, and gold as conversion precedents (direct predecessors), a market as an influence precedent, and wood, cows and gold as subsequents (direct successors). This would be useful in indicating that the trade action allows the conversion of one resource to another and that having a market affects that somehow, but the details are fuzzy. By splitting the generic trade action into separate actions (market and non-market for each transition) it became clear exactly how the game worked. That refinement also enables weighting each of the conversion edges. The weight indicates how much the initial vertex resource is reduced, or how much the terminal vertex resource is increased. This graph is the resource-infrastructure-action (RIA) flow diagram. It encapsulates how a game works in a vacuum, but does not take into consideration randomizers (though one can use expected values), nor player volition (though one can use a minimax framework). However, it can still be a useful tool.
The RIA flow encompasses the basic functionality of a resource flow diagram in that it illustrates how one in-game resource is converted to another, an eventually to the score/points ‘resource’. It allows us to quantify the efficiency of a path – take the total resource inputs, divide by the total outputs and the number of actions required. This path could be from resources to points, or merely from one resource to another. As a special case of a 2-edge long path, the efficiency of individual actions can also be analyzed – divide the inputs by the outputs.
On a slightly more subtle level, it simplifies analysis of the values of infrastructure. Consider two actions that have identical resources as inputs and outputs (though with different weights), but one also has an infrastructure as an input. The efficiency of the infrastructure is then the difference in the efficiency of those alternate action. This can be generalized to full paths – instead of two actions consider two paths from the same initial resources to points, one of which includes one or more infrastructure-enabled actions and the other of which does not.
An ‘engine’ in a game is an indefinitely repeatable series of actions that generates a net positive change in one or more resources. Building an engine is a key part of a successful strategy in many economic games. In an RIA flow, potential engines are easily identified as cycles in the graph. A cycle is an actual engine if the efficiency of the path is greater than 1 (a direct engine), or if it is equal to 1 but also has output leaves that are not in the cycle (a side-effect engine). The efficiency of an engine can be calculated as the output divided by the number of steps/actions to complete the cycle. In an infinite game the start-up costs of the engine (i.e. what needs to be done to establish the necessary infrastructure and/or gather the prerequisite resource set to prime it) are irrelevant compared to the output, but in a finite situation they come into consideration. One can calculate the expected start up time and and costs (the number of actions and resources needed), and the expected output over the remainder of the game to determine over all expected value of the engine. If the product of the engine is not directly in scoring, then one must also take into account the number of actions needed to convert the output to points.
priming actions = PA
priming resources = PR
engine cycle actions = CA
engine cycle resources gained = CR
actions needed to convert engine output into scoring = SA
efficiency with which engine output is converted to points = CE
efficiency with which PR could have been converted to points = PE
total expected actions in game = GA
((GA-PA-SA)/CA * CR * CE) – (PR*PE) = expected net contribution to final score
Calculations get more complicated if actions may be pipe-lined, but the principle remains the same. There may be other useful digraph analytic tools that could be applied to an RIA flow diagram.