Blog: Mobile Game Development with Unity

Native and cross-platforms game engines

Native game engines vs. cross-platforms

Game development evolves each year by giant leaps, and as time goes by, the decision of which technology to use becomes increasingly difficult because of the growing number of different frameworks and engines available. Finding the right game engine can be the key to successfully building, deploying, and providing further support to a game that becomes both popular and lucrative.

Assuming the developer has already decided not to develop their own in-house engine, they first need to choose whether to develop a native app or game using a platform-exclusive engine or to develop the game or app using a cross-platform engine. In this article, we will try and weigh the advantages and disadvantages of each way of development.

What is Native Technology?

Native applications are the ones that you see on the first day of using the device. These are the default browser, email client, address book, alarm clock, calendar, and other routines.
If the developers are writing applications using platform-specific programming language, whether it is Objective-C and Swift for iOS or Java for Android, this application will be referred as ‘native.’ Native apps and games can get access to all phone services and gadgets: cameras; microphones; GPS; accelerometer; calendar; media content; notifications; and most importantly, full power of built-in GPUs. For example, SceneKit (for 3D game development) and SpriteKit (for 2D game development) frameworks are parts of the iOS SDK, which provides full access to iOS device hardware, but it isn’t possible to port games based on these frameworks to other platforms. To do so, developers will have to completely rewrite those games using a different platform’s native SDK or a cross-platform engine.

The Most Common Reasons for Developing Native:

The most important key point here is performance. Native engines are best suited to the hardware for which they were developed (i.e. Metal, an OpenGL ES realization by Apple), and as a result, app or a game will run with maximal optimal performance. This will be true for a game or for any other application.
After performance, the next big advantage is the look and feel of the app. Native frameworks and engines are the most intuitive for making a game or an app look and feel ‘right.’ By using native tools, developers provide users with familiar UI elements, which makes their experience with the game even more pleasant.
Comfort during the development process is also an important thing. While developing a game using native engines, programmers don’t need to rely on third-party technologies; they will be developing in familiar environments.

Native mobile app development
Native way of development

Reasons Against Developing Native:

Mobile game development is one of the fastest growing IT directions, this popularity leads to extreme fragmentation. There are hundreds of different devices, operating systems, processors, screen resolutions, and so on. This fragmentation makes developer lives even harder, because there’s lots of parameters and characteristics that needs to be taken into account during development.
Updates are more difficult to roll out when multiple development platforms are involved. While developing native games, programmers will need to put more efforts to keep them in perfect shape across a variety of devices and platforms.
It is more difficult from a financial side to support all possible popular devices when using native development platforms. A company will need to hire more developers that will specifically optimize and fix a project for dedicated device models or operating systems.

What is a Cross-Platform Technology?

Cross-platform (or sometimes called multi-platform) is when an app is developed with interoperability between different computing platforms or operating systems. The software is said to be platform independent. Cross-platform applications are those that could run on at least two of the following: iOS, Android, Windows, Linux, and any other operating system.
A cross-platform technology is one that allows a single code base to be deployed and run on multiple platforms. This is of particular importance in the field of mobile development where the major platforms include iOS, Android, and Windows Phone.

Advantages of developing cross-platform game:

Cross-platform development is less labor-intensive. Rather than having to write platform-specific code many times over optimized for each device, developers can reuse previously written code for later projects or for porting to other platforms.
Faster deployment: Other benefits are coming out of cross-platform way of development, deployment speed decreases thanks to tools, that allows to compile app for any supported device in several clicks and as a result, development cost decreases, because company needs to hire less developers.
Usually, cross-platform engines such as Unity have great community support, which can be very important because official documentation does not always answer all the questions developers may have. Also, many plugins are developed by the community to provide even wider functionality.

Cross-platform development
Cross-platform way of development

Disadvantages of cross-platform development

Developing across multiple platforms can often result in slower performance. Due to differences in development practices, the resulting code is not always optimal for each device. On high-end devices, the game could run extremely fast, but on devices with lower specs it could run much slower and with an undesirable frame-rate.
Many games may only be able to achieve sub-optimal graphical fidelity. Some of the cross-platform game-development frameworks do not provide full access to built-in mobile GPUs. Fortunately, other game-centric development platforms like Unity do provide such features.
Cross-platform development can bring about incongruent UI/UX elements. Many applications and even games use native visual OS elements, which could look inappropriate on other systems. This adds additional work for developers and makes it a little bit harder to track all necessary items that needs to be optimized.

Unity overview and advantages

Unity is a modern cross-platform engine designed to create games and applications. With this engine, you can develop applications not only for computers but also mobile devices, game consoles, and other devices. Let’s talk a little about the characteristics of the engine. Firstly, it is worth noting that there is a game engine built into the Unity IDE; in other words, you can test your game without leaving the editor. Secondly, Unity supports importing a huge number of different formats, which allows game developers to design the models themselves in a more convenient environment and use Unity for its intended purpose: product development. Third, Unity uses C#, and JavaScript for writing scripts, which are two of the most popular programming languages at the moment. Thus, Unity is an actual platform with which you can create your own applications and export them to different devices, whether mobile, console, or desktop. To create a game, you at least need to know one of the available programming languages: C#, JavaScript, or Boo.
At the moment, Unity takes a leading position not only as a cross-platform engine, but as a regular tool to develop various games for any platform.
Just to make things clear, let’s look at all the advantages that Unity provides to the developer:

General:

As mentioned earlier, Unity supports C#, JavaScript, or Boo for creating scripts. A full-fledged physics engine along with realistic animation support allows users to develop stylish, graphically intensive scenes. In addition, there is an integrated animation editor. Unity is not only developer-friendly; its visual scene editor makes game development a piece of cake even for non-programmers! 64-bit support adds a great performance boost and significantly lowers compilation speeds. The code editor is surely the most important tool for a developer, and Unity provides truly a great editor, both flexible and extensible.

Graphics:

Graphics in games are what attract people on a subconscious and superficial level, and Unity provides rich possibilities in terms of supporting latest technologies in visuals: realistic physics-based shading, particle system, global illumination in real-time, and full-screen post-processing effects. This is available even in the free edition of Unity. We should also note that Unity is one of several cross-platform engines that supports low-level access to the rendering, which gives the developer full access to hardware acceleration on any platform.
For a long time, Unity only supported developing 3D games, but in recent updates it has also become suitable for developing 2D games! These updates provided developers with tools for automatic sprite cutting, automatic sprite animation, and a fully working 2D physics engine.
Multi-threaded simulation on platforms that support threads allows users to simulate accurate physics. In addition, the Cloth component combined with super-accurate collision detection allows animators and coders to bring characters’ clothing to life.

Native vs Crossplatform apps features

Throughout 2015, Unity took the leading position in mobile game development. While it may seem perfect, there are some drawbacks, such as the lofty price for the Pro version and speed issues on some platforms, but they are generally negligible compared to the benefits of the platform.

Our experience in Unity development

Our Custom Development Team has great experience developing Unity games in both 3D and 2D.

For example, we’ve developed Epic Ball Wars both for iOS and Android. You can check it out in the video below:

It features cross-platform multiplayer as well as native controls for each platform.

Developing with Unity unlocks a whole new dimension for sketching your imagination on the digital canvas. Our developers use Unity both for extremely fast prototyping and developing a fully functional game that is ready for market. We accumulated a lot of experience on previous Unity-based projects, and we put all our efforts in creating thrilling games for all supported platforms. Our experienced Unity game developers can produce awesome games of any genre as per your need. You can hire our custom development team to develop an amazing and magnificent Unity game like those in the following video:

User experience is the core of any game, so if you’re interested in developing feature-reach, exciting games in 2D or 3D, contact us and discuss your project with our experts and business analysts. We are here for all your game development needs using Unity!