Multiplayer Game Programming Bible?

Started by
7 comments, last by DarklyDreaming 12 years, 5 months ago
Hello GameDev,

It's been a while but I'm back with bigger aspirations than ever. I've recently devoured "Absolute C++" by Savitch, and I feel like I have a pretty intermediate grasp of C++ and programming in general. So I wanted to jump off into something a little more complicated, I chose multiplayer game programming. The articles listed in the FAQs for this form are great and all, but I'm more of a book person. So, I was wondering if there are any definitive multiplayer game programming books out there that I really wouldn't want to miss.

P.S. Multiplayer Game Programming by Todd Barron doesn't look half bad, but I'm still not sure.

Thanks for the help!
~SuperJman
Advertisement

P.S. Multiplayer Game Programming by Todd Barron doesn't look half bad, but I'm still not sure.


See if your local library has anything, or can order it. That will save you some dollars :-)

Also, there's a college-level textbook called "networked virtual environments" by Singhal et al that goes over many of the basics.
enum Bool { True, False, FileNotFound };
Hmm, "[color=#1C2837][size=2]networked virtual environments" seems like a pretty good candidate, but it was written in 1999. Technology has changed a whole lot since then, is it even still applicable for modern usage? I'll assume it is but still, if anyone has any more ideas I would greatly appreciate it!

Hmm, "[color="#1C2837"]networked virtual environments" seems like a pretty good candidate, but it was written in 1999. Technology has changed a whole lot since then, is it even still applicable for modern usage? I'll assume it is but still, if anyone has any more ideas I would greatly appreciate it!


actually the relevant technologies for multiplayer games haven't changed much since the early 90's mostly it's just wireless that became more popular and internet got faster, but from the programmer's perspective none of that really matters unless you're writing drivers.


[color="#1C2837"]
actually the relevant technologies for multiplayer games haven't changed much since the early 90's mostly it's just wireless that became more popular and internet got faster, but from the programmer's perspective none of that really matters unless you're writing drivers.[/quote]

[color="#1c2837"]Yes, a lot of the reviews said that, but at the same time the reviews said that a lot of the content in the book was pure theory, and that it's not really going to help you out unless you have a background in network programming, which I don't know much about.

Hmm, "[color="#1C2837"]networked virtual environments" seems like a pretty good candidate, but it was written in 1999. Technology has changed a whole lot since then, is it even still applicable for modern usage? I'll assume it is but still, if anyone has any more ideas I would greatly appreciate it!


It is a textbook. It will give you a pretty good fundamental understanding of the various concepts involved -- anything from dealing with network loss, to lag compensation, to clock management, to the difference between state replication versus RPC. Those are basic principles of network programming, kind-of how threads, locking, pipes and shared memory are fundamental principles of multiprocessing operating systems. The specifics of how you deal with threads and locks (or sockets) may vary between APIs, but the fundamental abilities and limitations do not change.

So -- if you want a cookbook for "how to build a multiplayer game using today's hot technology" that talks about one specific way of doing something, then this is not the book. Even after reading this book, you probably also need to learn some particular socket API (Berkeley sockets/select, boost::asio, C# System.Net, Java aio, or some other API based on what your language/environment is)
enum Bool { True, False, FileNotFound };

It is a textbook. It will give you a pretty good fundamental understanding of the various concepts involved -- anything from dealing with network loss, to lag compensation, to clock management, to the difference between state replication versus RPC. Those are basic principles of network programming, kind-of how threads, locking, pipes and shared memory are fundamental principles of multiprocessing operating systems. The specifics of how you deal with threads and locks (or sockets) may vary between APIs, but the fundamental abilities and limitations do not change.

So -- if you want a cookbook for "how to build a multiplayer game using today's hot technology" that talks about one specific way of doing something, then this is not the book. Even after reading this book, you probably also need to learn some particular socket API (Berkeley sockets/select, boost::asio, C# System.Net, Java aio, or some other API based on what your language/environment is)


Ahhh, yes after doing a little bit more research in network programming your advice makes a lot more sense (I lacked a basic understanding of how these things are connected). I'll take a look at the book and dig into some boost::asio tutorials then. Thanks for all the help!



actually the relevant technologies for multiplayer games haven't changed much since the early 90's mostly it's just wireless that became more popular and internet got faster, but from the programmer's perspective none of that really matters unless you're writing drivers.

You'd be surprised. Epoll and IOCP are relatively new concepts. So a book written in say 1999 would not know about or cover those implementations and would probably use older alternatives. It's important to be aware of that when writing modern networking code.

[quote name='ic0de' timestamp='1321676712' post='4885518']
actually the relevant technologies for multiplayer games haven't changed much since the early 90's mostly it's just wireless that became more popular and internet got faster, but from the programmer's perspective none of that really matters unless you're writing drivers.

You'd be surprised. Epoll and IOCP are relatively new concepts. So a book written in say 1999 would not know about or cover those implementations and would probably use older alternatives. It's important to be aware of that when writing modern networking code.
[/quote]
Any book recommendations that do cover those newer techniques?
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe
"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
[size=2]~ Bregma

"Well, you're not alone.


There's a club for people like that. It's called Everybody and we meet at the bar[size=2].

"

[size=2]~

[size=1]Antheus

This topic is closed to new replies.

Advertisement