Features of DirectPlay
The following features of DirectPlay are very useful to the game industry, but also to business application programmers. There is some overlap in the needs of a business developer and a game developer, and the following sections describe those needs.
It's very important when sending messages to another client or a server to know the exact address of the machine. This helps in getting data to the right place in a timely manner. This also reduces the risk of losing data. DirectPlay offers GUIDs and addresses to help ensure that data gets to the correct client(s) and server(s).
Sometimes you need to send data to a broad range of users. In a game situation, this feature may be used to notify everyone that the game server is going down, or that a player has won the game (or died trying). In the business world, DirectPlay can be used to broadcast updates, messages, and other types of data to customers who are connected to your broadcast server (lobby) through DirectPlay.
Voice communications are still new (even to games). In the business world, voice communications are expensive to implement and manage. With DirectPlay's DirectPlayVoice component, however, you can send and manage messages with a lot less code. DirectPlayVoice can even be adjusted to accommodate your customer's bandwidth, and used in the development of training and meeting applications.
One important DirectPlay feature is that it's optimized for games. What does that mean? A lot of research has gone into making DirectPlay robust and fast because game programmers don't have any network bandwidth to waste. This manifests itself in streamlined communications protocols that make DirectPlay a very efficient method for data transfer for games (as well as other types of data transfers). For example, through DirectPlay it's possible to push XML, text, and binary data to machines that match a specified GUID and address. This opens the door to many useful business applications with DirectPlay.
What Features Does DirectPlay Not Provide?
There's one thing to be aware of when using DirectPlay: Put simply, DirectPlay offers no security. If you send data through DirectPlay, it's not protected from prying eyes. Therefore, to use DirectPlay effectively, you need to encrypt the data before you send it. And on the client side, of course, you need to decrypt the data. Keep this in mind if you decide to use DirectPlay for your application.