Компьютерные игры давно вошли в нашу жизнь. Переносные устройства для игр тоже существуют давно. И, конечно же, с появлением мобильных телефонов, КПК и других носимых устройств игры проникли и на них. С развитием смартфонов (смеси КПК и мобильного телефона) игры на них становились всё более требовательными и графически интересными. Индустрия игр настолько развилась, что игры типа Genshin Impact или Fortnite отлично работают на смартфонах, а Doom (часто благодаря Raspberry Pi) запускают даже на тостере или кишечной палочке. Однако сейчас разговор пойдёт скорее об энтузиастах и других ОС.

За последние два года несколько российских компаний, разрабатывающих операционные системы (ОС), получили кратный рост благодаря уходу западных компаний и курсу на импортозамещение. Одна из таких компаний,Открытая мобильная платформа, разработчик мобильной операционной системы «Аврора» совместно с организацией развития видеоигровой индустрии (РВИ), весной 2024 года провела свою первую конференцию для создателей мобильных игр, где были продемонстрированы игры на отечественной мобильной операционной системе. Именно этот факт сподвиг меня пообщаться со специалистами компании, узнать, как портировали игры, какие тайтлы вообще работают на российской мобильной системе, и написать этот материал. Приятного чтения!

Что такое игра для персонального компьютера?

Игра для персонального компьютера — это приложение со своими правилами создания, включая компоновку кода, ресурсов, жизненный цикл и так далее. Однако главное отличие заключается в том, что в играх делается сильный упор на визуальную часть и работу графики.

Разработчики игр часто используют сторонние графические движки или создают свои, чтобы наилучшим образом показать графическую составляющую игры. Например, условному приложению какого‑то магазина не нужно полностью использовать возможности, предоставляемые операционной системой и аппаратной составляющей устройства. SDK этих приложений используют стандартный набор виджетов, чего для игр будет недостаточно.

Поэтому у создателей игр есть два пути: либо иметь свою внутреннюю разработку движка, которую нужно портировать на соответствующую платформу, либо использовать сторонние решения, работающие на этой платформе, такие как Unreal Engine или Unity.

Портирование игр на ОС Аврора было вопросом времени. Этим могли заняться сторонние разработчики или энтузиасты. В случае с «Авророй» опередили всех собственные разработчики из «Открытой мобильной платформы». Эти порты делались в нерабочее время, как пет‑проект. Основная задача этих специалистов — создание операционной системы.

У ОМП есть SDK, который позволяет собирать и разрабатывать приложения под все типы устройств и различные архитектурные процессоры, на которых работает «Аврора». Разработчики ОМП считают, что это самое сильное отличие «Авроры» от Linux‑десктопов, поскольку Linux Desktop не предоставляют никаких инструментов, и разработчику приходится самостоятельно их находить, настраивать и проверять, заработают они или нет.

Сергей Аносов

Директор по продукту ОС «Аврора»

«По‑моему, мы сейчас единственные, кто на российском рынке предоставляет инструменты разработки (SDK) для своей мобильной операционной системы. Причём SDK разных уровней: и для создания приложений, и для системной разработки, а также с возможностью интеграции в CI/CD. Мы в этом отношении близки к подходу, предлагаемому операционными системами iOS или Android, которые предоставляют свои SDK».

Три группы игр

Для удобства я разделю компьютерные игры на три группы. Хочу оговориться: деление условное, только в рамках этого материала, вообще игры делить можно по самым разным критериям. В этом материале решено было взять только одну определённую классификацию.

Итак, вернёмся к разделению на группы. Первая — это браузерные игры. Их сейчас ведь не маленькая доля. Чаще всего это казуальные тайтлы, например «Весёлая ферма». Для этих игр не нужен какой‑то сложный графический движок.

Вторая группа — игры с более серьёзным движком (как инди, так и А‑, АА‑, ААА‑сегменты). Такие игры требуют портирования этого движка.

