Store partially compressed game inputs for reconcatenation
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 30/100
Direzione di ricerca
Start by tracing where the server stores player inputs and handles a spectator request, then inspect how inputs are concatenated and compressed. Keep the compressed portion available for later spectator requests and verify that appending newly compressed inputs produces a valid replay without recompressing prior inputs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Currently the server holds the player inputs in a table.
When a player requests spectate, the server concatenates all inputs so far, compresses them and puts them in a partial replay that is sent to the new spectator.
The result of the concatenation is discarded.
This discard is unnecessary with the way compression is used.
Assume the following inputs when the spectator requests first:
AAAAggggAABBFE
This compresses to A4g4A2B2F1E1
Later another spectator joins and the full inputs are now:
AAAAggggAABBFEEEABBBBBFlkkkkggggggggiiiiigggggiiiiigggggiiiiiiigg
the only new inputs are
EEABBBBBFlkkkkggggggggiiiiigggggiiiiigggggiiiiiiigg and would compress to E2A1B5F1I1k4g8i5g5i7g2 on its own
The concatenation of two sections of inputs concatenate to the valid compressed string
A4g4A2B2F1E1E2A1B5F1I1k4g8i5g5i7g2
Every single concatenation for a new spectator can be expected to only add 2-3 character worth of string but avoids redoing previous work.
This is probably not really important with the current state of things but it makes things slightly easier for the server when people join as spectators on long matches.
- Lingua principale
- Lua
- Stelle
- 30
- Fork
- 20
- Merge medio
- 6g 12h
- PR unite (30g)
- 6
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di panel-attack/panel-game
-
engine priority: 3 - wishlist wontfix
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
panel-attack/panel-game#780 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
panel-attack/panel-game#779 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
panel-attack/panel-game#776 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
panel-attack/panel-game#766 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
panel-attack/panel-game#761 ·
Tutte le issue di panel-attack/panel-game
Issue simili
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
brndnmtthws/conky#2486 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
folke/snacks.nvim#2970 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Lid close does not lock the session on Apple Silicon (lid-close bind skips omarchy-system-lid-close)Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 90/100
omacom/omarchy-mac#701 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno