Mechanics - jeutn/omg-research-project GitHub Wiki
For a summary of the gameplay loop, see Gameplay. This page details the mechanics featured in the game which will be translated in a digital implementation. Each mechanic is described using Hunicke et. al. (2004)'s MDA framework, followed by a summary of the gameplay and dependencies using Lankoski & Bjork (2015)'s game research method in the formal analysis of gameplay.
See Actions for a list of possible game actions.
The Mechanics-Dynamics-Aesthetics (MDA) Framework describes a methodology to analyse game design and development, presented by Hunicke et. al. (2001). It helps with understanding the relationship between Mechanics (the components/actions of the game), Dynamics (the run-time behaviour of the mechanics acting on player inputs) and Aesthetics (the emotional responses from the player).
| Mechanic | Deal predefined starting cards to each player (1 Charburner, 1 Worker) from the deck; initialise shared tableau as empty |
| Dynamic | Creates equal starting conditions; players begin with identical capabilities* |
| Aesthetic | Creates a sense of clarity and readiness, as players recognise a fair starting point and begin thinking about possible strategies |
*NB: While starter cards are the same, the Charburner may require different types of resources (but same amount per player) to start production. This allows for players to have different starting conditions each time, leading to variability in gameplay actions.
Formal Analysis of Gameplay
- Game State Change: Each player receives fixed starting cards; shared tableau is reset to an empty state
- Action → System Response: System distributes predefined cards to all players → system clears any existing shared state
- Dependencies: Sets up the basic conditions for the rest of the game; later actions like production and building, and inventory management rely on these starting resources
Actions invoked:
- DealCards(type, num)
- ClearTable
| Mechanic | Shuffle the deck and deal 5 random Building cards to each player’s hand; DEAL 7 Goods cards into each player's Charburner |
| Dynamic | Adds randomness with starting resources (Buildings and Goods) to start planning and strategising; creates diversity in early game options |
| Aesthetic | Evokes curiosity and anticipation as players discover their starting options and consider potential directions for individual gameplay |
Formal Analysis of Gameplay
- Game State Change: Each player's hand receives five randomly selected building cards, and each player's Charburner receives seven goods cards
- Action → System Response: The system shuffles the deck and deals cards to players, assigning certain amounts of buildings and goods
- Dependencies: Depends on the deck’s composition and and introduces randomness; directly affects what strategies players can consider early in the game, or how players can structure their gameplay to produce the most profit
Actions invoked:
- ShuffleDeck
- DealCards(type, num)
| Mechanic | Select a player to act as 'host' or 'active player' for this round; establish clockwise turn order for action resolution |
| Dynamic | Introduces structured turn-taking and pacing; decision-making temporarily in the active player's power; creates anticipation and downtime for others while they observe and plan |
| Aesthetic | Creates anticipation and attentiveness, as players prepare to act or observe others before their turn |
Formal Analysis of Gameplay
- Game State Change: One player is assigned as the starting player, and the turn order for the round is set
- Action → System Response: The system selects a player and assigns them as the active player, defining the order of play
- Dependencies: When players are the active player, they host that particular round, dealing cards and narrating - player is able to influence the pace of the round. Being the active player should not affect the strategy and decision-making autonomy of other players
Actions invoked:
- SelectPlayer(players[])
*NB: In the physical board game, the turn structure and 'active' player describes the player who will 'host' or narrate for that round. All other actions are performed simultaneously. In a digital version, this may be automated to reduce load on the player, as these activities are considered 'housekeeping'. This hosting has little impact on a player's decision-making or strategising during gameplay. Therefore, when digitising, this mechanic may be chosen to be omitted.
| Mechanic | Allow players to discard their entire hand and draw the same number of replacement cards (optional action) |
| Dynamic | Enables chance and risk management; players can mitigate poor draws but sacrifice current options; introduces a trade-off between certainty and potential improvement |
| Aesthetic | Creates tension and a sense of control, as players decide whether to risk their current hand for a potentially better one |
Formal Analysis of Gameplay
- Game State Change: Player’s entire hand is discarded and replaced with a new set of cards of equal size
- Action → System Response: Player triggers replacement → system removes current hand and draws new cards of equal amount from the deck, this action can only be performed once at the start of each round
- Dependencies: Depends on player's current hand, deck composition and introduces randomness; directly affects player's options for upcoming production and building decisions
Actions invoked:
- ReplaceHand
| Mechanic | Reveal cards from the deck onto the shared tableau until 2 half-sun symbols appear (partial market reveal; remaining cards stay hidden for later phase) |
| Dynamic | Creates incomplete information about total resource inventory; forces players to make production/build decisions under uncertainty; encourages risk assessment and probabilistic thinking about what may appear later |
| Aesthetic | Evokes uncertainty and anticipation, as players react to partial information and speculate about what might appear next |
Formal Analysis of Gameplay
- Game State Change: Shared tableau is partially filled with revealed cards until the stopping condition is met
- Action → System Response: System draws and reveals cards sequentially (one by one) → checks for half-sun condition → stops when condition is met
- Dependencies: Depends on distribution of symbols in the deck; influences player production planning and probability estimation of resource availability
Actions invoked:
- DrawCard(deck)
- RevealCard
- CheckSun(half-sun symbols == 2)
| Mechanic | Reveal additional cards from the deck into the shared tableau until 2 half-sun symbols appear (completing the market display) |
| Dynamic | Completes previously hidden information; resolves uncertainty from earlier decisions; determines resource availability for production outcomes |
| Aesthetic | Creates a moment of reveal and resolution, as uncertainty is replaced with full information and outcomes become clear |
Formal Analysis of Gameplay
- Game State Change: Shared tableau is completed with additional revealed cards until the stopping condition is met
- Action → System Response: System continues drawing and revealing cards one by one → checks half-sun condition → stops when complete
- Dependencies: Depends on deck composition; resolves earlier uncertainty and finalises available resources for production
Actions invoked:
- DrawCard(deck)
- RevealCard
- CheckSun(half-sun symbols == 2)
| Mechanic | Allow each player to select one building card to activate for production this round |
| Dynamic | Forces commitment under incomplete information; players must evaluate between available resources vs potential future supply; differentiation in player strategies based on risk taken |
| Aesthetic | Creates tension and commitment, as players lock in a choice without knowing the full outcome, anticipation for the final market reveal |
Formal Analysis of Gameplay
- Game State Change: One building per player is marked as active for production this round
- Action → System Response: Player selects a building → system assigns it as the active production target, only that particular building can produce goods via main worker for this round
- Dependencies: Depends on available buildings in hand and visible resources; player chooses based on potential future resources that may be revealed based on chance; interacts with worker assigned and resource inventory
Actions invoked:
- SelectBuildingForProduction(hand)
| Mechanic | Allow each player to choose a worker type (Sloppy Worker or Efficient Worker) to assign to the selected building for production |
| Dynamic | Introduces a risk–reward trade-off, Efficient Worker increases reliability but require more resources, while Sloppy Worker allows flexibility at reduced efficiency; players adjust choices based on expected resource availability |
| Aesthetic | Produces a feeling of caution decision-making, do players risk the market for higher profit or play it safe for guaranteed production? |
Formal Analysis of Gameplay
- Game State Change: Selected worker is assigned to the chosen building, modifying production conditions for that round
- Action → System Response: Player selects worker type → system binds worker to building and applies corresponding production rules
- Dependencies: Depends on expected resource availability; directly affects production success and goods outputted and its value
Actions invoked:
- SelectWorker([efficient, sloppy])
- AssignWorkerToBuilding(worker, building)
| Mechanic | Allow players to optionally select and construct one building from their hand by paying its cost after production; place the chosen building face-down on the player’s tableau |
| Dynamic | Introduces hidden information to all players; players invest resources for future benefit while obscuring their strategy from others |
| Aesthetic | Creates a sense of secrecy and personal planning, as players commit to future strategies without revealing intentions |
Formal Analysis of Gameplay
- Game State Change: Selected building is reserved (hidden for other players) for later construction; resources are not yet deducted
- Action → System Response: Player selects building → system places it in a pending build state on player tableau
- Dependencies: Depends on current hand and future predicted resource availability; interacts with later coins payment and construction resolution on the player's building site (or resolution of being forfeited if choosing not to build/can't build)
Actions invoked:
- SelectBuildingToBuild(building, cost)
- AddBuildingToTableau(player, building)
| Mechanic | Allow players to optionally move an assistant from one building to another by paying 2 coins. Assistant must be active for this to be allowed. |
| Dynamic | Enables reallocation of production support; allows players to adapt their production based on changing needs |
| Aesthetic | Produces a feeling of control and adaptability, as players adjust their setup to better suit their strategy |
Formal Analysis of Gameplay
- Game State Change: Assistant is reassigned from one building to another; player's coin total is reduced by 2
- Action → System Response: Player selects assistant and target building → system updates and adds additional production → deducts coins
- Dependencies: Requires active assistant and sufficient coins; affects production efficiency in later steps
Actions invoked:
- SelectAssistant
- MoveToBuilding(building)
- PayCoins(num)
| Mechanic | Allow a player to hire an assistant by paying the required coin cost; the assistant is placed on the player’s tableau and can be assigned to buildings in future rounds. An assistant can be hired if the player meets the pre-requisite conditions (e.g., owns specific buildings required to unlock that assistant) |
| Dynamic | Encourages long-term planning, players may adjust their choices in earlier phases to meet the conditions for hiring a desired assistant. This creates a series of interdependent decisions between building acquisition, resource management, and production strategy |
| Aesthetic | Evokes anticipation and strategic foresight, as players plan several rounds ahead to unlock and hire a desired assistant. Provides a visible goal that informs their current and future actions, reinforcing decision-making awareness |
Formal Analysis of Gameplay
- Game State Change: Player coins decrease; assistant token is added to player tableau; future production actions are enhanced via assistant assignment
- Action → System Response: Player chooses assistant → system verifies pre-requisites → coins are deducted → assistant is immediately assigned to a building → assistant becomes available for production after main worker finalises their own production → assistant stays on particular building unless moved by player by paying coins
- Dependencies: Requires sufficient coins and meeting assistant pre-requisites; interacts with building selection, resource accumulation, and production mechanics; influences planning for future rounds
| Mechanic | If player has enough required goods, resolve production to generate output goods depending on worker type (efficient vs sloppy); receive 1 or 2 goods depending on worker type. Resource inventory will come from player hand + market display + any market offices in play per player. Discard cards if resources played from player hand. Receive goods into player inventory, update total coins value |
| Dynamic | Rewards accurate prediction and resource management |
| Aesthetic | Creates satisfaction and reward as players see their plans successfully resolve itself |
Formal Analysis of Gameplay
- Game State Change: Resources are consumed; new goods are added to player inventory; coin totals are updated
- Action → System Response: System checks resource availability from player hand & market display → consumes required inputs → generates output based on worker type → updates inventory and coins
- Dependencies: Depends on combined resources from hand, market, and buildings; influenced by earlier production and worker decisions
Actions invoked:
- ConsumeResources(tableau, optional hand)
- ProduceGoods(worker type, building)
- UpdateGoodsInventory
- UpdateCoins
| Mechanic | If required goods are not available in the shared tableau or player hand, production fails and no output is generated, player turn is passed |
| Dynamic | Punishes poor prediction or risk-taking; reinforces importance of planning under uncertainty |
| Aesthetic | Produces disappointment and frustration, highlighting the risk of earlier decisions. Players use this learning for future play |
Formal Analysis of Gameplay
- Game State Change: No resources are consumed and no goods are produced; player state remains unchanged i.e player essentially forfeits a turn to produce
- Action → System Response: System checks requirements → detects insufficient resources → cancels production
- Dependencies: Depends on resource availability and prior decisions; reinforces outcomes of earlier risk-taking
Actions invoked:
| Mechanic | Invoked after initial production has commenced. Use extra resources from hand or market display to produce additional goods. Output goods from other buildings can also be used. Receive goods, update goods inventory and total coins value |
| Dynamic | Rewards efficient building order and planning |
| Aesthetic | Creates satisfaction and enjoyment from optimisation, as players gain more goods from their strategic planning |
Formal Analysis of Gameplay
- Game State Change: Additional goods are produced through chained building effects; goods inventory and coins increase
- Action → System Response: System evaluates eligible chains → consumes additional resources if available → produces further outputs
- Dependencies: Depends on chosen building chain and available resources; interacts with earlier production outcomes (linked chain production is available if >=1 good is produced via initial production)
Actions invoked:
- ProductionChain
- UpdateGoodsInventory
- UpdateCoins
| Mechanic | Allow players to optionally trigger an additional production using a hired assistant after the main worker resolves production. Update goods inventory and total coins value |
| Dynamic | Enables chained production and increased efficiency; rewards prior investment in assistants |
| Aesthetic | Produces a sense of payoff and reinforcement, as earlier investments lead to additional benefits |
Formal Analysis of Gameplay
- Game State Change: Additional production occurs using assistant; goods and coins increase
- Action → System Response: System triggers secondary production using assistant → consumes resources → updates inventory and coins
- Dependencies: Requires previously assigned assistant and sufficient resources; builds on prior investment decisions
Actions invoked:
- ConsumeResources(tableau, optional hand)
- ProduceGoods(worker type, building)
- UpdateGoodsInventory
- UpdateCoins
M16. (OPT) Build building (if chosen previously to build one) by paying >= cost required. Forfeit card if choosing to not build/can't build
| Mechanic | Allow players to resolve a previously selected building, either pay >= required cost to construct it or forfeit (discard) the card if choosing not to build. The discarded card goes back into the deck. |
| Dynamic | Enforces consequences for earlier decisions; encourages careful planning before selecting builds |
| Aesthetic | Creates either satisfaction or regret, depending on whether earlier commitments successfully pay off or not |
Formal Analysis of Gameplay
- Game State Change: Building is either added to player's building site (if cost paid) or discarded back into deck
- Action → System Response: System checks if player pays required cost → if yes, constructs building → if no, discards card
- Dependencies: Depends on earlier build selection and available resources; affects future production capacity
Actions invoked:
- AddBuilding(building)
- PayCoins
| Mechanic | Building a Market Office either adds a resource for play in the player's market display, OR draws an extra card into player hand at the start of each round once active |
| Dynamic | Changes player resource access and card flow by either expanding available market options or increasing hand size, enabling more flexible strategic planning and long-term production development |
| Aesthetic | Conveys a sense of economic expansion, reinforcing the feeling of building a stronger trading presence and gaining greater control over available opportunities |
Formal Analysis of Gameplay
- Game State Change: The player permanently adds a Market Office building to their board. Depending on the selected variant, the building either modifies the market display by adding a specific resource card or increases the player’s hand limit by +1 each round while active
- Action → System Response: When the player builds the Market Office, the system identifies resource costs, removes required resources, and places the building in the active building area. The game state is then updated so that either (1) an additional resource card is added to that player’s market options, or (2) the player’s hand limit is increased at the start of each round
- Dependencies: Players must have sufficient resources to construct the building, action must occur during a valid build phase, building effect depends on selected Market Office variant, turn manager must apply passive effects at round start
| Mechanic | Complete the production phase by adding produced goods to inventory, updating newly built buildings and inventories |
| Dynamic | Consolidates all production outcomes; resets the game state for the next round |
| Aesthetic | Creates a sense of closure and reflection, as players review the outcomes of their decisions |
Formal Analysis of Gameplay
- Game State Change: All production results are consolidated; inventories and building states are updated
- Action → System Response: System updates all player resources, buildings, and coins inventory → prepares state for next round
- Dependencies: Aggregates outcomes from all previous production steps; resets conditions for future actions
Actions invoked:
- UpdateGoodsInventory
- UpdateBuildingSite
- UpdateCoins
| Mechanic | Remove all cards from the shared market display, return to deck |
| Dynamic | Resets the market for the next round; ensures no carry-over of resources and allows for new cards to be dealt in next round |
| Aesthetic | Produces a sense of reset and anticipation, as the game prepares for a new round with unknown possibilities |
Formal Analysis of Gameplay
- Game State Change: All cards are removed from the shared tableau (market display) and returned to the deck
- Action → System Response: System clears tableau → reintegrates cards into deck
- Dependencies: Prepares for next round’s draw; removes previously available shared resources
Actions invoked:
- ClearDisplay
| Mechanic | Check if any player has reached 8 buildings; if yes then trigger signal that one final round (after current one finishes) will be played before game end |
| Dynamic | Triggers endgame condition; creates urgency for remaining players to maximise actions |
| Aesthetic | Creates urgency and heightened tension, as players realise opportunities are running out; excitement for final results and outcomes |
Formal Analysis of Gameplay
- Game State Change: Game enters final round state once current is completed
- Action → System Response: System checks building count → if threshold reached, notice to players to finish the current round → flags that the next round will be the final round using all production chains
- Dependencies: Depends on number of constructed buildings; affects player decision urgency in remaining turns
Actions invoked:
- CheckEight
- FinalRoundSignal
| Mechanic | Resolve production across buildings for all players, including chained production for all buildings regardless of if there is a worker active. Receive goods and update goods inventory, total coins value |
| Dynamic | Enables full building activation; rewards strategic planning from previous rounds |
| Aesthetic | Produces a strong sense of payoff and culmination, as players see their full strategy in action |
Formal Analysis of Gameplay
- Game State Change: All buildings produce goods regardless of worker assignment; inventories and coins increase
- Action → System Response: System triggers production across all eligible buildings → applies chaining → updates resources
- Dependencies: Depends on all available buildings active for a player; reflects cumulative effects of earlier strategic decisions
Actions invoked:
- ProductionChain
- ProduceGoods
- UpdateGoodsInventory
- UpdateCoins
| Mechanic | At the end of the final round, calculate each player’s victory points from buildings and convert any remaining coins into additional points; update total VPs for each player |
| Dynamic | Determines the winner; rewards careful resource management throughout the game |
| Aesthetic | Creates suspense and evaluation, as players compare outcomes and reflect on their overall performance |
Formal Analysis of Gameplay
- Game State Change: Player scores are finalised based on buildings VP value and converted resources
- Action → System Response: System calculates points from buildings → converts remaining coins → updates total scores
- Dependencies: Depends on all accumulated resources (goods) and constructed buildings throughout the game
Actions invoked:
- CalculateVPFromBuildings
- ConvertCoinsToVP
- UpdateTotalVP
| Mechanic | Compare total victory points of all players and identify the player with the highest score as the winner |
| Dynamic | Resolves the game outcome; provides closure to competition; finalises rankings among players |
| Aesthetic | Produces closure, along with feelings of satisfaction or disappointment depending on the result |
Formal Analysis of Gameplay
- Game State Change: Winning player is determined and game state is finalised
- Action → System Response: System compares total victory points → selects highest scoring player as winner
- Dependencies: Depends on final score calculations; concludes all prior game processes
Actions invoked:
- IdentifyWinner
Gameplay systems describe the core mechanics that govern player decisions, resource management, and the progression of each round. These systems define how players interact with buildings, workers, and the market while balancing risk and reward. Together they create the strategic environment in which players must plan production, manage resources, and anticipate uncertainty.
Players must make several key decisions each round that influence their economic efficiency and long-term strategy. These decisions are often made with incomplete information, requiring players to balance risk, resource availability, and potential rewards.
Players decide between two worker modes before production begins:
- Efficient Worker – Provides more reliable production with a lower chance of failure
- Sloppy Worker – Introduces greater uncertainty but may allow for more flexible production outcomes
This decision introduces a risk–reward trade-off, where players must evaluate whether they prefer predictable outcomes or potentially higher gains
Players choose which building to activate during the production phase. Each building converts specific resources into goods with different coin values.
This decision depends on:
- Available resources in the player’s hand
- Current market display
- Anticipated future resource needs
Selecting the correct building allows players to optimise production chains and maximise economic output.
Players must decide how to invest their resources during the planning phase:
- Build a new building, expanding their long-term production capacity and unlocking new production options.
- Hire an assistant, improving short-term production by supporting existing buildings.
This creates a long-term vs short-term optimisation problem, where players must decide between expanding infrastructure or improving current efficiency.
A key element of gameplay is uncertainty in the market system. Market cards are revealed gradually, meaning players must commit to production decisions before all information becomes available. Because players cannot predict the full market outcome, they must make decisions based on partial information.
This uncertainty creates:
- Risk management decisions
- Strategic anticipation 8 Adaptation to changing resource availability
The market system therefore encourages players to evaluate probabilities rather than deterministic outcomes.
Worker modes directly affect the reliability of production outcomes. The choice of worker mode introduces variability in production outcomes and encourages players to evaluate their tolerance for risk each round.
| Mode | Effect |
|---|---|
| Efficient Worker | Higher reliability (more consistent production) |
| Sloppy Worker | Lower reliability (higher risk) |
The economy system represents the conversion of resources into monetary value and ultimately victory points.
Coins: coins represent the economic value generated through production
Coins are used for:
- Paying building costs
- Hiring assistants
- Measuring the value of produced goods
Each produced good has a corresponding coin value. When paying for buildings or assistants, players must provide goods that match or exceed the required coin value.
Victory Points: Victory points represent a player’s final economic success.
Victory points are calculated at the end of the game. This conversion system ensures that efficient resource production and economic management directly translate into victory.
Randomness is introduced through the card draw system, which determines the order and composition of resources appearing in the market.
Random card draws affect:
- Resource availability
- Market composition
- Production opportunities
This randomness ensures that each game develops differently and prevents deterministic strategies.
| Area | Visibility |
|---|---|
| Hand | Private |
| Market Display | Public |
| Deck | Hidden |
These visibility levels create information asymmetry, where players must make decisions with limited knowledge of other players’ resources and future market outcomes.
template
| Mechanic | |
| Dynamic | |
| Aesthetic |
Formal Analysis of Gameplay
- Game State Change:
- Action → System Response:
- Dependencies: