Index | FAQ | Search | Memberlist | Usergroups | Profile | Log in to check your private messages | Log in | Register

Darkplaces Dedicated Questions

| Inside3d Forums Forum Index -> General Discussion

View previous topic :: View next topic
Author | Message
--- | ---
Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Wed Apr 26, 2006 8:26 pm Post subject: Darkplaces Dedicated Questions |

I have some questions about DarkPlaces Dedicated. My part of the Quake continuum is very ProQuake-server oriented and that could just be out of habit, but I'd like to learn more about DP Dedicated. I'm naive about DarkPlaces dedicated and most of the server operators I know probably know little about it as well.
I'm in the learning stage, so please don't misinterpret these questions, I want to know more/understand, etc.
1. LordHavoc said on IRC that a couple of mods that I understand cannot run on DP Dedicated is due to using the qccx compiler to compile the QuakeC. I know these mods can also be compiled with FrikQCC.
1b. I'm not too familiar with FTEQCC, does it compile as well and as reliably as Qccx and FrikQCC. Are there any surprises?
2. Admins running dedicated servers are very concerned about uptime and reliability. I know ProQuake can run in -dedicated mode seemingly endlessly, for example. I've seen servers up for 30000 minutes, for example.
Can DarkPlaces Dedicated run non-stop for very extended periods of times without rebooting (provided the mod is coded properly, of course)?
3. Sajt posted at QuakeOne about how Darkplaces can run NQ smoother as a server? How is this achieved? If true, this might be enough of a reason that I might be able to get a couple of server operators to give it a DP Dedicated a try.
4. And this is a real noob question, I know. Is DarkPlaces dedicated engine-neutral for clients in the sense that other Quake clients won't have issues connecting?
5. Any other advantages or special information someone should know?

Back to top |

Sajt Joined: 16 Oct 2004 Posts: 1026 |

Posted: Thu Apr 27, 2006 1:06 am Post subject: |

Make sure you're running the server with 'sv_protocolname QUAKE'. If you don't set that it'll use a heavily enhanced network protocol which is incompatible with other clients, but is much much nicer and much faster. FTEQCC is reliable for compiling standard QuakeC. It supports a few new features that last time I checked (quite a while ago mind you) were broken. For example, don't use the shorter assignment operators (e.g., +=, -=, etc.) or the increment/decrement operators (++, --). They don't work on multiple indirections, e.g. 'self.enemy.health -= 5', which will crash or screw things up.
Also, FTEQCC compiles certain things differently than standard qcc, although this may be changed. For example, doing 'if (!some_string)' or 'if (some_string)' might end up different, not sure exactly what, but the only mod that was actually broken by doing this was my mod, and it was a thing involving FRIK_FILE (checking for EOF).
DarkPlaces should be able to run a server indefinitely. If there is some bad code in the QC, it might stop the game, but it ought to be fine.
I don't think DP runs any smoother as a server. It sure does as a client, though.
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.

Back to top |

LordHavoc Joined: 05 Nov 2004 Posts: 243 Location: western Oregon, USA |

Posted: Thu Apr 27, 2006 2:07 am Post subject: Re: Darkplaces Dedicated Questions |

Baker wrote:
1. LordHavoc said on IRC that a couple of mods that I understand cannot run on DP Dedicated is due to using the qccx compiler to compile the QuakeC. I know these mods can also be compiled with FrikQCC.

No it doesn't actually have to do with the compiler, it has to do with the use of memory hacking functions which are only possible with certain compilers (such as QCCX), the mod would not compile with a safer compiler, which would reveal the parts of the mod which are incompatible with more secure servers like darkplaces dedicated.
QCCX (which was written by the same author as ProQuake) offers features that allow reading and modifying internal engine variables, which is highly dangerous, the author apparently preferred this dangerous method instead of contributing to Quake standards by creating appropriate extensions to get the same thing done safely.

