Homegrown Dedicated Server: DedCon 1.6.0_svn1038

Discuss your new mods and themes here

Moderator: Defcon moderators

User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Wed Jun 06, 2007 10:11 am

See creators post. As long as there are server crashes, I won't release. The three error types that happened in test games yesterday are fixed now, but there may be others. Maybe a week or so is needed. It will go faster the more people help test in spite of the possible server crashes. The test server is running inside a debugger, so I get an immediate view at all problems that arise.

On the implementation side, here's what is still missing:
- It's a known problem that UDP communication sometimes just breaks down (happens when you send a data packet to a host and it isn't accepted) and needs to be restarted. Currently, such an event would disconnect the server from the world.
- Sync problems need to be detected, the clients need to be informed, and resyncing on client request needs to be implemented. The first bit is the difficult one.
- The ability to block out certain versions.
- I haven't tested password protection yet.

Here's what will always be missing:
- the fix for the ship-over-land bug from 1.43. It's in the game code, and the dedicated server has no game code. The best you'll be able to do is to block out clients with version 1.42.
- proper score display on the metaserver list. Again, that's game code.

On the long term list:
I happily discovered that the client accepts configuration changes even after the game has started. So, fancy stuff like this should be possible:
- Random territories, have defection enabled at first. Allow alliances to form during Defcon 5 and 4. Then disable defection.
- Start with radar sharing disabled so you don't see what your "allies" are placing, enable it at Defcon 3.
- Tournament mode: have the server password protected with public spectator chat at first, and disable both as soon as the game starts.

And the game speed part of the protocol is simple enough to implement some of the more advanced "find the right game speed"-algorithms that have been discussed. Like taking the second slowest speed or giving players a budget for slowing the game down.

There also should be an admin mode. It could be either based on the registration key or a simple password you have to enter in chat, and then you should be able to change server settings on the fly and kick annoying people.
Sirthomasthegreat
level3
level3
Posts: 466
Joined: Fri Oct 13, 2006 12:18 am

Postby Sirthomasthegreat » Wed Jun 06, 2007 8:41 pm

you let me know when I can test and I would be happy to do so.
User avatar
shinygerbil
level5
level5
Posts: 4667
Joined: Wed Dec 22, 2004 10:14 pm
Location: Out, finding my own food. Also, doing the shinyBonsai Manoeuvre(tm)
Contact:

Postby shinygerbil » Wed Jun 06, 2007 8:43 pm

This is shaping up to be quite awesome. :D
Here is my signature. Make of it what you will.
Image
torig
level5
level5
Posts: 1251
Joined: Wed Dec 27, 2006 9:19 pm

Postby torig » Thu Jun 07, 2007 12:23 am

Great work!

Reading through your post has helped me better understand things I had observed in recent sniffs ;)
User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Thu Jun 07, 2007 10:19 pm

Password protection, detecting sync errors and correcting them and the socket repairman are now implemented. Missing: the version blacklist and rejoining, I have no clue right now how that is supposed to work.

The best way to help currently is to just play on "DedCon Test" and to report any problems you see. There hasn't been a single crash in the past 24 hours, but most server runs contain of a player joining and leaving immediately. The proper IP starts with 80.135.

Funnily, I met another German fellow named [Human]Player 1 who also worked on reverse engineering the network protocol. He knew quite a lot and it was fun chatting with him about this and that. He said he had a working metaserver replacement, at least for the server browser part.
User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Fri Jun 08, 2007 8:34 pm

Yay, progress. Here's a binary test version:
http://moosnet.homelinux.net/~manuel/defcon/dedcon/

I found that changing server options while the server is running to be quite essential, so I added the remote admin feature right away.

Edit: I pm'ed the source to certain forum members. If, after inspection about safety, it is considered clean, I'll release that too.
Sirthomasthegreat
level3
level3
Posts: 466
Joined: Fri Oct 13, 2006 12:18 am

Postby Sirthomasthegreat » Fri Jun 08, 2007 10:48 pm

Boo, its just for linux.
User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Sat Jun 09, 2007 6:07 pm

