= Network engine Development = see also ticket #227 == Goal == The goal of this early time development is to anchor the network engine deeply in the Project and to ensure both scalability and stability. The aim of the development is to have support for a dedicated (and maybe even a standalone) server. == Concept == We are trying to split the game into two pieces:[[BR]] * Backend: * Only running on one computer (Server) * Processing most of the work (exept Graphic Part) * Physik engine * Sound ? * Synchronization (Gamestate) * Event handling (kills, input sent from clients/frontend) * Object managment (position, orientation, health, status, ...) * Frontend: * Running on every client * Taking care about the Interface: * Input (Mouse, Keyboard, ...) * Output (Video Rendering) * Settings (Mouse-, Keyboard-Mapping) == Gamestate == A gamestate contains all the information needed by a client to render the correct image of the current universe. This contains specific variables of all objects (inherited from the class Synchronisable), that are needed to render the object. == Current Status == The framework is standing now. What we currently have/can:[[BR]] * Server and Client class, which handle all the network stuff (not finished because of dependencies to io/universe) * Synchronise the Gamestate (send from server to client) * Generate Packages for Chat, Gamestate, input * Decode Packages * Receiver thread: fetches packages and puts them into a threadsafe Packetbuffer * class Synchronisable: all objects to be synchronised have to inherit from this class and call for each variable the function registerVar == Timetable == || Aim ||| Date || || Find a suiting network library || 31.10.07 || || Implement first Chat-Server || 8.12.2007 || || ... || ... || || Finish implementation || end of semester || == Developers == [wiki:DumeniManatschal Dumeni Manatschal] and [wiki:OliScheuss Oli Scheuss] == Forum == see also [https://forum.orxonox.net/viewtopic.php?t=187 network engine]