Baker wrote:
1b. I'm not too familiar with FTEQCC, does it compile as well and as reliably as Qccx and FrikQCC. Are there any surprises?

In general it compiles better than frikqcc, and a lot better than qccx, it makes faster mods.

Baker wrote:
2. Admins running dedicated servers are very concerned about uptime and reliability. I know ProQuake can run in -dedicated mode seemingly endlessly, for example. I've seen servers up for 30000 minutes, for example. Can DarkPlaces Dedicated run non-stop for very extended periods of times without rebooting (provided the mod is coded properly, of course)?

The engine itself is designed around 64bit time values, it can handle any amount of runtime without problems.
However the QuakeC interpreter only uses 32bit float values for everything (just like in all other Quake engines), this means that timing in the mod itself degrades unacceptably after 9.7 days and no longer functions properly, it may still be playable but is not as good as it should be, for this reason a server should always be run with the timelimit cvar set to a value under 9 days (often it is set to 1 hour or so, which is fine).

Baker wrote:
3. Sajt posted at QuakeOne about how Darkplaces can run NQ smoother as a server? How is this achieved? If true, this might be enough of a reason that I might be able to get a couple of server operators to give it a DP Dedicated a try.

DarkPlaces does not host for Quake clients at all, it has the ability to record Quake format demos, but the connection protocol differs from Quake so Quake clients can not connect.
This is partially a security measure, as Quake servers were able to be exploited to flood people with data for up to 5 minutes (ouch!), simultaneously denying people from joining the game, and attacking someone else, which is very bad, to my knowledge ProQuake limited this to 10 seconds but it is still a problem.
And Quake servers do not work through firewalls, this is the primary reason DarkPlaces uses a different protocol for connecting (more similar to Quake3 or QuakeWorld than it is to Quake).
ProQuake has partially fixed this, but not completely.
So the only NQ engines suitable for playing online are DarkPlaces (universally works) and ProQuake (some restrictions).

Baker wrote:
4. And this is a real noob question, I know. Is DarkPlaces dedicated engine-neutral for clients in the sense that other Quake clients won't have issues connecting?

No, for the reasons detailed above. sv_protocolname QUAKE can allow other clients to play, but they can't connect due to the fact it does not support the Quake connection protocol.
I can add back support for this (and make it ProQuake client compatible), but have not done the work involved thus far.
FTEQW is a better engine for that purpose, because it can send different protocols to each client connected to the server, even allowing QW clients to play an NQ mod, etc.

Baker wrote:
5. Any other advantages or special information someone should know?

The default darkplaces protocol (sv_protocolname dp7) has a completely different entity protocol that uses less bandwidth than netquake, proquake, and even quakeworld, can be rate limited (making it friendly to even the slowest dialup), fixes the 'packet overflow' problem with too many entities in one room, and has many modding features such as transparency, custom lights, more animation frames, more models, more sounds, loading of new models and sounds during the game (useful mostly to mod developers to let them experiment more easily with new models and sounds), it even allows attaching weapons to the hands of players (like Quake3), multipart player models (like Quake3), and many other interesting features.
Remember that Nexuiz uses this protocol, so anything you see in Nexuiz is possible when using a DarkPlaces server, but this also means that only DarkPlaces and FTEQW clients are able to play on the server.
So as a dedicated server for Quake or ProQuake clients, darkplaces is not currently suitable, but FTEQW is.
It sounds like you would like DarkPlaces server to be compatible with ProQuake clients, if I were to do this it would mean that I would have to change it to send different protocols to each client, as I would still want DarkPlaces clients to get the full experience that ProQuake does not support, this is basically what FTEQW does, although I hear FTEQW can be a bit quirky and harder to configure.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Apr 27, 2006 2:56 am Post subject: Re: Darkplaces Dedicated Questions |

