Code documentation

From FreeAllegiance Wiki
Revision as of 15:51, 9 May 2008 by TheBored (talk | contribs) (Added requested image)
Jump to navigationJump to search

Allegiance Code Documentation


Overview

The key components of Allegiance are:

The client - Allegiance.exe the server - AllSrv.exe and the UI tool AllSrvUI.exe the lobby - AllLobby.exe

In a typical configuration, there are many servers and clients which connect to a single lobby. A server can host many games at once and a client can join only one server and one game at a time. The lobby is the central communication place where servers announce themselves (and the games they're hosting) and where clients can find, join or create games on a choosen server.

These keys components share many lines of code thru the use of common libraries. The most notable ones are the messsaging API library which is built on Microsoft DirectPlay and the IGC library which handles the game logic.

AllegOverview.png

Edit.png
Stub This article is incomplete

This is an article about a topic that should be covered in more detail by the FreeAllegiance Wiki, but is lacking in content.

You can help by improving it!


ZLib and Utility libraries

IGC library

IGC stands for Internet Game Core. It's the game logic libray (API) and it's shared between clients and servers.

IGC is accessed with of a set of hierarchical abstract classes (interfaces) that hold all the game objects (ships, stations, sectors,...) and their current properties (position, speed, ...).The top class is ImissionIGC which represents a game. With the 'Update' member method, called every ticks on the server, the various objects are updated and their states changed according to the game logic. Consumers of the IGC library must implement the IsiteIGC interface in order to called upon game state change. For instance, the game client will be called upon destruction of a ship in order to display the explosion where as the server will only propagate this event to all clients in that sectors. TBC


Edit.png
Stub This article is incomplete

This is an article about a topic that should be covered in more detail by the FreeAllegiance Wiki, but is lacking in content.

You can help by improving it!

IGC class diagram

WinTrek - Allegiance Client

clintlib

graphic engine

effect engine

sound engine

FedSvr - Allegiance Game Server

The AGC Library

Lobby - Allegiance Lobby Server

Tools

XMunge

Pigs

mdlc