Planet
navihomeaboutscreenshotsdownloaddevelopmentforum

Coding/networking

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:

  • 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:

  • 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

Dumeni Manatschal and Oli Scheuss

Forum

see also  network engine