Thesis

Server Architecture for Multiplayer Mobile Games with .NET Core

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

The broad coverage of 4G networks and the introduction of 5G networks result in new opportunities for multiplayer mobile games. Unity, the most-used game engine for mobile applications, offers multiple solutions to develop a server application inside the engine. However, this thesis evaluates the benefits of developing a separate .NET server application for a Unity client. Three different server targets are used to compare operating systems, networking libraries, and serialization libraries. In addition, a game was developed alongside the benchmarks to test security aspects and run the libraries in a real-world environment. The combination of a .NET server with the mobile network infrastructure of Europe allows for round-trip times of less than 100 milliseconds while using an inexpensive server solution. Manual serialization yielded the best performance results while keeping packet size at a minimum and was especially used for packets that are frequently sent. For messages that can change or are not sent as often, libraries like MessagePack-CSharp or Protocol Buffers are interesting alternatives. In the networking benchmarks, ENet performed best and had the most promising metrics for weaker hardware setups. For all tests, the User Datagram Protocol (UDP) socket performance was better on Linux than on Windows.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

ResearchGate has not been able to resolve any citations for this publication.
Chapter
Full-text available
The rise of the Internet opened new possibilities for computer games, allowing real-time interaction between players in different parts of the world. Online games permit a number of people to compete in a shared virtual world. However, the synchronization and the maintaining of a coherent game state to be shared by the applications of all the players is not a trivial problem: different sources of latency appear and may cause inconsistencies between the game states observed by each of the players. Different genres of online games present specific latency requirements, depending on the game dynamics, its characteristics, and the level of interaction between the players. This chapter discusses the different mechanisms that companies use in order to overcome the problem of network latency when providing online games: the use of low-bandwidth traffic flows, the different protocols used at transport level, the architectures employed, the distribution of the hardware resources, the mechanisms for hiding the effect of the network to the players, etc. In addition, the different techniques used for estimating the user’s Quality of Experience from network parameters are surveyed. Although latency is the most important parameter, other ones such as packet loss, delay variation (jitter), or bandwidth are also considered. Different QoE-enhancing mechanisms, such as client-side prediction or server delay compensation, are summarized. Other scalability-related techniques are also explained.
Article
Full-text available
This paper describes results and experiences from designing, implementing, and testing a mobile multiplayer real-time game for mobile phones over mobile networks with high latency. The paper reports on network latency and bandwidth measurements from playing the game live over GPRS, EDGE, UMTS and WLAN using both the TCP and the UDP protocol. These measurements describe the practical constraints of various wireless networks and protocols when used for mobile multiplayer game purposes, which determines what types of multiplayer games that can be played over the various networks. Further, the paper reports on experiences from implementing various approaches to minimize issues related to high latency. Specifically, the paper focus on a discussion about how much of the game should run locally on the client verses on the server to minimize the load on the mobile device and obtain sufficient consistency in the game. The game was named BrickBlock, and was designed to reveal all kinds of implementation issues in development of a mobile network multiplayer game. The goal of BrickBlock is for a player to push other players around and into traps where they loose their lives, and to pick up power-ups on the way to make the task easier. The game relies heavily on collision detection between the player and game objects, and between players. The paper presents experiences from experimenting with various approaches that can be used to handle such collisions and highlights the advantages and disadvantages of the various approaches.
Book
Use this in-depth guide to correctly design benchmarks, measure key performance metrics of .NET applications, and analyze results. This book presents dozens of case studies to help you understand complicated benchmarking topics. You will avoid common pitfalls, control the accuracy of your measurements, and improve performance of your software. Author Andrey Akinshin has maintained BenchmarkDotNet (the most popular .NET library for benchmarking) for five years and covers common mistakes that developers usually make in their benchmarks. This book includes not only .NET-specific content but also essential knowledge about performance measurements which can be applied to any language or platform (common benchmarking methodology, statistics, and low-level features of modern hardware). What You'll Learn: • Be aware of the best practices for writing benchmarks and performance tests • Avoid the common benchmarking pitfalls • Know the hardware and software factors that affect application performance • Analyze performance measurements This book is for .NET developers concerned with the performance of their applications. Andrey Akinshin, PhD is a .NET MVP, ACM ICPC medalist, project lead of BenchmarkDotNet, program director of the DotNext conference, and software developer at JetBrains where he works on Rider.
Chapter
There has seen tremendous changes leading to the integration of several telecommunication networks, devices and services over the last 30 years. The rate of this progress and growth has increased particularly in the past decade because people no longer use their devices and networks for voice only, but demand bundle contents such as data download/streaming, HDTV, HD video, 3D video conferencing with higher efficiency, seamless connectivity, intelligence, reliability and better user experience. 5G is the term used to describe the fifth generation of mobile network technology and has been the most faddish term used among the tech savvy jargon since the finalized deployment of LTE in 2010. Despite not being an adage, 4G LTE has already been clichéd in the west. This resulted in a surge of the forecast in many aspects of 5G technology like the services, applications, implementation, reliability, cost, security, economics, spectrum, efficiency, energy expenditure, regulation and standardization, compatibility, connectivity, open sourcing, etc. This chapter accords with the various mentioned issues, implementation and impending scenario of the 5G technology in conjunction with its affiliation to the predecessor. This chapter serves as an introduction to MIMO (Multi-Input-Multi-Output) systems for the future communications networks. This involves providing a basic framework understanding of the systems, providing a look at the history of MIMO systems, showing the advantages and disadvantages associated with the use of MIMO, and showing paired technologies which can be used to further enhance a MIMO enabled system. This document will also cover extensions on MIMO such as MU-MIMO and massive MIMO. Additionally, this chapter will discuss subjects such as beamforming, spatial multiplexing, and millimeter waves. The content in this document is targeted for individuals with a basic to intermediate level of understanding in telecommunications.
Software specifications for
  • Vps . . . . . . . . . . . . . Ubuntu
