Server browser and "custom games"
demm
Join Date: 2003-09-10 Member: 20714Members, Constellation, Reinforced - Diamond
Flayra has posted about UWE's plans to seperate "vanilla" and "custom" games in the server browser on several occasions, first in <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=100362&view=findpost&p=1606587" target="_blank">a comment on a blogpost</a> in 2007 and now recently in <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=109353&view=findpost&p=1766917" target="_blank">this thread</a>. Sadly that thread got derailed by a few people arguing about word definitions, so I'm starting a new thread.
From the point of view of a server operator, the indicated vanilla vs. custom solution is problematic. I'm part of a community that runs several TF2 servers (we intend to support NS2 as well) and when Valve first introduced the "custom games" tab in the server browser, it really hurt our traffic. We run server side modifications for administration purposes, that don't affect gameplay in any major way. Still, the new system put us in the "custom games" tab and our player count decreased by around 80% for the next few days. We finally decided to "cheat" the system using a plugin and bring our servers back into the main tab of the server browser.
After a huge backlash from the server operators, Valve revised the system a few weeks later and introduced the sv_tags convar. This allows every server to stay in the main tab, but it also allows players to filter servers they don't like.
Though sv_tags works well enough for TF2, I think a similar solution wouldn't work for NS2, because of the way UWE wants to encourage mods. We can expect that a few weeks after launch there will be dozens of different gameplay altering mods and several admin plugins. This would make a solution like sv_tags unfeasible, simply because the end-user would get confused.
A simple vanilla vs. custom tab system would work from the stand point of the user, but it would be hell for server operators. There is simply no way of running dedicated servers without some kind of admin plugin installed. Even if UWE includes admin functions in the core of the game, there still would be features missing, that the community has to add. But if an admin plugin puts you into the custom tab, then server operators will have a difficult decision: stay in the vanilla tab and have more traffic or have the admin functions and less traffic in the custom tab. Of course then there is the third option: cheat the system and have both.
But tbh neither of those choices is good. I would rather have an admin plugin and be in the vanilla tab without cheating.
Some users in the other thread suggested that it might be possible for the game to differentiate between gameplay altering mods and admin plugins through the kind of LUA functions they use. This would be great if it were the case, but I don't think this is technically possible.
So, what I'm asking is, that UWE thinks hard about this issue. Don't do it like Valve and offer us a half-baked solution that has to be changed after community protests. I know this isn't top priority compared to some of the other stuff that's left to do, but the sooner you think about it, the easier it will be to implement a proper solution. It doesn't even have to be solved until the launch day, but 2 months after the release, it should. Because then we're gonna see so many mods we're gonna need a good system.
From the point of view of a server operator, the indicated vanilla vs. custom solution is problematic. I'm part of a community that runs several TF2 servers (we intend to support NS2 as well) and when Valve first introduced the "custom games" tab in the server browser, it really hurt our traffic. We run server side modifications for administration purposes, that don't affect gameplay in any major way. Still, the new system put us in the "custom games" tab and our player count decreased by around 80% for the next few days. We finally decided to "cheat" the system using a plugin and bring our servers back into the main tab of the server browser.
After a huge backlash from the server operators, Valve revised the system a few weeks later and introduced the sv_tags convar. This allows every server to stay in the main tab, but it also allows players to filter servers they don't like.
Though sv_tags works well enough for TF2, I think a similar solution wouldn't work for NS2, because of the way UWE wants to encourage mods. We can expect that a few weeks after launch there will be dozens of different gameplay altering mods and several admin plugins. This would make a solution like sv_tags unfeasible, simply because the end-user would get confused.
A simple vanilla vs. custom tab system would work from the stand point of the user, but it would be hell for server operators. There is simply no way of running dedicated servers without some kind of admin plugin installed. Even if UWE includes admin functions in the core of the game, there still would be features missing, that the community has to add. But if an admin plugin puts you into the custom tab, then server operators will have a difficult decision: stay in the vanilla tab and have more traffic or have the admin functions and less traffic in the custom tab. Of course then there is the third option: cheat the system and have both.
But tbh neither of those choices is good. I would rather have an admin plugin and be in the vanilla tab without cheating.
Some users in the other thread suggested that it might be possible for the game to differentiate between gameplay altering mods and admin plugins through the kind of LUA functions they use. This would be great if it were the case, but I don't think this is technically possible.
So, what I'm asking is, that UWE thinks hard about this issue. Don't do it like Valve and offer us a half-baked solution that has to be changed after community protests. I know this isn't top priority compared to some of the other stuff that's left to do, but the sooner you think about it, the easier it will be to implement a proper solution. It doesn't even have to be solved until the launch day, but 2 months after the release, it should. Because then we're gonna see so many mods we're gonna need a good system.
Comments
Why would you think this is not possible. It would be easy to scan a mod to figure out all possible call traces, and check against those that are flagged as game-altering. The only stipulation to this is of course determining which are game-altering. I can imagine scenarios in both cases where APIs are conservatively tagged, but even then you can go one step further and actually scan the arguments being passed to these APIs.
In fact, instead of doing all this pre-compiled, you would do it real-time, so that each API checks whether it is allowed to be called and with what arguments. This way the mod maker is free to add on whatever game-changing or unchanging functionality they want without worrying their mod will blacklist a server, because it will be up to the server which parts of the mod are allowed to be run.
Also, this flagging wouldn't work in many cases. For example on our TF2 server we run a class-limiter plugin, so that there is only a sensible amount of players in each class. You could say, this is game-altering, because we're limiting the class choices for some players at some times. But on the other hand, it is actually more "vanilla" then the unmodded version, because we prevent stupid scenarios with 6 snipers in one team, which is clearly against the team spirit of TF2.
So, I still don't know what would be the best way to display the modifications a server runs in the server browser, but putting all servers that run some kind of admin plugin into the custom games tab is certainly not a good idea.
Secondly, most of the work is done already, since you only need to mark those APIs which a) alter the game b) are public. How many public game altering API's are there? Max could probably do it in a day:
MovePlayer( Player p, x, y) { if (p.type != Player.Type.Spectator && isGameVanilla) deny(); Player.x = x; Player.y = y; ... }
KillPlayer( Player p) { if (isGameVanilla) deny(); Player.isAlive = false; ... }
SetModelScaleFactor( x ) { if (x => GameAlteringScaleLimit) deny(); for each (Model m in ... ) m.size = x * m.defaultSize; ... }
SendTextMessage( msg ) { ... }
SendConsoleMessage( msg ) { ... }
...
I want a very dirty server list, i really loved all those modded servers for ns1, it made NS1 fun for me, and i totally hate bot servers. Custom servers = marine vs marine and siege :P
You have actually <b>changed</b> the core TF2 game by doing that. This is in essance...the definition of a modded server. The developers, on that particular build of the game...did not intend the game to be played in the <b>modified</b> manner you have done. The argument whether is propper to have a game full of snipers is different from what is a modded server.
And having to give full access to every admin as well as requiring external 3rd party programs? Not a great idea. Every game worth mentioning got good tools for managing servers (such as SourceMod) why does NS2 has to be any worse?