magefree / magefree/mage

Server: rework watcher users to use a read only events thread

Open
#11,232 0 comments 0 reactions 0 assignees View on GitHub
enhancement server
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.