A.2 Software specifications for Ubuntu VPS................. 48
Accelerating Unity's new GameObjects multiplayer networking framework
  • Brandi House
Brandi House. "Accelerating Unity's new GameObjects multiplayer networking framework". In: Unity Technologies Blog (Dec. 2020). url: https://blogs. unity3d. com / 2020 / 12 / 03 / accelerating -unitys -new -gameobjectsmultiplayer-networking-framework/ (visited on 03/19/2021).
Gaming infrastructure survey
  • Eedar
EEDAR. Gaming infrastructure survey. 2017. url: https : / / www. akamai. com / uk / en / multimedia / documents / report / akamai -eedar -gaminginfrastructure-survey.pdf.
Global Active Smartphones & 5G Ready-Forecast
  • Newzoo International
Newzoo International B.V. Global Active Smartphones & 5G Ready-Forecast. Oct. 2020. url: https : / / newzoo. com / wp -content / uploads / 2020 / 10 / Newzoo_Global_Active_5G_Ready_Smartphone_Forecast.png (visited on 03/18/2021).
High Performance Browser Networking: What every web developer should know about networking and web performance
  • Ilya Grigorik
Ilya Grigorik. High Performance Browser Networking: What every web developer should know about networking and web performance. O'Reilly Media, Inc., 2013. isbn: 9781449344764. url: https://hpbn.co/.
Ericsson Mobility Visualizer
  • Ericsson
Ericsson. Ericsson Mobility Visualizer. 2020. url: https://www.ericsson. com/en/mobility-report/mobility-visualizer?f=1&ft=2&r=1&t=1,2,3, 4,5,6,7&s=1&u=1&y=2019,2026&c=1 (visited on 03/23/2021).
Impact Of Latency In Wireless Networks For Real-time Multiplayer Games On Mobile Devices
  • Nybø Martin
  • Erlend Vagstad
  • Børslid Haugsdal
Martin Nybø Vagstad and Erlend Børslid Haugsdal. "Impact Of Latency In Wireless Networks For Real-time Multiplayer Games On Mobile Devices." Master's thesis. NTNU, 2015. url: https://ntnuopen.ntnu.no/ntnu-xmlui/ bitstream/handle/11250/2352307/11752_FULLTEXT.pdf.
The Effects of Loss and Latency on User Performance in Unreal Tournament
  • Tom Beigbeder
  • Rory Coughlan
  • Corey Lusher
