eezstreet Posted October 19, 2012 Author Posted October 19, 2012 Crazy idea here, and probably not possible. Would it be possible to fetch the serverlist from multiple masters, and mash them together into one massive list? Obviously (if possible) you'll only have one entry per server (in case its submitting to multiple masters that your client receives). Although I guess I can agree with Caelum, we don't want dozens of master servers popping up.Theoretically possible, but you'd have to recode a large chunk of the engine in order to allow for that. The method I used recodes only a single function in the engine, while the method you described would involve recoding the functionality of basically every single trap_LAN_* function in the engine. I think the master server situation is a bit of a moot point however, for three reasons:1. Clients can see multiple master server selections (up to 5 + however many extra cvars you make for it)2. Servers can send packets to multiple master servers3. Not everyone can just make a master server (you have to take the existing master server code and then change a few bits in it in order to support JA, something which isn't physically able to be done by most average people)
MUG Posted October 19, 2012 Posted October 19, 2012 Theoretically possible, but you'd have to recode a large chunk of the engine in order to allow for that. The method I used recodes only a single function in the engine, while the method you described would involve recoding the functionality of basically every single trap_LAN_* function in the engine.Surely you only need to modify the function that is called when the player clicks "get new list" to make it request info from several master servers rather than just one, and then add an if statement to whatever handles adding them to the list which checks if there is already a server listed with that IP?
eezstreet Posted October 20, 2012 Author Posted October 20, 2012 Surely you only need to modify the function that is called when the player clicks "get new list" to make it request info from several master servers rather than just one, and then add an if statement to whatever handles adding them to the list which checks if there is already a server listed with that IP?Not quite. The game keeps a running list inside the...cls structure I want to say. The UI module communicates with the engine in several ways, most notably with the way that it masks stuff inside the cls structure based on UI constructs ie the way it masks based on gametype/mod. It has a lot of different functions which are all interweaved in different ways that I honestly haven't looked into, I can tell though that the effort put into it would be a bit difficult.As far as the code written for the multiple master servers, I did that using a clever little hack inspired by ioq3. I suppose one -could- query all of the different master servers and chuck them into one big list from the func I rewrote (the "globalservers" command, which can be called in base, albeit with a nerfed first arg (thx Raven... ._.)), however you'd run into issues with duplicate servers in the list. Funny story about globalservers...it's syntax is this: /globalservers <method> <protocol> <...packets..> JA only supports protocol 26, which is perfectly fine, as it's meant to be game-specific. However, the method arg only supports "1" as an arg. In Q3, this supports 1 and 2 which function differently. I don't know how method 2 works, but it suggests that it works in a way similar to xfire.
Mysterious Stranger Posted October 20, 2012 Posted October 20, 2012 Duplicate servers might not be too bad, considering I already have to spam refresh/get new list to get the servers with over 350 ping listed and somehow the action of doing that already gives duplicate servers. But of course it's not so good if its 20x of the same server.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now