Masterarbeit / Diplomarbeit: On-Demand Asset Data Distribution in Computer Games on Programmable Networks

(Die Arbeit kann auch auf Deutsch geschrieben werden)


Background

The term assets is used within the gaming industry to refer to textures, geometries, animations, images, sound and videos which compose the content of the game, as distinguished from the program code which covers the application logic and functionality. Assets belong to the static part of the game (robot textures, geometry, etc.), i.e., no ongoing data synchronization for them is required between server and clients. However, clients must have local access to assets, e.g., load textures and geometries for rendering a new zone of the game world that the client is entering. Assets are typically much larger than the program code, e.g., several GB for assets as compared to several MB for the code and, therefore, require optimizations w.r.t. transfer time and transparency during game execution.

Traditionally, assets were distributed to customers on physical media (e.g., CDs, DVDs, etc.) but recently, digital distribution services like Steam or UPlay emerged which allow to download a game instead of retrieving a DVD. However, these services typically distribute the whole amount of assets before the game is started, which has two drawbacks: 1) starting the game is delayed until the download is finished; and 2) the integration of new assets being created by the game developer (or others) since the game was installed is not transparent. A new, slowly emerging approach is the on-demand download of assets which happens in the background, concurrently to the game processing. For this, the assets are placed in a repository, e.g., by the game developer. While the client starts the game with a minimal set of assets, the remaining assets are fetched in the background without disturbing the game processing. Furthermore, the client itself is able to fetch new assets if they have been placed in the repository. Realizing such dynamic scenarios falls into the area of asset management.

On-demand asset downloads are triggered, e.g., if a player enters a new area in the virtual world; then the client may have to download an asset package containing the 3D geometries, textures, sound files and client-side scripts. The server or the client may know in advance when the player is likely to enter a new area. For example, two villages in a game may be at walking distance of 5 minutes. So the client may decide to download the assets for the next village if the player is closer to the second village than to the first village. This means that at latest 2.5 minutes after the client requested this asset package it must be available. In practice this deadline is shorter, because the package must also be loaded and initialized by the game engine before it is rendered to the screen. Furthermore, the player can see the next village also from distance before having reached it.

For on-demand asset transfers it has to be assured that the ongoing application execution is not affected negatively by the asset transfer. On the one hand, a player should not notice that a background transfer started and is consuming precious network capacity. Therefore, only a controlled amount of capacity should be consumed for asset transfers, and state synchronization should be prioritized over asset transfers. On the other hand, a game might not be able to continue if certain assets do not arrive in time. Therefore, there is a trade-off situation where a decision needs to be made which data (state synchronization vs. assets) has to be prioritized at which point in time.

Managing the capacity and priority of transfers according to different run-time requirements is extremely difficult on today’s best-effort networks which do not provide any insight into whether they are able to transfer the assets in time; traditional networks cannot prioritize certain transfer types or reserve a certain amount of capacity. Novel programmable networks lift this limitation and promise to improve on-demand asset management using the emerging Software-Defined Networking (SDN) architecture. The aim of the thesis is to exploit the controlling functionality of programmable networks to improve existing game asset distribution concepts, in order to achieve reliable download deadlines and QoS management mechanisms (i.e., prioritize state synchronization).

Requirements

The student should have basic knowledge in the areas of C++, Distributed Systems and Operating Systems. Additional knowledge in game development and networking are beneficial.

Contact

If you are interested in this thesis or have any questions with respect to the thesis topic, please don’t hesitate to contact Tim Humernbrum, Room 707 (Computer Science Department), t.hume@uni-muenster.de.