General Board Game Engine
Map Engine
Overview
The map consists of zones arranged in a pattern and having properties and influence on adjacent or surrounding zones. Some of the properties are an image, elevation, line of sight, units therein, etc.
Data Structure
Map
Zone List
Image List
rows
cols
number_zones
Zone
ID
Image ID
Name
Type
Adjacent List
Zone ID (of adj zone)
Boundary List
LOS modifier
Movement modifier
Movement Cost List
Different units might have a different value for each terrain type
Combat Modifier
LOS Modifier
Stacking Limit
Stacking Penalty
Level (ground, upper, roof)
Ground Elevation
Effects List
ID (of effect, like smoke)
State (normal, smoke, destroyed)
Display
Interface
Editing Tool
Need a to have a tool to load an image, section it off, and define a map with zones. These are either regular rectangular or random overlapping rectangular.
Storage Format
Need a binary format to store the image and map information.
Units Engine
Overview
Data Structure
Order of Battle List
Units List (first turn, reinforcements, etc)
Unit
ID
Image File
Image Struct List
Name
Type
Attack Value
Defense Value
Attack Range
Morale
Movement
State
State Struct List
ID
Type (normal, broken, stunned, dispersed, etc)
Image Struct ID
Interface
Editing Tool
Storage Format
Image Engine
Image Struct List
Image File
Image Struct
ID
State
x
y
w
h
Turn Sequence
Overview
All turn based board games have a ‘turn sequence'. It is often as simple as A move, A combat, B move, B combat, repeat. But many games are much more complicated than that with many more interactions.
Integrating Sequence to Event Loop
Need a way to define a data structure for the turn sequence.
Data Structure
Game State List
Game State Struct
Zone ID
Units ID List
Sequence Position (last incomplete turn)
Memory
Saving and Restoring the Game
Need binary method of saving game state information
Network
Network Play
Multiplayer Play
UI
Keyboard
Mouse
Joystick
Scripting
What level of scripting might be useful or required for a flat, 2d game?