Анрил энджин для андроид

Unreal Engine 4 v1.3

Хотите самостоятельно создавать красивые и увлекательные игры? Тогда данный движок как раз для вас!

Характеристика

На базе Unreal Engine 4 было создано множество великолепных игр, которые покорили миллионы игроков из самых разных стран мира. Изначально движок использовался для создания шутеров от первого лица. Однако столь высокая функциональность и адаптивность попросту не могли остаться незамеченными. Теперь он доступен и простым обывателям, которые хотят попробовать себя в области разработки игр. Это открывается совершенно новые возможности перед заядлыми фанатами гейминга.

Особенности

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

Примечательно, что движок позволяет создавать не только мобильные, но и двухмерные приложения.

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

Источник

Setting Up Android SDK and NDK for Unreal

How to set up your Android development environment for Unreal 4.25 and later

Unreal Engine 4.25 and later uses the Android Software Development Kit (SDK) distributed with Android Studio for all essential Android development components, including the Android Native Development Kit (NDK). This page provides a walkthrough for setting up Android Studio and ensuring that Unreal Engine recognizes these components correctly, and some troubleshooting tips for managing NDK installations and earlier engine builds.

You should make sure that the Unreal Editor and the Epic Games Launcher are both closed to ensure that there are no problems with either the installation of NDK components or setting your environment variables for the engine.

If you are moving to Unreal 4.25 from 4.24 or earlier, we recommend that you uninstall CodeWorks for Android and any existing NDK components, and delete the folder CodeWorks was installed to. Otherwise, Android Studio will continue to use the previous CodeWorks installation folder for SDK updates.

The default installation directory for CodeWorks is C:/NVPACK. Make sure this folder is deleted when you finish uninstalling CodeWorks.

If you need to support an earlier installation of Unreal Engine while also maintaining an installation of Unreal 4.25 or later, refer to the sections on Manually Targeting SDK Paths and Android NDK Compatibility below.

1. Installing Android Studio

Before setting up the required SDK and NDK components on your computer, you need to install Android Studio version 3.5.3.

Navigate to the Android Studio Archive in your web browser. Scroll down to Android Studio 3.5.3, click to unfold the dropdown, and download the appropriate installer or zip file for your operating system.

Click image for full size.

Run the Android Studio installer. In the Welcome to Android Studio Setup dialog, click Next to continue.

Click image for full size.

In the Choose Components dialog, click Next to continue. You can leave the default components enabled.

Click image for full size.

In the Configuration Settings dialog, select an appropriate install location and click Next to continue. We recommend using the default location.

Click image for full size.

In the Choose Start Menu Folder, click Install to begin the installation process.

Click image for full size.

When the installation finishes, click Next to begin setting up components.

Click image for full size.

When setup completes, make sure the Start Android Studio box is checked and click Finish to exit the installer.

2. Setting Up Android Studio for First-Time Use

When you start your new install of Android Studio for the first time, follow these steps:

When the Import Android Studio Settings dialog appears, select do not import settings, then click OK to continue.

When the Data Sharing dialog appears, choose whether or not you want to send usage statistics to Google. This is an option you may choose at your discretion, and either choice will continue to the next step.

Click image for full size.

The Android Studio Setup Wizard will appear. Click Next to continue. If you are prompted for an update, click the X button to dismiss the prompt, as you need to specifically install version 3.5.3.

Click image for full size.

In the Install Type dialog, select Custom and click Next.

Читайте также:  War and order hack android

Click image for full size.

In the Select UI Theme dialog, choose your preferred theme and click Next.

Click image for full size.

In the Verify Settings dialog, check to make sure that you are using the default SDK path. Click Finish to finalize your setup and begin downloading components.

Click image for full size.

If you do not use the default SDK path, it is possible for SetupAndroid.bat to fail during a later step, as it will be unable to locate needed files.

When components are finished downloading, click Finish again to end setup.

Finalizing Android Studio Installation on Your OS

If you are on Windows, restart your computer.

If you are on Linux, close your terminal window and reopen it.

If you are on MacOS, you can either close your terminal window and reopen it, or log out and log back in.

3. Setting Up Unreal to Use Android NDK r21b

Navigate to your Unreal Engine 4 install directory — for example, C:/Program Files/Epic Games/UE_4.25.

Open Engine/Extras/Android.

Inside this directory, run the SetupAndroid script appropriate for your operating system. SetupAndroid.bat is for Windows, SetupAndroid.command is for Mac, and SetupAndroid.sh is for Linux.

Click image for full size.

You will be prompted to accept the Android SDK license agreement. Type Y and press Enter to accept.

Click image for full size.

When the installation completes, press any key to dismiss the command prompt.

