Game Engine
From Third City
The Game Engine is a server system for aiding the GM and powering graphical systems. Each aspect of the game is divided into egos capable of responding to specific questions placed to it by other egos.
Objects
Egos
Grid Master
- Keeps "places", which are grids that have no connection to each other.
- Range()
- inputs: which grid, a grid coordinate, and range (radius/number of steps)
- output: list of grid coordinates within range
- usage: learn how far a character can move or which squares were subject to area attack
- Cover()
- inputs: two grid coordinates
- output: how much cover exists between the two
- usage: cover grants a percentage chance to miss on ranged weapons (you strike the cover instead)
- Paths()
- inputs: the moving character, the tactical awareness of the character, if you want to force an attack of opportunity or not, if you want to force the character to reach the destination (forces attacks of opportunity even if the character would know better)
- output: grid coordinates for a path between two points
- usage: getting the path a certain character will take
Character Master
- Keeps track of "characters" and how they would behave.
- Act()
- Every round, each character chooses his action based on his own internal set of priorities. Sometimes it's possible to get distracted within the previous action.
Combat Master
- Keeps track of combat.
- Attack()
- Once a character decides to attack (instead, for instance, of running), the character decides what attack to perform based on its motivation and tactical awareness.
Automatic System Actions:
General:
- Different terrain types and provides bonuses or minuses according
- If ranged weapon, ergo (blaster) animation could be attached
Character/NPC/Monster:
- Store data for all characters
- Option to store sound effects for different attacks, force/spells, and taking damage maybe aggravation as well
- Automatic damage from opponents damage roll being entered (via dd list)
- Flash character red if damaged severely (ask to roll for morale on miniature game)
- Provide user with what dice to roll and when
- Alerts what player can add when they level
- Store order for player actions (GM view only)
- Highlight the active character
- Highlight the target
View Modes:
- 1. Manual
- There is only one screen and what you see is what you get. As the user (probably the GM) populates the grid with images, you might even see his mouse move around. There's no way to prepare hidden monsters or the rest of the map before they are visible to the players. While this is not the optimal approach, it is not hindered by any single game's rules and can easily be used in a pinch.
- 2. Two Screens ("Fog of War")
- There are at least two views of the same grid. While the GM's view of this grid is "normal", the player view contains the fog of war. Hopefully, there's a nice way of signifying on the GM screen where the fog of war exists while still allowing the GM to see what's under it.
- 3. One Screen Per Character
- This would require a complete separation between game world and view. For instance, if fog only allows characters to see two squares away from themselves, then each view would be different because they're all standing in different locations. This is what would be required to allow remote players.

