How enthusiasts ported games to the Aurora mobile system
Computer games have long been part of our lives. Portable gaming devices have also been around for a long time. And, of course, with the advent of mobile phones, PDAs and other devices, games penetrated them as well. With the development of smartphones (a mixture of PDA and mobile phone), games on them became more and more demanding and graphically interesting. The gaming industry has evolved so much that games like Genshin Impact or Fortnite run great on smartphones, and Doom (often thanks to a Raspberry Pi) can even be run on a toaster or E. coli. However, now the conversation will go more about enthusiasts and other OS.
Over the past two years, several Russian companies that develop operating systems (OS) have experienced multiple growth thanks to the care of Western companies and the course of import substitution. One such company, the open mobile platform, the developer of the mobile operating system Aurora, together with the organization of the development of the video game industry (RVI), held its first conference for the creators of mobile games in the spring of 2024, where games on the domestic mobile operating system were demonstrated. It was this fact that prompted me to talk with the company’s specialists, find out how the games were ported, which titles generally work on the Russian mobile system, and write this material. Happy reading!
What is a PC game?
A PC game is an application with its own rules of creation, including code layout, resources, life cycle, and more. However, the main difference is that the games put a strong emphasis on the visual part and the work of the graphics.
Game developers often use third-party graphics engines or create their own to best showcase the game’s graphical component. For example, a conditional application of a store does not need to fully use the capabilities provided by the operating system and hardware of the device. The SDKs of these programs use a standard set of widgets, which will not be enough for games.
Therefore, game creators have two options: either have their own in-house engine development to be ported to the appropriate platform, or use third-party solutions that work on that platform, such as Unreal Engine or Unity.
Porting games to the Aurora OS was a matter of time. This could be done by third-party developers or enthusiasts. In the case of “Aurora”, their own developers from the “Open Mobile Platform” were ahead of everyone. These ports were made during non-working hours as a pet project. The main task of these specialists is to create an operating system.
ZMP has an SDK that allows you to assemble and develop applications for all types of devices and various architectural processors on which Aurora works. ZMU developers believe that this is the strongest difference between Aurora and Linux desktops, because Linux Desktop does not provide any tools, and the developer has to find them, configure them and check whether they work or not.
Sergey Anosov
Aurora OS Product Director
“In my opinion, we are currently the only one on the Russian market that provides development tools (SDK) for its mobile operating system. Moreover, SDKs of different levels: both application creation and system development, and even with the possibility of integration into CI/CD. We are close in this respect to the approach offered by the iOS or Android operating systems, which provide their SDKs.”
Three groups of games
For convenience, I will divide computer games into three groups. I want to make a reservation: the division is conditional, only within the framework of this material, in general, games can be divided according to various criteria. In this material, it was decided to take only one specific classification.
So, let’s return to the division into groups. The first is browser games. After all, there is not a small share of them now. Most often, these are casual titles, for example, “Fun Farm”. These games do not require any complex graphics engine.
The second group is games with a more serious engine (both indie and A-, AA-, AAA-segments). Such games require porting of this engine.
And the third group is retro games. These games also have their own engines, but for modern devices they are considered undemanding in terms of power.
For example, iOS allowed retro games to be placed in the store. There are simulators of various consoles: from PlayStation to Sega, Dendy and so on. And this is also a really good direction, especially in mobile phones, when people want to use their phone to remember their childhood and play some favorite game – no wonder Apple was confused by this.
Browser games
With the first group, namely browser games, everything is simple: they should run on any device with a modern browser installed, regardless of the operating system and hardware platform.
With the other two groups, the situation is more interesting from the point of view of porting. Speaking of Aurora, so far enthusiasts have ported mostly retro games, including titles from Sega consoles, NES and more demanding ones, such as Quake and Doom 3. However, it is worth noting that these are still games not even from 2019 .
Games with a more serious engine
Let’s start with a game like Doom 3.
As Yaroslav Andreev, one of the enthusiastic game developers, explained to me, the ported titles are mostly written in C++. And the advantage of “Aurora” is that C++ is a native platform for the OS. For the same Android, the development of programs takes place in Java, for iOS – in Swift. For these languages, you need to deal with more complex porting, rework a lot from scratch.
It should also be understood that part of the transfers to other OSes and platforms are not just ports, but open-source projects of these games (Quake, Doom 3, Half-Life, etc.). And in order to try the operation of games on the OS, you need to download the sources of these projects and compile them for a specific system. When developers assemble these projects, defects, flaws in the compatibility of the OS and the game. These flaws are corrected and bring the title to a normal appearance so that it is displayed correctly on the OS.
The connection of joysticks requires a separate modification, but it is not so difficult there either – according to the well-known interfaces that are in “Aurora”, input is connected to a certain game.
The developers explained that Aurora supports OpenGL (OpenGL ES3, etc.), which means graphics acceleration and interfaces for game developers. This is necessary to show game developers that more serious games than simple casual games can be run on the ZMP OS.
RetroArch porting
The idea of porting Doom 3, Half-Life inspired another developer Ildar to port RetroArch. The idea was to get a large number of games in a short time without having to port every one of them. And since RetroArch has several emulators for retro consoles, its porting to Aurora immediately adds many games from different platforms.
The porting of RetroArch to Aurora OS started with highlighting the features and supported technologies. A .spec file and patches were prepared to work on the Aurora OS.
The main difficulties arose during the OS security check (rpm-validator) and preparation for work in the “sandbox” (changing paths). There was also an issue with incorrect sound adjustment: RetroArch defaulted to float for sound, but this was fixed in an OS update.
After the addition of RetroArch, it was decided to transfer the emulators of such consoles as Super Nintendo, Nintendo Entertainment System, Sega Mega Drive, Sega Genesis, Game Boy Advance and PlayStation 1. There are no plans to add other emulators yet, as the technical parameters of the smartphone must be taken into account. However, it is technically possible to transfer more serious emulators, given that modern game engines are moving to the new Vulkan API, the support of which is necessary for modern games.
Conclusion
The only problem with developing a game for Aurora is the positioning of the platform. “Aurora” is positioned as a B2B system, the gaming market is B2C. Therefore, everything is still in a state of negotiations, but there is already a shift, and, as ZMU experts said, requests from game studios are already coming. Recently, there were already news about the installation of Aurora OS and Alt Linux OS on the console, and Alt Mobile was installed on one of the mass market consoles. Therefore, I will not be surprised if soon more games are ported to Russian OSes and the consoles themselves. In my opinion, Habri published an excellent article about the creation of a domestic console with Aurora by an enthusiast.
However, it is necessary to understand that the main problem of the development of this or that platform as a game is the number of games. I am very glad that they can already be ported to Aurora. And in general, I consider it the right vector when games are made for a mobile system, because many people have a smartphone, but it is the positioning and number of games that give the most degrees for the development of platforms. For now, porting is done by enthusiasts — it’s more of a sporting interest. Let’s wait for business to start porting games for commercial purposes.
By the way, interestingly, in April 2024 RVI and F+ announced the possible test financing of porting video games to the Aurora OS. Applications are currently being collected for the development of two-dimensional games for the F+ T1100 tablet with Aurora. The characteristics of the tablet are weak: MT8788, 8 cores, 2 GHz, RAM 4 GB + ROM 64 GB or RAM 6 GB + ROM 128 GB, MicroSD up to 512 GB. That’s why games should be designed to be undemanding. The company F+ promises the following devices on the G99, and the developed games will be installed on tablets and phones. Therefore, F+ from RVI are ready to offer a grant (irrevocable) for porting games.