Restart your computer for all changes to take effect.

This script will download and install NDK r21b for you in your Android home directory. The install directory for NDK should be C:/Users/[Username]/AppData/Local/Android/SDK/ndk/, where «username» is your login name for your computer. You should see a folder containing NDK r21b.

In the event that you receive an error stating that repositories.cfg cannot be loaded, navigate to the folder where it is expected (usually C:/Users/[Username].android/repositories ) and create an empty repositories.cfg file. Android setup should then proceed normally.

If you receive an error stating that a package called lldb;3.1 could not be loaded, open the SetupAndroid script with a text editor, and locate the line of code that reads:

Remove the entry in this list for lldb;3.1 , but leave the others. This will enable setup to run normally. This issue is addressed in 4.25.1.

Manually Targeting SDK Paths

If you followed the above how-to sections correctly, Unreal Engine will automatically associate the SDK paths for the Android SDK, the current Android NDK version, and the Java Development Kit (JDK). However, if you are using an earlier version of the Unreal Engine alongside Android Studio, you may need to manually target your SDK paths to be compatible. This is most likely to be the case if you have an installation of Unreal Engine 4.25 alongside an earlier version that used CodeWorks.

Do not install CodeWorks and Android Studio at the same time, otherwise you will receive errors. If you need to support an earlier version of Unreal Engine alongside 4.25 or later, use the Android Studio setup in this document, then follow the instructions in this section.

You can find the SDK paths by opening Edit > Project Settings, navigating to the Platforms > Android > Android SDK section.

When these fields are left blank, they fall back on a set of default paths used by the installation process in the previous sections. If you have multiple installations of these components, or have installed them in non-standard directories, you can manually provide their paths here. Alternatively, you can open DefaultEngine.ini and provide them under the [/Script/AndroidPlatformEditor.AndroidSDKSettings] section.

If the entries for SDKPath , NDKPath , and JDKPath do not exist in your DefaultEngine.ini, they will use the default path to the Android home directory.

Android NDK Compatibility

The following table shows which NDK versions are required or compatible with different versions of Unreal Engine.

Источник

Портирование UE4.23 игры на Android

Хочу поделиться опытом портирования нашей игры The Unexpected Quest на Андроид. В качестве движка использовали Unreal Engine 4. Родная версия 4.23, об особенностях портирования игры на этой версии и пойдет разговор ниже.

Картинка для привлечения внимания

Бредисловие

Хочу сразу отметить, что при разработке игры мы вообще не ориентировались на мобильную аудиторию. Поэтому никаких KPI, MAU, ARPU, RGB, LGBT и прочего не будет. Игра вышла в Steam, Nintendo Switch и казуальных порталах. Вот это наша аудитория и по другому мы пока продавать не умеем.

Почему решили выпустить? А потому что можем: аккаунт разработчика есть (тестировали как-то Unity), анрил с андроидом дружит, ну и пощупать что-нибудь новенькое хотелось. Независимо от результатов продаж, я все равно в выигрыше: буду знать тонкости работы с этой мобильной платформой.

Портирование я начал 4 апреля, а закончил 16 июня. Итого два с половиной месяца ненапряжной работы. В этот момент в приоритете был новый DLC, поэтому срок можно смело сократить до 2-х месяцев. А еще очень много времени заняло оформление странички: подготовка скриншотов, тексты и иконки.

В качестве основы использовалась версия движка 4.23. Это не самый лучший вариант, чтобы избежать множества проблем нужно использовать самую свежую версию движка. Но, у меня была «уважительная причина»: все новые версии выдавали на моем телефоне Redmi 5 Plus на 10 fps меньше. И хотя на планшете Galaxy Tab A все было нормально, я решил не рисковать. Попытки с наскока разобраться с этой ситуацией не увенчались успехом, а тратить время и зарываться в нее с головой не хотелось.

Читайте также:  Usb ntfs для андроид

Подготовка окружения

Операционная система Windows 10. В качестве IDE использовалась Visual Studio 2019 (на момент финального билда игры версии 16.10.2). Как написал выше, движок Unreal Engine 4, версия 4.23. Установлен через лаунчер (т.е. я не собирал движок из сырцов), все галочки сняты, кроме Engine Source и Android. А вот дальше начинаются интересности.

Дело в том, что современные версии движка, начиная с 4.25, работают через Android Studio. А вот старые версии, в том числе и моя, через NVIDIA CodeWorks (совместимость можно проверить в Release Notes). И самое поганое, что NVIDIA закончила поддержку этого набора SDK.