И третья группа — ретро‑игры. У этих игр тоже есть свои движки, но для современных устройств они считаются нетребовательными по мощностям.

Например, iOS разрешили размещать ретро‑игры в магазине. Существуют симуляторы различных приставок: от PlayStation до Sega, Dendy и так далее. И вот это тоже на самом деле хорошее направление, особенно в мобильных телефонах, когда люди хотят при помощи своего телефона вспомнить детство и поиграть в какую‑то любимую игру — недаром Apple этим озадачилась.

Браузерные игры

С первой группой, а именно с браузерными играми, всё просто: — они должны запускаться на любом устройстве с установленным современным браузером, независимо от операционной системы и аппаратной платформы.

С другими двумя группами ситуация интереснее с точки зрения портирования. Если говорить о «Авроре», то пока силами энтузиастов портированы в основном ретро‑игры, включая тайтлы с приставок Sega, NES и более требовательные, например Quake и Doom 3. Однако стоит отметить, что это всё равно игры даже не 2019 года выпуска.

Игры с более серьёзным движком

Начнём с игры типа Doom 3.

Как мне объяснил Ярослав Андреев, один из разработчиков‑энтузиастов игр, портированные тайтлы в основном написаны на C++. И преимущество «Авроры» в том, что С++ — это родная платформа для ОС. Для того же Android разработка приложений происходит на Java, для iOS — на Swift. Для этих языков нужно заниматься более сложным портированием, многое переделывать с нуля.

Также надо понимать, что часть переносов на другие ОС и платформы — не просто порты, а open‑source проекты этих игр (Quake, Doom 3, Half‑Life и так далее). И чтобы попробовать работу игр на ОС, надо скачать исходники этих проектов и собрать под конкретную систему. Когда разработчики собирают эти проекты, находятся дефекты, недостатки в совместимости ОС и игры. Эти недостатки исправляют и приводят тайтл к нормальному виду, чтобы всё правильно отображалось на ОС.

Отдельной доработки требует подключение джойстиков, но там тоже не так сложно — по известным интерфейсам, что есть в «Авроре», подсоединяются input в определённую игру.

Разработчики мне объяснили, что «Аврора» поддерживает OpenGL (OpenGL ES3 и так далее), то есть графические ускорения и интерфейсы для разработчиков игр. Это нужно, чтобы показать игровым разработчикам, что на ОС от ОМП можно запускать более серьёзные игры, нежели простые казуалочки.

Портирование RetroArch

Идея с портированием Doom 3, Half‑Life вдохновила другого разработчика, Ильдара, на портирование RetroArch. Идея была в том, чтобы в короткое время заиметь большое количество игр без переноса каждой из них. И так как в RetroArch есть несколько эмуляторов ретроконсолей, то благодаря его переносу на «Аврору» сразу добавляется много игр с разных платформ.

 

 

Портирование RetroArch на ОС «Аврора» началось с выделения особенностей и поддерживаемых технологий. Был подготовлен .spec файл и патчи для работы на ОС «Аврора».

Основные трудности возникли при прохождении проверки безопасности ОС (rpm‑validator) и подготовке к работе в «песочнице» (изменение путей). Также была проблема с некорректной регулировкой звука: RetroArch по умолчанию использовал формат float для звука, но это было исправлено в обновлениях ОС.

После добавления RetroArch было решено перенести эмуляторы таких консолей, как Super Nintendo, Nintendo Entertainment System, Sega Mega Drive, Sega Genesis, Game Boy Advance и PlayStation 1. Добавление других эмуляторов пока не планируется, поскольку необходимо учитывать технические параметры смартфона. Тем не менее, технически возможно перенести и более серьёзные эмуляторы, учитывая, что современные игровые движки переходят на новый Vulkan API, поддержка которого необходима для современных игр.

 

Заключение

