= Network Manager = [[ArchivePage]] == !ToDo == !ToDos/Inputs for the Network Interface: 0. Adjust Synchronizeable Arch * [DONE] Registration for variables (pointer, type) -> see uml diagram * [DONE] data compression (zlib) 1. Player stats * [DONE] structure to store/share stats over network (PlayerStats) * [NOT NEEDED] ability to listen to changes 2. NetworkGameManager * [DONE] handle teamchanges / player names / ... * respawn 3. Synchronizeables * [DONE] implement event based sync * [DONE] do less polling :D 4. [wiki:archive/NetworkStream NetworkStream] * [DONE] create datastructure which represents player (id, socket, ...) * attach synchronized (the same on all clients) timestamp to packets to predict movement * traffic shaping 5. Collision detection * both (server and client) do collision detection * client: collision with objects/walls, but don't decrease health * server: everything, tell client to decrease health 6. Other (important) * [DONE] network monitoring ability (telnet, http, ...) 7. Other * auto find lan servers * global server for internet servers Advanced Feature Requests * [DONE ]UDP implementation (games programming community is not sure, if this realy is better: faster for sure but does this overwight reliability?) {{{ I can't agree that UDP gives a *better* performance. A faster performance, almost definitely.}}} (Elden Armbrust) * One novelty you might try is give some graphical hint as to how much lag there is .. eg blur vision or something so the player can take the lag into account. == Documents == More information here: * [wiki:archive/NetworkAbstract Abstract] - Feature requests and its requirements. * [wiki:archive/NetworkUMLClass UML Class Diagram] - UML-Class Diagram and Module Schematics. * [wiki:archive/NetworkUMLSequence UML Sequence Diagram] - UML-Sequence Diagram: defines the process sequence.