Defining a Keyframe Based Protocol for Optimising Network Updates of Large Sets of Entities
Brand, Ramon (2019)
Brand, Ramon
2019
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019051610112
https://urn.fi/URN:NBN:fi:amk-2019051610112
Tiivistelmä
Large sets of entities often need to be synchronised through a network in real time, requiring a high data rate in order to update the entities' properties in a tight update cycle. This thesis aims to propose and formalise a Open Systems Interconnection layer 6 network protocol as a potential solution to reduce the required data rate when updating large sets of entities in real time, by exploring the advantages and disadvantages of using keyframes as a means to encode value change over time.
The main use case explored is that of Real Time Strategy games, and the need to synchronise the game state to all players on the network, where each player possesses a high number of individual entities. Due to the nature of Real Time Strategy games, the proposed protocol possesses attributes which apply very specifically to the said case.
The proposed protocol is compared to existing solutions in the specified domain, followed by a technical specification of the protocol. Theoretical data transfer calculations are conducted, comparing the proposed protocol to a brute force approach, from which a breakeven formula is derived. Furthermore, additional considerations and benefits are determined, all of which could then be used to determine the suitability of the protocol in any target system.
It was found that the implementation of the protocol is significantly more complicated than a brute force implementation. In addition, the protocol is only more efficient than a brute force approach when very specific characteristics are present in the target system, including linearity and predictability in value change. It was, however, discovered that the protocol has some very useful attributes, such as the ability of sampling and rewinding state on the client, and due to persistent historical state on the client, the client is able to perform heuristic analysis on the state, including future client-side predictions. In addition, the protocol's ability to send data in advance has the added benefit of mitigating network latency in many cases.
It was concluded that the proposed protocol can be used to efficiently reduce network traffic in very specific use cases, with the downside of increasing computation time on the client. The protocol is thus recommenced for any situation where the breakeven formula indicates a favourable efficiency and the bottleneck of the target system is the network traffic and not the processing time.
The main use case explored is that of Real Time Strategy games, and the need to synchronise the game state to all players on the network, where each player possesses a high number of individual entities. Due to the nature of Real Time Strategy games, the proposed protocol possesses attributes which apply very specifically to the said case.
The proposed protocol is compared to existing solutions in the specified domain, followed by a technical specification of the protocol. Theoretical data transfer calculations are conducted, comparing the proposed protocol to a brute force approach, from which a breakeven formula is derived. Furthermore, additional considerations and benefits are determined, all of which could then be used to determine the suitability of the protocol in any target system.
It was found that the implementation of the protocol is significantly more complicated than a brute force implementation. In addition, the protocol is only more efficient than a brute force approach when very specific characteristics are present in the target system, including linearity and predictability in value change. It was, however, discovered that the protocol has some very useful attributes, such as the ability of sampling and rewinding state on the client, and due to persistent historical state on the client, the client is able to perform heuristic analysis on the state, including future client-side predictions. In addition, the protocol's ability to send data in advance has the added benefit of mitigating network latency in many cases.
It was concluded that the proposed protocol can be used to efficiently reduce network traffic in very specific use cases, with the downside of increasing computation time on the client. The protocol is thus recommenced for any situation where the breakeven formula indicates a favourable efficiency and the bottleneck of the target system is the network traffic and not the processing time.