Page 1 of 1

Networking

PostPosted: Wed Jun 13, 2007 11:51 am
by Karl G.
Well, to put it simply, it's a touchy beast. I'm doing my best at the design stage to make sure I don't have to overhaul this whole thing later because of some fundamental flaw that makes it slow/hackable/unreliable. I know it'll pay off in the end...but for now, it's just annoying. I'm going to be taking a break next week, too, so we won't see anything new for a while. I'll keep you updated.

PostPosted: Sun Jun 17, 2007 1:20 pm
by lawn gnome
i think if what your doing affects the game in the long run, then just go for it.

PostPosted: Mon Jun 18, 2007 12:27 am
by thadiusofx3
I bought an entire book over just networking, so im in the same boat as you.

PostPosted: Sun Jun 24, 2007 9:59 pm
by figgles
Networking infrastructure...
Touchy is a very nice way of saying it's a bi'tch.
You had better think long and hard about this. Unfortunately, you'll be hard pressed to find a book about "networking" that covers the issues that are most relevant to PV, unless of course, you need the basics such as TCP, UDP, SPX, IPX, IPv4/v6, and so on. I guess UDP/IPv4 are most relevant to PV though.

Just some basic questions that if you cannot answer, you ought to stop NOW and think about them.

Is your design targeted for 100 users, 500 users, 1000 users, or more?
What are the hopes for future scability? (PV is going to be popular, right?)
Is it monolithic or micro?
Shard servers to accomidate more?
What is the average number of packets per second incoming?
Outgoing?
What is the average size of outgoing? Does it exceed the MTU? ( -> implications of that?)
What if two users of the same IP address come? ("Dual logging" or NAT for example)
What is your maximum rate of upload? Common ISPs usually provide for less than 64KB of sustained bandwidth. At a mere 1KB/sec of sustained data rate per player upstream, less than 64 players can be acommidated.
How much information must be transfered at log in?
Packet compression?
Variable or fixed length packets?
Encryption?
Spoof detection?
Buffer overflow protection measures?
CPU time spent uncompression/decrypting?
Threading issues/FPS independence.
Endianness issues?

Right, good luck with all of that.

PostPosted: Mon Jun 25, 2007 11:00 am
by Karl G.
Yep, those are issues. Fortunately enough I've sketched out/solved most of them in the past, so really I'm just redesigning the message structure itself and I don't have to worry about the protocol. The other great part is that the modularity of the system will allow me to gut the whole network system and re-implement it without changing its apparent functionality.