From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.Client/Network Implementation Notes.txt | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Minecraft.Client/Network Implementation Notes.txt (limited to 'Minecraft.Client/Network Implementation Notes.txt') 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 + -- cgit v1.2.3