Tom Beigbeder, Rory Coughlan, Corey Lusher, et al. "The Effects of Loss and Latency on User Performance in Unreal Tournament 2003®". In: Proceedings of 3rd ACM SIGCOMM Workshop on Network and System Support for Games. NetGames '04. Portland, Oregon, USA: Association for Computing Machinery, 2004, pages 144-151. isbn: 158113942X. doi: 10.1145/1016540.1016556. url: https://dl.acm.org/doi/10.1145/1016540.1016556.
Latency analysis and reduction in a 4G network
  • Ashish Kurian
Ashish Kurian. "Latency analysis and reduction in a 4G network". Master's thesis. 2018. url: http : / / resolver. tudelft. nl / uuid : e1badd8d -a384 -49a1-b958-a0c1e499c539.
Curiosity -What's inside the Cube
  • Cans
Cans. Curiosity -What's inside the Cube. 2012. url: https : / / web. archive. org / web / 20130401041912 / https : / / play. google. com / store / apps/details?id=com.pm22cans.curiosity (visited on 04/01/2013).
Network Support for Mobile Gaming
  • Armir Bujari
  • Marco Furini
  • Claudio E Palazzi
Armir Bujari, Marco Furini, and Claudio E. Palazzi. "Network Support for Mobile Gaming". In: Handbook of Digital Games and Entertainment Technologies. Edited by Ryohei Nakatsu, Matthias Rauterberg, and Paolo Ciancarini. Singapore: Springer Singapore, 2015, pages 1-21. isbn: 978-981-4560-52-8. doi: 10.1007/978-981-4560-52-8_24-1. url: https://link.springer.com/ referenceworkentry/10.1007/978-981-4560-52-8_24-1.
Edited by Sanjay Madhav. The Addison-Wesley game design and development series: Always learning
  • Joshua Glazer
Joshua Glazer. Multiplayer game programming architecting networked games. Edited by Sanjay Madhav. The Addison-Wesley game design and development series: Always learning. Addision Wesley, 2016. isbn: 978-0-13-403430-0. url: http://www.gbv.de/dms/bowker/toc/9780134034300.pdf.
Supporting IPv6-only Networks
  • Apple Inc
Apple Inc. "Supporting IPv6-only Networks". In: (2016). url: https://developer. apple.com/support/ipv6/ (visited on 04/09/2021).
Net Core Networking Client
  • Johannes Deml
  • Unity
Johannes Deml. Unity.Net Core Networking Client. Version 1.0.3. 2021. url: https : / / github. com / JohannesDeml / Unity -Net -Core -Networking -Sockets.
Lidgren Network gen3
  • Michael Lidgren
Michael Lidgren et al. Lidgren Network gen3. Version 8.0.30703. 2020. url: https://github.com/lidgren/lidgren-network-gen3.
Hazel Networking. Version 4.5
  • Forest Willard
  • Jamie Read
Forest Willard, Jamie Read, et al. Hazel Networking. Version 4.5. 2018. url: https://github.com/lidgren/lidgren-network-gen3.
Network Benchmark .NET. Version
  • Johannes Deml
Johannes Deml. Network Benchmark.NET. Version 1.0.0. 2021. url: https: //github.com/JohannesDeml/NetworkBenchmarkDotNet.
Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec. RFC 4868. RFC Editor
  • Scott Kelly
  • Sheila Frankel
Scott Kelly and Sheila Frankel. Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec. RFC 4868. RFC Editor, May 2007. url: https: //tools.ietf.org/html/rfc4868.
Unity Future .NET Development Status
  • Josh Peterson
Josh Peterson. Unity Future.NET Development Status. 2021. url: https : / /github.com /Unity -Technologies/ mlapi-community -contributions / tree/main/Transports (visited on 05/08/2021).
Ignorance. Version 1.8. 2021
  • Matthew Coburn
Matthew Coburn. Ignorance. Version 1.8. 2021. url: https://github.com/ SoftwareGuy/Ignorance.