DirectPlay and non-win32 platforms

Started by
14 comments, last by felonius 24 years, 1 month ago
Hi, I am building a networked game and I would like to fulfill user expectations and user DirectPlay for this. I would like, though, to be able to let non-windows versions of the game communicate with the windows versions. One purpose of this is to create a Linux server version of the game to act as a dedicated server. This should be able to interact with the windows clients. Is this at all possible, except by abandoning DirectPlay totally and relying on some lower level protocol stack such as TCP/IP? Any suggestions would be appreciated? B.S. Jacob Marner
Graduate Student of Computer Science, The University of Copenhagen, Denmark.
http://fp.image.dk/fpelisjac/rolemaker/


Jacob Marner, M.Sc.Console Programmer, Deadline Games
Advertisement
In a nutshell, you have to abandon DirectPlay in order to communicate across platforms. The DirectPlay protocol hasn''t been (and mostly likely won''t be) released or ported to other platforms.
DirectPlay doesn''t give you that much over sockets anyway.

An alternative you may want to explore is Apple/Bungie''s OpenPlay, and open-source game networking library. I believe that there are Mac, Win32 and linux implementations.



-vince


-vince


You are both probably right. I have to use something else than DirectPlay then.

It is a shame, though. DirectPlay is service provider independent while others (including OpenPlay) only supports TCP/IP on all platforms. This is the most important protocol but I would still like to support direct modem connections, IPX, null-modems, etc.

I took a look at OpenPlay. It is given in source code meaning that in principle can be ported to any system (providing that to proper drivers are written). A Linux version is under development but is not done. For know only Mac and Windows versions exist.

If anybody knows any other programs for platform/service independant commiunication please let me know.

B.S. Jacob Marner
Graduate Student of Computer Science, The University of Copenhagen, Denmark.
http://fp.image.dk/fpelisjac/rolemaker/


Jacob Marner, M.Sc.Console Programmer, Deadline Games

Not very sure if it''s platform independant..

http://www.rogerwilco.com/
I just looked at Roger Wilco. It is not a communication protocol, but a application layer program for sending voice information over networks. It only works for Mac and Windows and only work on TCP/IP.

In conclusion, Roger Wilco is not what I need. Apple OpenPlay is then a better solution.

B.S. Jacob Marner
Graduate Student of Computer Science, The University of Copenhagen, Denmark.
http://fp.image.dk/fpelisjac/rolemaker/


Jacob Marner, M.Sc.Console Programmer, Deadline Games
Nothing is preventing you from abstracting out your session/transport layer from the application. Create an network encapsulating interface for your network calls, and write a DirectPlay implementation and a TCP/IP implementation. Then you can still have your server in linux.
Uh, that won''t work. DirectPlay uses its own protocols and the protocol spec is not public. So a DirectPlay client will not be able to talk to a non-Windows server.



-vince


-vince


vince, I know that DirectPlay protocols haven''t been released. I said so myself above. I think you missed my point. The point is to abstract out the networking code by protocol. ex:

class NetStuff {  public:    virtual void CreateConnection(int address) = 0;    virtual int SendData(char * buffer, int size) = 0;};class TCPNetStuff : public NetStuff {};class DPlayNetStuff : public NetStuff {  public:    void DPlayLobbyConnect(void);}; 


Then a network interface will be either an instance of TCPNetStuff or DPlayNetStuff. So just don''t compile the DPlayNetStuff implementation for the non-windows clients. You''ll still have the TCPNetStuff network interface to communicate over with other OS''es.
But my point is that DPlay clients can''t talk to non-DPlay servers/clients.

What''s the use of having a DPlay implementation if it can''t talk to anyone else?

I agree abstraction of the networking API is a good thing - it has already saved my butt many times. It''s just that for this scheme to work all the clients/servers would have to be DPlay.




-vince


-vince


This topic is closed to new replies.

Advertisement