[Feature] Incremental State Sync
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript
- Área
- distributed-systems
Línea de trabajo
Empieza leyendo el módulo experimental partysync y la integración con Durable Objects. Usa como referencias del protocolo la documentación sobre esquemas y estado de Colyseus enlazada en el issue y, después, define el alcance de los deltas incrementales comprimidos, la replicación del estado del servidor al cliente y los listeners del cliente antes de comenzar la implementación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi everyone! I saw the experimental partysync module and was wondering if it could support an incremental state sync protocol.
I'm imagining something similar to https://github.com/colyseus/schema. It's a library that basically automatically syncs JS classes to client listeners. It's very optimized, serializing and emitting only compressed binary deltas of any changes of state.
For example you can have a class like the following server side, which would sync the player object to all clients whenever a property changes:
export class Player extends Schema {
@type("string") name: string;
@type("number") x: number;
@type("number") y: number;
}
const player = new Player()
This makes the developer experience of making realtime multiplayer games really seamless, as all your state can be replicated on both the server and client with minimal overhead.
There are some great docs going into more detail here: https://docs.colyseus.io/state.
However, Colyseus schema doesn't have an integration with Durable Objects yet. So having sync functionality like this built into partykit/partysync with a tight integration to Durable Objects would be great to enable apps like realtime multiplayer video games!
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.3k
- Forks
- 84
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cloudflare/partykit
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
cloudflare/partykit#425 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cloudflare/partykit#424 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cloudflare/partykit#423 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cloudflare/partykit#419 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
cloudflare/partykit#411 ·
Todos los issues de cloudflare/partykit
Issues similares
-
Add: Disco Mix SDAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
level2 nsoc26
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
GauravKarakoti/SecureFlow#1488 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
deltachat/deltachat-desktop#6914 ·
Los mantenedores suelen responder en 2 días
-
area:cli bug P4
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug from-studio
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
esengine/DeepSeek-Reasonix#14868 ·
Los mantenedores suelen responder en 1 día