Written By: Tom Curry

Participates: Patty Buchanan and Harris Phram

 

IV. DirectPlay Project.

The project was a difficult undertaking because those of us involved had no previous experience with the DirectPlay API, so most of our project involved extensive research. We decided to compile and run three separate versions of a sample DirectPlay application known as DirectChat. The versions we chose to run were the Visual C++ versions of DirectChat for DirectX 7 and DirectX5, and the brand new Visual Basic version included with DirectX7. (all three versions of the source code are included, fully documented and commented, with the hardcopy handed over in class for grading.) The workload was divided equally amongst the team, and all three versions were compiled and run using Microsoft Visual Studio 97 and 6.0. Here is the summary of our results along with screen prints for documentation:

  1. All DirectX connections were initiated through a "Launcher" as previously mentioned within the scope of this research paper. Tom initiated a host session on his PC, used WINIPCFG to obtain his TCP/IP address, and communicated it to Patty and Harris via the telephone.
  2. The Visual Basic version of Chat for DirectPlay worked fine with another version of the same program, but did not work when trying to connect to the Visual C++ version of the program. When viewing the source code, it seemed that they were two different programs entirely. It seemed that while the Visual C++ version of the code interacted with the DirectX API through conventional C++ style interfaces, the Visual Basic code interacted with the DirectX API through a series of COM+ bindings to the DirectX interfaces. This leads us to believe that establishing communication between a Visual C++ and Visual Basic version of the same program is not necessarily impossible, but would require the implementation of some high level COM+ interfaces to work.
  3. Patty initiated a "join" connection to Tom’s host application via the TCP/IP address provided by Tom. The connection was successful resulting in an hour of rather enjoyable conversation. (see picture below).
  4. Harris was attempting to connect to our DirectX 7 implementation with a DirectX5 implementation that he compiled and ran. This attempt was unsuccessful, leading us to doubt the backwards compatibility of DirectPlay for DirectX7. Harris’ screen looked something like this:
  5. Meanwhile, with simultaneous connections to NetMeeting and AOL Instant Messenger trying to help our prestigious colleague. Tom and Patty’s DirectChat connection wound up looking something like this:
  6. The moral of this story is this. Don’t try using DirectX5 DirectPlay to connect to a software specification defined according to the DirectX7 DirectPlay API. There was a series of patches available for the DirectX 5 DirectPlay. One or all of those may have helped, but in the mean time, we can conclude that DirectPlay is a fairly reliable communications standards, but is not apparently backward compatible.
  7. To support the argument that DirectX is not backward compatible, Harris did get an error message when trying to connect to a NetMeeting session hosted on Tom’s computer stating that I was using a newer version of DirectPlay. After numerous tries, I was able to connect to a session of NetMeeting hosted on his computer, where we continued to complain about these issues.

 

 

Next Page

Index