diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/Network Implementation Notes.txt | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.Client/Network Implementation Notes.txt')
| -rw-r--r-- | Minecraft.Client/Network Implementation Notes.txt | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Minecraft.Client/Network Implementation Notes.txt b/Minecraft.Client/Network Implementation Notes.txt new file mode 100644 index 00000000..e482952c --- /dev/null +++ b/Minecraft.Client/Network Implementation Notes.txt @@ -0,0 +1,45 @@ +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 + |