С этого момента начинаются танцы с бубном. Во-первых, этот самый NVIDIA CodeWorks нужно скачать, причем определенной версии 1R7: заходим в архивы с инсталляторами. И видим, что без присоединения к программе NVIDIA Developer Program, скачать его не дадут. Нужно завести аккаунт, присоедниться к программе и повторно зайти в архив. Только после этого появится заветная ссылка.

Далее можно прочитать старую статью об установке этого пакета. Если сделать все как в ней написано, то игру то вы соберете. И даже зальете на свой телефон. Но, google ее не примет: минимальный уровень API в Google Play равен 28, а установится только 26-й. Поэтому вносим свои коррективы. И так, устанавливаем NVIDIA CodeWorks и в какой-то момент установки появится такое окошко:

Component Manager в NVIDIA CodeWorks

Менять можно только столбец Action, по нему и тыкаем. Если места много, то можно установить все. Если нет, то все дерево Developer Tools срубаем, как и всю документацию. Устанавливаем весь предложенный Android Toolchain, базовый Android SDK и дерево Android 8.0.0 (API 26). Все остально отключаем.

Теперь нужно избавиться от API 26 и поставить что-нибудь новее. Идем в папку, в которую установили NVIDIA CodeWorks и ищем в ней Android SDK Manager: android-sdk-windows\tools\android.bat .

Android SDK Manager

Все что он предлагает удалить — удаляем. Заодно сносим и ранее установленный API 26. Я работаю с Android 10 (API 29), можно накатить все, но достаточно будет и SDK Platform. Все что утилита предлагает обновить — обновляем.

Ребут, молельный танец и можно программить.

Подготовка проекта игры

Тут все дико зависит от проекта, поэтому рассказ только про мой опыт. Без большого тестового стенда устройств, гарантировать запуск игры и приемлемый FPS очень сложно. Поэтому платная версия отпадает, надо дать игроку «пощупать» игру преждем чем определяться с покупкой. Значит будет внутренняя покупка и нужен плагин OnlineSubsystemGooglePlay.

Теперь интересное. Без изменений он не подойдет, получите от гугла варнинг в духе: «We’ve detected that this app is using an old version of Google Play Billing». Вроде как до ноября работать будет, но потом все отвалиться. Создаем папку Plugins в своем проекте (если ее нет) и копируем в нее плагин из движка. Путь к плагину в движке такой: Engine\Plugins\Online\Android\OnlineSubsystemGooglePlay . У себя в проекте городить сложные пути не надо, просто в Plugins закинуть и все.

В скопированном плагине открываем файл: Plugins\OnlineSubsystemGooglePlay\Source\OnlineSubsystemGooglePlay_UPL.xml и вставлем в тег root такой код:

Например, после закрытия тега . Все, google задобрили. С покупкой будет еще один маленький нюансик, о котором я расскажу позже. Еще можно удалить папку Intermediate в плагине, для успокоения совести и гарантированной пересборки при следующей компиляции.

На этом подготовка закончена. Можно заново генерировать sln-файл для проекта игры, и открывать его в студии. По идее компиляция не должна добавить новых проблем, так как редактор собирается для x64 платформы майкрософтовским cl. А вот когда собираешь андроид сборку, можно огрести проблем от компилятора, ведь сборка идет в gcc. Но, у меня их небыло: все ошибки я отловил когда готовил сборку для macOS.

Project Settings…

Читаем документацию, куда же без нее? Мне этого не хватило… И остальной документации тоже. Я не буду расписывать настройки для отладки, поговорим только о Shipping версии. Поэтому в разделе Project -> Packaging выставляем Build Configuration в Shipping и ставим галки на Full Rebuild и For Distribution:

Далее идем в Platforms -> Android и тут начинается самое веселье. Очевидные вещи я пропущу, все можно найти на просторах интернета, ну или спросить тут. А вот на нехороших моментах остановлюсь подробнее.

Первое — это Store Version. Она должна быть уникальной, для каждой сборки которую мы готовим. В Google Play их должно быть минимум две: 32- и 64-битные. Эпики заботливо дали дополнительные смещения для этих сборок:

Store Version offset

Вот только они не работают. Точнее у меня работало так, что 64-битная сборка крашилась на старте быстро, тихо и не оставляя следов. Причина простая: для каждой сборки генерируется также свой OBB файл ресурсов, у которого имя содержит этот самый Store Version + offset. И, «естественно», при поиске этот offset игнорируется. У меня offset в 1 был у 64-битной версии, obb файл содержал номер 116 (например), а игра искала 115-й файл, не находила и завершалась. А со смещением ноль 32-битная версия работала отлично.

Читайте также:  Анимированные иконки для андроид

Выход? Все ручками! Выставляем Store Version и собираем только 32-битную версию. Затем меняем Store Version и собираем только 64-битную версию. Коряво? Зато дешево, надежно и практично!

