Site Search

Site Info

Home » Forums » Forum Archives » Networking and Internet Sharing » Topic # 385

DirectX8, and Gaming Online with ICS - question for the wizards out there -
DrJOnes666 Nov-13-00 08:41 AM
Again, the FAMOUS topic about being able to do multiplayer games with computers sharing the same IP internet connection.

There's this guy in a topic bellow who claims he was able to make AOK work with both his computers sharing the same IPs in the same game online. But he didn't come back to let us know how. Or maybe he was only succesfull at playing on his local LAN and not with other players online...

As for myself, I have contacted ENSEMBLE SUTIOS, makers of Age Of Kings, and asked them if it was at all possible.

In short, they told me that it wasn't possible with DirectX7, but maybe with DirectX8 it would be possible. That was a month ago.

Now DirectX8 is out. And I wonder if some people out there have a clue on how we could make it work.

Here's an excerpt from what ENSEMBLE STUDIOS wrote me regarding AOK, ICS, and DirectX8.

" To answer your question, no, it is not possible to participate in a multi-player game with a shared or masqueraded IP address. This is because Age of Kings (AoK) uses DirectX 7.0a (specifically DirectPlay for networking). Unfortunately, DirectX 7.0a does not support IP masquerading at all. Quake III on the other hand does not use DirectX in its code-base (I believe they use winsock for networking, miles for sound, etc.). Thus you can join QIII games (though you won't be able to host them and have other people not on your network see it).

Apparently, the reason why DirectX does not support it yet is because there is no standard way that IP masquerading / Internet Connection Sharing is implemented. From what I understand, DirectX 8 is supposed to support it though.

Will you be able to play AoK on an ICS IP if you have DirectX 8 installed? The best answer I got is maybe, if you are running Win ME or Win 2k with all the service packs, but definitely not if you are running Win 98 / 95."

So.... ANy one one has a clue?
Any idea what IP masquerading is and how to achieve that?

Any input on this subject would be appreciated.

For the record, I have two computers on my local LAN. They both have WINME installed. I use ICS that comes with Windows. And the comps are connected with NIC cards. The host is connected on CABLE MODEM. Host is a PIII600, client is a PII350. ICS works fine for about everything. I was able to play QUAKE3 with both comps in the same online game using ICS, just like Ensemble Studios mentioned in their email...

So I'm all ears to suggestions.


1. RE: DirectX8, and Gaming Online with ICS - question for the wizards out there -
lbyard Nov-13-00 03:59 PM
In response to message 0
LAST EDITED ON Nov-13-00 AT 04:00 PM (GMT)

It probably wouldn't hurt to download DirectX and try it. It is available for download at http://www.microsoft.com/directx/. Larry

2. DirectX 8.0 and NATs
lbyard Nov-13-00 04:17 PM
In response to message 1
From Microsoft's site at http://msdn.microsoft.com/library/default.asp?URL=/library/techart/directxovrvw.htm...

"Better support for Firewalls and Network Address Translators has been added.
Writing network games that traverse Network Address Translators (NATs), Firewalls, and other Internet Connection Sharing (ICS) methods can be difficult, particularly for non-guaranteed (UDP) traffic. Because DirectPlay 8.0 has been developed with these issues in mind, it will support NAT solutions where possible. The DirectPlay 8.0 TCP/IP service provider uses a single, developer-selectable UDP port for game data, making it possible to configure firewalls and NATs appropriately. Additionally, DirectPlay makes use of UDP so that, for client/server games, clients behind some NATs will be able to connect to games without additional configuration."

"I am having trouble using DirectPlay while using Internet Connection Sharing. What can I do?
We also call these NATs, for Network Address Translation. There is a problem with applications working across Incremental Change Synchronization (ICS). ICS gives its clients local Internet Protocols (IPs) and strips these IPs external to the ICS. DirectPlay has address information embedded in the message that ICSs do not manage currently.

