6 steps to creating a cross-platform game: Lost Ember case study
Developing a game on multiple platforms sounds like a simple and efficient way to make any game more valuable, share it with a bigger audience, and gain more attention in the industry. It’s indeed efficient, but only if the developer does everything right. And this process could hardly be called easy 🙂
The desire to create a cross-platform game always means a set of challenges. The exact number and complexity of them vary depending on the type of game you’re developing. In this article, we will show some points that could be useful if you’re going to build a multiplatform game.
A little bit of context
We at Pingle Studio were lucky enough to take part in a task to create a multiplatform game called Lost Ember — a multi-character adventure game with an accent on atmosphere, level design, and smooth gameplay.
The developer, Mooneye Studios, reached us with a pull of tasks:
- to optimize their PC game build
- create the PlayStation 4 and Xbox One versions of Lost Ember without visible changes in graphics
- pass the certification in PlayStation Store and Microsoft Store
Believe us, it sounds easier than it is 🙂 Here are 6 major lessons we learned while bringing Lost Ember for PlayStation and Xbox players.
Step #1: analyze the performance.
No matter if you work with a pre-developed build of your partner (like we did) or you developed the initial build, you need to define the priorities for optimization.
In general, the developer needs to:
- estimate the project’s current performance
- define bottlenecks
- attribute the priority and order for particular optimization tasks
In the Lost Ember case, we created a step-by-step optimization plan and accepted it with Mooneye Studios. We defined performance components and detected what causes the load for every particular component. We ended up testing the FPS components during the first half of the development period.
Why is it important?
Console players won’t tolerate poor game flow and high load for their devices. The gameplay should be smooth to keep the player in the flow state, especially in a meditative adventure game like Lost Ember.
What if we didn’t do it?
Optimizing the performance without proper analysis would take much more time and would be much less effective. There’s a big chance to miss something if we don’t use a systematic approach.
“ lt’s important to keep an eye not just on the FPS, but on each component, like game thread, CPU load, GPU load, and others. ”
Step #2: save the visual quality
Despite some promises, this particular console generation can’t provide the same visual experience as PC. That’s why applying alternative, more resource-friendly development approaches work well when you make a cross-platform game.
The major challenge about optimizing Lost Ember was its level design. Some levels introduce impressive big open-world locations that are full of visual content. Levels in the original Lost Ember build featured lots of translucent materials, dense vegetation, and many large particles that used to take a major part of the frame. All of these caused a major GPU load, which is unacceptable for PS4 and Xbox One hardware.
To solve the GPU load issue, we performed several optimization tips. At first, we manually checked all the shaders, defined the heaviest ones, and changed them into more simple shaders. We even cut some of the heaviest nodes completely.
Then, we performed an enhanced level of detail to some objects and decreased things like shading, illumination, and AO quality for some objects. Unfortunately, that wasn’t enough to feel a decent gameplay quality, so we also decreased landscape tessellations and draw distance for some parts of the game.
Why is it important?
One of the key features of Lost ember is its special atmosphere, which heavily relies on audiovisual harmony.
What if we didn’t do it?
Decreasing graphics would totally ruin the illusion and the eventual gameplay experience on consoles would be far from the PC version.
“ Open world concept in Lost Ember means additional loading during the game, which causes freezes. We needed to figure it out, because loading the whole level on a console wasn’t an option. ”
Step #3: setup the game for various consoles
While trying to save the visual quality, it’s important to keep in mind that various types of consoles have different technical capabilities. The picture and performance on PlayStation 4 Pro, PlayStation 4 Slim, Xbox One X, and Xbox One S aren’t the same. In addition to that, consoles have fixed display resolution which can’t be changed to get better FPS.
We decided to optimize the graphics to make the most of each console model.
At first, we applied dynamic resolution and INI profiling to set graphic quality for every particular console model. Then we performed dozens of tests to define the most suitable performance/quality balance for each console.
Finally, we used switches in some materials to simplify those materials for less-powerful consoles to handle the load at playable rates.
Why is it important?
The picture on more powerful devices shouldn’t be worse because of less powerful devices.
What if we didn’t do it?
Owners of more advanced consoles wouldn’t be totally satisfied with graphics, or owners of less powerful consoles wouldn’t be totally satisfied with FPS.
“ Defining the optimal performance/graphics balance for each console type took a lot of testing. But routine work matters a lot in projects like that ”
Step #4: don’t be afraid of boring tasks
When your goal is to build a cross-platform game, you often face a meaningful amount of monotonous and uncreative tasks, like repetitive manual tests and code reviews.
In the case of Lost Ember, the boring part was about removing unnecessary meshes, parent materials, and other content that caused unnecessary GPU and CPU load. Manual investigation of the content and removing non-functional content also helped to detect and fix several visible bugs.
The initial game build also contained multiple memory leaks and freezes on some levels. Proper testing helped to detect things like infinite looped actor spawn and an unnecessary amount of skeletal meshes in the frame, which caused those memory leaks and freezes. As a result, we managed to cut the number of skeletal meshes and dynamic actors throughout the game.
Why is it important?
If the developer doesn’t do boring tasks, the eventual game has a big chance to be boring and irritative for the player. Nobody likes unnecessary loadings.
What if we didn’t do it?
The players would experience much longer loading time and FPS drops.
Developer’s quote
“ Despite this piece of work is totally uncreative, the result is meaningful and satisfying”
Step #5: mind the communication
Nobody knows the game better than those who made it. Since Mooneye Studios created the initial build, we needed to keep close contact throughout the whole process. It’s always important to realize that all involved teams are working towards the same result — creating a great cross-platform game.
Faster communication between developers and partners means faster development. The quality of communication is also important — there should be no place for secrets and guesswork in projects like that.
Why is it important?
Proper feedback and cooperation between two developer teams help to develop the game faster.
What if we didn’t do it?
There would be a lot of guesswork, which always results in lower code quality, more bugs, and, eventually, moving the release date or releasing an incomplete project.
“ Eventually, both teams realized that communication is the key to effective collaboration”
Step #6: Invest in certification
Getting your game certified for gaming platforms is a huge part of cross-platform game development company. You can’t just make a multiplatform game and post it on Microsoft Store or PlayStation Store like a TikTok video.
All the gaming platforms have a specific set of requirements for every application meant to be published in the store. Depending on a platform and the game, these requirements may vary from build operational stability, load time, events procession, gamepad connections, Live service interactions, and many other requirements.
The certification part may also be considered a boring task. You create a build, send it to the Microsoft Store or PS Store for code check and confirmation, and return it for fixing until the build meets all the requirements. It may take dozens of iterations, but it’s a necessary step, so make sure you planned at least 1-3 months for certification.
Why is it important?
The game with no certification by the platform owners can’t be distributed in the stores.
What if we didn’t do that?
Console players would have to use unofficial emulators to play Lost Ember and the developer wouldn’t get any profit from the console market.
Developer’s quote
“ The exact number of requirements may count 100+ points to cover, but many of them vary depending on the game type. For example, in the case of Lost Ember, we didn’t need to cover any requirements regarding multiplayer, DLCs, and modifications.”
Checklist for making a cross-platform gameÂ
Releasing a cross-platform game is a complex task that requires a lot of teamwork, especially if you’re using help from an external developer.Â
Long story short, here are our tips on how to create a cross-platform game:
have systematic and analytical approaches to development,
strive to keep graphics/performance balance at the highest of levels, allowed by the platform’s hardware
be ready to set the preferences for various consoles,
be ready for lots of testing and routine,
plan time on playing by the platform’s rules (certification).
In case you need the support of professionals, who did it before, do not hesitate to click the CONTACT AN EXPERT button on the top of this page. We will be happy to discuss a project with you.