DevDiary 13 - Co-op mode & Mod support
Co-op mode & Mod support
Yo, gamers! I'm Vlad Abadzhiev-Jahn, a programmer and designer at Haemimont Games. Today, I want to talk to you about two major features - our two-player online co-op multiplayer and modding!
Ticket for One That Seats Two
Multiplayer brings a whole other energy to a game's campaign. It allows you to explore tactical differences with your partner and devise strategies together, experience and discuss the story side by side, and it also adds replayability.
Translating the single player experience as closely as possible while accommodating two people frictionlessly was a challenge both technically and design wise. Fortunately, we at Haemimont Games have some prior experience which gave us a strong foundation to draw from.
Let's start with getting you and your buddy to Grand Chien. One player is designated the “host” and the other the “partner”. The host is the one who initiates the game and the partner is the player who joins the host’s game. When creating a game the host has the option of starting a new campaign with their partner or inviting them into an ongoing playthrough.
We aimed to make the co-op gameplay as seamless as possible. The host can save and load games at any time as if they were playing alone and their partner will be there along for the ride. Additionally there is no functional difference between a save made in a co-op and single player, and the host can continue the game in single player if their buddy drops out. Both players can also load any of the saves (auto-saves or manual saves) created during co-op gameplay and continue them in singleplayer.
We found that in co-op games it is important for both players to be aware of what's happening in the moment-to-moment gameplay. We implemented a system where conversations with NPCs are controlled by the player who initiated them, but both players observe the conversation happening in real time. The non-controlling player can even offer suggestions for conversation options.
In order for both players to be aware of what is going on, we had to make some compromises. For instance, both players can only explore the same sector in tactical view. Splitting up to tackle Grand Chien separately might sound appealing, but the majority of missions take place on multiple sectors and it can get disorienting.
On top of that, there's the issue of how time advances when one player is engaged in combat in a different sector. It would be tedious for one player to spend 40 minutes in the Satellite View waiting for their partner to finish their tough fight with the Legion. Considering the technical challenges as well, having both players on the same sector made the most sense.
Mercs for me, and for Thee
Both players can hire mercenaries and manage squads, but since you're on the same side, you share funds and strategize together. To remain flexible the host player can assign and reassign control over individual mercs at any time. When in a sector (tactical view) players can only order their own mercs around, with both players being able to explore the sector and interact with it at the same time. During combat both players share a turn, which ends when both players click "Ready". Easy and simple!
In the beginning we were focused on preventing the players from trolling each other. This resulted in a sort of adversarial system which included mechanics such as only one player being able to control a squad in satellite view, or prompts for standing conversations with NPCs. Through testing and iteration we shifted our focus to a system that promotes co-operation and flow rather than preventing trolling. I mean, you can always shoot your friend's mercs, but remember, they’re your mercs as well! 🙂
During development we discovered an interesting case where the host may take control over all mercs and leave none to their partner to control. With the partner unable to interact with the game all they can do is watch, which indirectly creates a kind of spectator mode for the game. It was initially reported as a bug, but it turned into a happy little feature.
Navigating the Desync Minefield
On the technical side chasing down desyncs was the most time-consuming part. For those unfamiliar with the term - a "desync" is essentially a mismatch in the result of a player's action between the two players' computers. Sometimes this can be as simple as the virtual dice landing on a different number, while other times as elaborate as a different merc appearing as hired on each person's screen.
Desyncs may occur at any time as a result of any system. From the camera, through the inventory, combat, and even animations. While we fix every bug we catch, we don't want your game to be ruined because we missed one. If you encounter a desync while playing, a popup with a "Resync" button will open on the host's screen. Clicking it will trigger a quick loading screen and your game will be resynchronized, with no progress lost or rollbacks.
Modding also directly impacts multiplayer. To ensure the game remains synchronized between the two players, any mods in use must be installed by both players. Mods that add content using our internal systems, such as weapons and mercs will be automatically synchronized. However, modders who dabble in scripting and coding will need to consider how to keep their functionality from desynchronizing and test their mods in co-op if they choose to support it.
Your Game, Your Rules - Modding in JA3
Modding has played a significant part in the history of Jagged Alliance as community made mods have ensured the game's continued longevity. Long after its original release in 1999, Jagged Alliance 2's torch keeps burning thanks to mods such as the popular 1.13 mod. From the get-go we knew how important it was to build the game with modding in mind for players and creators alike, and enable modders to create JA3's equivalent of the renowned 1.13 mod and much more!
Modders will have access to the tools we use internally to create content such as mercs, weapons, items, quests, voice responses, and can even add support for new languages.
We believe that mercs and merc packs will be one of the more popular mod types. Our appearance editor tool allows modders to reuse existing game assets by mix and matching different body parts to create new models for mercs or NPCs. Mercs made from premade body parts won't be as unique as creating an entirely custom model, but they'll be easier to create. We wanted to make modding accessible and keep multiple options open.
Modelers and animators can use Blender to export new assets for their mercs, weapon, or objects in the world. Adding new actions or a new weapon type such as dual wielding machetes for example, would require a whole new animation set as well.
To create a fully fleshed out merc modders will also want to upload 2D portraits (big and small) and create voice responses for their mercs. We look forward to seeing what kind of mercs the community comes up with!
When Will Modding Be Available?
All of these tools will be made available shortly after the release of Jagged Alliance 3. We want to focus on delivering a polished version of the game, and then release modding as part of the first major post-release update. The map editor and quest editor will come later on, with another major update, which will enable modders to create new maps, sectors, and entirely new campaigns. We're excited to see creators come up with their own stories and maybe even try to recreate Jagged Alliance 1 and 2 in JA3!
That's it from me! I hope you have fun in Jagged Alliance 3 side by side with a friend and join the modding community as a player or creator.
Vlad Abadzhiev-Jahn
Programmer and Designer
- 23
- 7
By THQN Roger
Recommended Comments