Yeah, sorry, that's for several reasons:
- The code is not quite ready for Windows. The bit most in need of fixing is the timer, it uses gettimeofday() which is not available. Then there is the issue that on Windows, you can pick between a reliable, but coarse timer, and a high resolution timer that does not work properly for some people.
- Building for Windows is a small pain. I rather avoid it for test releases.
- Legal issues. The bits of Windows code that should already work were taken from GPL projects. Should IV not want me to release the source, I'd have to redo them, and do that before I release a binary that uses them.
User avatar
shinygerbil
level5
level5
Posts: 4667
Joined: Wed Dec 22, 2004 10:14 pm
Location: Out, finding my own food. Also, doing the shinyBonsai Manoeuvre(tm)
Contact:

Postby shinygerbil » Sat Jun 09, 2007 9:16 pm

Giving it a spin right now; no problems so far, although we shall see. It's just reaching Defcon 1!

Fantastic work, bert. It's really very easy to setup and use, and the scope for options is excellent. If more people use this, I can see it being a lot easier to get in, find a game and get playing :D
Here is my signature. Make of it what you will.

Image
User avatar
Smiling Buddha
level3
level3
Posts: 263
Joined: Fri Apr 20, 2007 7:35 pm
Location: Omnipresent Occupation: Supreme Buddha

Postby Smiling Buddha » Sat Jun 09, 2007 10:26 pm

I found it to be a little unresponsive - for example, when I selected a silo and told it to go into launch mode, I would have to attempt this several times to get it to comply.

The problem could well be at my end, of course.
User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Sun Jun 10, 2007 12:48 am

There was a performance problem with joining spectators and rejoining player; the longer the game lasted, the more CPU power they would suck away; that caused the server to lag and maybe lose packets. That could explain Smiling Buddha's problem, and it's fixed now. As are two exit crashes (nobody got hurt by them) and one midgame crash (some casualties). In the last game, the whole computer seemed to go bonkers and several applications went unresponsive. I couldn't find the cause of that.
User avatar
Wasgood
level5
level5
Posts: 1082
Joined: Sat Sep 02, 2006 11:44 am

Postby Wasgood » Sun Jun 10, 2007 2:10 am

Good game it was the bot was very friendly to talk too. I had the same problem as buddha.
User avatar
bert_the_turtle
level5
level5
Posts: 4795
Joined: Fri Oct 13, 2006 6:11 pm
Location: Cologne
Contact:

Postby bert_the_turtle » Sun Jun 10, 2007 8:32 am

Yeah, even I had this lag, and I'm on the same LAN :)

Whoops, the one suck-up-all-of-the-CPU-power thing happened again and destroyed another game, it was caused my server. This time, I caught it early enough (it causes the debugger to go on a memory allocation rampage) and was able to fix the stupid mistake that caused it.

Edit: Good news for Mac and Windows users. The low resolution timer of Windows proved to be perfectly adequate for the task, so all that stands between Windows users and a working version for them is my lazyness (still need to build and pack and either rewrite the GPL code or wait for source release approval). And, after a small error was corrected, the source compiles cleanly on OSX.
User avatar
Smiling Buddha
level3
level3
Posts: 263
Joined: Fri Apr 20, 2007 7:35 pm
Location: Omnipresent Occupation: Supreme Buddha

Postby Smiling Buddha » Sun Jun 10, 2007 12:04 pm

Are you planning to implement a kick-ban system?
User avatar
caranthir.pkk
level3
level3
Posts: 265
Joined: Sun Jan 14, 2007 2:03 pm
Location: France
Contact:

Postby caranthir.pkk » Sun Jun 10, 2007 1:46 pm

Smiling Buddha wrote:Are you planning to implement a kick-ban system?


Very good point. I'd hope so! If we could ban people permanently from our servers (hash code or whatever-based) I would probably start playing more again. It would vastly improve game standards and make those people that behave like twats become pariahs; sounds great to me.

Return to “Mod Projects”

Who is online

Users browsing this forum: No registered users and 8 guests