![](wink.gif)
DPlay for MMOG - why so bad?
I have done a decent amount of research on the topic of MMOG network programming. It seems to me that there are very few options for a reliable udp network layer. Of the ones that I've seen, it seems to me that DirectPlay 8/9 is by far the best choice.
Here's why:
- It uses I/O Completion Ports
- It uses Thread Pooling
- It has an unmatched number of features
- It includes reliable/ordered, unreliable/ordered, etc.
- It has support for message prioritizing
- It supposedly, as reported by Microsoft in it's documentation, can handle the "Massive" amount of connections required for a MMOG
EDIT: The ultimate goal is to not have to code my own reliable UDP layer upon Winsock/.NET Sockets/etc... I thought I would mention that before we get the all to common "do it yourself" comments
Comments?
synth0id
[edited by - synth0id on November 24, 2003 7:21:53 PM]
[edited by - synth0id on November 24, 2003 7:23:11 PM]
![](wink.gif)
There is no point in doing anything at all, you'll die pretty soon anyway.
I can afford Windows Server 2003, and as many as would be required to run all of the servers. This is not a Linux/Windows war thread so we''ll just leave it at that
![](wink.gif)
There is no point in doing anything at all, you'll die pretty soon anyway.
quote:
Original post by Synth0id
- It supposedly, as reported by Microsoft in it''s documentation, can handle the "Massive" amount of connections required for a MMOG
The key word there is *supposedly*
![](smile.gif)
As of DX6, DPlay was unsuited to MMOG requirements, and that''s a stigma that has yet to go away in the minds of developers. MS claims it can now handle 1000''s of simultaneous connections (as of DX8 I believe), but as far as I know, no MMOG has actually ever used it. They all go with the normal socket stuff.
I wish somebody *would* try it out, just so we know one way or the other
![](smile.gif)
Creation is an act of sheer will
quote:
Original post by Synth0id
I can afford Windows Server 2003, and as many as would be required to run all of the servers. This is not a Linux/Windows war thread so we''ll just leave it at that![]()
It is absolutely not a OS war thread. My point was that there are considerable financial considerations to be aware of, above and beyond API features. For example, why do you think DAoC used MySQL?
November 25, 2003 01:08 AM
Hmm any company willing to make a MMOG would be more willing to roll their own network solution which they can debug and optimize than use a generalized API which is propriarty and closed. Do you want to trust a critical component of you bussiness on DPlay? It''s not exactly high on Microsofts prority of software. It rarely gets updates now, and I doubt if you found a API breaking bug, a fix would be released within 6 months. There is just too much risk. If this was say a flagship product which Microsoft puts lots of $$$ into maybe companies would be more willing to invest to much in DPlay, but the impression is it''s just a second thought add on to the DX libraries, which oringally it was.
-ddn
-ddn
As much as I would like to roll my own networking solution, I am a realist. My game will never get done if I have to reinvent the wheel just so I can have the source. My team is a small one, and that means that we''d be tacking on another couple of months to dev time just to create a realiable UDP layer. I don''t want to be working on this one game for more than a year or two.
Anything that I could program I''m sure wouldn''t come close to what DirectPlay has accoplished. I willing to bet that it is incredibly optimized and quite fast since it uses all of the above features.
I don''t personally believe it was "just a second thought" as you put it. You talk about there not being many updates to it? What is there left to do? it incorporates nearly every possible feature for a netlib already. Now with its recently added ability to handle hundreds or even thousands of connections what do I have to lose?
I dunno...I realize that I might be wrong here but I think that DPlay is a decent solution, and I have yet to see any real "proof" that it isn''t.
Maybe someone can propose another netlib for me to use. My requirements are for the server to run on a WinOS and to be using the client in a Managed language.
Thanks for all of your comments, keep em comin![](smile.gif)
synth0id
Anything that I could program I''m sure wouldn''t come close to what DirectPlay has accoplished. I willing to bet that it is incredibly optimized and quite fast since it uses all of the above features.
I don''t personally believe it was "just a second thought" as you put it. You talk about there not being many updates to it? What is there left to do? it incorporates nearly every possible feature for a netlib already. Now with its recently added ability to handle hundreds or even thousands of connections what do I have to lose?
I dunno...I realize that I might be wrong here but I think that DPlay is a decent solution, and I have yet to see any real "proof" that it isn''t.
Maybe someone can propose another netlib for me to use. My requirements are for the server to run on a WinOS and to be using the client in a Managed language.
Thanks for all of your comments, keep em comin
![](smile.gif)
synth0id
There is no point in doing anything at all, you'll die pretty soon anyway.
quote:
Original post by foofightrquote:
Original post by Synth0id
I can afford Windows Server 2003, and as many as would be required to run all of the servers. This is not a Linux/Windows war thread so we'll just leave it at that![]()
It is absolutely not a OS war thread. My point was that there are considerable financial considerations to be aware of, above and beyond API features. For example, why do you think DAoC used MySQL?
Actually that is a common myth that I myself believed due to the bad wording of the DAoC postmortem.
DAoC only uses mySQL for WEB databasing, (ie the camelot herald, guild database, player database). These are seperate databases from the actual game databases (ie the mySQL player database is only a viewable representation of the "real" player database which is not in mySQL)
I had the link around but I seem to have lost it, I originally got it from these forums where Mark Jacobs and others are commenting on such things.
In the link that I had where they were talking about it, they said the main reason they couldn't use it for "live" data was due to the fact mySQL is one huge bottleneck in a realtime database such as a gaming world where there can't be any lag.
mySQL does NOT have any stored procedures, which is why it is rendered helpless when compared to MS SQL and Oracle.
Just look at benchmarks that compare MS SQL, Oracle, and mySQL. mySQL is lucky to get half the performance of the other two with large operations or a large amount of operations, due to the fact of having no stored procs.
[edited by - Imperil on November 25, 2003 11:52:06 AM]
quote:
Original post by Synth0id
As much as I would like to roll my own networking solution, I am a realist. My game will never get done if I have to reinvent the wheel just so I can have the source. My team is a small one, and that means that we''d be tacking on another couple of months to dev time just to create a realiable UDP layer. I don''t want to be working on this one game for more than a year or two.
Hmm, I think you exaggerate
![](smile.gif)
What *would* take you two months is programming the IOCP server, that''s where your time would go which you could avoid using DPlay, heh.
Umm, a year or two to create a MMOG with a small team? Are you sure? Doesn''t seem like enough time to me, even if you use DPlay. Of course, you know your project/team better than I do.
quote:
I don''t personally believe it was "just a second thought" as you put it.
DPlay started out like all the other components of DX. Really bad. As it''s been updated, it''s gotten better, just like D3D, DInput, and so on.
I agree with you, I don''t think it was tacked on "as a second thought". It just took a few iterations to get it to a point where it was a decent component of the DX library.
quote:
I dunno...I realize that I might be wrong here but I think that DPlay is a decent solution, and I have yet to see any real "proof" that it isn''t.
Nor have I. On the other hand, I haven''t seen any proof that it is, either
![](smile.gif)
Let me know how it goes. I''d be truly interested in knowing how well DPlay perfoms under MMOG style loads.
-Ron
Creation is an act of sheer will
I was only able to find one of the links I was talking about. This one is by Dave Rickey, one of the lead programmers at Mythic Entertainment:
http://www.kanga.nu/archives/MUD-Dev-L/2002Q4/msg00558.php
This is the list of games/db systems that I currently know:
Everquest - MS SQL
Asherons Call - MS SQL
Dark Age of Camelot - Flat Files, Home-grown SQL functions
Anarchy Online - MS SQL
Shadowbane - MS SQL
Ultima Online - not sure here anybody know??
EVE - not sure again either??
- EQ is widely known to use MS NT/MS SQL.
- I learned AC used MS SQL by speaking with Jesse "Devilmouse" about the db systems used, who was one of the originals at Turbine. They also use a home-grown solution with flat files as well in some parts.
- Camelot I learned a lot from Mark Jacobs and Dave Rickey over the years, in which they built their own solution.
- Anarchy Online I read an interview in which one of the developers was discussing the use of MS SQL with proprietary flat file solutions.
- Shadowbane I spoke to two developers at Wolfpack who both iterated that the game is completely driven with SQL.
Anybody know the other ones?
http://www.kanga.nu/archives/MUD-Dev-L/2002Q4/msg00558.php
This is the list of games/db systems that I currently know:
Everquest - MS SQL
Asherons Call - MS SQL
Dark Age of Camelot - Flat Files, Home-grown SQL functions
Anarchy Online - MS SQL
Shadowbane - MS SQL
Ultima Online - not sure here anybody know??
EVE - not sure again either??
- EQ is widely known to use MS NT/MS SQL.
- I learned AC used MS SQL by speaking with Jesse "Devilmouse" about the db systems used, who was one of the originals at Turbine. They also use a home-grown solution with flat files as well in some parts.
- Camelot I learned a lot from Mark Jacobs and Dave Rickey over the years, in which they built their own solution.
- Anarchy Online I read an interview in which one of the developers was discussing the use of MS SQL with proprietary flat file solutions.
- Shadowbane I spoke to two developers at Wolfpack who both iterated that the game is completely driven with SQL.
Anybody know the other ones?
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement