Reimagine your game on multiple platforms
Tutorial
·
Beginner
·
+10XP
·
15 mins
·
(7)
Unity Technologies

In this tutorial, you will learn about Unity's cross-platform capabilities, which allow a game to be built once and then deployed across various platforms with slight modifications. The tutorial covers the nuances of porting games across different platforms, focusing on considerations like controls, screen size, and processing power. The tutorial also delves into Unity's input systems and its array of Gaming Services, which offer tools and insights for analytics, monetization, build automation, and multiplayer hosting, easing the game deployment and enhancement processes.
Languages available:
1. Overview
As game developers, one thing you often need to consider is the platform or platforms you’re targeting. Up until now, you've probably only configured controls for a computer or desktop experience. But what if you want to expand your game to mobile devices, consoles, or even dive into the realms of virtual reality (VR) and augmented reality (AR)?
Make it Multiplatform
Unity's motto, "Build once, deploy anywhere" encapsulates one of the engine’s most powerful features: you can develop your game on one platform and then deploy it on multiple other platforms with a little bit of tweaking. This cross-platform capability is vital in game development because it broadens your game's reach and audience.
In this tutorial, we'll guide you through the process of preparing your game for different platforms and understanding the important factors to consider for each.
2. Understanding the differences between platforms
Porting is the process of adapting your application from one platform to suit another.

This can be relatively straightforward when moving between similar platforms (like from macOS to Windows). However, things get a bit more complicated when the platforms are quite different, like moving from a PC to a Nintendo Switch or to a mobile device. As you dive into this process, keep in mind the following critical considerations:
Controls
Each platform has its own unique controls. For instance, desktop games typically use a keyboard and mouse, mobile games use a touchscreen, console games use a controller, and VR games use a headset and hand controllers. When porting your game, consider how these differences will affect gameplay. For example, a fast-paced shooter game designed for a keyboard and mouse might struggle with a touchscreen's lack of precision.
If you’re interested, check out the following video where a Unity engineer explains how Unity’s input system tries to handle a variety of different controls.
Unity 2019.3 feature: Input System
Screen size and aspect ratio
Different devices come with different screen sizes and aspect ratios. The aspect ratio describes the relationship between the width and the height of a screen.

For example, consoles are often played on TVs, while mobile devices have small screens that can be either portrait or landscape, and VR and AR offer a wholly different screen experience. When porting your game, you may need to adjust UI elements and camera views to accommodate these differences. A UI that looks perfect on a 24 inch desktop screen might be illegible on a 5 inch smartphone.
Processing power
Processing power varies widely across platforms. Desktops can range from old laptops to high-end gaming towers; consoles have specialized hardware for processing high-end graphics, while mobile, web, or VR platforms could have limited power. A game with simple graphics may be easy to port to any platform, but a highly detailed 3D game designed for a powerful gaming PC may struggle on a mobile device.
Example
Consider the example of the popular game Among Us. Initially created for PC and mobile, it was later ported to VR as Among Us VR in 2022. Every asset and interaction had to be entirely redesigned to succeed in this porting process.

Left image from Among Us press kit. Right image from Among Us VR press kit
Reflect
Reflect on these points. Do you envision your game on multiple platforms? If so, which of these considerations seem the most challenging?
3. Configuring multi-platform Input
Unity offers two input systems: the older Input Manager and the newer Input System. You might see both used in Unity projects, so it's useful to understand them.
Input Manager
The Input Manager is Unity's older system for handling inputs. To familiarize yourself with the Input Manager, follow these instructions:
1. Access the Input Manager.
- Navigate to Edit > Project Settings and select Input Manager.
- Expand Axes, and then expand the Horizontal and Vertical axes.
2. Explore the Input Manager.
- The Horizontal input uses the left and right arrow keys on a computer, or alternatively the A and D keys.
- You can also configure the axes to work with mouse or joystick input, which could be useful for console or mobile platforms.

Input Actions
The new Input Actions system offers more flexibility. If you recall, when you configured your player input, you installed the Input System package, added the Player Input component, created an Input Action Asset, and used the OnMove method for keyboard input.
This system lets you easily map different devices to a specific action by creating bindings.
A binding in Unity's Input System is a connection between an input control and an action that allows the user to control your application using a device, touch, or gestures.
To familiarize yourself with the Input Actions system, follow these instructions:
1. Access the Input Actions system.
- Select the Player GameObject.
- In the Player Input component, double-click the Input Action Asset assigned to the Asset property. This will open the Input Actions window.

2. Explore the Input Actions system.
- In the Input Actions window, expand the Move action, then expand the WASD binding.
- Notice that there are different bindings to that action, allowing you to easily configure input from multiple devices mapped to a specific action.

Although configuring input for mobile, console, or XR is beyond the scope of this tutorial, it's important to know it's possible.
4. What are Unity Gaming Services?
Building a game for different platforms and actually getting them onto those devices are two distinct processes. You'll often need developer accounts, sometimes paid, and to get your game onto app stores like the Quest store or the iOS app store, you'll have to pass an approval process.
Unity Gaming Services can simplify the process of deploying your game onto various platforms, monetizing them, and tracking their performance. Here's a breakdown of some key services:
Unity Analytics
Unity Analytics is a powerful data platform that provides developers with insights into player behavior, engagement, and retention. By leveraging these insights, developers can make data-driven decisions to optimize their games, enhance player experiences, and ultimately increase revenue. You can learn more about the actual implementation of Unity Analytics through the Analytics documentation.
Intro to Analytics | Unity Gaming Services
Unity Ads
Unity Ads is a comprehensive monetization solution that enables developers to generate revenue from their games by displaying targeted advertisements to players. This platform helps developers maximize their earnings while maintaining a positive user experience. You can learn more about the actual implementation of Unity Ads through the Ads documentation.

Image from the Unity Ads page
Unity Cloud Build / Build Automation
Unity Cloud Build, also known as Unity Build Automation, is a continuous integration service that automates the process of building, testing, and deploying your Unity projects. This service saves time and resources by streamlining development workflows, which allows teams to focus on creating high-quality games and applications. You can learn more about the actual implementation through the Build Automation documentation.
Unity Cloud Build
Unity Multiplay
The Unity Multiplay service provides a suite of tools and features for creating, hosting, and scaling online multiplayer games. By leveraging this service, developers can streamline the development process, ensure low-latency connections, and deliver engaging and seamless experiences to players worldwide. You can learn more about the actual implementation through the Unity Multiplay documentation.
What is Game Server Hosting (Multiplay)? | Unity Gaming Services
Remember, these are just a few of the available services. Check out Unity Gaming Services for more.
5. Next steps
In this tutorial, you've explored how to prepare your game for different platforms and learned about some of Unity's useful services. This knowledge is essential as it broadens the potential reach of your games. In the next tutorial, you'll get hands-on with a new control system and delve deeper into your programming skills.