|I've asked a friend who's a skilled programmer knowledgeable in networking to look into Cafu to implement a better dedicated server and implement IPv6.|
The IPv6 part should be relatively easy to implement, and it should be possible to do it nicely isolated from everything else.
We even have a ticket with some additional info already:http://trac.cafu.de/ticket/42
|He'll be reading through for a while and I was wondering if everyone, especially Carsten, input what changes they feel are critical to improving the engine on the network end of things.|
Well, on the UDP layer, things are somewhat old (you can "see" the age in the style of the code), but otherwise there are no known problems with it. It's battle-tested and stable.
Personally, what I'd like to see in the mid or long term, is a replacement of our own reliable/unreliable packet layer with SCTP:http://en.wikipedia.org/wiki/Stream_Con ... n_Protocolhttp://www.sctp.de/sctp.html
This needs more research though, and generally is a large task.
|Right now Cafu doesn't have a true dedicated server, just a headless, the dedicated server would be a stripped down and enhanced Cafu child project rolling with the latest version.|
Well, yes. I made a few half-hearted attempts to create a dedicated server in the past, but eventually (re-)focused on things that seemed more important every time.
It's probably not too difficult to strip down the existing "full" executable to a dedicated server (using the "null" renderer and sound system), but the question is how you would like to communicate with it.
You'd have to provide console input and output either from the local keyboard and to the local screen, and/or have it communicate via a game client.
For this too there is some existing old (and working!) code (check out the rcon
console command), but from today's point of view I'd rather have the (dedicated) server listen on a separate port for control (console) commands, with connections preferably tunneled via SSH.
|The only things I've asked to be implemented are IPv6 and a simple key based user system which can be expanded upon on later.|
What do you mean by "key based user system"?