|
|
(68 intermediate revisions by 6 users not shown) |
Line 1: |
Line 1: |
− | The code of VCMI is divided into several main parts: client, server, lib and AIs, each one in a separate binary file.
| + | {{Template:MovedToWebpage|https://vcmi.eu/developers/Code_Structure/}} |
− | | |
− | = Structure of client =
| |
− | | |
− | == Main purposes of client ==
| |
− | | |
− | Client is responsible for:
| |
− | * displaying state of game to human player
| |
− | * capturing player's actions and sending requests to server
| |
− | * displaying changes in state of game indicated by server
| |
− | | |
− | == Rendering of graphics ==
| |
− | | |
− | TBD
| |
− | | |
− | == Adventure map ==
| |
− | | |
− | TBD
| |
− | | |
− | == Town ==
| |
− | | |
− | TBD
| |
− | | |
− | == Battle ==
| |
− | | |
− | === Animations of creatures ===
| |
− | All animations of creatures in a battle are handled by storing currently displayed animations in pendingAnims vector. When server tells that an event requiring animation happens, info about it is added to pendingAnims. Every animation needs to be initialized (what indicates that this animation has started). show() function tries to initialize all not initialized animations every frame until it succeeds. Then nextFrame call-ins are called until animation removes itself from pendingAnims. During initialization it is checked if this animation can be played now or we must wait.
| |
− | | |
− | = Structure of server =
| |
− | | |
− | == Main purposes of server ==
| |
− | | |
− | Server is responsible for:
| |
− | * maintaining state of the game
| |
− | * handling requests from all clients participating in game
| |
− | * informing all clients about changes in state of the game that are visible to them
| |
− | | |
− | = Structure of lib =
| |
− | | |
− | == Main purposes of lib ==
| |
− | | |
− | Lib is responsible for:
| |
− | * handling Heroes III's files (.lod, txt setting files)
| |
− | * storing information common to server and client (if run on the same machine) like state of the game
| |
− | | |
− | = Structure of AI (GeniusAI) =
| |
− | | |
− | TBD
| |
− | | |
− | = How these parts are connected =
| |
− | | |
− | TBD
| |