How to Make a Cross-Platform Game from Scratch 🕹️ Game-Ace

Program-Ace
9 min readJul 22, 2021

The commercial success of a game hinges on many factors, not least of which is whether users have a good reason to buy/download it. Another factor with just as much importance is reach — how many platforms and devices you can make the title available to. If you want your bases covered in this regard, you would surely benefit from learning how to make a cross-platform game. This is exactly what we will help you with in this article.

What games are cross-platform?

Cross-platform games are made through full-cycle development, where the application is built for several platforms at once, and available on multiple platforms at release. For example, you are not making the game for PC and later porting it to mobile, but rather making several versions simultaneously.

The benefit of cross-platform development over porting lies in time (and its relative equivalent — money). Though it normally takes longer to make a cross-platform game than a native one for a single platform, this is still much faster than making one game version and remaking it later through porting.

This is a trap that many games have fallen into (Fall Guys, Among Us, Fortnite, to name a few): the developer placed their bet on 1 or 2 platforms, but after their game blew up in popularity, they had to go through a painful and lengthy process of adapting it to new platforms.

How to Make a Game Cross-Platform

The key thing to understand about game development is that though you are making several game versions at once, you don’t have to divert much attention or many people to these different directions — it is mostly a single stream. Thanks to game engines and other helpful cross-platform tools, the unified code for a game can be transpiled into different languages and packaged into apps for the corresponding platforms.

Cross-platform game development pipeline

1. Pre-production

The first stage of game dev mostly consists of planning and laying the foundation for the project. Everything usually starts with an idea or vision, which is translated into concept art, preliminary designs, and notes about how it can be implemented. When the feasibility and requirements of the project have been defined, they are usually added to a game design document (GDD), which serves as an important reference for the project moving forward. It is also common for a company to create a prototype in this stage to make sure that the key planned functionality can be utilized.

2. Production

This is when the magic happens. It also happens to be the lengthiest and hardest stretch of the project. With the pre-production materials and results in hand, developers get to work creating the game, while artists get to work creating the assets for it. Production usually takes months, and can easily take years for large or understaffed projects.

Though the game logic and mechanics usually stay the same from platform to platform, the specialists working on the project also contemplate platform-specific things, like how to fit UI and game elements on smaller/larger screens, how to optimize performance, and whether to cut/add certain features. This leads to partial branching of work as they delegate some time to code and content meant for individual platforms.

3. Testing and release

Though QA game testing begins in the production stage as new bits and pieces of the game are created, it really ramps up as the game nears completion. QA engineers thoroughly check the game for bugs or issues that might impact the user experience, offering suggestions. They also test the software on different platforms, since some code and scripts may not carry over well. With the game polished, it can get a partial or full release. A partial release (known as a beta) is meant to give a limited number of players a taste and make some final changes based on their feedback.

4. Post-release

Nowadays, it is extremely common for companies that make games to stay involved in their maintenance for years to come. First, this can involve maintaining online services (like matchmaking). Additionally, it will usually involve periodic patches, updates, and fixes that improve the user experience. Some game-making companies even choose to keep their players engaged by adding new content to the application over time, through DLCs, season passes, etc.

5 tips for effective cross-platform game development

As you get started with your project, we suggest keeping the following tips and suggestions in mind which can help make the process smoother and more painless.

  1. Implement social features for better reach

If your game already has multiplayer features, you can make it easier for people to enjoy it with their friends by enabling cross-play. In other cases, you can at least add some social features that will let users compare their results/scores.

2. Don’t hesitate to develop internal tools

Your developers will likely encounter some bottlenecks or problems that force them to repeatedly deal with certain tasks. In these situations, it is sometimes faster to build an internal tool that automatically completes the task than to do it manually every time.

3. Choose the microservices approach

This is just our own two cents on the microservices vs monolith debate. We have found it much easier to modify particular modules (microservices) for multiple platforms than changing the whole architecture to fix a small problem. Hopefully, you will have the same positive experience with this approach.

4. Reuse components where possible

From 3D assets to game code and UI elements, there are many parts of the game that you can reuse, saving plenty of time and effort. The same principle applies to parts bought or downloaded online — using ready code/scripts/assets can really help you speed up development.

5. Maintain a united art style

You may be tempted to add variability in art style based on platform, but this might not be something users understand and appreciate. Usually, players enjoy being able to get a consistent experience as they switch from playing from their console to their phone, as an example.

Which Challenges Can You Face During Cross-Platform Development?

We all know that software development is no walk in the park, and many of your game developers are probably already familiar with the main difficulties in their line of work. But what about the challenges specific to cross-platform development? Let’s take a look:

  1. Creating multiple app versions takes a long time

