Added Doxygen + GitHub Pages

This commit is contained in:
Liriosha
2026-03-13 19:12:38 -04:00
parent 7d81f1597d
commit 07ab03d812
10 changed files with 3227 additions and 53 deletions

View File

@@ -0,0 +1,48 @@
# Network Code Implementation Notes
## Overview
The networking classes are organized as follows:
```
Game \
^ |
| |
+-----------------------------+-----------------------------+ |
| | |
v v |
Game Network Manager <--------------------------------> Network Player Interface |- platform independent layers
^ ^ |
| | |
v | |
Platform Network Manager Interface | |
^ | /
| |
v v \
Platform Network Manager Implementation(1) <------> Network Player Implementation (3) |
^ ^ |_ platform specific layers
| | |
v v |
Platform specific network code(2) Platform specific player code (4) /
```
### Notes
- In general the game should **only communicate with the `GameNetworkManager` and `NetworkPlayerInterface` APIs**, which provide a platform independent interface for networking functionality. The `GameNetworkManager` may in general have code which is aware of the game itself, but it *shouldn't have any platform-specific networking code*. It communicates with a platform specific implementation of a `PlatformNetworkManagerInterface` to achieve this.
- The platform specific layers shouldn't contain any general game code, as this is much better placed in the platform independent layers to avoid duplicating effort.
- Platform specific files for each platform for the numbered classes in the previous diagram are currently:
## Platform-Specific Files
The platform-specific implementations for each numbered class in the diagram:
| Class | Xbox 360 | Sony | Other |
|-------|---------------------------------|----------------------------|-----------------------|
| (1) | PlatformNetworkManagerXbox | PlatformNetworkManagerSony | PlatformNetworkManagerStub |
| (2) | Provided by QNET | SQRNetworkManager | Qnet stub* |
| (3) | NetworkPlayerXbox | NetworkPlayerSony | NetworkPlayerXbox |
| (4) | Provided by QNET | SQRNetworkPlayer | Qnet stub* |
\*Temporarily provided by `extra64.h`

View File

@@ -1,45 +0,0 @@
NETWORK CODE IMPLEMENTATION NOTES
---------------------------------
The networking classes are organised as follows:
Game \
^ |
| |
+-----------------------------+-----------------------------+ |
| | |
v v |
Game Network Manager <--------------------------------> Network Player Interface |- platform independent layers
^ ^ |
| | |
v | |
Platform Network Manager Interface | |
^ | /
| |
v v \
Platform Network Manager Implementation(1) <------> Network Player Implementation (3) |
^ ^ |_ platform specific layers
| | |
v v |
Platform specific network code(2) Platform specific player code (4) /
In general the game should only communicate with the GameNetworkManager and NetworkPlayerInterface APIs, which provide a platform independent
interface for networking functionality. The GameNetworkManager may in general have code which is aware of the game itself, but it shouldn't have
any platform-specific networking code. It communicates with a platform specific implementation of a PlatformNetworkManagerInterface to achieve this.
The platform specific layers shouldn't contain any general game code, as this is much better placed in the platform independent layers to avoid
duplicating effort.
Platform specific files for each platform for the numbered classes in the previous diagram are currently:
Xbox 360 Sony Other
(1) PlatformNetworkManagerXbox PlatformNetworkManagerSony PlatformNetworkManagerStub
(2) Provided by QNET SQRNetworkManager Qnet stub*
(3) NetworkPlayerXbox NetworkPlayerSony NetworkPlayerXbox
(4) Provided by QNET SQRNetworkPlayer Qnet stub*
*temporarily provided by extra64.h