Jump to content
Sign in to follow this  
joltan

ingame browser protocoll

Recommended Posts

I'm working on a combined OFP/VBS server query tool (a bit like the OFP Launcher) and while I have the standard Gamespy-style query for OFP dedicated servers already implemented I'm stuck with the VBS query. After some research I found that the query used is identical to the one used by the OFP ingame browser for LAN queries.

Now the question is wether anyone in the OFP community ever tried to implement a query based on this instead of the (much easier) Gamespy-style queries? Any help (also some official comments from BIS) would be very much appreciated!

What I know so far:

<ul>

[*]The query packages used have 74 bytes with 32 byte of data

[*]They are send (and answered) on the main gameport, not gameport+1 like the queries for dedicated servers

[*]The first 4 Bytes are always '20 00 81 08'

[*]the package ends always on '00 00 01 00 00 00 00 00 00 00 00 00 00 00 AE 91 E1 EE 00 00 00 00'

[*]the 6 bytes left inbetween consist of 5 bytes that change with every package and a sixth which seems to be an increment that is increased every 1-3 packages (this might depend on the connection delay to the server)

Simply resending a previously logged package doesn't seem to work (but then a good part of the problem might also sit infront of the screen as I'm no experienced programmer/network specialist - it's all learning by doing), so I'm assuming the five bytes that change with every package contain some kind of timestamp/verification that the server checks before deciding wether to answer.

Any ideas how to create a working query package based on this? The problem seems to be with those 5 bytes...

Edit: typos

Share this post


Link to post
Share on other sites

ASE just uses the Gamespy style calls to query OFP servers (I've got that working fine already), not the ingame browser protocol (needed for non-dedicated OFP servers and VBS machines). I was hoping someone in the OFP community had already tried to work on this before.

Share this post


Link to post
Share on other sites
ASE just uses the Gamespy style calls to query OFP servers (I've got that working fine already), not the ingame browser protocol (needed for non-dedicated OFP servers and VBS machines). I was hoping someone in the OFP community had already tried to work on this before.

I've seen nothing suggesting that anyone has reverse engineered this part of OFP yet.

It could potentially be pretty useful if someone would spend some time on all parts of the network protcol, might help the scripters debug lag situations.

Share this post


Link to post
Share on other sites
Quote[/b] ]It could potentially be pretty useful if someone would spend some time on all parts of the network protcol, might help the scripters debug lag situations.

BIS did a pretty good job of fixing lag issues since v 1.30

I doubt there is any way to make it better for players that have 56ks, there is simply too much going on OFP, take the bodies of the soldies, thier head movement, torso, shoulders gun direction and much more is being broadcasted from the server, this is alot more then games like CS or quake/UT based games, then you have 11 men that follow you, CTI games can get up to 456 AI now with 18 of them human players, in the release of RES 1.75 BIS warned that 1 mission with about 120 men would require a 1 ghz or greater computer, if you do the math based on MaxGroup (63) we can go to 3024 AI (some will be human players) and top servers can now push 600+ AI with ease

I would tend to think there is a way to fix the net code to push past 5 mbits, and also a way to stop the Line Choking we now see on super servers when 1 player looses conection in some way, the server practicaly stops sending Data to players till the lagged out player is dropped, and then only the super servers with 5 mbits and over 2.8 ghz can catch up and clear the lag, servers with less stats will remain dysynced

this is why a few server admins have started using top of the line machines and lines

if some one was to redo the net code i would gladly offer a full server to test it

Share this post


Link to post
Share on other sites

There has been some work on this, all that Joltan is looking for is the format to do what kegety's browser or OFPwatch do, in returning the strings and such.

Share this post


Link to post
Share on other sites
There has been some work on this, all that Joltan is looking for is the format to do what kegety's browser or OFPwatch do, in returning the strings and such.

Well, actually I already can get the same information as OFP Launcher & OFP Watch. You see, there's an easy (and well documented) way of getting information on a server's status, and then there's another way - harder and not documented at all. The easy way simply uses standard Gamespy queries, and that's what OFP Launcher and OFP Watch use. While I have already implemented this method it neither works for non-dedicated servers nor VBS1 servers.

The internal game browser that comes with Resistance & VBS1 on the other hand uses the other, 'hard' way of querying. It's a binary format as described in my first post - and there's no documentation available on the subject. Neither did forum searches nor inquiries at BIS or BIA yield any results.

Why am I asking this? I'm currently working on a tool similar to OFP Launcher which supports both, OFP AND VBS servers.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×