-= Map Options Object =-
	Map Filename
	Game Type
		Game Type Options
	Player Slots

-= PlayerCodeSet Object =-
A byte where each bit is a flag representing a player
being included in the set

-= Alliances Object =-
An array of three PlayerCodeSets, one for allies, one for
vision, and one for shared control

-= Standing Object =-
An enumeration of CAN_DRAW, CAN_SURRENDER,
HAS_WON, HAS_LOST, HAS_DRAWN

-= Command Object =-

A command type code, and a target which can be either
a position or a unit.

An enumeration for STOP, HOLD, MOVE, ATTACK, REPAIR,
GATHER, BUILD, BURROW, LIFTOFF, LAND, SPECIAL_ABILITY,
etc. It can have a target that is a position or a unit.

-= Game Object =-

Public Methods:
	Game(const MapOptions &options);
	SendMessage(const char szMessage[], const PlayerCodeSet to);
	SetAlliances(const Alliances alliances);
	//SetSpeed();
	//SetLatency();
	Pause();
	Resume();
	Leave();
	CommandUnits(const UnitSet &units, const Command command);
Signals:
	MessageReceived(const char szMessage[], const PlayerCode origin);
	PlayerStandingChanged(const Standing standing);
	PlayerAllied(const PlayerCode player);
	PlayerEliminated(const PlayerCode player);
	PlayerLeft(const PlayerCode player);
	TimeProgessionChanged(const bool enabled);
	