[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Enigma-devel] Networking

From: Daniel Heck
Subject: Re: [Enigma-devel] Networking
Date: Sun, 22 Feb 2004 20:34:24 +0100

Johannes Fortmann wrote:

> Daniel: Since in one of your last mails you mentioned "laying the 
> groundwork for network games", what have you planned? 

I don't have any concrete plans, only a couple of rough ideas.  In the
last few weeks I started to separate the code more cleanly into "server"
and "client" functionality.  It's not nearly finished, though.

> How can I help?

Converting the current code base is a huge task, we can only do it step
by step.  Here's a rough list of small steps needed:

- Choose a suitable networking library.  My favourite is enet
  (enet.cubik.org), but SDL_net might also be an option.

- Integrate the library into the Enigma configure script / Makefiles

- Add basic support for message passing, both using a memory buffer (for
  local games) or using a network connection if present

- Add a --dedicated command line options that starts Enigma as a
  standalone server (we can later remove it, but I think it's useful for
  testing purposes)

- rework world.cc to properly handle multiple physical players

- changing models and starting animations should probably handled on the
  client-side, so we need a way to transfer an object's state variables.

  (My idea is that the client can run exactly the same code as the
  but usually  not change the game state.  The game state on the
  client-side can only  be modified by messages from the server.)

- Convert all objects to properly sync their state over the network

- Add menu buttons for starting/joining a network game

- ... lots of changes I cannot forsee at the moment

If you want to help, choose any of these tasks and "just do it".  Or
propose better solutions to particular problems.  I have no experience
writing network games, so I definitely could use some help.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]