BlitzPlay Pro - Future plans

Community Forums/Showcase/BlitzPlay Pro - Future plans

SurreaL(Posted 2003) [#1]
Just thought I'd give a heads-up to the BP-Pro users out there :)

I've been working on an idea for the next update: a native Blitz Master server, incorporated with BlitzPlay Pro! (Tentative name: BPMS - BlitzPlay Master Server.. how original ;) )

I'm still in design phase, although some test code has been ironed out as well.. It will consist of a few functions for a Master server app to run: CreateMasterServer (GameName, Port), and StopMasterServer (GameName). The server will communicate using TCP. It will be able to run as one App to cover multiple Games (hosting an indefinate number of Sessions per game), and will require one port to be opened per Game being served.

The game app will then be able to call either:
QueryMasterServer (IP$, Port%, GameName$) or AdvertiseSession (Comment$, Password$, strHostIP = "") to either download the server list, or post a hosted Session to a master server. I'm trying to design QueryMasterServer to be a non-blocking call, which will automatically ping the Sessions after downloading the listing from the BPMS. It would return a percentage of how many sessions have been contacted.

I don't have a definate timeline for this, but I'm hoping it shouldn't take me too long :)

p.s. I've updated the links in the BlitzPlay page, so the downloads should be working again. I've also fixed a bug someone posted about BP-Lite timing out w/o proper reason, so v1.14 is available for d/l off the site.

p.p.s. The disadvantage over this approach vs say using GNet or another SQL based approach is it requires running a custom application on a server.. Depending how it goes though I may try host a BPMS server off of one of my home boxes, for BP users to access :) (Thats one of the reasons I'm coding it so that multiple games can be hosted by the one app)

..Also I've addressed the issue that many have w/ GNet, where a TCP connection must be made every few moments to avoid being dropped off the list. Although BPMS will run using TCP as well, the only time Sessions will need to make a connection will be to initially post themselves to the server, or within BP_EndSession to tell the server to discard the listing.


Rottbott(Posted 2003) [#2]
..Also I've addressed the issue that many have w/ GNet, where a TCP connection must be made every few moments to avoid being dropped off the list. Although BPMS will run using TCP as well, the only time Sessions will need to make a connection will be to initially post themselves to the server, or within BP_EndSession to tell the server to discard the listing.

What happens if the game crashes and the listing isn't removed?

p.s. I've updated the links in the BlitzPlay page, so the downloads should be working again. I've also fixed a bug someone posted about BP-Lite timing out w/o proper reason, so v1.14 is available for d/l off the site.

Excellent! Thanks :-)


SurreaL(Posted 2003) [#3]
Rottbott, I've decided to let the clients do the 'grunt work' for finding dead Sessions.. After downloading the Session list from BPMS, the client will automatically ping the sessions.. If he doesn't get a response from one of them then he'll tell the Master server, who will then test for himself before deciding whether he should remove the game.

This should be more bandwidth efficient than constantly having to communicate w/ the Sessions themselves :)


Murphy(Posted 2003) [#4]
great idea ;)


Rottbott(Posted 2003) [#5]
Rottbott, I've decided to let the clients do the 'grunt work' for finding dead Sessions.. After downloading the Session list from BPMS, the client will automatically ping the sessions.. If he doesn't get a response from one of them then he'll tell the Master server, who will then test for himself before deciding whether he should remove the game.

This should be more bandwidth efficient than constantly having to communicate w/ the Sessions themselves :)

Good thinking, Batman! Maybe Mark should think about redoing GNet something like that...

By the way, BP Lite is missing a..

If nInfo <> Null
EndIf

..check in the BP_UDPMessage() function.


Pepsi(Posted 2003) [#6]
Sounds like aswome news, SurreaL!

Do you have any plans on making lobby services something like DirectPlay's lobby services? Just curious.


Storm8191(Posted 2003) [#7]
Surreal: yeah, a lobby service would be good, but difficult to set up. Maybe you could post an html page showing all the games listed, and a single link to the game's home page. Then visiting players can learn about the games, and possibly even download the game if they're interested in it. It might be as easy as having another parameter containing the url address of the game, when the game calls the advertise function.


Rob(Posted 2003) [#8]
I'd like to be able to start a master server and play on the same machine - that should be easily possible right? and also on BlitzPlus...

I haven't bought it yet, but I'm considering something like this for the future.


SurreaL(Posted 2003) [#9]
Todd,
Hm. What are DirectPlay's lobby services like? I considered the thought of trying to implement some sort of peer-finding system, w/ instant messaging of some sort, however I don't really want the master server to have to put up with too much load.. so I'm thinking of keeping it down to a game-finding service. Users can still rely on other things like MSN to communicate about games they want to both join (or just do it over Voice like I do) :)

Storm8191: This is an idea, but it would require assuming that the master server would be running on a machine which was *not* hosting web services (or at least hosting webpages..) This may be an unacceptable demand.. Plus I sort of wanted to keep everything 'native' so that the service would only be used through the client application (well and Host's posting their servers..). This way the game finding/joining can be done in the same app, without having to launch a seperate app (like MPlayer or gamespy) to find the game, which then in turns launches the game. I think it's more elegant to have everything in the same interface (which would of course then be up to you to design/customize)

Rob,
While this is *technically* possible, it may not be enjoyable if the master server has any load at all, and the game depended on latency at all.. I know for example even if I'm just uploading at 5k/sec on my cable connection, and try to run my fav FPS online, I get a somewhat shoddy gameplay experience as my pings suffer as a result. I guess it depends on what you're doing to be feasible.. Once again, should definately be technically possible. Depends on the game for how well it'd work :)


gameproducer(Posted 2003) [#10]
@SurreaL: Make it use a .dll file and you have a gold mine :D