Oleksandr Berezovskyi
/// CTO
Oleksandr Berezovsky is the CTO and one of the key figures at Pingle Studio. Since the early days, he has contributed to nearly every major project the studio has touched, from The Eternal Cylinder to the Five Nights at Freddy’s franchise, helping shape Pingle’s technical excellence across platforms and genres.
Insurgency is a multiplayer tactical first-person shooter set during the Iraq War. It is also a large-scale project that the Pingle Studio team worked on for several years.
Our involvement covered porting the game from PC to PS4, Xbox One, PS5, Xbox Series X|S, and Epic Games Store, as well as further platform development. One of the major technical tasks was developing and implementing crossplay between the Microsoft Store PC version and Xbox One and Xbox Series X|S.
This article focuses on how we approached that work, the systems that had to be adapted, and the challenges we encountered along the way.
The Goal: Bringing PC and Console Players Together
The main objective was straightforward: allow players on different platforms to join the same matches.
For Insurgency, the first stage of the crossplay integration was a full release of crossplay between Microsoft Store PC, Xbox One, and Xbox Series X|S. Broader crossplay between all platforms was planned for future updates.
This work also supported the game’s release on Xbox Game Pass. Following the Game Pass launch, the number of users increased approximately three to four times, making reliable matchmaking and cross-platform functionality particularly important.
Our Crossplay Development Pipeline
Crossplay affects far more than matchmaking alone. It touches input systems, UI, user settings, saves, party logic, backend infrastructure, platform requirements, and certification.
Our development pipeline consisted of several stages:
- Defining the scope. The exact scope depends heavily on the title and which platform features have already been integrated.
- Reviewing certification requirements. Crossplay introduces a considerable number of platform-specific certification requirements that have to be considered from the beginning.
- Estimating development. We had approximately two to three months for development, testing, and polishing.
- Implementing the functionality.
- Polishing and resolving edge cases.
- Testing.
- Certification.
- Releasing the feature as part of a game update.
Within this pipeline, several major technical tasks required particular attention.
Adding New Crossplay and Input Settings
Players needed control over whether they wanted to participate in cross-platform matches and which input device they preferred to use: keyboard and mouse or gamepad.
These settings directly affected matchmaking for both PvE and PvP online matches.
On the backend side, the matchmaking system had to be adapted to create shared matches based on these settings while also considering the platform each player was using.
We also needed full keyboard and mouse support on Xbox One and Xbox Series X|S, not only during gameplay but throughout all game menus.
Finally, the game needed a cross-party system that allowed players to form groups across PC and Xbox rather than limiting parties to a single platform.
Each of these requirements introduced its own set of technical challenges.
1. Building Keyboard and Mouse Support for Xbox
This task turned out to be more complicated than it might initially appear.
When the game was originally ported to consoles, support for anything other than a gamepad was not part of the requirements, and console crossplay had not yet been planned. As a result, some fundamental systems were never designed with keyboard and mouse support on consoles in mind.
We had to revisit and rework these systems to make the new input method possible.
This experience also changed the way we approach similar projects. When working on ports today, we recommend considering potential support for additional input devices from the beginning, even when those devices are not part of the immediate release scope. Doing so can significantly simplify future platform and crossplay development.
There was another important consideration: competitive balance.
Allowing keyboard and mouse players to compete freely against gamepad users could create an uneven experience, since the two control methods provide different levels of precision.
Because of this, keyboard and mouse usage had to be restricted depending on the matchmaking configuration. If a player was not participating in a crossplay match or had selected gamepad as their preferred device before matchmaking, the appropriate restrictions were applied. These limitations were not necessary in local play.
2. Letting Xbox Players Choose Their Input Method
Adding settings that allow players to select keyboard and mouse or gamepad, as well as enable or disable crossplay, is relatively straightforward at the UI level.
The surrounding systems are more complicated.
First, the selected options have to be stored in the user’s save data so players do not need to configure them again every time they launch the game.
We also had to modify some engine functionality responsible for identifying the current user and detecting newly connected devices before the player actually used them. This was necessary to update UI hints and related settings correctly.
The existing engine implementation for switching users on consoles was too complex for the requirements of the project. There was also no out-of-the-box functionality that simply answered an important question for us: is a keyboard currently connected?
We therefore extended the engine functionality to detect this state and react accordingly.
3. Cross-Party and Cross-Matchmaking
Cross-party support introduced another layer of complexity because the party leader and individual party members could be using different platforms and different settings.
The system had to account for these combinations and inform players when they were attempting to join a party that could contain users from another platform.
When a player accepted a party invitation, the system checked both the party leader’s configuration and the settings of the invited player.
This logic was essential because party configuration ultimately affected how the group entered matchmaking.
Once players joined a party, they inherited the relevant matchmaking configuration from the party leader, including the settings that determined which players and platforms the party could be matched with.
4. Supporting the Japanese Region
Another part of the project involved implementing support for the Japanese region within European-region builds, activated when the Japanese time zone was selected.
The Japanese version required specific content differences. Blood and ragdoll dismemberment had to be disabled, while other platform-specific regional requirements also had to remain functional.
On PS4, for example, this included changing the confirmation button from Cross to Circle where required.
While this work was separate from the core crossplay functionality, it was part of the broader challenge of maintaining equivalent platform versions while accounting for regional and certification requirements.
5. Crossplay Between Microsoft Store PC and Xbox
One of the central challenges was determining exactly which players should be allowed to interact and match with one another.
On Microsoft Store PC, several variables had to be considered:
- keyboard and mouse or controller;
- crossplay enabled or disabled;
- PC-only matchmaking or matchmaking between PC and Xbox.
Xbox introduced the same combination of variables: keyboard and mouse or controller, together with enabled or disabled crossplay.
Party composition made the logic even more complex.
The system had to know which players were already in the party, which input method each of them had selected, whether crossplay was enabled, and which matchmaking configuration should ultimately be used.
Once a player joined a party, the party leader’s relevant settings determined the configuration under which the group entered matchmaking.
This created a considerable number of possible combinations that had to be handled consistently by both the game and matchmaking systems.
Additional PS5 Platform Features
Our work on the project also included several PS5-specific features.
We implemented adaptive triggers, reworked the vibration system, and created PS5 Activities. We also addressed platform requirements related to games with matchmaking systems.
One particularly interesting area was implementing spectator mode behavior around PS5 TRC requirements, which required us to account for several specific matchmaking and platform scenarios.
6. Bringing the Microsoft Store Version to Feature Parity
Content parity is an important part of bringing a game to another PC platform.
For the Microsoft Store version, this meant integrating Mods and Community Servers so that the version provided an equivalent experience to the Steam and Epic Games Store releases.
At this stage of development, Microsoft Store PC effectively operated as an independent PC platform capable of playing with its own users and Xbox console players. This architecture, however, was designed with the possibility of further crossplay expansion in future updates.
What We Learned From Building Crossplay
Crossplay development is rarely a matter of simply connecting two platforms. The feature affects matchmaking, input, UI, parties, saves, backend systems, platform-specific behavior, certification, and many smaller systems that may not have been designed with cross-platform interaction in mind.
For us, several lessons from the Insurgency project became particularly important.
Plan for crossplay early. A clear understanding of every stage of crossplay development helps prevent fundamental systems from becoming blockers later in production.
Account for small dependencies. Input detection, matchmaking restrictions, user settings, party configurations, and UI hints may appear to be isolated details, but together they determine whether the crossplay experience works consistently.
Design platform systems with future expansion in mind. Even when additional input devices or cross-platform functionality are not part of the immediate scope, leaving room for them in the architecture can make future development considerably easier.
Carry experience from one project into the next. Some of the challenges we encountered on Insurgency changed the way we approach porting and platform development. Building systems with possible future requirements in mind helps us avoid repeating the same technical limitations and gives our teams more flexibility when a project’s scope grows.
Insurgency was a good example of how a porting project can expand far beyond bringing a game to another platform. Supporting crossplay required us to work across gameplay systems, platform services, backend logic, input, UI, certification, and QA, while keeping the experience consistent for players regardless of where they joined the game.