NetQuake Server Features

Discuss programming topics for the various GPL'd game engine sources.
Post Reply
Baker
Posts: 3666
Joined: Tue Mar 14, 2006 5:15 am

NetQuake Server Features

Post by Baker »

NetQuake has experienced over the years a lot of disruptive players.

I just want to dump a list of the "defenses" against these individuals and a list of possible future improvements.

I thought this might make an interesting read ...

ProQuake 3.50 set
------------------------
rcon - Remotely enter commands
(bug fixes and/or limiters related to the network code)

ProQuake 4 set
--------------------
sv_ipmasking - mask the ip address without use of qccx. Avoids player flooding each other. Quakeworld doesn't show an ip at all, but in NQ at least the ip address limits anonymity -- but you don't want players having the full ip address.

pq_connectmute - number of seconds before a player can speak when connecting to a server. Defaults to 3 seconds. This allows a mod to run against the ban file. Believe it or not, someone figured out how to connect and spam, connect and spam, connect and spam during the 1 second before the ban file checked him.

sv_cullentities - The anti-wallhack from FTE. 1 = players only (default). 2 = everything. 0 = off. Need to review most recent ideas in the anti-wallhack thread to try to reduce cpu usage and maybe in the future to optionally add certain other entities like beams, explosions to the mix.

host_sleep - Defaults to off. Lowers cpu usage of a server. DarkPlaces uses this by default.

"ProQrack"
---------------
Grenade bounce fix from DarkPlaces.
sv_defaultmap - if a map is not on the server, default to a different map instead of crashing the server.

ProQuake 4 future versions
-----------------------------
sv_progs - ability to specify the progs to run. From DarkPlaces. This is going to be important.

sv_gamedir - possibly a server friendly gamedir change option. Since NQ doesn't support gamedir on the client side (even though all modern clients do --- with FitzQuake being a bit different calling it "game" instead of "gamedir"), I'm not sure this is a wise idea. Sounds like an invitation for server operators to foobar things.

Wanted features in future
----------------------------------

MVDSV proxy penetration - Supposedly has a way to penetrate proxies. Would help against nuisance types.
Frik_File - Not so hard to add. Needed as a non-QCCX way to use the ban file.
sv_whitelist - Not sure how this would work, but give special priviledges to whitelisted players.
sv_chat_filter - Ability to scrub out certain words.
sv_chat_log - Ability to send certain chat to a log file to more easily get ideas of who is causing problems.
Multi-View Demo capability. Not the QW format, but make a NQ format. The concept seems easy enough in theory.
Account systems? LordHavoc had this idea and the combination of unique ids and passwords plus a whitelist seems eventually productive with CURL.
sv_anonymous. Everyone's name is unknown. Sounds the ideal "zero administration" server. Go there, play and practice. Maybe round pings off to increments of 100 as well.
sv_chat_allowed. If no, there just isn't any talking allowed. Again, great for a practice or FFA server. Or maybe allow it during the first 2 minutes of a map to allow pandering for map votes.
sv_require_map. If someone connects without the map, they have 60 seconds to stay connected. They don't get to hang around and whine. ProQuake 4 and Qrack have CURL download, anyway.


More or less, the problems in NQ have revolved more about social issues and human interaction. Servers requiring less administration and/or easier administration.

R00k has long been big on the idea of using FTEQW as a server. I've long been big on using FTEQCC to compile mods at a minimum without needing QCCX for weird stuff like ban files.

Also:

R00k thinks pq_teamscores and client version stuff should be turned into a proper extension.

Other ideas: universal ban file via curl. RQuake's ability to have deathmatch entities in single player (can be useful). Frik_file should be able to solve the idea of a server knowing what maps are available.

(And really ... clients need to wipe server aliases like Quakeworld clients do on map change.)
Post Reply