Единственное, в чём проблема разработки игры под «Аврору» — это позиционирование платформы. «Аврора» позиционируется как B2B‑система, игровой рынок — B2C. Поэтому пока всё находится в состоянии переговоров, но подвижки уже есть, и, как сказали специалисты ОМП, уже приходят запросы от игровых студий. Недавно уже были новости об установке на консоль ОС «Аврора» и ОС Alt Linux, и «Альт Мобаил» установили на одну из массмаркетовских консолей. Поэтому не удивлюсь, если скоро больше игр портируют на российские ОС и сами консоли. На Хабре вышел отличный материал, на мой взгляд, по созданию отечественной консоли с «Авророй» энтузиастом.

Однако надо понимать, что основная проблема развития той или иной платформы как игровой — количество игр. Я очень рад, что на «Аврору» уже можно их портировать. И в целом, считаю правильным вектором, когда для мобильной системы делаются игры, потому что смартфон много у кого есть, но вот именно позиционирование и количество игр дают больше всего ступеней для развития платформ. Пока портированием занимаются энтузиасты — это скорее спортивный интерес. Будем ждать, когда бизнес начнёт в коммерческих целях портировать игры.

Кстати, из интересного, в апреле 2024 года РВИ и F+ объявили о возможном тестовом финансировании портирования видеоигр на ОС «Аврора». Сейчас идёт сбор заявок на разработку двумерных игр под планшет F+ T1100 с «Авророй». Характеристики планшета слабенькие: МТ8788, 8 ядер, 2 ГГц, RAM 4 ГБ + ROM 64 ГБ или RAM 6 ГБ + ROM 128 ГБ, MicroSD до 512 ГБ. Потому и игры надо разработать нетребовательные. Компания F+ обещает следующие устройства на G99, а разработанные игры будут предустановлены на планшеты и телефоны. Поэтому F+ с РВИ готовы предложить грант (невозвратный) на портирование игр.

