by figgles » Sun Jun 24, 2007 9:59 pm
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.
push limits
mov reality, dreams
add life, meaning
jmp future