🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Winsock vs DirectPlay

Started by
19 comments, last by Allied 23 years, 3 months ago
DirectPlay8 is *way* better than previous versions. On websites related to multiplayer programming you often find think that say that DirectPlay is not good for MP programming. well, it was for every version lower than 7 in my opinion. DP8 is designed for maximum control over the packet size. (Except for the UDP headers then, but you can''t change that anyway)

bit64: I understand completely what you mean; not everyone needs it and if they wouldn''t need it, it would only be more overhead.
And yes, it''s easy to get it from the server (Sending it as High priotity, and guarenteed). But I just wondered if it would be possible... the hours I''ve searched on the SDK docs for this :o)

Ragonastick: Are you the Rag from the VB Boards?

Almar

Advertisement
Yes. I''m a VBist (the VBist you are referring to that is )

And I don''t want to make this a completely useless post, so I''ll try and add something to the discussion ... or maybe just a question:

How much slower is DPlay compared to Winsock?
Trying is the first step towards failure.
You probably won''t really notice. I guess the network layer is Like:

Dev. Environment/Exe
|
DirectPlay
|
Winsock

btw, the bandwith remains the same for data transfer, so that wouldn''t matter. I think the time you save by using DirectPlay is so much higher than the so little (if any) slow down of your program.


Hello everyone,

I really ant to use DirectPlay 8, however, I''m having a hard time trying to learn it through the Docs MS made for it. I''m not sure if I am the only one with this opinion, but I think that Microsoft did a really crappy job with the Documentation for Direct Play.

Does anyone know of any other resources where I can learn DP8? I want to use it to make a MMORPG. Might I be better off just going with Winsock?

Thanks for any input....

Michael Rhodes
Michael RhodesTiger Studios Web Designhttp://tigerstudios.net
mrhodes:

Well, you could wait for my book in June, it teaches both Sockets and Direct Play.

Anyway, here is my $0.02 worth again:

1. Winsock - Great if you want the lowest-level of control possible.
2. Direct Play - Great if you don''t want to re-invent the wheel.

Personally, I have used both. I still use both. Not in the same app of couse. But I use whichever makes the most sense for the task at hand.

Here is a hint for you though, I am developing a MMORPG and it utilizes Direct Play 8. On the other hand, I have wrapped the communication code so that I can switch to another API (i.e. sockets) if I need to.

Lost Logic
webmaster@lostlogic.com
www.lostlogic.com

LostLogicwww.GamerOutfit.comXBox 360 Community Games Reviews and NewsExisled - 2D/3D Shooter for XBox 360

ragonastick>>
YEAH BUT 419 PAGES ???? WHAT THE HELL IS IN THERE ???
-------------Ban KalvinB !
419 Pages...

*Documentation for C++ *AND* Visual Basic

Containing all enumerations, error codes, and whatever

btw, it takes 536 pages on my computer...




quote:
1. Winsock - Great if you want the lowest-level of control possible.

Can you build a packet bit-by-bit & put it on the wire with winsock!? (the whole packet)

quote:
- bit64 about DP
It is very easy and intuitive to use...

Um, sorry man, it's way harder to use than the other parts of Dx.
Look at the code it takes to initiate a connection to a known ip, look at the code it takes to render a triangle, look at the WinSocket code it takes to initiate a connection.
DP8 is easier to learn than DP4, but a DP9 or 10 is needed.

I realize that DP is designed for commercial online games that are going to want a lobby & etc... But it should be easier to initiate a connection if the host is pre-determined. This is the 'first-step' when trying to learn a network protocol, and it's almost easier to use a lobby than not to!

Magmai Kai Holmlor
- The disgruntled & disillusioned


Edited by - Magmai Kai Holmlor on March 11, 2001 2:10:02 AM
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Hmm, DP8 just requies a few things to connect directly to a host.
(In VB)
ObjDPServerAddress.SetSP DP8SP_TCPIP ''//''Configure Server address for TCP/IP
ObjDPServerAddress.AddComponentLong DPN_KEY_PORT, intServerPort ''Add the serverport to the ServerAddress
ObjDPServerAddress.AddComponentString DPN_KEY_HOSTNAME, strHostName ''Host

Now only add the guid, and you can connect. Dp8 does not require the connection types dialog anymore, and you don''t have to enumerate either.
I like it. if DP8 was designed for lobbies, they would have documented it more. I need them and I just don''t get to understand them... Like running a masterserver in UT/Q3:A and let other ppl connect to it. No documentation about Lobby servers or something. The only negative thing I have so far for DP8.



Only!?
	HRESULT hr;		// Set IP service provider	if(FAILED(hr=m_pLocalAddr->SetSP(&CLSID_DP8SP_TCPIP)))		return DXTRACE_ERR( _T("SetSP"), hr);			// Set IP service provider	if(FAILED(hr=m_pHostAddr->SetSP(&CLSID_DP8SP_TCPIP)))		return DXTRACE_ERR( _T("SetSP"), hr);	char strTemp[256];	strcpy(strTemp, strIPAddress);	if(FAILED(hr=m_pHostAddr->AddComponent(DPNA_KEY_HOSTNAME, T2W(strTemp), (strlen(strIPAddress)+1)*sizeof(WCHAR), DPNA_DATATYPE_STRING)))		return DXTRACE_ERR( _T("AddComponent"), hr);	if(FAILED(hr=m_pHostAddr->AddComponent(DPNA_KEY_PORT, &dwPort, sizeof(dwPort), DPNA_DATATYPE_DWORD)))		return DXTRACE_ERR( _T("AddComponent"), hr);	if(FAILED(hr=m_pDPClient->Connect(&m_dpnAppDesc, m_pHostAddr, m_pLocalAddr, 0, 0, 0, 0, 0, &m_dpnhConnect, DPNCONNECT_OKTOQUERYFORADDRESSING)))		return DXTRACE_ERR( _T("Connect"), hr);  


should be:
m_DPClient->ConnectIP(strIPAddress, dwPort);  


Magmai Kai Holmlor
- The disgruntled & disillusioned


Edited by - Magmai Kai Holmlor on March 11, 2001 10:02:21 PM
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara

This topic is closed to new replies.

Advertisement