Server: rework watcher users to use a read only events thread
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
Current game engine process each watcher user same way as active user -- it sends commands and game data one by one. So one slow/laggy watcher user can laggy whole game (example: #6957).
Watcher users are active in current version, e.g. can send commands like hand view requests and write chat messages (as info: chat messages and game data/events are independent in xmage).
What can be done:
* [ ] disable all watcher user commands except chat messages (hand access request can be moved to chat vote system someday: #6329);
* [ ] add "app watcher agent" instead multiple watchers. Agent is another thread to process game events and sends it to connected watcher users without real game freeze;
* [ ] someday: add "web watcher agent" with same logic but with json/socket output for web client viewers.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.