Thanks for all that information, Lord Havoc. I understand things a lot better now. Yeah, I've noticed some odd side-effects in the QuakeC code that messes with engine internals when trying to run them with non-ProQuake/winquake.exe as the server.
Fortunately, it's mostly been pretty mild stuff, and I've been able to edit the offending QuakeC in most cases. They do run well with ProQuake, but limits server choices.

LordHavoc wrote:
It sounds like you would like DarkPlaces server to be compatible with ProQuake clients

Right now I am just trying to understand everything. I know that many times, for example, if I log on to #qc or #darkplaces and ask QuakeC questions, often one of the first things I get asked is "Why aren't you using DarkPlaces?"
And other than the few small snippets of information I've been told over the years, I wasn't aware of the pros/cons etc.
This information has been really helpful. I know that with the Nexuiz capabilities, etc. that DarkPlaces has to have some very strong capabilities but I'm not familiar with all the details and such.

LordHavoc wrote:
It sounds like you would like DarkPlaces server to be compatible with ProQuake clients

Perhaps, but that sounds like a lot of work and if it would have to use the standard Quake protocol, I don't know what the ups and downs would be.
Just some extra information, in addition to Darkplaces and ProQuake being good for Quake multiplayer, back a couple of years ago JoeQuake implemented the ProQuake NAT fix and QRack and Tremor have that as well (inherited it).

Quote:
Remember that Nexuiz uses this protocol, so anything you see in Nexuiz is possible when using a DarkPlaces server

I figured as much since DarkPlaces and Nexuiz are the same executable.

Quote:
And Quake servers do not work through firewalls, this is the primary reason DarkPlaces uses a different protocol for connecting (more similar to Quake3 or QuakeWorld than it is to Quake).

Yeah, I hear you on that one There is some experimental code, a Winquake/ProQuake patch that has run on certain servers for years that I believe is a fix for that, but I've never been able to see a compare/contrast to assess the performance of the code.
Based on all this, I imagine FTEQW wouldn't like a number of these largely ProQuake-specific mods either without modification. I'll probably do some experiments with FTEQW and see what happens.
---------
This has been real helpful in helping me understand how everything works. I appreciate you taking the time to answer these questions.

Back to top |

LordHavoc Joined: 05 Nov 2004 Posts: 243 Location: western Oregon, USA |

Posted: Thu Apr 27, 2006 4:45 am Post subject: Re: Darkplaces Dedicated Questions |

Baker wrote:
Right now I am just trying to understand everything. I know that many times, for example, if I log on to #qc or #darkplaces and ask QuakeC questions, often one of the first things I get asked is "Why aren't you using DarkPlaces?" And other than the few small snippets of information I've been told over the years, I wasn't aware of the pros/cons etc.

DarkPlaces is designed for multiplayer, I've put many days of work into the networking and server code, trying to make it more optimal than Quake ever was, it's also designed for modding.
The main thing I find insulting about ProQuake is that I've put so much work into DarkPlaces' modding and multiplayer and yet players still use ProQuake.
I do know some of their reasons (performance being the primary one, team chat features being the other significant feature that DarkPlaces lacks).
I normally don't say anything either, because I don't want to be seen as attacking ProQuake, but on the other hand ProQuake development is pretty dead at this point, the engines descended from it are more useful, but still not very modder-oriented.
With DarkPlaces, modders can fairly easily compute with Unreal Tournament 2004 in terms of what kind of graphics they can do, and for better or worse, players do tend to judge by graphics. Q3BSP support is another awesome feature in this regard.
This is the main reason I'm rather pleased with Nexuiz, it isn't bound to the traditional limitations or expectations of Quake.

Baker wrote:
Just some extra information, in addition to Darkplaces and ProQuake being good for Quake multiplayer, back a couple of years ago JoeQuake implemented the ProQuake NAT fix and QRack and Tremor have that as well (inherited it).

