Networked Game Issues
Network Issues and how they affect gameplay and interactivity
A network is when two or more computers have a digital connection between them, particular in networked multiplayer games the players are physically separated from each other. Networks allow user’s clients to communicate by sending bits of data through the internet of the form of packets, these will then build on top of the internet protocol, and this in terms means that if a packet sent using UDP or TCP a specific IP address then receives the packet. (Armitage, Claypool and Branch, 2006) Unlike networking in this day and age games such as Doom was played through a LAN connection (Local Area Network) which at the time used an IPX protocol. An IPX protocol doesn’t require a constant connection between the exchanges of packets.
Appendix [a1] displays the required layers of hardware and software that Doom required to be run across a network.
The Topologies that Doom used for LAN connection, the figure on left in appendix [a2] is an Ethernet connection that has computer’s connected to it acting as peers and the figure on the right also in appendix [a2] is similar to the left figure. All players received a message every 35th of a second that recorded all the player’s inputs across peer-to-peer network. (Armitage, Claypool and Branch, 2006)
Packets are carried all over the internet using networks(Armitage, Claypool and Branch, 2006), the time it takes to send a packet of data from a source to its destination is latency, as standard latency will below 150ms (milliseconds) and won’t go above 150ms. A packet must then travel back to the source which results in a round trip time which can take twice as long as the latency i.e. 50ms latency 100ms round trip time. The game world of warcraft consists of two latencies a home and a world latency, home is the connection to the realm server which can include in game chat data, world refers to the world of warcraft servers this in term transmit all other data i.e. combat, nearby players (even if they are not on a user’s screen and NPCs. The latency will increase greatly when visiting highly populated areas because so much data is being transmitted. In online games there are many common issues that will cause high ping and latency these could involve wireless issues, packet loss, download speed, firewalls, routers that aren’t configured correctly i.e. closed ports, QoS and Traffic management where packet queuing is being performed and net link saturation (an issue caused by a user’s ISP that causes connection issues between a user’s client and a game server).
Congestion is usually the main source of packet jitter, depending if the network has been provisioned correctly congestion can occur at the router interface, in a provider or a carrier network. A User has access to the router, therefore it is the easiest and best place to start in determining jitter at the router end; to track down the source of the jitter depends entirely on the encapsulation. (Ankit, 2012)Latency in online multiplayer games can change due to jitter where different paths are chosen constantly during streams of traffic. While online gaming a high speed internet connection is recommended to avoid jitter preferably using an Ethernet cable to reduce latency because it is almost immune to interference.
Packet Loss usually has four main causes that will occur these are congestion, device performance, software issues on a device, faulty hardware; the first one being link congestion is when a user’s data needs to be transferred across many devices and links, a link can be at full capacity when the data arrives at must wait before being sent also called queuing. A network device may start to discard information when it doesn’t have enough room for data to queue, information being discarded will most likely never be noticed by the user, many applications can easily discard information and still easily handle data queuing.
A user’s router may not be able to keep up with the traffic that is being transferred; this could be due to a switch, firewall or closed ports. Opening ports on a router allows a networked device connected to the router accessible from outside of the local network i.e. other computers and network devices, this benefits gaming greatly where other players can send and receive data with hardly any interference, usually if a port is closed for a certain game a user’s gaming experience will suffer. Apparently a router’s firmware can cause packet loss during gaming according to Netgear community forum, a user was experiencing severe packet loss across many games and after trying altering game settings, router settings and calling his ISP provider multiple times ended up calling Netgear where they recommended using an older firmware on his router and solved his packet loss problem.
Software on a networked device can cause packet loss if the software hasn’t been configured correctly, these bugs can usually be found using a system log or troubleshooting. While software can cause issues so can faulty hardware and cabling resulting in more packet loss,
Bandwidth is measured in bits per second, modern day network devices can possibly support up to billions of bits worth of data rates. Slow internet connection is a common cause of low bandwidth, this can be insufficient bandwidth provided by an ISP. In normal terms bandwidth is when a connection has a limited amount of data that can be transferred. Not only does a slow internet connection cause low bandwidth but there are other causes that can happen within a house hold i.e. streaming videos on demand via Netflix or any other on demand provider, downloading files from the internet or in the context of games that require numerous large updates; while these can affect the bandwidth any user that has a home security system which needs a constant stream of data i.e. security footage will also cause bandwidth issues. [5]To avoid bottlenecking for users on the same network the above issues should only be performed when network traffic is low.  (Smed, Kaukoranta and Hakonen, 2002) Although there are ways to try and prevent bandwidth issues, packet aggregations is used to combine many packets being transferred together in to one larger packet in order to reduce the bandwidth requirements. Depending on the size of the data in the original packets, the packet headers size and how many combined packets there are bandwidth savings can be substantial. The number of combined packets can be determined with two different methods timeout-based method and quorum-based method; for timeout-based method before a fixed interval all packets are originated and then become one. An upper bound interval is guaranteed due to the aggregation thanks to this method. The worst thing that can happen with this method is no bandwidth savings are achieved. A certain number of packets are always combined in the quorum method, the number is usually fixed. The transmission delay is not guaranteed because the method is postponed until enough packets have been initiated. The user’s experience can suffer because of the extended delays in transmission. Both methods have limitations but can each be compensated for when combined (Smed, Kaukoranta and Hakonen, 2002).
Internet download speed has always been somewhat of an issue in online gaming where some players can have a slight disadvantage over others, for example Call of Duty 4 selected a Host player at the start of each match if the player had a slow connection all other players were affected except the host thus the term host advantage was given.
The graph in appendix [a3] displays the average connection and average peak connection in megabits per second across the globe for 2015. From the data we can gather that Singapore has the highest peak connection speed compared to the United Kingdom is less than half of the peak connection. Singapore may have the highest peak connection but the average connection is dominated by South Korea, their internet connection is years ahead of most of countries some not far behind. Again in 2015 the United Kingdom has almost half the speed of South Korea thus leading us to believe that South Korea is a nation of exceptional gamers thanks to their powerful intent connection.
The above graph in appendix [a4] displays the average internet connection for the UK in megabits between March 2013 and March 2016. In those 3 years we can see from the data that the connection speed has more than doubled which gives us an insight that in the next 3 years the average connection speed could double again.
- MMO Development Discussion and Algorithmic Techniques to Support Scalability
There are several things we need to take into account when converting our game to an MMO:
- Scalability
- Performance
- Security
The client needs to communicate with the sever using the game protocol to update the status of other clients at the same time within the virtual game environment; things updated include position, health and client name (Yoon and Ng, 2011). First we would need to create a database and link in up to the game sever so that players can register, there’s no need for character creation because each client is assigned a character however they could have an avatar name. The name they enter would then need to be checked if it exists within the database using a “for each loop” to determine if it does then prompt the player to try a new name. Once registered, a player can login in using their credentials i.e. username and password and again that would be checked in the database using a “for each loop”.
An overall translucent text box can be used for chat between players; this could update on the server side and be sent to all clients. A client ender’s a message sends it to the server and sends it back to all clients. Another thing that could be included is a friends list that would save a player’s username in a client’s friends list only if both clients come to an agreement. We could then introduce an instant message option that would appear in a client’s chat box that would be rendered a different colour from normal chat if sent from a friend. See appendix [a5] to see how the game would handle and request information that would be between client and game server.
To allow scalability we need to distribute servers onto multiple physical severs, a certain number of gaming severs would be distributed onto physical servers, a gaming server would then handle many more connected players than a physical server, if too many players are on a game server the performance will decrease and render the game unplayable, performance will depend the processing power of the servers and the available bandwidth.ÂÂ
For security we would use encryption, this is so 3rd parties can’t view data, both parties are who they say they are i.e. client and server and the data hasn’t been modified. We should assume that a user or an attacker can view information that has been sent to the client so the server shouldn’t send information that the user should not be able to see i.e. user credentials, client shouldn’t really be relied upon for security because an attacker can send pretty much any command they want to a user. The server should handle pretty much all validation and error checks etc., the client should basically just send a message that they are attacking with a certain item so the sever knows to calculate a certain dps (damage per second). Encryption will not work on someone that uses a bot or deterministic movement to send commands to the server, for example using a seeded random number generator will give the same results over and over again which can be extremely good for grinding a quest or a different seeded number generator for say combat where random attacks are used when they are available.
Appendix
[a1]Figure was taken from (Armitage, Claypool and Branch, 2006) paper on Networking and Online Games.
[a2] Figure was taken from (Armitage, Claypool and Branch, 2006) paper on Networking and Online Games.
[a3] Data taken from and entered into an excel spreadsheet to produce the graph
[a4] Data taken from (Jackson, 2016) and entered into a spreadsheet to produce the graph
[a5] (Yoon and Ng, 2011)
References
[1]Armitage, G., Claypool, M. and Branch, P., 2006. Networking and online games: understanding and engineering multiplayer Internet games. John Wiley & Sons
[2] Jackson, M. (2016). Ofcom 2016 Report – Average UK Home Broadband Speeds Reach 28.9Mbps – ISPreview UK. [online] Ispreview.co.uk. Available at: http://www.ispreview.co.uk/index.php/2016/03/ofcom-2016-report-average-uk-home-broadband-speeds-reach-28-9mbps.html [Accessed 20 Mar. 2017].
[4] Smed, J., Kaukoranta, T. and Hakonen, H., 2002. A review on networking and multiplayer computer games (pp. 1-5). Turku Centre for Computer Science.
[5] Packetworks.net. (2015). Low Bandwidth Means Slow Network Performance – Packetworks. [online] Available at: http://www.packetworks.net/blog/low-bandwidth-means-slow-network-performance.htm [Accessed 20 Mar. 2017].
[6] Ankit. (2012). What are causes of Jitter in gaming and how to find and deal with it. [online] Available at: http://www.techulator.com/resources/6255-What-causes-Jitter-gaming-how-find-deal-with.aspx [Accessed 20 Mar. 2017].
[7] Yoon, I. and Ng, G., 2011. Developing a MMORPG game in One Semester. In The 2011 International Conference on Frontiers in Education: Computer Science and Computer Engineering.
http://searchnetworking.techtarget.com/definition/IPX
http://www.cisco.com/c/en/us/support/docs/voice/voice-quality/18902-jitter-packet-voice.html#topic3
http://www.annese.com/blog/what-causes-packet-loss
https://community.netgear.com/t5/Nighthawk-WiFi-Routers/Packet-loss-during-gaming/td-p/1097304
http://jayurbain.com/msoe/se3250/slides/se3250-L15-MMO-game-architecture.pdf
http://stackoverflow.com/questions/4307149/should-a-mmorpg-use-encryption