home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NEXT Generation 27
/
NEXT27.iso
/
pc
/
demos
/
emperor
/
dx3.exe
/
DOCS
/
README
/
DPLAY.TXT
< prev
next >
Wrap
Text File
|
1996-09-09
|
6KB
|
150 lines
DirectPlay Notes:
1. What's New!
--------------
See the DirectPlay section in the DirectX help file for more details
on what's new.
Highlights include:
- IDirectPlayLobby - an interface that allows an external application
to launch a DirectPlay 3.0 application and provide it with all the
connection information needed to get connected to a session.
Try out the DPLAUNCH sample application for a demo of this!
- Internet TCP/IP service provider - now you can have multiplayer
applications over the Internet
- Unicode support
- Host migration
- Automatic player data propagation
- Better performance, less overhead, more stability and robustness
- Support for 3rd-party network service providers
All the new functionality of DirectPlay is in the IDirectPlay2
(Unicode) and IDirectPlay2A (ANSI) interfaces. When compiling, it is
recommended that you define the symbol IDIRECTPLAY2_OR_GREATER to make
sure that you are not using any obsolete flags or structures. The
IDirectPlay interface has not changed from previous versions of
DirectPlay.
2. Samples
----------
The following samples can be examined for examples of how to use
DirectPlay
SDK/SAMPLES/DUEL
- This simple multiplayer game uses the new IDirectPlay2 interface
- It also uses IDirectPlayLobby to make it lobby-able
SDK/SAMPLES/DPLAUNCH
- This stand-alone application demonstrates how a DirectPlay 3 app
can be launched from an external source using the IDirectPlayLobby
interface
SDK/SAMPLES/IKLOWNS
- Another multiplayer game which still uses the old IDirectPlay
interface
- It also use IDirectPlayLobby to make it lobby-able
3. General Notes
----------------
-- The names of the DirectPlay 3 DLLs have changed. The names of the
new DLLs are:
dplayx.dll - DirectPlay 3 dll
dpwsockx.dll - Winsock service provider (TCP/IP and IPX)
dpmodemx.dll - modem and serial service provider.
Make sure that any applications in development link to DPLAYX.LIB.
Applications compiled with DirectPlay 2 or earlier will not use these
new DLLs and therefore not benefit from the enhancements of DirectPlay 3.
*** If you installed Beta1 of DirectX 3, the DirectPlay 3 DLLs will
have overwritten any DirectPlay 2 DLLs you may have had installed.
Beta2 will delete these DLLs if they have the version number of
DirectX 3 (4.04.xxxx)
*** To restore them, simply reinstall DirectX 2 or any game that uses
DirectX 2. Alternatively, copy the files DPLAY.DLL, DPWSOCK.DLL and
DPSERIAL.DLL from your DirectX 2 CD to the windows SYSTEM directory.
-- The synchronization event parameter in IDirectPlay2::CreatePlayer has
been changed to a HANDLE (from an LPHANDLE). The handle must be
created by the application. Passing in an LPHANDLE will NOT generate
a compiler error but it will cause the method to return an error.
-- Make sure you read and understand the behavior of the DPSEND_GUARANTEED
flag in the Send() API. Additional text has been added to clarify the
usage of this flag.
-- The Internet TCP/IP service provider now maintains a cache of open
sockets to improve the performance of guaranteed messages i.e. sockets
will not be opened and closed for each individual message. Calling
GetCaps() and asking for the guaranteed capabilities will tell you
how many players can be supported (dwMaxPlayers).
-- If an application tries to send messages that are larger than the
maximum packet size of a protocol, DirectPlay will break it up
and send it using multiple packets and reassembling the packets on
the receiving end into a single message.
-- Added ability to host more than one game on a single machine (TCP/IP only)
-- The DirectPlay Address structure now uses GUIDs to identify chunks
in the address instead of four character codes.
-- Applications with short timeouts will not work over the Internet
due to the long latencies. Applications should specify a timeout value
of zero in EnumSessions in which case an appropriate timeout will
be calculated by the service provider.
-- DirectPlayConnect is obsolete. An application will need to create an
IDirectPlayLobby interface. It may query the connection settings that
the lobby passed in using GetConnectionSettings, and modify them using
SetConnectionSettings. It highly recommended that the application
verify that the correct session description flags are set using this
method. Finally, the application should call the Connect method and
then Release the IDirectPlayLobby interface.
-- There is now an ANSI and a UNICODE version of the DirectPlayLobbyCreate
API. The version is selected based on the UNICODE compile-time flag.
-- To use TCP/IP over the Internet, the users joining the session must
enter the IP address of the machine that hosted the game when prompted
by the service provider.
You can find out the IP address of your machine by running "winipcfg".
If you have a net card and a modem installed, you will need to make
sure you read the IP address of the modem connection to the Internet.
The IP address information for the modem will typically show up under
"PPP Adapter".
4. Known Problems
-----------------
-- Inside of any DirectPlay enumeration callback only the thread running
the callback can make calls back into the DirectPlay API. Other threads
and the service provider will be blocked from calling DirectPlay until
the enumeration has completed, so it is important to have enumeration
callbacks complete quickly.
-- IPX will not allow playing more than one game simultaneously. Use
TCP/IP to do that.
-- There is no multi-home support for IPX. Use TCP/IP if multi-homing
is needed.
-- If an application sets the player name or remote data for a non-local
player, the change will not be propagated to the remote applications.
-- DirectPlay generally will not work through proxies and firewalls.