The gaming industry is always changing and game developers need to constantly adapt to latest trends. One of such trends is that games created for specific devices are quickly becoming outdated as players now want to play games on a variety of hardware. The image below shows that the number of gamers using newer gaming devices like smartphones (2.6 billion) exceeds the number of gamers using more traditional gaming devices like consoles (730 million) and personal computers (1.5 billion).
According to Inovecs games (a game development company), a game’s commercial success depends on a number of reasons like how engaging the title is, the game-play and availability of the game across devices. But availability has proven to be one of the most important factors of game popularity and success. Their statistics show that 87% of multiplayer gamers are constantly seeking more cross-platform titles and making a game cross-platform can cause 20% to 40% increase in revenue. Some of the most successful cross-platform games include:
Halo Infinite: Xbox One, Xbox Series X/S, Xbox Cloud Gaming
Fortnite: PS4, PS5, Xbox One, Xbox Series X, Switch, PC
Among Us: Android, iOS, PC, Switch
Call of Duty: Vanguard: PS5, PS4, Xbox One, PC, Xbox Series X/S
Hence, for one to reach more engaged players and succeed in the gaming industry by making more profits, cross-platform game development is very important.
Cross-platform game development means building games that can operate on several platforms at once. It allows a team of developers to code once and release everywhere. Cross-platform game development is quite complicated. Unlike native game development which uses official tools provided by developers of the system for which a game is made, cross-platform development requires other software to help adapt a single code-base to several systems. The developers work with the single code base while game engines, libraries, scripting languages, and Software Development Kits (SDKs) create the needed platform-specific elements.
Cross-platform games are generally designed using full-cycle development, where the game is built for several platforms at once before release. This is different from porting a game already released on one platform to other gaming platforms. Creating a cross-platform game often takes longer, but it prevents the spending of time and effort to make an already released game available on other platforms.
Below are some benefits of Cross-platform game development.
Easy Maintenance: There is no need to maintain separate code-bases for each platform and this also helps with upgrades. Teams can simply make a change to the code-base and deploy it to all platforms at once, saving both time and money.
Improved Accessibility: Cross-platform development helps a game developer reach as much or the target audience as possible by making the game available on different kinds of devices the audience may be using.
Faster development process: It is quicker to create a cross-platform game right away than to create a separate game for a PC, and then adapt the finished product for mobile devices.
Faster time to market: Bringing a cross-platform game to market is much easier than single platform games, because the game attracts the interest of several segments of players at once, thus spreading much faster.
Better gaming experience. Cross-platform games bring communities together by enabling everyone to play regardless of geographic location or platform. This facilitates online gaming.
Cost Savings: Creating a cross-platform game enables one to cover all launch costs in a single development cycle as there are no additional costs to reach new audiences. Maintenance cost is also reduced by managing just one code-base for all platforms.
Effective marketing. Cross-platform games minimize sales competition between platforms. Hence, advertising efforts are focused on the game with no limitation of platform.
According to Nexon games, the future of gaming points to a cross-platform experience where players can enjoy the same game across different platforms, at one price.
Cross-platform development also comes with many challenges, some of which are discussed below.
It requires more skill to handle
There may be display difficulty in adapting the game to multiple devices.
Game controls will be completely different for PCs, consoles and smartphones.
Preserving the personal atmosphere of the game and the features of the game-play a cross multiple devices is a challenge.
The image below shows some of the numerous considerations to be made during cross-platform game development.
However, the benefits of cross-platform game development outweigh the difficulties.
Creating a game on multiple platforms at once requires certain skills, knowledge, special tools and programming languages. Firstly, the targeted platform(s) need to be understood. If it is the popular trio of PC, console and mobile, then development can be safely done in C++. However, the cost of cross-platform game development in C++ will be higher as it is more difficult to work with than with other languages. But the language is quite efficient and is popular among game developers. Based on the tools used, cross-platform game development can be separated into development with a game engine and development without a game engine.
1. Development with a Game Engine
A game engine is a software development program used to simplify video game development by laying the framework that allows a user to create game components more easily. All the heavy work like 2D and 3D rendering, animation, artificial intelligence, physics and collision engines, audio engines etc., is handled care by the game engine while a developer uses an exposed Application Package Interface (API) to create what is needed. Popular game engines used for cross-platform game development include;
Unity: Unity is a popular C++-based, multi-platform game engine that works great with PCs, consoles and mobiles. It uses C#, Boo or UnityScript for scripting and features an intuitive interface and easy setup for cross-platform game development. Unity is often used by small game companies that do not focus on advanced graphics.
Unreal Engine: Unreal is one of the most powerful and advanced cross-platform game engines currently available. It has a built-in visual scripting tool called Blueprint, for creating game visuals for different hardware. It is also C++ based but while using the software, one can avoid having to code C++ by installing separate SDKs for each target platform. However, one can also modify the source code if necessary. Like Unity, Unreal supports game development for PCs, mobiles, and consoles.
Other cross-platform game engines in use include Cry engine, GameMaker Studio and Godot engine.
2. Development without a Game Engine
This involves the use of programming languages and usually lightweight libraries and frameworks, some of which are;
HTML 5: According to Vision Mobile, more than fifty percent of mobile games and apps are built using HTML5 together with JavaScript and CSS. This produces a responsive game that is shown in any browser on any device. It also involves a very modest budget.
LibGDX: Also sometimes referred to as a game engine, LibGDX is a popular open-source, cross-platform game development library in Java programming language.
Cocos2d-x: Cocos2d-x is a simple and fast cross-platform open-source framework for games and other graphics applications. It is ideal for mobile platforms with only minor adaptations required for specific platforms. Cocos2D-x is available in C++, JavaScript and Lua and is also sometimes referred to as a game engine.
The cross-platform game development tools discussed above are all fast, durable and versatile software development tools. However, each of them has its own limitations. The first two game engines (Unity and Unreal engine) are widely referred to as the best tools for cross-platform game development.
However, game engines are heavy software and often create large binary files, which makes them expensive to use as one requires costly hardware with advanced specifications and payment of subscriptions or royalties in other to create games with them.
Hence, they are not easily accessible. On the other hand, programming languages are difficult and time-consuming to use in-game development while other non-game engine software (HTML5 and game development libraries/frameworks) are either entirely dependent on web browsers or quite limited in the number of devices they support.
With these limitations, the need arises for a cure-all cross-platform game development tool that combines the advantages of games engines and game development frameworks, while being disadvantaged by as few of their disadvantages as possible. That is, a cross-platform game development tool that is accessible, fast, easy to use, performant, independent and versatile. This is where Flutter – a vibrant new entry in the cross-platform software development industry – comes into consideration.
Flutter is a free, open-source mobile UI framework released by Google in 2017, which allows one to create native, cross-platform mobile applications with only one co-debase. This means that one programming language and co-debase is used to create two different apps (for iOS and Android).
Flutter uses Dart, a programming language that focuses on front-end development, and can be used to create mobile and web applications. Flutter consists of two important parts which are;
Flutter’s goal as quoted by Tim Sneath - Product Director of Flutter & Dart in March 2020 - is to “fundamentally shift how developers think about building apps, starting not with the platform they’re targeting, but with the experience they want to create”.
This goal is constantly being pursued with Flutter currently having stable support for native applications on mobile, web, desktop, and embedded devices from a single co-debase (Toyota has adopted Flutter as the tool for creating embedded system software in their cars). Hence, the framework has been described as the first UI platform that is designed for an ambient computing world. This makes it desirable in cross-platform game development.
Game development using Flutter is relatively new but promising. Flutter supports two types of game development which are related to the two game development methods already described.
The first is casual game development to build cross-platform app-like games (e.g super TicTacToe, 4 pics 1 word, chess variants – Omnichess etc., all built with flutter) using the flutter casual games development toolkit. This accounts for game development without game engines.
The second is video game development which involves building more advanced cross-platform games like flappy bird, using the Flutter flame game engine.
Hence, unlike the game development tools previously described which generally are either game engines or not, Flutter supports both game engine and non-game engine cross-platform game development.
Game development in Flutter is still quite limited at the moment. The rather juvenile flame engine only deploys to mobile devices for now, and the casual games toolkit currently only supports android, iOS and web. But the great advantages of Flutter – a focus on support across all devices, compilation to native code, speed and ease of use, easy accessibility etc. -, coupled with the fact that it is backed by a behemoth company like Google, makes it appear like a promising tool that could remedy most problems of cross-platform game development in the near future.
In conclusion, Flutter is a versatile UI development framework with great advantages of native performance and support for almost all devices. However, it is still pretty limited in cross-platform game development, in that its game engine is still in an early stage and currently, it can only deploy games to mobile devices and the web. Hence, it can’t be called a panacea in cross-platform game development for now. But it holds good promise for cross-platform game development in the future, at least from the standpoint of User Interface creation.
Unity game engine and Unreal game engine remain the best cross-platform game development tools currently available.