Комментарии (21)


  1. CitizenOfDreams
    26.09.2024 19:08
    +5

    Астрологи объявили неделю ОС "Аврора"...


  1. Naves
    26.09.2024 19:08

    Статью пролистал, самого главного не увидел. Как Fallout 2 запускали?

    У меня первые два Fallout не стартовали даже на win10 планшете. Ругались на отсутствие мыши, черт возьми. Шаманства с restoration project не помогли. Пробовал даже поставить виртуальный драйвер мыши. Ни в какую. Классический способ установки драйвера в системе от устройства которого нет, не заработал. Либо в win10 так уже совсем нельзя, либо просто список драйверов урезанный, нету никаких ps/2 compatible 2-button mouse.


    1. unreal_undead2
      26.09.2024 19:08

      Вот это и это не поможет?


  1. saag
    26.09.2024 19:08

    Игровой рынок на ОС Аврора сильно узкий, владеет таким смартфоном очень ограниченное количество пользователей, выручка никакая, а программистам надо зарплату, или не надо?


  1. 0Firebug0
    26.09.2024 19:08
    +1

    Вопрос а зачем !!!?!?!


    1. sergopl
      26.09.2024 19:08

      Импортозамещение, Вы не понимаете...

      Как я понял, пытаются готовые исходники сделанные другими людьми перекомпилировать, возникают проблемы...


    1. Driantic
      26.09.2024 19:08

      появятся "защитники" не в кино, а в играх


  1. monowar
    26.09.2024 19:08

    "ОС «Аврора» — российская мобильная операционная система на базе Linux". Из открытых источников.

    В моем понимании разработка - создание продукта с нуля, начиная с концепции. Повесить бахрому на стекло, розочку на рычаг коробки может считаться разработкой? На фоне вышесказанного смешно читать новости о том, как кто-то портирует игры на линуксоподобную ОС. Зайдите в Стим, вы приятно удивитесь.


    1. ZvoogHub
      26.09.2024 19:08
      +1

      Вот эткуда это у вас в голове? На 2024г все оси кроме виндовс это вариации юниха.

      iOS для маков базируется на FreeBSD (https://en.wikipedia.org/wiki/FreeBSD) - это круто.

      Ubuntu является одним из дистрибутивов Linux - замечательно.

      Android основан на Linux - прекрасно.

      Собственный сертифицированный дистрибутив - нет, надо накопать руды на болоте, выковать в кузне ПРОЦЕССОР, написать под него СИСТЕМУ в машинных кодах в HEX-редакторе и поставлять всё это на дискетах. Только тогда это будет по-настоящему. Иначе неспортивно.

      Какой-то комплекс неполноценности.


      1. monowar
        26.09.2024 19:08
        +1

        Возможно, вам виднее. В моем бытовом понимании разработка ОС - не есть наклейка своего шильдика, установки обоев и замены ярлычков. И ваши приведенные примеры, на мой взгляд, очень сильно отличаются по степени вложенности ресурсов с тем, что называется ОС Аврора и иже с ними. Заранее соглашусь со всеми последующими аргументами.


        1. ZvoogHub
          26.09.2024 19:08

          Я указал Ubuntu как один из многих дистрибутивов. Оно для вас ОК, а вот Аврора (точно такой же адаптированный дистрибутив) для вас не ОК.

          Значит дело не в оценке а в типовой позиции "все они дураки один я знаю как правильно, но пока ничего не умею" - это контрпродуктивно. Токсично, как щас говорят.


          1. unreal_undead2
            26.09.2024 19:08

            Вопрос скорее в том, что добавили в Аврору поcле Sailfish.


            1. ZvoogHub
              26.09.2024 19:08

              почему таких вопросов у вас не возникает к производителям Ubuntu?

              Ответ выше.


              1. unreal_undead2
                26.09.2024 19:08

                Возникает, но ответы на них на поверхности (хотя бы snap, как бы к нему не относиться). Конкретики про Аврору не вижу, насколько знаю упомянутые в статье нюансы программного стека есть в Sailfish (если ошибаюсь, был бы рад услышать детали).


            1. KawaiiSelbst
              26.09.2024 19:08

              Нативную поддержку Flutter и API для удобной работы с OS из под него


              1. fulcrum7
                26.09.2024 19:08

                Намного шире


            1. fulcrum7
              26.09.2024 19:08
              +1

              Другую модель безопасности (подписи, доверенные источники, контроль целостности и изоляции), другое API, другой интерфейс, другой жизненный цикл приложений, даже компилятор другой ?


  1. domix32
    26.09.2024 19:08

    И преимущество «Авроры» в том, что С++ — это родная платформа для ОС.

    Хм, а что с изоляцией приложений в таком случае? Одна из причин почему мобильные ОС использовали кастомные Java машины - проблемы с безопасностью нативного кода, который способен трогать абсолютно любую память, в отличие от VM-based, которые трогают только рантайм VM. B2B без изоляции звучит как отличный план на окуклить одну из B какими-нибудь шифровальщиками или угнать деньги из банковского приложения, прочитав необходимые ключи из памяти.


    1. fulcrum7
      26.09.2024 19:08

      Вы считаете, что язык определяет откуда память процессу выделяется ? Нет, это не так. В вашей логике все сервера на плюсах опасны .


      1. domix32
        26.09.2024 19:08

        сервера на плюсах опасны 

        Ну, так оно и есть, по большому счёту. Причём не обязательно даже С++, но и что повыше уровнем вполне может быть уязвимо - где-то в память соседа подсмотреть, где-то сисколы позвать от рута, где-то случайно окружение наружу слить. Именно поэтому существует база CVE и миллион различных способов тестирования приложений и методологии написания приложений типа FIPS / MITRE.


        1. fulcrum7
          26.09.2024 19:08

          Объясните механизм, как посмотреть память соседа ? Давайте на примере Linux и кода c++ )))

          Ну или как помогает с++ "сисколы позвать от рута", давайте на практике