Yes but it is not a complete solution as I recall, it only solves the problem of the client being behind a NAT router (such as most ADSL modems), not the server being behind a firewall (as is the case when I host a server on my machine and configure my firewall computer to route incoming packets to it). So it's still suboptimal.
Infact DarkPlaces' master server provides a way that some servers can punch a hole through their firewall without even reconfiguring anything (they send out a message to the master server and this opens a hole in the firewall, then if the firewall allows arbitrary incoming messages through that hole, it works fine, but many don't).
I think DarkPlaces' built in server browser is also a great feature

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Apr 27, 2006 5:23 am Post subject: Re: Darkplaces Dedicated Questions |

LordHavoc wrote:
DarkPlaces is designed for multiplayer, I've put many days of work into the networking and server code, trying to make it more optimal than Quake ever was, it's also designed for modding.

You've put a ton of work into it an thus far it does seem like it has been under-utilized.

Quote:
The main thing I find insulting about ProQuake is that I've put so much work into DarkPlaces' modding and multiplayer and yet players still use ProQuake.

I wouldn't take it personally. It was not a conscious decision on anyone's part. I would also add, the future may not necessarily resemble the past.
The NetQuake community historically had fiefdoms ("I only care about me" people). Think of it as troll bridges. It was bad for the game and for growth of the community as well. Those are all gone. Everyone cooperates now.
There have been honorable and helpful personalities such as Slot Zero (shmack), Jackhole+ Yugo2Heck (GameStatus/Quakeboard) and for every progressive admin, there used to be 3 or 4 who were quite the opposite.
The bad ones inhibited the adoption of new things NOT because they were against new things, but because they were impossible to work with and were more worried about power and control in ways you couldn't imagine. I won't trouble you with these stories.
QuakeOne was formed when basically the community ejected one of these interesting characters. Kind of like kicking out a Chthon. He was involved with a couple of other of supposedly co-equal admins, but took it upon him self to sabotage their site on the way out.

Quote:
I do know some of their reasons (performance being the primary one, team chat features being the other significant feature that DarkPlaces lacks).

The short list of "must have" features for a client to be accepted among the players is the following, just for informational purposes:
1. ping in scoreboard (showscores)
2. best-weapon (ProQuake originally, in QRack/JoeQuake)
3. Ability to start recording a demo AFTER connected to a server.
4. Preferably ... IPLOG (ProQuake)
5. Preferably ... Loc support "I am at Red Armor with 0 armor and 37 health"

Quote:
I normally don't say anything either, because I don't want to be seen as attacking ProQuake, but on the other hand ProQuake development is pretty dead at this point, the engines descended from it are more useful, but still not very modder-oriented.

I'm greatful for the features added to ProQuake, particular the cheat-free module
(Which isn't commonly used, but connecting to a cheat-free server and battling is considered more or less proof of legitimacy for the highest skilled players.)
At the same time, the engine hasn't had an update in almost 4 years.

Quote:
Yes but it is not a complete solution as I recall, it only solves the problem of the client being behind a NAT router (such as most ADSL modems), not the server being behind a firewall (as is the case when I host a server on my machine and configure my firewall computer to route incoming packets to it). So it's still suboptimal.

I'm in full agreement with that.

Quote:
Infact DarkPlaces' master server provides a way that some servers can punch a hole through their firewall without even reconfiguring anything (they send out a message to the master server and this opens a hole in the firewall, then if the firewall allows arbitrary incoming messages through that hole, it works fine, but many don't).
I think DarkPlaces' built in server browser is also a great feature

A built-in server browser is one of the most demanded features in a client. It comes up quite frequently.

Back to top |

Baker Joined: 14 Mar 2006 Posts: 1538 |

Posted: Thu Apr 27, 2006 8:21 am Post subject: |

After spending a few hours of thinking about this, some other thoughts arose. Rather than burying these in this thread, I'm going to start another one.

Back to top |

Display posts from previous:

| Inside3d Forums Forum Index -> General Discussion | All times are GMT
Page 1 of 1

Jump to:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2004 phpBB Group