Networking Book

Started by
4 comments, last by Heg 11 years, 8 months ago
Hey guys,

I programmed a Bomberman Clone that is playable over a network. This currently works well enough in a LAN, but not online. I have read a lot of topics about networking and would like to read even more in form of a book. I am currently owning 'Best of Game Programming Gems' and that book has a section about networking as well. Unfortunetly the book covers only real-time strategy games. My game is a little bit different from that.

Is there a good read for reducing latency effects in action games, possibly FPS or something like that? Maybe the 'Game Programming Gems' series covers the topic in another book as well.

Thanks in advance
Advertisement
http://gafferongames.com/networking-for-game-programmers/ - here's a good tutorial on programming network for action, fps etc games using UDP. It's written by a real pro but I find it a bit hard to fully understand it. You need advanced c++ knowledge and some experience with winsock imho.
Thanks mate, I will have a look into that. I hope I am able to understand it ;)

If someone else still knows a good book, I would appreciate it. I like reading different sources :)
I read a little bit of the tutorial already and it is pretty good. It gives good intel on how to build my network architecture with UDP.

Unfortunately the tutorial stops at client-side prediction. I have a pretty good idea what client-side prediciton is about and I think I will be able to implement that into my game with help of the tutorial. However the part about latency compensation is missing, and so does it in other tutorials that I found so far :(

Does somebody know a good ressource for latency compensation?
That's the latency compensation used for CS:S, and probably a lot of other games. It's not explained in great details, but the idea is relatively simple.

Another thing you will want to read about is entity interpolation and replication. Which is also very briefly covered there.

My recommended 10'ish super-action-network-game components :
- Matchmaking (advertising, listing sessions, player ranking and matching, join queues, parties, arbitration, public / private key security and encryption, player presence, invites...).
- Connection layer (managing / accepting / keep-alive / closing client connections, routing communications, NAT punch-through, maybe even forwading strategies if you are thinking of a peer-to-peer star topology).
- Communication protocol (UDP socket, what your packets are made of).
- Messaging / RPC (a way to send / broadcast / parse / handle messages / commands / requests, in-order, reliably, efficiently).
- Serialisation / deserialisation (a way to write basic atomic data / aggregated objects into bitstreams / bytestreams).
- Entity state replication (how the server informs clients about object creation, updates, destructions in the world).
- Time keeping (to have a relatively accurate way to synchronise and keep in sync game clocks between all the machines).
- Client prediction (to mask round-trip latency of local player updates on the client, while preserving authoritative server control).
- Lag compensation (to level the playing field, and reduce the need for clients to 'lead' targets).
- Flow control (How to avoid choking your bandwidth, avoid traffic spikes, prioritise entity updates, message queues, monitor bandwidth usage, ect...).

A lot of that stuff is readily available, Gaffer's got a few of these covered in a simple way. Sometimes can get complicated very quickly though, especially if you move on to p2p gaming.

Everything is better with Metal.

Thanks for the post papalazaru, really helpful.

I´ll start with the networking part in the beginning of september, since I don´t have time for it at the moment. I will make sure to ask you guys again, if I should need additional help :-P

This topic is closed to new replies.

Advertisement