Fundamentals of Network Game Development