Skip to content

Definitions

Raluca D. Gaina edited this page May 19, 2020 · 9 revisions

Board games

  • Action: Independent unit of game logic that modifies slightly a given game state towards a specific effect. Actions are performed by players and can be used by the game engine as well if appropriate to simplify code. Examples: player draws a card; player moves their pawn.
  • Rule: Unit of game logic part of a game flow graph. It modifies slightly a given game state towards a specific effect and informs of the success of the execution, which affects the flow through the game graph. Rules are executed by the game engine after player actions. Examples: trigger a specific game event; decide which player plays next; check end of game conditions; shuffle a deck of cards, reveal the top card and apply its effect to a random player.
  • Turn order:
  • Component: Umbrella term for all game objects (as follows). Actions and rules modify the state of these components.
    • Deck: A collection of components with specific interactions available, e.g. shuffle, pick first, discard a component etc.
    • Token:
    • Dice: etc.

Framework

  • Player: Human, random or an Artificial Intelligence agent interacting with the game and performing actions.
  • Game loop: Found in the core.Game.java class, controls execution of a game and links all objects by repeatedly computing observations from the game state, asking players for actions and sending the actions to the forward model; the loop is broken when it is informed the game is over and the result of game (and winners/losers) are reported.
  • Game state: Player independent. A container of all components in the game and any other variables describing a moment in time.
  • Observation: Player specific. A reduced game state which includes only those components (or parts of the components) which are visible (or observable) to the player receiving the observation.
  • Forward model: Performs actions requested by the players and executes any other game rules to modify a given game state, encompassing all logic of the game.
  • GUI: Graphical user interface, displays game states and allows human interaction.
  • Game parameters: Numbers that are specific to a game and control various functionality (e.g. number of cards a player has to draw in their turn; number of bad things that happen to the player).
  • Game data: Information at the basis of the game that allows the creation of components, stored in Json files and read automatically by the component classes (e.g. card definitions - names, effects, counts; tile patterns; board nodes connections).
  • Constants: Contains caches of hashes of string keys for the game, categorical variable definitions or any other constant definitions.

Clone this wiki locally