Homegrown Dedicated Server: DedCon 1.6.0_svn1038
Moderator: Defcon moderators
-
- level3
- Posts: 466
- Joined: Fri Oct 13, 2006 12:18 am
- bert_the_turtle
- level5
- Posts: 4795
- Joined: Fri Oct 13, 2006 6:11 pm
- Location: Cologne
- Contact:
I understand you don't want to release the source code of dedCon (though Chris from the Introversion staff said in this topic that they would ban any server which bypass restrictions anyway), but what about a description of the protocol, at least the part you have already understood ? This would not allow someone to easily bypass demo restrictions, since he would have to rewrite a server from scratch (which would be probably harder than hacking dedCon). A description of the protocol would be great because we could use it to do all sorts of useful things (for example, statistics, server query...).
- bert_the_turtle
- level5
- Posts: 4795
- Joined: Fri Oct 13, 2006 6:11 pm
- Location: Cologne
- Contact:
On the source topic: meanwhile, IV asked me not to release it, and I agreed. From my point of view, the main problem are the easy to do modifications that remove restrictions AND fake the data sent to the metaserver AND block logins from known IV addresses so they can't possibly find out the data is fake (which would be difficult to do anyway). When one of those would pop up, the only way to combat it would be a protocol change that locks out the dedicated server completely, simple packet encryption would be enough. That would be a loss for everyone.
For the specifications: you're probably overestimating the amount of useful information that flows over the network. It's basically commands only. And eww, writing the specs would be work, and it still would be moderately dangerous and show you many ways to cheat. I can add metaserver query functionality and LAN broadcast listening to DedCon, though.
For the specifications: you're probably overestimating the amount of useful information that flows over the network. It's basically commands only. And eww, writing the specs would be work, and it still would be moderately dangerous and show you many ways to cheat. I can add metaserver query functionality and LAN broadcast listening to DedCon, though.
- shinygerbil
- level5
- Posts: 4667
- Joined: Wed Dec 22, 2004 10:14 pm
- Location: Out, finding my own food. Also, doing the shinyBonsai Manoeuvre(tm)
- Contact:
Ooh, something I noticed while running a server yesterday: chat messages. In the dedcon terminal, I get regular chat and private chat, but not alliance chat. This is at odds with spectator mode, where I get regular chat and alliance chat, but not private chat. Any reason for this?
Here is my signature. Make of it what you will.


- bert_the_turtle
- level5
- Posts: 4795
- Joined: Fri Oct 13, 2006 6:11 pm
- Location: Cologne
- Contact:
- shinygerbil
- level5
- Posts: 4667
- Joined: Wed Dec 22, 2004 10:14 pm
- Location: Out, finding my own food. Also, doing the shinyBonsai Manoeuvre(tm)
- Contact:
bert_the_turtle wrote:On the source topic
Bert, awesome stuff, thanks for doing all that! Can I make a few requests? Your installer said 'no complaining', but not 'no request'

