Chess Club is one of the most exciting projects we have ever worked on. On the one hand, we had the challenge of bringing the solemnity of chess, the Game of Kings, to a virtual environment as detailed and immersive as possible. On the other hand, we were also facing an unprecedented technical challenge for our team: to achieve an online multiplayer within a virtual environment and with very specific conditions.
Although it may seem simple on the surface, Chess Club is a very complex game. There are many casuistry that converge in it: hand tracking technology, avatars, voice recognition and commands… To all these layers we add the difficulty inherent to any multiplayer game with an online matchmaking: different geolocations and different internet qualities make the data transmission a high-level engineering work.
A few weeks ago we started to receive some periodic incidences related to multiplayer games. At first we thought these were localized problems for some users, so we started to support them as isolated cases.
After receiving several reports related to this issue we realized that it was a bug in the production version, so we went hunting for it. Discovering and removing bugs is a time-consuming and energy-consuming development task, so we try to act as quickly as possible and keep an open line of contact with players to let them know that we were working to resolve the issue as soon as possible.
We got to work and revamped the multiplayer engine through an update. However, we kept receiving reports from some users who continued to experience the problem.
It was then that we asked for help from some members of our community, getting in close contact with them in order to work side by side. In these cases we always ask for as much information as possible to gather data: screenshots, videos, descriptions of the problem, steps to reproduce a bug… Everything that allows us to better understand the nature of problems that are quite complicated and elusive.
Joshua, a high school teacher who gave chess lessons to his students using Chess Club, sent us some screenshots and a video showing how the game crashed and stayed on a black screen when trying to start a multiplayer game. That’s when a member of our team noticed a key detail in the investigation: Joshua and his opponents were using the Party Group feature to talk and invite each other to games.
Party Group is a Meta feature available on all Meta Quest devices. It allows you to create a group chat with Meta friends, but the group chat is independent of the currently running games or applications. In other words, it is possible to use the Party Group functionality and chat with a group of friends at the same time as using any other application.
We dug a little deeper and here we finally found the root of the problem. When a user started a multiplayer game in Chess Club with Party Group open, Chess Club asked for access to the microphone but this access was denied as it was being blocked by Party Group, which caused the program to crash. This is an example of how complicated Quality Assurance processes are when they coexist within a complex ecosystem such as Meta, since even a circumstance or feature external to the program can cause your application to not work properly. Knowing what the problem was, we started working with renewed energy, we managed to eliminate the bug and upload a new production version. We then contacted the affected users and were happy to announce that the bug had been fixed.
To prevent such a problem from happening again, we have added to our QA process several batteries of tests related to external features of the Meta ecosystem. Lesson learned! We would like to thank the player community for their constructive feedback and quick response to improve Chess Club💪.