Loading project000%
PC/Console Game

Corsairs Legacy

Corsairs Legacy is an open-world pirate RPG set in the Caribbean, and it is available on Steam in early access.

This was the first big project I joined at Mauris. By the time I came in, the game already had a large codebase and a team of developers working on it, so a big part of my first months was learning how everything fit together before I could start adding things of my own. I worked on a lot of different areas over time, but on the gameplay side I was mostly responsible for the land part of the game: quests, NPCs, various windows, and everything else the player does after they step off the ship.

View on Steam →
Some of the things I worked on

Save system

I wrote new save logic with multiple player profiles and preview data for every save, and set up migration so that people who had saves from the old system did not lose them. Later I also made the saves much more precise. Now every spawned NPC, where they were standing, how far a fight had progressed and what loot was generated all come back exactly as the player left them, which was not the case before.

Memory and performance

This was an ongoing thing rather than one task. I worked on loading and unloading resources only when they are actually needed, culling NPCs that are too far from the player, splitting some heavy scenes into several smaller ones, and going through code to reduce how much garbage it produces so the game does not stutter on collection.

Trading economy

I worked on the trading economy between islands, and also built editor tools to visualize it. Before that, prices in all stores were just randomly generated. Now, there are always goods that you can buy to make a profit by selling at your destination island while at the same time ensuring that you wouldn't be able to profit by reselling items between stores on the same island.

Quests and story content

I made quite a lot of quests for the game. This included cutscenes, customizing NPCs appearance and behaviour, setting up special interactions for common objects, and a lot of other case-specific logic. I also built the logic for various interactive items, like documents, notes and treasure maps, plants and others.

Architecture and Zenject

The project uses Zenject for dependency injection, and one of the trickier problems I dealt with was objects not being disposed properly when switching between scenes. Beyond that, it was important ot make sure the code I wrote matched the existing architecture, with its injections, databases, storages and settings.

Server, analytics and Steam

I worked with our custom server on events, the bug-reporting feature (including a bug that made it send duplicate reports), token and user ID issues, and email subscriptions. I also set up game analytics and handled Steam features like achievements and cloud saves.

Screenshots
Corsairs Legacy screenshot 1
Corsairs Legacy screenshot 2
Corsairs Legacy screenshot 3
Corsairs Legacy screenshot 4
Corsairs Legacy screenshot 5
Corsairs Legacy screenshot 6
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
Corsairs Legacy screenshot 7
← Back to all projects