Questions regarding how the ms gaming zone lobby system

Alive or not? Is there a Y in a day name? Are you even social? Should there be more topics? Are you lost and not looking to be found?
Post Reply
Tenbatsu
Posts: 2
Joined: Mon Jan 28, 2013 8:28 am

Questions regarding how the ms gaming zone lobby system

Post by Tenbatsu »

CanEh,

I would have sent this through PM but new users cannot send PMs so I have decided to put this here.

First off I would like to say if you refuse to answer these questions I would understand completely.

I have built a web based lobby with node.js using websockets. Now this lobby was not intended to interface with a Windows OS to launch a game but nostalgia and some cajoling from the Mechwarrior 3 community has pushed me to take it further. Now web programming is my strength but C++ and VB are languages I have only dabbled in when I have free time. From browsing this forum you have left some information that I have latched onto about DX6 and the DirectPlay object but the information on the net about this library is rather bad and I'm at a loss as to how to attack this problem.

If my system were to work this is how I would theorize it happening. There are three main areas that I see need interfacing/communication. The lobby, an intermediary service between the lobby and Mechwarrior 3 and then the game itself.

I envision a service, like the zone, running in the background, listening on a port, a host launches the game, the service on the host receives a JSON string with the room's player names and ip addresses, the service then sends this information to the Mechwarrior 3's DirectPlay object and the game is launched, hopefully with teamplay in there somewhere.

Now this sounds simple on paper but I know it's complicated as hell and for a neophyte C++ programmer probably an insurmountable task.

My main questions is, do you think this is feasible? Is my logic flawed somewhere? Do I need to hack the Mechwarrior 3 core files to get something like this to work? Are there any decent references for the DirectPlay API from DirectX 6? How did the zone launch straight into the multiplayer mode when a game was launched back in the day? How do I interface with Mechwarrior 3's DirectPlay object?

Some of these questions might seems stupid, and they probably are but they might help me figure this out a bit. As I said before if you do not want to answer these questions that's understandable but any help would be appreciated. I do not plan on making a lobby for any other game except Mechwarrior 3, besides the first 6 months of WoW it was the best gaming experience I've ever had with a game and I would like to bring it back in its full glory one more time.

Thanks.
CanEh
Site Admin
Posts: 285
Joined: Fri Jan 09, 2009 3:51 am

Re: Questions regarding how the ms gaming zone lobby system

Post by CanEh »

I've always been one to share concepts. There really isn't anything secret about the direct play object, other than the SDK itself is not an easy "document" to follow. WIth that said, the basics are as follows...

You need to create an instance of the direct play object. You then need to pass into the object the players name, and if they are joining (not hosting) the IP address of the host. You must also pass the GUID of the game, and the game EXE name.

You have to set a timer, which monitors the process of the game starting by the host, and at the point where you know their game has launched, you can then pass in the rest of the players who want to join.

You need to set timers on the joiners as well, so you can monitor when their game ends, and as each person ends the game you have to destroy the direct play object.

With all of this said, for the most part many of the Mech games run fine here. I don't recall off hand, I know one of them (might be Mech 3) will run but the "team play" side does not enable. I know the zone had to use a modified DLL for that game lobby (and a few others) in order to enable this setting. I've tried to talk with many people over the years, and no one is willing to give up the secret on how to do this, which is kind of a shame... Scott over at GameRanger has figured it out, and it needs an extra configuration value before the game is launched. He says that it is not within the direct play object (if I believe that... shrug) itself but he won't go any further than that. His reason is, his system is where he makes his living at. Meh... Again, I find it sad with this OLD stuff, that people aren't willing to share.

We have had the same questions for years, on just exactly how the Zone could launch a game with "restricted" settings, where a game being played was isolated out to a certain configuration. For example, the Crimson Skies game has various game types available, and the zone lobbies were set so only those game types could be played. I can see why they did that back then, but the player numbers in todays lobbys dont justify "forcing" a game type... the people in the game can pick and choose, its not like there are 300 people itching to play like the zone was.

You specifically reference web code, JSON etc... I am not a webbie, never had a desire to be one. I know the basics of html, only enough to create data... I leave it up to others for formatting and display etc, so I'm afraid I can't offer any assistance or advice on those specifics.

I will say, there are lots of people that love our lobby layout and features, and if you ever figure out how to enable that team play, I'd love to know...
Tenbatsu
Posts: 2
Joined: Mon Jan 28, 2013 8:28 am

Re: Questions regarding how the ms gaming zone lobby system

Post by Tenbatsu »

Thanks for taking the time to answer some of my questions.

It will definitely be a task to get working but I like challenges so I will give it a shot. The worst thing that happens is that I become a more knowledgable programmer. Not so bad really.

I agree that there isn't much to be gained from witholding information for these games. If I figure out how to get teamplay working I will let you know.
Onionbag
Posts: 19
Joined: Tue Jan 20, 2009 3:50 am

Re: Questions regarding how the ms gaming zone lobby system

Post by Onionbag »

I think i know what he does but not how he does it
i noticed that when i host a game on GRanger i had a network game listed. so my guess is that he does not use direct play but the Lan feature built into the game itself. i would say its sort of along the lines of Tunngle.

If that makes any sense.
CanEh
Site Admin
Posts: 285
Joined: Fri Jan 09, 2009 3:51 am

Re: Questions regarding how the ms gaming zone lobby system

Post by CanEh »

You could very well be right, Onion.. GR originally started out as a Mac gaming system game launcher, which of course was never DirectX type of code. Scott ran GR for years that way until he discovered he could adapt his code, just like we have adapted our code... for the ability to use one lobby to run multiple games.

The Mac games were probably a lot of LAN types for multi player... so his adaptation for enabling the team play would make sense, along with his statement to me that this did not require modifications to the direct play object... because he wasn't using the direct play object to launch games with Team Player enabled. Which points to the required popup box on his system, forcing you to choose to enable that option or not, which would then select the type of launcher object he created...

Good catch mate!
Post Reply