Advertisement

winsock book aimed at mmorpg programming

Started by September 18, 2003 09:09 PM
14 comments, last by fireking 21 years, 4 months ago
im looking for a book based on programming an mmorpg (or should i say, a lot of players connected to a server (or several servers linked together even) at the same time) i thought about getting the premeir press, Multiplayer Game Programming book, but i read that its all about direct play, and direct play is not powerful enough for a mmorpg (by massive i mean 500 - 1000 players per server) so im looking for books that i cant find, does anyone have a suggestion/recommendation?
--FirekingOwner/LeaderFiregames Development &Blackdragon Studios
i own that book, and it is a great tut into sockets programming.
of course, later on, it switches to direct-play.
i can''t be sure, but i think that MGP doesnt go into massive player handling, so...

there are other options i think:
http://www.amazon.com/exec/obidos/ASIN/1584502436/qid=1063937167/sr=2-1/ref=sr_2_1/104-9778370-9127125

see if it helps you, then write a review for it, hehe

cya,

[Hugo Ferreira][Positronic Dreams]
All your code are belong to us!

Advertisement
hmm, that book (the one you linked) looks like it leaves all the details that i need, out...

if i could just find a good book on winsock, but not just describing the api, but also expanding on how to use the api in several different applications. I also need the book to explain how to handle large amounts of clients with one server, or several server's linked together (and it would really have to go in depth if it did explain that...)

i've done winsock before, but the majority of it was in VB, and some how, microsoft's winsock control (ocx file) does not break your messages up. When you send, it sends it and the client/server will get the entire message, entirely. but when i started to dabble with winsock in C++, i found that its quite different.

I hear IOCP is the shiznit for handling 1000+ people.. but the person i heard that from was using udp... And from popular opinion, you should only use udp if you think you can code the features that tcp offers to you, better than tcp its self (or better for your specific need, cuz tcp isnt focused for a game or anything).

i hope i make sense

[edited by - fireking on September 18, 2003 10:36:40 PM]
--FirekingOwner/LeaderFiregames Development &Blackdragon Studios
that sounds way over my head...

[Hugo Ferreira][Positronic Dreams]
All your code are belong to us!

That book that is mention above is like a lot of other charles river media books, it has a ton of articles from a lot of big wigs in the industry and puts them together into one book. The Game Programming Gem series of books is based on the same principle and although it won''t teach you the basics it will give you a lot of inspiration.

Here''s another option, haven''t read it personally though so only hope it helps:

http://www.amazon.com/exec/obidos/tg/detail/-/1556228686/qid=1063938662/sr=8-3/ref=sr_8_3/002-4725947-6716828?v=glance&s=books&n=507846

that looks good, 41 bucks is a bit high...

only one review... scary

any other book recommendations? im looking on a lot so i can choose 1 out of many
--FirekingOwner/LeaderFiregames Development &Blackdragon Studios
Advertisement
It seems to be also that you don''t yet know the basic API when it comes to working with it in C/C++ mode of things and this book would make a excellent reference:

http://www.amazon.com/exec/obidos/ASIN/0735615799/qid=1063940984/sr=2-1/ref=sr_2_1/002-4725947-6716828
I was in the same quest of yours a while ago. I purchased the books:

Network virtual environments
Massively multiplayer game development
Internetworking with TCP/IP Vol 3
Developers guide to multiplayer games
Windows network programming
Multiplayer Game Development


I haven´t read all information in all books, but I´ll give my opinion about the information that I have read.

From what I have read:

No. None of these books alone will teach you how to implement your massive distribution system with TCP/IP using IOCP, or some layer implemented on top of UDP that implements reliability.

I really liked networker virtual environments. It gives you ideas of what threads your nve should have. And what should do each thread. Gives also information about scalability, how to manage the distributed state. In my opinion, this book is the real time rendering of the distributed programming. And similar to that book, no code, just algorithms (except for the appendixes). If you want to implement a massive, this book is a good source of info.

Massively multiplayer game development. I haven´t read much about this book, but from what I have seen and read, I didn´t like it. The first chapter that caught my attention was about server architecture I think, It had a big error on it. Some class I think the name was simulation object was wrong. I knew that because the guy that wrote the article also had writen a similar article for game programming gems 3. No c++ code. Just Python. BUT, this is, after all, a book that talks only about massive development, it has its values in the ideas that it gives you, but don´t raise your expectations.

the Internetworking v3 book. I really liked this book. You will learn how to send your messages with winsock. But the applications are really simple. No nve . Good for the basics.

Developers guide. Haven´t read much. But they teach you how to interface with a MySQL Database through c++. You´ll probably need that info for your mmorpg, for saving you data, if you don´t have resources to buy a better database. About sockets, they make a library that runs on windows and unix, good info because you´ll probably have your servers running on a stable OS(like unix).

Windows network programming. Great book. One of the best to learn winsock from (if not the best). Will teach you about that dreaded IOCP. And other IO models too.

Multiplayer game development. Dangerous review ... the author can be lurking around ... The first book I´ve read about multiplayer programming. From what I remember and have read, will teach you some winsock, then goes to DirectPlay. Teaches you about sending messages and receiving with it. Shows you about an action game. Have some interesting chapter names. In the end I think it is implemented a massive (although a extremely simple one, I think it can be said it was a massive).



After reading all this, I was left more confused than when I started. I´m going to become a monk now. Goodbye.

PS:
There´s a new one that could hold the key ... grid computing for massively multiplayer games I think .... but then, I don´t think I´ll be around to check it out.

[edited by - fistandantilus on September 18, 2003 12:03:54 AM]
The Grid book is written by someone with a stake in the IBM "Grid" approach to multiplayer games. They''ve been touting it for years now, and no shipping game is using it. That should tell you something. I also head that they tried making Quake massively multiplayer using the magic of the Grid, and it failed miserably.

The Networked Virtual Environments book is the only one in the group that''ll give you some solid ideas for large, scalabe, interactive environments. It actually doesn''t describe the current state of the art, but it''s good enough to actually get you there. If this were graphics, then most of the books on the list would be OpenGL primers or tutorials; the NVE book would be a description of Quake III; but to compete these days, you have to get to Doom III or HalfLife 2 levels. If you just want to have fun, that book is quite sufficient.

Regarding MySQL, "if you can''t afford to buy a better database" is too harsh. MySQL is really quite good. It''s better than Postgres on some things; Postgres is better on some things; and both are better than Oracle at several things. Except Oracle cost LOTS of money.
quote:
Original post by fireking
I hear IOCP is the shiznit for handling 1000+ people.. but the person i heard that from was using udp... And from popular opinion, you should only use udp if you think you can code the features that tcp offers to you, better than tcp its self (or better for your specific need, cuz tcp isnt focused for a game or anything).



I have no experience with IOCP, but I know some people that have used it and it indeed is supposed to be great for massive amounts of connections.

One more quick thing, as far as the UDP to re-implement TCP thing goes, that line of thinking comes from people who are not doing games. Games do need SOME of the features of TCP(reliable messages, etc)...but, they only need them some of the time. For example, if you miss an un-important player position change from time to time it''s no big deal. You only need to gaurantee messages that contain important events.

That''s why UDP is generally preferred for smaller-scale, fast-paced network games. It does mean you have to write your own version of some of what TCP provides, but it also means you get to pick and choose when and how you use those features. Hope that makes things clearer.

-John
- John

This topic is closed to new replies.

Advertisement