ã¯ããã«
2015幎3æãEpic Gamesã¯ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã«ç®ãåãã
Unreal EngineããŒãžã§ã³4ãžã®ç¡æã¢ã¯ã»ã¹ãæäŸããŸããïŒãšã³ãžã³ã®äœ¿çšã«ããå©çã®å¶éãååæããã3,000ãã«ã«èšå®ïŒã ããã«ã
2014幎ã«ãå瀟ã¯ç¡æã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãç¹ã«Linuxã®ãµããŒããåªå
課é¡ã®1ã€ã§ãã
ãšè¿°ã¹ãŸããã
ãããã®åèªã空ã®ãã¬ãŒãºã«ãªããªãã£ãããšã¯æ³šç®ã«å€ãã仿¥ã®ãšã³ãžã³ã¯Linuxç°å¢ã§éåžžã«èªä¿¡ãæã£ãŠåäœããŸãã ãã®OSã®ç°å¢ã«ãšã³ãžã³ãã€ã³ã¹ããŒã«ããã³æ§æããæ¹æ³ã«ã€ããŠèª¬æããå
¬åŒããã¥ã¡ã³ããååã«ãããŸãã
ãã ããäœæ¥ç°å¢ãå±éããããã»ã¹ã®éææ§ã¯æããã§ããããã³ã®ã³ã®ãã¡ã³ã«ãšã£ãŠç掻ãå°é£ã«ããŠããå°ããªãäžå¿«ãªãã¥ã¢ã³ã¹ãããã€ããããŸãã ã«ããã®äžã§ãèè
ãééãããšã³ãžã³ã®ã€ã³ã¹ããŒã«æ©èœã®çãèªç±ãªèª¬æã¯ãåå¿è
ãééããããã€ãã®å°é£ã解決ããããã«èšèšãããŠããŸãã
1.ãœãŒã¹ããŒã¿
ãã®ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããŠArch Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã䜿çšããã³ã³ãã¥ãŒã¿ãŒïŒCPUïŒIntel Core i7-2600KãRAMïŒ16GbããããªïŒGeForce 580GTXïŒããããŸãã
ã«ã¹ã¿ã
AURãªããžããªã«ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³çš
ã®ããã±ãŒãžããããŸãã ããã±ãŒãžã«é¢ããã³ã¡ã³ããã倿ãããšãããã±ãŒãžã¯æ©èœããŸããååãšããŠãããã±ãŒãžã䜿çšããŠãšã³ãžã³ãã€ã³ã¹ããŒã«ã§ããŸãã ããã±ãŒãžã³ã¬ã¯ã¿ãŒããªããžããªãé·æéã¯ããŒã³ãããŸã§åŸ
ã¡ãŸãã ãªãªãŒã¹ãã©ã³ãã®åèšãµã€ãºã1.5ã2 GBã®å Žåãã¯ããŒãã³ã°ããã»ã¹ã¯81ïŒ
ããªãŒãºãããããã¯ãŒã¯ããçŽ4ã®ã¬ãã€ããåŒãåºããŸãã ãã®ããã»ã¹ã®çµäºãåŸ
ã€å¿èããããŸããã§ããã
ãããã£ãŠããšã³ãžã³ãããã±ãŒãžã«ã©ããããã«ãœãŒã¹ããåéãããšã³ãžã³ã®ã€ã³ã¹ããŒã«ã¯éåžžå¿
èŠãªããšããäºå®ãåæ©ä»ããŠãå¥ã®æ¹æ³ã§è¡ããŸãã æ¬¡ã®ããã±ãŒãžãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ããã
- clang-LLVMã³ã³ãã€ã©ã®C / C ++ããã³ããšã³ã
- python-Pythonã€ã³ã¿ãŒããªã¿ãŒ
- qt4-C / C ++éçºçšã®ã¯ãã¹ãã©ãããã©ãŒã ãã¬ãŒã ã¯ãŒã¯
- sdl2-ãã«ãã¡ãã£ã¢ãæäœããããã®ã¯ãã¹ãã©ãããã©ãŒã ã©ã€ãã©ãª
- icu-ã¢ããªã±ãŒã·ã§ã³ãåœéåããããã®Unicodeã©ã€ãã©ãªã®ã³ã³ããŒãã³ã
- mono-.Net Frameworkã®ç¡æå®è£
- xdg-user-dir-ãããã¥ã¡ã³ããããç»åããªã©ã®ãå¶åŸ¡ããŠãŒã¶ãŒãã£ã¬ã¯ã㪠X Window Systemã®äžéšãšããŠ
- git-åãååã®ããŒãžã§ã³ç®¡çã·ã¹ãã ãæäœããããã®ã¯ã©ã€ã¢ã³ã
2. Unreal EngineãœãŒã¹ã®ååŸ
ãã®
æé ã¯ãEpic Gamesã®å
¬åŒWebãµã€ãã§è©³ãã説æã
ããŠããŸãã ãšã³ãžã³ã®ãœãŒã¹ã³ãŒããªããžããªã¯ãã©ã€ããŒããªã®ã§ãæåã«
Epic Gamesã¢ã«ãŠã³ããååŸããå¿
èŠããããŸãã ããã«ã
Githubã§ã¢ã«ãŠã³ããäœæããå¿
èŠããããŸãããã®ã¢ã«ãŠã³ãã«å¯ŸããŠãåè¿°ã®ãªãã£ã¹ããªããžããªãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸãã ããã§ç¹ã«ã³ã¡ã³ãããããšã¯ãããŸãããæé ã¯éåžžã«ã·ã³ãã«ã§çè§£ãããããã®ã§ãã
ãªããžããªãžã®ã¢ã¯ã»ã¹ãååŸããåŸããšã³ãžã³ãé
眮ããããã¡ã€ã«ã·ã¹ãã ã«ãã£ã¬ã¯ããªãäœæããããã«ç§»åããŠã¹ãã«ãèšããŸã
$ git clone https://github.com/EpicGames/UnrealEngine.git -b release
ãšã³ãžã³ã®ãªãªãŒã¹ãã©ã³ããããŒããããã®ãåŸ
ã¡ãŸãã ãã®ããã»ã¹ã¯ãAurovsky PKGBUILDã䜿çšãããããé«éã§ã¯ãããŸããã
3.ãšã³ãžã³ã¢ã»ã³ããªïŒã¬ãŒãã¬ãŒã¹
ãœãŒã¹ãåãåã£ããããã£ã¬ã¯ããªã«ç§»åããŸã
$ cd UnrealEngine
ãã®ãããªåçãèŠãŠ
$ ls -la
80
drwxr-xr-x 6 maisvendoo users 4096 4 18:02 .
drwxr-xr-x 27 maisvendoo users 4096 5 15:29 ..
-rw-r--r-- 1 maisvendoo users 382 4 17:50 .editorconfig
drwxr-xr-x 11 maisvendoo users 4096 4 17:50 Engine
-rw-r--r-- 1 maisvendoo users 418 4 17:50 GenerateProjectFiles.bat
-rwxr-xr-x 1 maisvendoo users 241 4 17:50 GenerateProjectFiles.command
-rwxr-xr-x 1 maisvendoo users 715 4 17:50 GenerateProjectFiles.sh
drwxr-xr-x 8 maisvendoo users 4096 4 18:01 .git
-rw-r--r-- 1 maisvendoo users 511 4 17:50 .gitattributes
-rw-r--r-- 1 maisvendoo users 3732 4 17:50 .gitignore
-rw-r--r-- 1 maisvendoo users 195 4 17:50 LICENSE.md
-rw-r--r-- 1 maisvendoo users 9472 4 17:50 README.md
drwxr-xr-x 4 maisvendoo users 4096 4 17:50 Samples
-rw-r--r-- 1 maisvendoo users 1304 4 17:50 Setup.bat
-rwxr-xr-x 1 maisvendoo users 208 4 17:50 Setup.command
-rwxr-xr-x 1 maisvendoo users 1345 4 17:50 Setup.sh
drwxr-xr-x 28 maisvendoo users 4096 4 17:50 Templates
-rw-r--r-- 1 maisvendoo users 269 4 17:50 UE4Games.uprojectdir
ã¢ã»ã³ããªã®æé ã¯ãå
¬åŒWebãµã€ãã®
ããã¥ã¡ã³ããš
å
¬åŒWikiã§æäŸãããŠã
ãŸã ã ãã ããArch Linuxã®å ŽåãWikiã«ã¯é©ãã¹ãã¬ããªã«ãããããããã®æç€ºã«åŸãããšãæ¥ããªãã§ãã ããã
Arch LinuxãŠãŒã¶ãŒã¯ãéçºïŒããã©ã«ãïŒãæ©èœããªãå Žåã¯ããããã°ãããã¡ã€ã«ã䜿çšããŠãšãã£ã¿ãŒããã«ãããŠãã ããã
ãšãã£ã¿ã®ãããã°ããŒãžã§ã³ã®ã¢ã»ã³ããªã®åœ¢åŒã§åä»ãªæŸèæã䜿çšããããã«å
¬åŒã«æäŸããŸãã åæã«ããšãã£ã¿ãŒã«å ããŠãã·ã§ãŒããŒã³ã³ãã€ã©ãŒãšãšã³ãžã³ã«å«ãŸããä»ã®ããã€ãã®è£å©ãŠãŒãã£ãªãã£ãæ§ç¯ããå¿
èŠãããããšãå®å
šã«å¿ããŠããŸããŸãã éçºè
ãææ¡ãããã©ã¡ãŒã¿ã䜿çšããŠãã«ãããããšãããšã次ã®åœ¢åŒã®ã¡ãã»ãŒãžã衚瀺ãããŠäžæãããŸãã
/usr/bin/ld: /mnt/data/install/ue4-test/Engine/Source/ThirdParty/FreeType2/FreeType2-2.6/Lib/Linux/x86_64-unknown-linux-gnu/libfreetype.a(ftlzw.co): relocation R_X86_64_32S against `.text' can not be used when making a shared object; -fPIC
/usr/bin/ld: /mnt/data/install/ue4-test/Engine/Source/ThirdParty/zlib/v1.2.8//lib//Linux/x86_64-unknown-linux-gnu/libz.a(uncompr.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; -fPIC
/usr/bin/ld: final link failed: ,
clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation)
ERROR: UBT ERROR: Failed to produce item: /mnt/data/install/ue4-test/Engine/Binaries/Linux/CrashReportClient
Total build time: 196,17 seconds (Local executor: 0,00 seconds)
make: *** [Makefile:252: CrashReportClient-Linux-Shipping] 5
ãã®åé¡ã¯AURã®unreal-engineããã±ãŒãžã®ã¡ã³ãããŒã«ç¥ãããŠããã®ã§ããœãŒã¹ã«ãããä¿®æ£ããããããé©çšããããšãææ¡ããŸãã ãã®åé¡ã¯ãArch Linuxã§ã®gccããã³clangãã«ããã©ã¡ãŒã¿ãŒã®å€æŽã«é¢é£ããŠããŸãã
äŸã«ã€ããŠ
ã¯ããã¡ããã芧ãã ããSSPããã³PIEã¯ãå®å®ãªããžããªã®gccïŒã³ãããïŒããã³clangïŒã³ãããïŒã§æå¹ã«ãªããŸããã
ãããã®å€æŽã«ããããããã®ã³ã³ãã€ã©ã§ãã«ãããããã€ããªã®æœåšçãªã»ãã¥ãªãã£ããŒã«ãæªçšããããšãé£ãããªããŸãã
ããã«ã€ããŠã®ããã€ãã®è°è«ã¯ãarch-dev-publicã¡ãŒãªã³ã°ãªã¹ãã§èŠã€ããããšãã§ããŸãïŒãã³ã³ãã€ã«ãã©ã°ã®å€æŽããããŒãã«ïŒã
Position Independent ExecutablesïŒPIEïŒãæå¹ã«ãããšãã³ã³ãã€ã«ããããšã³ãžã³ã©ã€ãã©ãªã®ABIã¬ãã«ã®äºææ§ã倱ãããäžèšã®ã¬ã€ã¢ãŠããšã©ãŒãçºçããŸãã ãããã£ãŠãéåžžã®çµã¿ç«ãŠã§ã¯ããã®ãªãã·ã§ã³ããªãã«ããŸãã
èšå®ã倿Žããã«ã¯ã
UBTã¹ã¯ãªãããéžæããå¿
èŠããããŸãã ãšã³ãžã³ã¯ç¬èªã®ãã«ãã·ã¹ãã ã䜿çšãããã®ã¹ã¯ãªããã¯CïŒã§èšè¿°ãããŠããŸãã ãã¡ã€ã«
Engine / Source / Programs / UnrealBuildTool / Platform / Linux / LinuxToolChain.csãéã ãå¿
èŠãªèšå®ã远å ããŸãã 倿Žã説æããããã«ãgit diffãšããŸãŒã¹ããæå®ããŸã
--- a/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
+++ b/Engine/Source/Programs/UnrealBuildTool/Platform/Linux/LinuxToolChain.cs
@@ -377,6 +377,9 @@ namespace UnrealBuildTool
Result += " -Wno-invalid-offsetof";
// we use this feature to allow static FNames.
Result += " -Wno-gnu-string-literal-operator-template";
+// disable unused result's warnings
+Result += " -Wno-unused-result";
-Wno-unused-resultãªãã·ã§ã³ã¯ã颿°ã«ãã£ãŠè¿ãããæªäœ¿çšã®çµæã«é¢ããèŠåããªãã«ããŸã
@@ -402,6 +405,7 @@ namespace UnrealBuildTool
Result += " -fno-inline";
Result += " -fno-omit-frame-pointer";
Result += " -fstack-protector";
+ Result += " -fno-pie";
@@ -588,6 +592,8 @@ namespace UnrealBuildTool
Result += " -Wl,--disable-new-dtags";
+ Result += " -nopie";
+ Result += " -Wno-unused-command-line-argument";
-fno-pieããã³-nopieã¹ã€ããã䜿çšããŠãã³ã³ãã€ã©ãŒãšãªã³ã«ãŒã®PIEãç¡å¹ã«ããŸãã -Wno-unused-command-line-argumentã¹ã€ããã¯ãäžæãªã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãŒã«é¢ããèŠåãç¡å¹ã«ããŸãã
æ§ç¯ãéå§ããåã«ãã·ã³ããªãã¯ãªã³ã¯ãäœæããŸã
$ sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
ãxlocale.hãèŠã€ãããŸããããšãããšã©ãŒãèŠåããŸãã
èšèŒãããŠããåé¡ã¯ãAURã§ãœãŒã¹ã«äžé£ã®ããããéããããšã§è§£æ±ºãããŸããååãšããŠãèªè
ããã®ãã¹ã«åŸãããšãçŠæ¢ãã人ã¯ããŸããã
説æããæºåã®åŸãã¹ã¯ãªãããå®è¡ããŸã
$ ./Setup.sh
ãã®ã¹ã¯ãªããã¯ãå¿
èŠãªãµãŒãããŒãã£ã©ã€ãã©ãªãããŠã³ããŒãããŠåéããŸãã æ¬¡ã«ãã¹ã¯ãªãããå®è¡ããŸã
$ ./GenerateProjectFiles.sh
Unrealãã«ãã·ã¹ãã ãã¢ã¯ãã£ãã«ããmakeãcmakeãqmakeãMS Visual StudioãKDevelopãCodeLiteã䜿çšããŠãããžã§ã¯ãããã«ãããããã®ãã¡ã€ã«ãçæããŸãã æç¢ºãªè¯å¿ãæã£ãŠã¹ã¯ãªããã®æåŸã«ãã³ãã³ããäžããŸã
$ make
åéã¹ã¬ããã®æ°ãæå®ããããã«-jã¹ã€ããã䜿çšããªãã§ãã ããã Makefileã¯ããã·ã³ã§äœ¿çšå¯èœãªãã¹ãŠã®ã¹ã¬ããã§ã®ã¢ã»ã³ããªã®äžŠååãèæ
®ããŠçæãããŸãã
ãã«ãããã»ã¹ã¯ãšã©ãŒãªãã§å®è¡ããããã°ããæéãããããŸããç§ã®ã·ã¹ãã ã§ã¯çŽ40åã§ã
[1367/1372] Link libUE4Editor-UE4Game.so
[1368/1372] Link libUE4Editor-Advertising.so
[1369/1372] Link libUE4Editor-BlankModule.so
[1370/1372] Link libUE4Editor-IPC.so
[1371/1372] Link libUE4Editor-BlankPlugin.so
[1372/1372] Link libUE4Editor-XGEController.so
Total build time: 2560,27 seconds (Local executor: 2481,53 seconds)
ãšã³ãžã³ã®ãããã°ããŒãžã§ã³ãåéããŸã
$ make DebugSet
4. Qt Creatorã§ã¯ã€ãã¯ã¹ã¿ãŒããäœæãã
çµã¿ç«ãŠãUE4ãšãã£ã¿ãŒãèµ·åããŸã
$ cd Engine/Binaries/Linux
$ ./UE4Editor
ã·ã§ãŒããŒãã³ã³ãã€ã«ããããŸã§èŸæ±åŒ·ãåŸ
ã¡ãŸãïŒã³ã³ãã€ã«çµæã¯ãã£ãã·ã¥ãããæ¬¡ã®èµ·åã¯ããéããªããŸãïŒã ã³ã³ãã€ã«ã®æåŸã«ãC ++ã§æ°ãããããžã§ã¯ããäœæããŸã

ãããžã§ã¯ãã®ãããã¹ãéžæããQuickStartãšããååãä»ããŠãç·è²ã®CreateProjectãã¿ã³ãæŒããŸãã ãšãã£ã¿ãŒããããžã§ã¯ããã¡ã€ã«ãçæãããŸã§åŸ
æ©ããŸãã çæãçµäºãããšããšãã£ã¿ãŒãéããŸãã Windowsã§MS Visual Studioã䜿çšããŠããå Žåã¯ããã®ç¹å®ã®IDEãéããŠãã³ãŒãã£ã³ã°ãéå§ã§ããŸãã ã¢ã«ã«ã§ã¯äœãèµ·ãããŸããã ãããã£ãŠããããžã§ã¯ãã®äœææã«æå®ãããã¹ã«åŸããããã§çæããããã®ã確èªããŸã
$ ls -l
4728
-rw-r--r-- 1 maisvendoo users 1999696 7 00:06 CMakeLists.txt
drwxr-xr-x 2 maisvendoo users 4096 7 00:05 Config
drwxr-xr-x 2 maisvendoo users 4096 7 00:05 Content
drwxr-xr-x 4 maisvendoo users 4096 7 00:06 Intermediate
-rw-r--r-- 1 maisvendoo users 16777 7 00:05 Makefile
-rw-r--r-- 1 maisvendoo users 350169 7 00:06 QuickStartCodeCompletionFolders.txt
-rw-r--r-- 1 maisvendoo users 14860 7 00:06 QuickStartCodeLitePreProcessor.txt
-rw-r--r-- 1 maisvendoo users 60261 7 00:06 QuickStartConfig.pri
-rw-r--r-- 1 maisvendoo users 22114 7 00:06 QuickStartDefines.pri
-rw-r--r-- 1 maisvendoo users 908626 7 00:06 QuickStartHeader.pri
-rw-r--r-- 1 maisvendoo users 220484 7 00:06 QuickStartIncludes.pri
-rw-r--r-- 1 maisvendoo users 59 7 00:05 QuickStart.kdev4
-rw-r--r-- 1 maisvendoo users 17091 7 00:06 QuickStart.pro
-rw-r--r-- 1 maisvendoo users 722630 7 00:06 QuickStartSource.pri
-rw-r--r-- 1 maisvendoo users 224 7 00:05 QuickStart.uproject
-rw-r--r-- 1 maisvendoo users 462378 7 00:06 QuickStart.workspace
drwxr-xr-x 3 maisvendoo users 4096 7 00:05 Source
OKããšãã£ã¿ã¯ãœãŒã¹ïŒãœãŒã¹ãã£ã¬ã¯ããªïŒãšãqmakeã®* .proã¹ã¯ãªãããå«ãããã€ãã®ãããžã§ã¯ããã¡ã€ã«ãäœæããŸããã Qt Creatorãå®è¡ããŠãQuickStart.proãéããŸãã

衚瀺ããããŠã£ã³ããŠã§ãããããžã§ã¯ãã®æ§æããã¯ãªãã¯ããŸãã Qt Creatorã®ã»ããã¢ãã
ã«ã€ããŠã¯ããšã³ãžã³ã®
å
¬åŒããã¥ã¡ã³ãã§è©³ãã
説æãããŠããŸãã èšå®ã®ããã€ãã®ãã€ã³ãã®ã¿ã«çŠç¹ãåœãŠãèšå®ã®ã¹ã¯ãªãŒã³ã·ã§ãããæäŸããŸã
ãã«ãèšå®ã®ãããã°

ãªãªãŒã¹ãã«ãã®ã«ã¹ã¿ãã€ãº

èµ·åã»ããã¢ãã

ãã¹ãŠã®èšå®ãå®äºããããCtrl + RãæŒããŠãããžã§ã¯ããéå§ããŸãã 質åã«ç§ãã¡ã«å°ãã

ç§ãã¡ã¯è¯å®ã§çããŸãã ãšã³ãžã³ã¯ããå°ãèããã·ã§ãŒããŒãã³ã³ãã€ã«ããæçµçã«ãããžã§ã¯ããååŸ
ããå
¬åŒããã¥ã¡ã³ãããã¯ã€ãã¯ã¹ã¿ãŒãæŒç¿ã«åãçµãæºåãæŽã
ãŸã ã

çµè«ã®ä»£ããã«
ãããžã§ã¯ããé©åã«ã»ããã¢ãããããšã次ã®ããªãã¯ãå¯èœã«ãªããŸãã éããŠãããããžã§ã¯ãã§ãF10ãã¯ãªãã¯ããŸã

ããããšã³ãžã³ã®ãœãŒã¹ã³ãŒãã®å¯çšæ§ã¯ãã²ãŒã ã³ãŒãããããã°ããã ãã§ãªãããšã©ãŒã®åå ãç¹å®ããããã«å¿
èŠãªãšã³ãžã³èªäœã®ã³ãŒãããã¬ãŒã¹ããæ©äŒãäžããŠãããŸãã ãã®ãšããã¯ã²ãŒã ãºã§ã¯
ãç¡æã§ãšã³ãžã³ãæäŸããŠããä»ã®ãªãã£ã¹ããã ããŠãŒã¶ãŒã«ãšã£ãŠéåžžã«ãã¬ã³ããªãŒã«èŠã
ãŸãã