4.1 Techniques - Proof of Framesync
Last updated
Last updated
Frame synchronization is a critical technology aimed at ensuring that multiple players maintain synchronized visuals and game states throughout gameplay. Our solution not only encompasses the deterministic consistency of frame synchronization client-side algorithms but also enables the functionality to watch matches at any time by storing client input data. Furthermore, it facilitates decentralized validation of match results.
In frame synchronization, the game logic is divided into fixed-length frames, with players sending their actions per frame, while the game server is responsible for collecting, saving, and forwarding all players' action data within each frame to ensure consistent input commands for all players. The advantage of frame synchronization lies in transmitting only player input data per frame for game state synchronization, avoiding the transmission of extensive state data.
The approximate process of each frame in frame synchronization is as follows:
1. Players send their actions to the game server.
2. The server waits for player actions, confirms and saves complete player actions, then sends them to all participating players.
3. Players receive the server's actions and execute them locally.
This process repeats until all players' games end. The server's process of collecting and forwarding player input is depicted in the accompanying image. One of the main challenges is ensuring that devices on different platforms, hardware, and operating systems produce the same results and performances after executing server-issued action commands. To address this, we introduce fixed-point mathematical libraries to mitigate floating-point calculation errors, customize physics detection logic, and adjust random numbers used in game logic. Another challenge is ensuring that devices in different network environments, with varying delays, receive server-issued action commands and exhibit reasonable and correct behavior. To achieve this, we implement client-side buffering for game performance and use interpolation to smooth performance as much as possible.
Since game calculation modules only require input command data issued by the server, we can reproduce the game process by storing all input command data in cloud storage. This means that players can download saved command data and use game calculation modules identical to those used during gameplay to reproduce the game process. The process of retrieving and reproducing player input data stored by the server is illustrated in the attached image. Once stored in cloud storage, input command data serves as immutable historical data for the game session. Important match data can also be stored in a decentralized manner.
The centralized GameServer serves the purpose of efficiently forwarding game operation frames, forwarding the corresponding operation inputs for each frame time slice. This step can be further decentralized, where each client, while sending inputs to the GameServer, writes the operations to decentralized storage simultaneously.
The execution process of validation nodes is consistent. These nodes first download input command data, then execute them in local calculation modules to obtain match results. Subsequently, they interact with smart contracts to participate in the validation process. Any independent observer is eligible to act as a validation node, and they may also choose to execute in independent calculation modules without displaying the game process to achieve high-speed execution.
Validator nodes are an important component of the esports ecosystem, serving a crucial role in the Faith gaming platform. Users purchase licenses to become validator nodes, enabling players and esports athletes to stake tokens under these nodes to receive rewards. Additionally, users who own nodes will receive ACP token airdrops based on their weight.
Furthermore, during the upgrade of the game's public blockchain on the Faith platform, validator nodes will undergo direct upgrades, participating in the decentralized validation process of gaming data. This modularizes the entire blockchain, enhancing its data layer, validation layer, and consensus layer.