Optimize network traffic by implementing a system that dynamically adjusts the tick rate at which an entity's state is streamed to clients based on the entity's activity level. Entities deemed inactive (e.g., due to lack of movement) should have their update frequency reduced to lower bandwidth usage.
Tasks
[x] Design a flexible system for determining entity activity levels, which developers can extend with custom criteria.
[x] Implement throttling logic that reduces the tick interval for entities identified as inactive.
[x] Ensure that the system can gracefully return entities to a normal tick rate when activity resumes.
[x] Conduct thorough testing to confirm that the throttling mechanism operates as expected under various conditions.
Discussion
A discussion is needed to determine the specific criteria that should be used to gauge entity activity and immobility, as well as to define how aggressively the system should throttle tick rates. Consideration must be given to potential edge cases to prevent any negative impacts on gameplay or user experience.
Scope
This issue pertains to the netcode of the application. It involves modifying the frequency of network updates for entities based on their activity to optimize bandwidth utilization without affecting the game's real-time performance.
Description
Optimize network traffic by implementing a system that dynamically adjusts the tick rate at which an entity's state is streamed to clients based on the entity's activity level. Entities deemed inactive (e.g., due to lack of movement) should have their update frequency reduced to lower bandwidth usage.
Tasks
Discussion
A discussion is needed to determine the specific criteria that should be used to gauge entity activity and immobility, as well as to define how aggressively the system should throttle tick rates. Consideration must be given to potential edge cases to prevent any negative impacts on gameplay or user experience.
Scope
This issue pertains to the netcode of the application. It involves modifying the frequency of network updates for entities based on their activity to optimize bandwidth utilization without affecting the game's real-time performance.
Based on: https://github.com/zpl-c/eco2d/blob/master/code/foundation/src/models/entity.c#L94