Is there anything wrong with sending network packets from multiple threads? We do most of our sending in our main thread. However, in some instances we would like to send packets in our separate receive thread as well. Are we going to see conflicts, deadlocks, increased instability, missed packets, etc. by doing this?

There shouldn't be any penalty for sending from multiple threads. The DirectPlay Protocol takes everything you throw at it and funnels it through a single thread of its own anyway."

A bit vague, I would say... Larry

3. RE: DirectX 8.0 and NATs
DrJOnes666 Nov-13-00 05:26 PM
In response to message 2
Well, I do have WIN98 installed on both machines, and DirectX 8. But still, AOK wont work with the two machines connected in the same game.
I don't know if there could be a way to FOOL the game into thinking that there are actually TWO individual IPS ?

4. RE: DirectX 8.0 and NATs
DrJOnes666 Nov-13-00 10:33 PM
In response to message 3
Correction: I have WINME with DirectX8 installed on both machines.

I have received a new email from ENSEMBLE STUDIOS. Here's what they said:
"I am certainly not the most knowledgeable person when it comes to networking and how all this stuff specifically works, but here is my basic understanding of it.

ICS and IP masquerading are, sort of, the same thing. You have one “real” connection to the internet. This may be your host machine for ICS, your host machine behind a firewall, your connection at the phone company switching station, or whatever. You then have all of your other machines that are connected to your network that are using a “fake” IP address. They will probably have IP addresses assigned to them like x.x.x.1, x.x.x.2, etc. These machines do not “really” exist on the internet. So, you won’t be able to have your buddy join a game at IP x.x.x.2, because that address doesn’t really exist (this is why you can not host games like QIII as mentioned in my previous e-mail). What your host machine does is remember which packets are supposed to go where on your network and forward them along appropriately. So, when your machine at x.x.x.2 tries to go to some web page, it goes through the host machine, which opens a port for machine x.x.x.2 to that web page. The only IP address the web page knows is that of your host machine. Games like Quake don’t care about what the actual IP of the client in a given game is, it sends the packets back to wherever they came from (the port that was opened on the host machine for the particular session of quake).

AoK uses DirectPlay, which prior to DX8 does not support ICS-type connections. DirectPlay does care about what IP each machine is on because all clients have to be able to connect to each other. Remember, if you have a machine behind a firewall, NAT server, ICS, or whatever all the IP addresses show up as the IP of the host machine. Long story short, the guy that is not behind the firewall won’t be able to “see” the guy behind the firewall and therefore it will not work.

As far as potentially fixing the problem for AoK, you will want to have DX 8 installed on your machine. You can then follow the instructions here: http://support.microsoft.com/support/kb/articles/Q240/4/29.ASP?LN=EN-US&SD=gn&FR=0 to set up your firewall, NAT, etc, etc. It is apparently supposed to work, but I haven’t tried it myself. You should definitely be able to get one computer into a game (that is not the host machine), but I have no idea if you will be able to get 2 or more from the same network that are sharing one IP address to work."

Anyone wants to do some testing?
Post your results here!

5. RE: DirectX 8.0 and NATs
DrJOnes666 Nov-14-00 01:29 AM
In response to message 4

I used ICS CONFIGURATION to open the mentioned PORTS in the Microsoft article. ICS CONFIG is available at : http://www.practicallynetworked.com/sharing/icsconfiguration.htm

I tested my two computers on THE ZONE in the same game, and it worked! Both comps were able to play in the same game at the same time.

Open the following PORTS in ICS CONFIG:

Connection Ports for Client Configuration Ports for Host Configuration
Initial TCP Connection 47624 Outbound 47624 Inbound
Subsequent TCP Inbound 2300-2400 2300-2400
Subsequent TCP Outbound 2300-2400 2300-2400
Subsequent UDP Inbound 2300-2400 2300-2400
Subsequent UDP Outbound 2300-2400 2300-2400


And you're all set!



| Home | Guides | How to | Reviews | Online Store | FAQ | Forums | Forum Archives |
| Links | News | Newsletter | About Dux | Advertising | Contact Info | Privacy |