Studying Complex Game Systems Part 2: Network Programming
- Jun 7, 2020
- 3 min read
The next topic for this subject was network programming. Some things we learnt about in this topic include different network structures used in games and how computers communicate with each other and network APIs.
Some different types of network architectures used in games include Peer to Peer, Client/Server and Server Clusters. In Peer to Peer (P2P) networks, computers are connected to each other using the internet. Computers that are connected are referred to as ‘Peers’ and can send and deliver information from other Peers on the same network without the presence of a central server. A central sever is a system that stores data files and provides local networking. Central servers are used to be agents in communication between different systems, because a P2P network doesn’t require one, it is a non-centralized network.
A Client/Server network is a centralized network in which one computer acts as the central server that other computers (referred to as ‘Clients’) connect to. From there the information stored on that central server can be accessed and shared.
Server Clusters are used by MMORPG games to manage and load their respective game worlds. This can be done by using each server in the cluster to load a different region of the game world, having each server load the same world but run separately or loading and replicating the same world and running them simultaneously.
Some of the different network communication protocols we learnt about included HTTP, TCP/IP and UPD. The HTTP (Hyper Text Transfer Protocol) protocol was designed based on Client/Server conventions and is used to connect to online servers. TCP (Transmission Control Protocol) TCP separates messages into information packets that are then reassembled once they reach the recipient location. IP (Internet Protocol) is an addressing protocol; IP addresses are used alongside the TCP protocol to navigate packets through networks to reach their intended location, forming the TCP/IP protocol. Finally, the purpose of UDP (User Diagram Protocol) is to establish linking between applications that is data loss-tolerant and low-latency. A network that is low latency can process large amounts of data with very little delay and an application or network that is data loss-tolerant has no data loss.
One network API we learnt about was Raknet. Raknet is a networking game engine that was originally owned by Jenkins Software before being purchased by Oculus. This API uses the C++ and C# programming languages and has cross-platform support.
References:
TCP/UDP, Raknet and Network Architecture Lecture
Network Messages Lecture
Network Topology Lecture
Donohoe, A., 2019. What Is A Client Server Network?. [online] Techwalla.com. Available at: <https://www.techwalla.com/articles/what-is-a-client-server-network> [Accessed 16 May 2020].
eWEEK, 2020. What Is Centralized Network? Webopedia Definition. [online] Webopedia.com. Available at: <https://www.webopedia.com/TERM/C/centralized_network.html> [Accessed 16 May 2020].
FandomInc., 2020. Central Server. [online] The IT Law Wiki. Available at: <https://itlaw.wikia.org/wiki/Central_server> [Accessed 16 May 2020].
Informatica, 2020. Low Latency: What It Is, Meaning & Definition | Informatica. [online] Informatica.com. Available at: <https://www.informatica.com/services-and-training/glossary-of-terms/low-latency-definition.html> [Accessed 17 May 2020].
JenkinsSoftware, 2020. Raknet - Multiplayer Game Network Engine. [online] Jenkinssoftware.com. Available at: <http://www.jenkinssoftware.com/index.html> [Accessed 17 May 2020].
JenkinsSoftware, 2020. Raknet - Multiplayer Game Network Engine. [online] Jenkinssoftware.com. Available at: <http://www.jenkinssoftware.com/features.html> [Accessed 17 May 2020].
Ross, K. and Kurose, J., 1996. Network Applications: Terminology And Basic Concepts. [online] Www2.ic.uff.br. Available at: <http://www2.ic.uff.br/~michael/kr1999/2-application/2_01-client_server.htm> [Accessed 17 May 2020].
SharpenedProductions, 2020. P2P (Peer To Peer) Definition. [online] Techterms.com. Available at: <https://techterms.com/definition/p2p> [Accessed 16 May 2020].*
W3schools.in, 2020. Types Of Network Protocols And Their Uses. [online] W3schools. Available at: <https://www.w3schools.in/types-of-network-protocols-and-their-uses/> [Accessed 16 May 2020].



Comments