Deep Dive: Console cross-play and how we made it work in Insurgency
Here are the steps Pingle Studios took to implement multiplayer on multiplatform, with five key takeaways from the project.
Game Developer Deep Dives are an ongoing series with the goal of shedding light on specific design, art, or technical features within a video game in order to show how seemingly simple, fundamental design decisions aren’t really that simple at all.
Game Developer Deep Dives are an ongoing series with the goal of shedding light on specific design, art, or technical features within a video game in order to show how seemingly simple, fundamental design decisions aren’t really that simple at all.
Earlier installments cover topics such as creating asynchronous multiplayer in Solium Infernum, expanding accessibility for the PlayStation port of As Dusk Falls, and conquering hardware hurdles to port Kingdom Come: Deliverance to Switch.
In this edition, Yurii Dudnik, QA project lead, and Denys Slipchuk, project lead of Pingle Studio's Unreal Engine Department guide us through the complex process behind multiplatform cross-play in Insurgency.
Hello, we are Yurii Dudnik, QA project lead at Pingle Studios, and Denys Slipchuk, project lead of their Unreal Engine department.
Insurgency is a multiplayer tactical first-person shooter set during the Iraq War. The game, originally developed for PC, has been ported to PlayStation 4, Xbox One, PlayStation 5, Xbox Series, and Epic Games Store by Pingle Game Studio. Pingle Game Studio has also enabled cross-play between PC (Microsoft Store) and Xbox One.
The primary goal was to allow players on different platforms, specifically PC and consoles, to join the same matches.
The initial phase of this integration provided full cross-play functionality between the Microsoft Store and Xbox platforms, including Xbox One and Xbox Series. Plans for global cross-play across all platforms are scheduled for upcoming updates.
A major benefit of these developments is the inclusion of Insurgency in the Xbox Game Pass, making it available through subscription. This accessibility significantly increased the game's user base, boosting it by three to four times.
Here's what our cross-play creation pipeline looked like:
Defining the tasks ahead of us. The scope can vary depending on the specific title and the volume of features already integrated;
Identifying certification requirements for cross-play—there are actually quite a lot of them;
Estimating the time needed to complete tasks: we had 2-3 months for development, testing, and polishing;
Implementing the functionality;
Polishing;
Testing;
Certification;
Releasing the feature in a new update
Image via New World Interactive.
The main tasks can be outlined as follows:
Integration of Additional Game Settings: These settings allow players to choose whether they want to play with other platforms and select which input device to use (Keyboard & Mouse or Gamepad). These parameters affect how players are matched in online PVE and PVP matches.
Adaptation of the Matchmaking Backend: This involves configuring the system to create matches based on the settings selected by the user, taking into account the platform each player is using.
Support for Keyboard & Mouse on Xbox Consoles: Ensuring that Keyboard & Mouse can be used across all game menus and during gameplay on Xbox One and Xbox Series consoles.
Cross-Party System: This system allows players to form groups not only within the same platform but also between PC and consoles.
Here's a more detailed look at each step:
Step 1: Develop a system for managing mouse and keyboard controls on Xbox One
This step presented some additional challenges. Initially, when the game was ported, it was not designed to support anything other than a gamepad, and console cross-play was not even considered. As a result, we had to overhaul fundamental aspects of the game that weren't originally set up for keyboard and mouse support on consoles. However, having learned from this experience, we now incorporate the potential for using different input devices from the start of porting. This foresight for future support is something we recommend to other studios as well.
Image via New World Interactive.
Step 2: Develop a selection system for Xbox One players to choose between mouse/keyboard or gamepad controls
Implementing the options for selecting an input device or enabling cross-play matches is relatively straightforward and can be done in just a few steps. However, it's crucial that these settings are saved in user profiles to avoid making players reconfigure their preferences each time they start the game.
Additionally, we had to modify some engine functionalities to recognize the current user and connect a new device before it's even used. This update is essential for refreshing UI hints and other settings. The existing engine's approach to handling user changes on the console was too complex and unsuitable for our project’s requirements. Moreover, the engine initially lacked the capability to detect if a keyboard is connected, prompting us to develop this functionality ourselves.
Step 3: Enhance console functionality for cross-party and cross-matchmaking
The integration of cross-party support handles scenarios where the party leader or members are on different platforms and using different settings. The system acknowledges these settings and alerts users when they are trying to join a party that might include members from other platforms. When a user accepts a party invitation, the system checks and compares the settings of both the party leader and the invited user. This ensures that all preferences are appropriately aligned and communicated before joining the party.
Image via New World Interactive.
Step 4: Navigating the various system cross-party requirements
This was a truly unique experience that demanded broad thinking and significantly expanded the set of test cases we needed to address. One of the first challenges we faced was implementing the Japanese region in builds for the European region, which activated when the Japanese time zone was selected. The Japanese region is distinct because it must exclude any blood and ragdoll dismemberment. Additionally, other platform-specific features for consoles needed to be operational. For instance, on the PlayStation 4, we had to change the confirmation button from a cross to a circle.
Another major issue was enabling crossplay between Microsoft Store PC and Xbox One, Xbox Series. The main challenge was determining the possible interactions between players. The possible combinations were numerous; for MS PC, this involved options like Keyboard & Mouse or controller, and whether crossplay was turned on or off, meaning whether we intended to play only with PC users or also with Xbox players.
For the PlayStation 5, we also introduced adaptive triggers, redesigned the vibration system, and created activities, along with developing specific cases that need support for games featuring matchmaking. Particularly notable was our innovative implementation of the spectator mode in line with the PlayStation 5's TRC requirements.
Step 5: Develop equivalent game versions for the Microsoft Store to match those on Steam and Epic Games Store
Ensuring content parity is crucial when developing for a new platform, which led us to integrate mods and community servers into the Microsoft Store version. As it stands, the Microsoft Store is considered an independent PC platform capable of interacting with itself and Xbox consoles, though this could evolve with future updates.
Conclusions
Advance Planning: Thorough planning of all cross-play development stages is essential for the project's successful implementation.
Attention to Detail: Paying attention to even the smallest details, such as supporting various input types or setting restrictions during match searches, is key to creating a user-friendly and functional gaming environment.
Flexibility and Adaptability: Considering the potential growth in popularity and technological advances, it is important to plan for the expansion of features and support for new devices from the start of development.
Learning from Experience: Analyzing previous experiences and applying those insights to future projects can help avoid similar challenges and enhance the overall development process.
Image via New World Interactive.
About the Authors
You May Also Like