Следующая проблема с которой я разбирался — это сохранения игрока. Мы никакой дичи в игре не творим, используем стандартные методы UE4. Но без танцев с бубном, даже они не работали. Первым делом ставим галку:

Во-первых, работает эта галка только в Shipping версии! Во-вторых, без нее в папке пользователя будет создан каталог UE4Game, куда и будут скидываться все настройки и сохранения. А с ней, все должно ложиться в секретную папочку /data/* , или куда там складывают настройки всех приложений. И по идее, на этом все проблемы решены.

Но, не на Android 10! Не везде, но в интернете ходят легенды (и я этот баг поймал на Galaxy Tab), что сэйвы не работают. Именно поэтому пришлось установить свежий SDK. Также нужно указать в Target SDK Version минимум 29 (Android 10), а лучше 30 (Android 11). И добавить дополнительные разрешения:

Дополнительные разрешения

И продублирую кодом для DefaultEngine.ini:

Были еще небольшие заморочки с подписью приложения, но это из-за моей невнимательности. Просто на будущее: НЕ ТЕРЯЙТЕ ФАЙЛ КЛЮЧЕЙ. Для его замены придется общаться с тех. поддержкой гугла, а это долго и нудно.

Изменения в коде и ассетах

Для меня самой крупной модификацией было новое управление в игре. Пришлось полностью переписать метод APlayerController::InputTouch и всем акторам добавить реакцию на касания. Естественно, по мелочи было очень много правок во всем коде, но глобальных изменений они не повлекли.

По рендеру. Mobile HDR оставил включенным. Все материалы были принудительно переведены в режим Fully Rough. Пришлось полностью отказаться от Refraction и от Pixel Depth Offset. Я боялся, что будут тормозить Masked материалы, но они особо на FPS не повлияли и я оставил их в покое. Освещение как было полностью динамическим, так и осталось. Тени включены на высоких и эпик настройках и полностью отключил на низких и средних.

Кстати, если вы собираетесь управлять графонием через Scalability Settings, то не забудьте перелопатить все Window -> Developer Tools -> Device Profiles . Они имеют повышенный приоритет. Я долго соображал, почему у меня никак не отключаются тени на планшете, пока внимательно не прочитал лог.

По мешам правок было немного. Полигонаж у нас невысокий, правда объектов на поле многовато, но мои устройства справлялись нормально. Пришлось порезать крупные меши на небольшие кусочки. Дело в том, что на меш может влиять только 4 источника света (три если есть один направленный, типа солнца). И на некоторых крупных объектах пропадало освещение от факелов. В остальном, никаких проблем не заметил.

Крупные исправления были в UI. Пришлось поднять в настройках проекта Application Scale до 1.2 и из-за этого часть диалоговых окон «поплыла». А еще я покупку реализовал именно внутри UI и полностью на Blueprints. И с ней возник один неприятный момент, о котором хочу рассказать.

Для работы in-app purchase есть три метода: Read In App Purchase Information (общие сведения о покупке), Make an In-App Purchase (сделать покупку) и Restore In-App Purchases (восстановить покупку на другом девайсе). Из особенностей хочу отметить только то, что у make и restore лучше всего объединять ветки On Success и On Failure в одну, а проверять именно Completion Status:

Проверка успешности восстановления покупки

Но не будем отвлекаться. Рассказываю о неприятности. Покупка была реализована просто: автоматом делаю read и проверяю результат, если все хорошо, то пытаюсь восстановить (restore) покупку, если все плохо — то интырнета нет и рыпаться не стоит. Если игрок жмякнул make, то просто проверяю успешность операции. И вылезла неприятная особенность: делаем покупку на одном из устройств. На другом отключаем инет и заходим в игру. И в этот момент или плагин или андроид делают гадость: они у себя кэшируют пустой список покупок для restore. Как итог при последующем входе с интернетом, покупка не восстанавливается, а купить ее нельзя, потому что make будет писать, что покупка есть и возвращать Cancelled. Выход из ситуации такой, в случае если make возвращает ошибку, заново делать restore, кэш очищается и все работает хорошо. Причем, это я увидел в исходниках другой игры и, пока сам не напоролся на баг, долго ломал голову, зачем они так сделали.

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

Сейчас у нас проходит открытое тестирование, вы можете присоединиться по ссылкам ниже. По этой ссылке можно присоединиться к тестированию через сайт. А по этой ссылке можно присоединиться к тестированию в Google Play на устройстве Android. Ну и добавить нас в список желаемого можно тут.

Я буду крайне признателен за любой фидбэк и тесты! И спасибо за то, что дочитали до этого места! ​

Источник

Оцените статью