As we have mentioned, a game engine can let you save loads of time on development by providing a single stream for most of the game logic and functionality. However, much of your time will still go into fine-tuning the multiple versions to their respective programming language and platform.

2. Console development is uniquely difficult

If you choose a game console (Xbox, PlayStation, Nintendo) as one of the platforms your app will be deployed on, be prepared for an interesting experience. Firstly, the console makers will first assess your project and decide whether it would be a good fit on their platform, and only then give you the tools to make it compatible — their software development kit. Due to the sensitive nature of these tools, the console maker will also likely ask you to sign an NDA (non-disclosure agreement).

3. Navigating technical restrictions

Be prepared for lots of fiddling when it comes to optimizing visuals and performance for different platforms. You have to configure settings like the aspect ratio, screen size and resolution, video and audio codecs, and performance for different devices and hardware. As you might expect, this will take lots of testing.

4. Organizing input and controls

In addition to changing how your game runs on different devices, you also have to do a lot of work in setting up input/controls. After all, someone playing on a smartphone will need a totally different way of controlling gameplay than mouse and keyboard. If you choose to develop a VR experience, you will also need to determine how the player’s head/hand movements can control gameplay.

5. Adhering to platform standards

As you might know, Apple has very strict requirements for the apps in its store, and we have also mentioned the difficulties of certifying for console. The truth is, you will probably face strict requirements for app certification whichever platform you choose to deploy on, and this may require making substantial changes to your application. Similar restrictions will still apply to future patches and updates of your game.

Make Smart Technical Choices During Cross-Platform Game Development

As a studio that has developed hundreds of cross-platform projects over the years, we want to draw your attention to tech stack choices. They will have a huge impact on the flow and complexity of your development process.

Choosing the best cross-platform development language

  • C++
    This is the most popular language for game development, being first introduced in 1985. Though it is quite difficult to learn, C++ shines in the aspects of memory management and performance optimization. It is also the language of choice for AAA games on PC and console.
  • C#
    C# is a newer invention, being introduced in 2000. Many consider it an easier language to learn, and this makes sense considering it takes influence from the best parts of Java, C++, and .NET. Development with C# tends to be more rigid than with C++, but this encourages a more streamlined and speedy process.
  • Lua
    Lua was released in 1993, and quickly became a hit in game development. The language is very easy to learn (on par with Python), and lends itself well to combinations with other languages. Thus, it is common to see developers building some game functionality with Lua, even if most of their code is in another language.

For a more detailed look at the options, check out our comparison of top languages for game development.

Choosing the best cross-platform game engine

  • Unity
    Unity is an obvious choice for cross-platform development because it supports over 20 platforms and runs on the user-friendly C# language. Unity3D cross-platform development is most often selected for mobile and immersive apps, but is more rarely used for AAA releases.
  • Unreal Engine
    UE is an engine known for its amazing graphics capabilities — it is easy to make your game look good. It runs on the more complex C++ but offers the helpfulBlueprints visual scripting system for quick prototyping or even complete game design. Unreal Engine cross-platform development is also very common, especially for titles on PC/console and AAA titles.
  • Cocos2D
    Cocos2D is a relatively new game engine with a very unique feature — it is open-source. This gives users broad freedom to use and modify strong built-in tools. Multiple versions of the engine are available, allowing developers to code in C#, Javascript, Lua, Swift, and Objective-C. Cocos2D compared to Unity is a much more popular choice for 2D game development, while Unity is stronger in other aspects.

Please note that the languages and engines we have listed are hardly the only options available to you. For example, many games are built on Java or Javascript, while engines like CryEngine, Gamemaker, and Source all have strong support in the industry. We just selected those that have the greatest market share and prominence.

Cross-Platform Game Development Services

We shouldn’t have to tell you this, but game development is expensive. Even the cost of developing a mobile game can reach hundreds of thousands of dollars. As for developing for multiple platforms, it does take a little more time and is thus even more costly.

So, what can you do about cutting costs?

One of the most effective solutions available nowadays is to find a reliable outsourcing partner that will give you a good rate. Most outsourcing companies operate in countries with a low cost of labor, so you often end up paying less than you would for specialists hired locally.

This is certainly true with Game-Ace.

Our studio is based in Ukraine and offers very advantageous terms of cooperation, as well as a large team of specialists with solid experience in game dev. This experience certainly extends to cross-platform titles, which we build just about every month. If you have a project in mind that you want to get off the ground, just send us a message. We will be happy to discuss it with you!

Originally published at https://game-ace.com on July 22, 2021.

--

--