- an x64 compiled version. It crashes on startup on my box and I think it may be x64 related?? At least an WOW64-friendly version?
- some type of plug-in interface so that if we can't see the source, we can at least write bot-hosts and bot-players?
Thanks and keep up the good work!!!
- bert_the_turtle
- level5
- Posts: 4795
- Joined: Fri Oct 13, 2006 6:11 pm
- Location: Cologne
- Contact:
Curses!daz0r wrote:Your installer said 'no complaining', but not 'no request'
If someone can tell me how to produce one without the hardware, sure. I think I know how to cross compile on Linux, but not on Windows. I'll do builds of the final releases for whatever is feasible. On the crash, would you be able to produce a backtrace if I gave you a version with debug symbols?daz0r wrote:- an x64 compiled version. It crashes on startup on my box and I think it may be x64 related?? At least an WOW64-friendly version?
Bot players are not technically possible, the server has not enough information about the game state to feed the bot with the input it needs. It would be possible to give out all commands given by all players and let the bot handle the rest (which, in turn, would be pretty much impossible), but that interface would then also allow plenty of cheating.daz0r wrote:- some type of plug-in interface so that if we can't see the source, we can at least write bot-hosts and bot-players?
A bot host would be a chatbot that reads player chat and comes up with witty responses? Some sort of eliza? For that, I'll probably make the server listen to standard input and interpret it like the config files, that should be enough for something like that.
Edit: I changed the launch scheme of my test servers. A new copy of the full server will restart every full hour, and every quarter hour, a new demo mode server is spawned. The servers run for at least an hour each until their replacement server pops up; of course, they'll keep on running as long as the game lasts. So the best time to enter the main server is 0-5 minutes after every full hour. Except at 5 AM BST, my DSL connection gets a forced reset shortly before 6 AM and I don't want it to interrupt a game, so no server is started at 5 AM.
bert_the_turtle wrote:If someone can tell me how to produce one without the hardware, sure. I think I know how to cross compile on Linux, but not on Windows. I'll do builds of the final releases for whatever is feasible. On the crash, would you be able to produce a backtrace if I gave you a version with debug symbols?
Depending on what compiler you're using, it should just be a command-line parameter. Most of 'em (MS VC++, gcc, etc) can compile x64 binaries on 32-bit machines, it's just a different compiler target. I believe you have to be using GCC4.1 or later or MS VC++ 6 or later (which I'm sure you probably are).
That is... unless you're doing any fancy stuff like direct pointer arithmetic (i.e. ptr += 4), inline-asm, etc.
For GCC, use platform target x86_64-*-*.
For MS VC++, you might use the /Wp64 switch which helps detect x64 portability problems. I think to compile x64, you just change the target platform to x64. If that doesn't work, let me know and I can get more specifics.
As far as the symbol build, yeah, I can get you the trace dump, no problem.
bert_the_turtle wrote:Bot players are not technically possible, the server has not enough information about the game state to feed the bot with the input it needs. It would be possible to give out all commands given by all players and let the bot handle the rest (which, in turn, would be pretty much impossible), but that interface would then also allow plenty of cheating.
A bot host would be a chatbot that reads player chat and comes up with witty responses? Some sort of eliza? For that, I'll probably make the server listen to standard input and interpret it like the config files, that should be enough for something like that.
Hrm, I see. Well, I was hoping to write a bot similar to BertBot that can help do speed management (force speeds on users that are idle/taking-too-long, etc) and maybe some sort of squelching, etc. I suppose some of that is possible through the stdin interface, right? So that might be sufficient.
It might be nice if there were a snoop API where I could write a bot that watched packets and then a command API which allowed only a limited subset of commands (basically what you allow through the chat commands and maybe a few extra things, but nothing that would allow cheating).
Also, as far as the cheating thing, I mean, people would just have to trust the bot, right? There are CounterStrike bots that cheat ON PURPOSE to increase their difficulty, etc. Also, it might be neat to have a bot that can punish users for backstabbing by moving all their ships back to home base, or antarctica, or destroying half their silos or something like that.
I'm just thinking out loud. What are your thoughts?
- shinygerbil
- level5
- Posts: 4667
- Joined: Wed Dec 22, 2004 10:14 pm
- Location: Out, finding my own food. Also, doing the shinyBonsai Manoeuvre(tm)
- Contact:
Perhaps sometime soon fancy thing like this will be able to be implemented:
http://forums.introversion.co.uk/defcon ... php?t=3056
Not the OP as such, but some of the ideas further down, like a countdown and then kicking the lowest-scoring player. The only trouble with that being that the server has no idea of the scores
http://forums.introversion.co.uk/defcon ... php?t=3056
Not the OP as such, but some of the ideas further down, like a countdown and then kicking the lowest-scoring player. The only trouble with that being that the server has no idea of the scores

Here is my signature. Make of it what you will.


problem
I have problem with my server.. It`s running under Linux and its demo.. Everything is OK, I and my oponent connected to the game, but when we disconnect, server automatically shutdown.. How to do that server is still on? Maybe you can send me config file..
Thanks
Thanks
Re: problem
kapo wrote:I have problem with my server.. It`s running under Linux and its demo.. Everything is OK, I and my oponent connected to the game, but when we disconnect, server automatically shutdown.. How to do that server is still on? Maybe you can send me config file..
Thanks
I think it says how to do that in a readme... write a script that loops and respawns the server when it exits.
Who is online
Users browsing this forum: No registered users and 1 guest