Introduction

Le système de scriptage multi-joueur de Rec Room, appelé Circuits, permet aux joueurs de créer des expériences interactives ensemble. L'article présente les défis techniques rencontrés lors de la synchronisation de l'édition et les solutions mises en place pour résoudre ces problèmes.

Contexte Technique

La première version de Circuits, appelée Circuits V1, a été développée en quelques semaines en réutilisant la technologie de synchronisation de formes. Cependant, cette approche a posé des problèmes de mémoire et de CPU, limitant ainsi la complexité du système. Pour résoudre ces problèmes, une deuxième version, Circuits V2, a été développée en utilisant une base de données en mémoire et un modèle de synchronisation basé sur les actions.

Le modèle de synchronisation de Circuits V2 est basé sur l'idée de représenter l'état du système sous la forme d'un objet unique et de modifier cet état en envoyant des actions à travers une fonction pure appelée « réducteur ». Cette approche permet de gérer tous les réseaux en un seul endroit, plutôt que d'avoir des RPC personnalisés pour chaque mutation.

Analyse et Implications

La mise en œuvre de Circuits V2 a nécessité de résoudre des problèmes de synchronisation complexes, tels que la gestion des opérations croisées et la prévention des erreurs de référence nulle. Les solutions mises en place, telles que l'utilisation de transactions et d'algorithmes de consensus, ont permis de garantir la cohérence de l'état du système.

La synchronisation des actions entre les joueurs a également posé des défis, en particulier en raison de la latence entre les pairs. Pour résoudre ce problème, une solution simple a été mise en place, consistant à envoyer toutes les actions à un client « propriétaire » qui les transmet ensuite à tous les autres clients.

Perspective

La mise en œuvre de Circuits V2 a démontré l'importance de la synchronisation de l'édition dans les systèmes de scriptage multi-joueur. Les solutions mises en place pour résoudre les problèmes de synchronisation complexes peuvent être appliquées à d'autres systèmes similaires. Il est important de continuer à surveiller les limites et les prochaines étapes de la technologie pour améliorer encore la synchronisation de l'édition et offrir des expériences de jeu plus fluides et plus interactives.