Choose your operating system:
Windows
macOS
Linux
在本教程的最后,您将在虚幻引擎4(UE4)上从Linux创建游戏、部署游戏以及将游戏打包到您的Android设备上。
如果您是一个开发者,希望在Android设备上从Linux创建和发布游戏;这就是您要找的页面。本指南将向您介绍如何将Android设备配置为使用Linux上的UE4,并最终向您展示如何在Android上从Linux部署和打包移动游戏。
感谢我们人才济济的贡献者社区,我们成功地添加了Android对Linux UE4的支持。
1 - 必要的设置
虚幻引擎4使用一个特殊版本的Android软件开发工具包(SDK),版本为CodeWorks for Android。要设置使用虚幻引擎4开发Android项目时所需的SDK和本地开发工具包(NDK),CodeWorks for Android是最简单的方法。如果您安装了较旧版本(1R5版之前的版本)的Android SDK(或较旧版本的CodeWorks for Android),我们建议您卸载它们并安装 CodeWorks for Android ,同时使用与虚幻引擎4一起发布的CodeWorks for Android安装程序。
我们已经将CodeWorks for Android安装程序与虚幻引擎4捆绑在一起,以确保您的Android SDK将与引擎兼容。值得注意的是,从虚幻引擎4.16版开始,引擎就包含CodeWorks for Android 1R6u1。
为了向您展示如何着手使用Linux上的Android,我们将在使用虚幻引擎版本4.14的同时使用CodeWorks For Android 1R6u1。在安装CodeWorks for Android 1R6u1之前,应该关闭引擎。另外,请确保安装了Java开发工具包8(JDK 8),并将`JAVA_HOME`环境变量设置为Java开发工具包(JDK)的正确版本。要验证`JAVA_HOME`设置正确,将`echo $JAVA_HOME`输入到终端中。如果没有看到正确的JDK版本, 下载JDK 8 ,并将其安装到您的Linux计算机上,同时确保将`JAVA_HOME`环境变量设置为新安装的JDK。
在继续操作之前,请注意目前不支持Linux上的Android Vulkan。
-
开始时,打开终端并导航到包含编译引擎的
[UE4Root]
文件夹(使用`cd`命令,更改shell工作目录)。 -
在
[UE4Root]
文件夹内,通过在终端中输入以下字符串,导航到CodeWorks for Android 1R6u1二进制文件( CodeWorksforAndroid-1R6u1-linux-x64.run ):cd Engine/Extras/AndroidWorks/Linux
。 -
现在,在终端中输入`ls -l`,显示目录内容的一个长清单。
文件的权限设置告诉您, CodeWorksforAndroid-1R6u1-linux-x64.run 还未准备好执行。在运行CodeWorks for Android 1R6u1二进制文件之前,需要更改文件的访问权限,以允许"execute"权限。
-
若要更改`CodeWorksforAndroid-1R6u1-linux-x64.run`的文件权限设置,使其能够像普通可执行文件一样运行,请在终端中输入`chmod +x CodeWorksforAndroid-1R6u1-linux-x64.run`。
如果您想了解更多关于`chmod`命令的信息,请在终端中输入`man chmod`,阅读包含`chmod`工作原理的手册页。
-
现在,在终端中输入`ls -l`。
图中突出显示的文件权限设置表明,CodeWorks for Android 1R6u1二进制文件可以执行了。
-
要运行CodeWorks for Android二进制文件,在终端中输入
./CodeWorksforAndroid-1R6u1-linux-x64.run
。在进行下一步之前,请确保您的计算机具有有效的互联网连接。
-
当CodeWorks for Android 1R6u1二进制文件解压缩 NVIDIA CodeWorks for Android 安装程序后,您将看到 安装程序欢迎(Installer Welcome) 窗口,提示您单击 下一步(Next) 或 取消(Cancel) 。
-
从 安装程序欢迎(Installer Welcome) 窗口中,单击 下一步(Next) 按钮开始安装流程。
-
现在,从 Android开发者的欢迎窗口(Android Developer's Welcome Window) 中,单击 下一步(Next) 按钮以继续安装流程。
-
指定CodeWorks for Android 1R6u1应安装和下载到的目录。
-
单击 下一步(Next)> 按钮从NVIDIA下载CodeWorks for Android 1R6u1,最终在您的计算机上安装CodeWorks。
-
现在,在从 Android组件管理器(Android Component Manager) 窗口单击 下一步(Next) 之前,验证您正在安装 CodeWorks for Android 1R6u1 。
-
出现 条款和条件(Terms and Conditions) 窗口后,花些时间通读所有 条款和条件(Terms and Conditions) ,然后选择 全部接受(Accept All) 复选框。
-
现在,单击 接受(Accept) 按钮开始安装流程。
-
一旦安装程序完成安装流程,单击 下一步(Next)> 按钮继续。
-
安装完成(Installation Complete) 窗口打开后,单击 完成(Finish) 按钮以完成安装。
-
继续进行下一步之前,确保重启计算机。
如果不想使用Ubuntu的GUI,您可以在终端中输入`sudo reboot`以重启计算机。
2 - 设置您的Android设备
现在您已经在Linux计算机上安装了Android SDK,基本上可以开始为Android设备开发移动游戏了。但是,在Android设备上运行虚幻引擎游戏之前,需要启用Android的开发环境。
在开始以下步骤之前,请确保您能够获取USB线。
启用Android的开发者选项
-
将Android设备通过USB线连接到您的Linux计算机。
-
在Android设备上打开 设置(Settings) 应用程序。
-
点击 开发者选项(Developer Options) 打开"开发者选项(Developer Options)"菜单。
如果您没有看到该项目,则需要在您的设备上启用 开发者选项(Developer Options) 。要启用 开发者选项(Developer Options) ,打开 设置(Settings) 应用程序,滚动到底部并选择 关于电话(About phone) 。选择 关于电话(About phone) 后,滚动到底部并点击 内部版本号(Build number) 七(7)次。有关如何在Android设备上启用开发者选项(Developer Options)的更多说明,请访问 Android的用户指南 。
启用USB调试
-
从 开发者选项(Developer Options) 菜单中,启用 USB调试(USB debugging) 。
-
应显示一个窗口,确认您的选择以启用USB调试。阅读提示后,继续并点击 确定(OK) 。
USB调试现已启用。
-
现在,断开Android设备与USB线的连接,几秒钟后再把它插回去。如果您正在连接一个运行Android 4.2.2或更高版本的设备,将显示以下对话框,询问您是否接受一个RSA密钥,以允许通过您的Linux计算机进行调试。继续并选择 始终允许从这台计算机(Always allow from this computer) 旁的复选框,然后点击 确定(OK) 按钮。
分段结果
现在,您已经准备好验证您的设备可否在Linux计算机上进行调试。要验证您的设备是否正确设置,请打开终端并输入`adb devices`。
您应该看到一个连接到Linux计算机上的设备列表,这意味着您有一个准备运行虚幻引擎游戏的Android设备。
如果您在终端中输入`adb devices`后没有看到您的设备,您可能需要在Linux计算机上安装adb。请参阅 Android Debug Bridge用户指南 了解有关adb以及如何在您的计算机上安装此程序的更多信息。如果您确定已经在您的计算机上安装和配置了adb,请尝试以下故障排除方法:
-
您可能需要断开您的Android设备与您的计算机的连接,并重新连接它们。
-
如果您没有选择 始终允许从这台计算机(Always allow from this computer) 旁边的复选框,您可能需要选择此复选框。
-
如果此设备被列为未授权,您可以让Android设备授权您的Linux计算机进行USB调试。
-
在某些情况下,如果一个正确配置的设备使用媒体传输协议(MTP)作为媒体设备连接,则可能无法识别此设备。
-
同样,如果一个正确配置的设备使用图片传输协议(PTP)作为摄像机设备连接,则可能无法识别此设备。
3 - 创建项目
现在,您已经安装并配置了Android SDK,还设置了Android的开发环境,Android Debug Bridge能够列出所有连接到您的Linux计算机的设备。您可以开始在UE4中创建一个新的移动项目。
创建移动项目
-
打开**虚幻项目浏览器(Unreal Project Browser) ,选择 游戏(Games)> 第三人称(Third Person)** 模板,使用以下设置新建一个项目。
-
启用 移动设备/平板电脑(Mobile / Tablet)
-
启用 可缩放的3D或2D(Scalable 3D or 2D)
-
启用 无初学者内容(No Starter Content) 。
-
-
为该项目 命名 ,并设置该项目的 文件夹(Folder) 位置。在本教程中,我们将该项目命名为`LinuxAndroidProject`。
-
完成您的项目设置后,单击 创建项目(Create Project) 按钮。
分段结果
祝贺您!您刚刚创建了一个可供移动设备使用的新UE4项目。
4 - 部署关卡
部署关卡意味着,您将要从UE4将关卡 烘焙 和 启动 到您的Android设备。因为要将移动应用程序部署到Android设备上,需要考虑很多细节,包括(尽管不限于)Linux计算机的编译环境、Android设备的指令集和设备的渲染功能。因此,在将 ThirdPersonExampleMap 关卡部署到Android设备之前,您将回顾一些最常见的部署前考虑事项。
Linux上部署前的考虑事项
在部署应用程序之前,请参考下面的列表,该列表旨在帮助您在将游戏部署到设备时,避免可能出现的一些常见问题。
-
虽然这似乎是一个显而易见的考虑,但请确保Android设备已正确连接到您的计算机。
-
如果您还没有这样做,请验证Android Debug Bridge(adb)列出了您的连接设备。要了解更多关于adb的信息,请在终端中输入`adb --help`。您还可以参阅 Android Debug Bridge用户指南 了解有关adb以及如何在您的计算机上安装此程序的更多信息。
-
为了正确地构建游戏、烘焙游戏、打包游戏并将游戏部署到Android,您需要安装JDK 8,并将`JAVA_HOME`环境变量设置为JDK的正确版本。要验证是否正确设置了`JAVA_HOME
,请在终端中输入`echo $JAVA_HOME
。如果没有看到正确的JDK版本, 下载JDK 8 ,并将其安装到您的Linux计算机上,同时确保将`JAVA_HOME`环境变量设置为新安装的JDK。您可以在 Android SDK项目设置 中设置`JAVA_HOME`环境变量。 -
确保您正在针对相应的ARM架构进行构建,因为如果不这样做,您的项目将无法正确部署。在验证将在您的设备上工作的指令集之后,您可以通过导航到 编辑(Edit)> 项目设置...(Project Settings)> Android > 构建(Build) 并选择 支持arm7(Support arm7) 或 支持arm64(Support arm64) ,来从编辑器中选择相应的ARM架构支持。
-
目前,我们不提供来自Linux上UE4的 Vulkan 渲染支持。
-
不同的Android设备支持不同的纹理格式。如果您不知道Android设备支持哪些纹理格式,请尝试将您的目标纹理设置为Ericsson纹理压缩1(ETC 1)压缩方案,大多数Android设备都应该支持该方案。要了解有关支持多个纹理的更多信息,请查看Android的有关 为不同的GL纹理创建多个APK 的文档。
查看可用的纹理格式
如果您有兴趣阅读有关当前支持纹理的更多信息,下表提供了Android设备上最常支持用纹理的快速摘要:
格式 |
描述 |
|
---|---|---|
ETC1 |
所有Android设备均支持,但无法压缩透明纹理(其保存为未压缩)。如果需要透明度来获得更好的压缩,建议使用RGB和单独的透明纹理。 |
|
ETC2 |
所有OpenGL 3.x类设备均支持,并支持透明度压缩。 |
|
ATC |
Qualcomm Adreno GPUs支持,并支持透明度压缩。 |
|
DXT |
Nvidia Tegra GPUs支持,并支持透明度压缩。 |
|
PVRTC |
PowerVR GPUs支持,并支持透明度压缩。 |
|
ASTC |
最新的纹理压缩格式,可指定块大小来进行质量控制,支持透明度压缩。可在部分设备上使用,为Vulkan Level 1所必需。 |
|
部署关卡
既然您已经阅读了将游戏部署到Android设备上的一些最重要的考虑事项,那么您可以开始部署过程了。
-
首先,确保 ThirdPersonExampleMap 已打开。
-
要打开 设备(Devices) 菜单,请单击位于 主工具栏(Main Toolbar) 中的 启动(Launch) 图标旁边的箭头。
-
设备(Devices) 菜单打开后,选择您的Android设备。
-
此时,虚幻引擎会将关卡部署到您的Android设备上。
正如您在视频中看到的,UE4在编辑器的右下角更新应用程序部署过程的进度。
-
当UE4完成烘焙并启动您的项目时,关卡应该在您的设备上运行。您还将能够看到一个虚幻引擎图标,应该可以从您的Android应用程序托盘访问此图标。
确定支持的纹理格式
如果您仍想知道您的Android设备支持哪些纹理格式,请尝试下面的步骤:
-
当在您的设备上运行游戏时,用四(4)根手指轻敲屏幕。
分段结果
祝贺您!您现在应该在您的Android设备上运行了第三人称示例贴图。
5 - 打包游戏
本教程学习到现在,您已经创建并将移动游戏项目部署到了Android设备上;然而,如果您想要发布您的游戏,则需要打包项目。下面的步骤向您展示了如何打包您的项目以便在Android平台上发布。在开始之前,需要注意的是,您将在 开发(Development) 模式下打包项目。为了测试目的,一开始在 开发(Development) 模式下打包游戏始终是一个很好的做法。一旦您对您的游戏感到满意,您就可以在 发布(Shipping) 模式下打包项目,这将告诉引擎删除控制台命令、统计数据和分析工具。
要了解更多关于UE4中提供的不同构建配置之间的差异,请阅读我们的 构建配置参考 页面。
打包项目
-
打开 文件(File) 菜单,向下滚动到 打包项目(Package Project) ,并将鼠标光标悬停在 Android 上,然后选择 Android (ETC1) 。
-
当出现 打开目录(Open Directory) 菜单后,使用 新建文件夹(New Folder) 按钮创建一个名为`Android_Builds`的新文件夹。
-
现在,单击 打开(Open) 按钮开始打包过程。
-
当UE4打包您的项目时,您应该会在右下角看到一个进度指示器。
-
在打包过程结束时,您应该看到一条消息,告诉您打包过程已完成。
-
导航到 Android_Builds 文件夹,在此文件夹中,您应该会看到一个名为 Android_ETC1 的文件夹。
-
打开 Android_ETC1 文件夹,您将在其中找到在打包过程中创建的文件。
您应该看到 安装(Installation) 和 卸载(Uninstallation) shell脚本(/ .sh),以及Android应用程序包( .apk),其中包含所需的所有文件,可将项目安装到支持ETC1压缩方案的任何Android设备。
-
现在,通过在此文件中单击右键并选择 在终端中打开(Open in Terminal) ,从此文件夹的位置打开终端。
-
在终端中输入`./Install_LinuxAndroidProject_Development-arm64.es2.sh`以将项目安装到您的Android设备。
如果您在运行shell脚本时遇到问题,请尝试在终端中输入`adb devices`,以验证您的设备确实已连接到您的计算机。
-
在安装过程中,shell脚本应该将以下输出刷新到您的终端
当shell脚本完成安装过程后,您应该看到一条 安装成功(Installation successful) 消息。
分段结果
现在安装脚本已经将游戏安装到您的Android设备上,该项目现在应该在您的设备的应用程序托盘中可见。
祝贺您!您已经了解了:
✓ 如何安装和设置Android SDK以便使用Linux上的UE4开发移动游戏。
✓ 如何启用Android的开发环境。
✓ 如何在UE4中创建一个Android移动游戏。
✓ 如何将一个关卡从UE4部署到Android设备上。
✓ 如何打包移动游戏以便发布(发行)。
下一部分就有关如何运用新获得的技能提出一些建议。
6 - 看你的了!
开发移动游戏尤其需要注意,特别是在设备兼容性、移动性能和空间限制方面。当您在设计移动游戏时,应用最佳实践将帮助您有效地完善您的移动游戏开发技能。在使用您刚刚学到的最佳实践设计了移动内容之后,学习如何使用另一种部署方法预览和部署您的移动游戏。最后,在这一页的末尾,我们添加了一些练习来帮助您练习新获得的移动开发技能。
学习一些最佳实践
现在您已经了解了如何为Android设备创建、打包和部署一个移动UE4项目模板;现在是考虑设备兼容性、移动性能和APK最佳实践的好时机,它们可能会影响您从Linux上的UE4创建移动游戏的能力。
Android设备兼容性
移动性能
减小APK包大小
由于目标硬件或软件平台的限制,有时您需要限制移动游戏的大小。如果您遇到需要减小移动游戏大小的情况,您可能需要减小您的 Android应用程序包 (APK)的大小,它是Android操作系统用于打包移动应用程序以便发布的自定义文件格式。请查阅 减小APK包大小参考页面 ,在那里您将了解如何减小您的打包游戏大小的方式。
设计移动内容
如果您想利用您所学到的使用Linux上的UE4开发移动游戏的知识,您需要设计能够利用您设备可用渲染功能的游戏内容。请阅读以下参考资料:
预览您的移动游戏
在将移动游戏部署到Android设备之前,您可能希望在编辑器中预览游戏。请阅读我们的 移动预览器 概述页面,了解如何在编辑器中预览您的移动游戏。
通过无线网络部署
现在,您已经学习了一些设计游戏内容的最佳实践,您已经使用编辑器预览了您的移动游戏,并且已经准备好通过无线网络将您的游戏部署到Android设备上。请阅读我们的 Gear VR调试参考页面 ,了解更多关于通过无线网络将UE4项目部署到Android设备上的信息。
自己做一些练习
如果您想继续测试您的移动游戏开发技能,您可以自己做一些练习:
-
使用第三人称模板之外的其他内容创建一个新的移动项目,然后尝试在Android设备上运行新创建的项目。
-
尝试使用不同的Android纹理格式打包您的项目,并记录哪些格式将适用于您的特定设备。