Amazon Lumberyard エディタをソースコードからビルドしてみる

[前回](http://qiita.com/soesin/items/caaebf879f4d6a5e003f)の続きです。

# はじめに

Amazon Lumberyard は、CEVとは異なりエディタのソースコードも無償で公開されています。折角なのでエディタをDEBUGビルドした際に行った手順を残しておきます。
なお、使用した Lumberyard のバージョンは1.2.0.0です。

# 作業環境
Windows10 64bit English

日本語Windowsでも作業完了できた方、コメント残していただけると幸いです。

# 前準備
以下のツールをあらかじめ使えるようにしておきましょう。

* command prompt
* Python2.7
* Visual Studio 2013 with MFC
* Lumberyard [前回参照](http://qiita.com/soesin/items/caaebf879f4d6a5e003f)


# 作業手順
## Lumberyard Setup Assistant 起動

    <Lumberyard root>/1.2.0.0/SetupAssistant.bat
上記バッチファイルから、Setup Assistantを起動します。

![LumberyardSetupAssistant.png](https://qiita-image-store.s3.amazonaws.com/0/2597/6e84a337-eaf8-97b7-65f1-8c822105e96f.png)
Lumberyardを実行するだけであれば、以下の２項目にチェックが入っていれば十分です。
* Run your game project
* Run the Lumberyard Editor and tools

必要なSDKの依存関係は[前回](http://qiita.com/soesin/items/caaebf879f4d6a5e003f)で解決済みのはずです。まだの方は先に解決しておきましょう。 
 
今回はエディタまでビルドするので、上記に加え以下の項目にもチェックを入れます。
* Compile the game code
* Compile the engine and asset pipeline 
* Compile the Lumberyard Editor and tools  

![LumberyardLauncherRight1.png](https://qiita-image-store.s3.amazonaws.com/0/2597/a1a74354-502a-5109-b231-e5bbf330646c.png)
iOSや、Androidは、一度Windowsでビルドできるのを確認してから、再度チェックを入れて追加でSDKをインストールした方が良いと思います。

## SDK 依存関係の解決

![LumberyardLauncher1.png](https://qiita-image-store.s3.amazonaws.com/0/2597/2aabc040-9748-29a7-2e61-0da662ac8836.png)
上記画像のように `3. Install SDKs` の横に赤い×印が入ると思いますので、緑に戻るまで必要なSDKをインストールします。

各SDKのインストール方法は、以下の画像の様な感じで、ウィンドウ内に適宜表示されるので、それに従います。
![LumberyardLauncherRight2Install.png](https://qiita-image-store.s3.amazonaws.com/0/2597/b895e734-d34a-c367-cbe5-97fba49e95db.png)


## 作業プロジェクトの指定 
SDKのインストールが終わったら`５．Summary`から、[Configure project] を押して、Project Configurator を起動します。
![ProjectConfigurator.png](https://qiita-image-store.s3.amazonaws.com/0/2597/4600a4fe-ea17-ec78-f644-4957e2fda0cc.png)
自分の作業するプロジェクトを選んで、 ![SetAsDefault.png](https://qiita-image-store.s3.amazonaws.com/0/2597/6fcd00cf-13c6-f63b-84c7-af45e2828ac7.png)ボタンを押しましょう。

その後、Project configurator は閉じます。

## WAF を使って、Visual Studio 用ソリューションファイル生成
コマンドプロンプトを開いて、以下のコマンドを順番に実行します。

    cd <Lumberyard root>/1.2.0.0/dev
Lumberyardのインストールディレクトリへ移動したらWAFを実行します。

    lmbr_waf.bat configure
    lmbr_waf.bat build_win_x64_debug -p all

`<Lumberyard root>/1.2.0.0/dev/Solutions` フォルダ内に `LumberyardSDK.sln` ファイルができていれば成功です。
エラー発生時には、赤文字で表示されるので、よく読みましょう。

## VisualStudioからEditorをビルド
`<Lumberyard root>/1.2.0.0/dev/Solutions/LumberyardSDK.sln` をVisual Stuido 2013 から開きます。

Solution Explorer 内から、Sandbox/Editor を見つけ、Set as StartUp Projectに指定すます。
![LumberyardEditorSetAsStartUpProject.png](https://qiita-image-store.s3.amazonaws.com/0/2597/d8ea7549-3335-2dea-5027-1a5f96ab87af.png)


ビルドコンフィギュレーションを、[All] Debug / x64 に指定
![Build_All_Debug_x64.png](https://qiita-image-store.s3.amazonaws.com/0/2597/d5d211ee-303b-7db8-38ec-98e250b1a524.png)

メニューの [BUILD] -> [Build solution] を選んでビルド実行
![Build_BuildSolution.png](https://qiita-image-store.s3.amazonaws.com/0/2597/d3543155-ceba-942b-b6ef-e2aeb8c1969e.png)



ビルドエラーが起きなければ、[DEBUG] -> [Start Debugging] を選ぶことで Sandbox Editor が起動します。
![Debug_StartDebugging.png](https://qiita-image-store.s3.amazonaws.com/0/2597/e26a6669-8499-70e2-2c73-b6fb0ae18687.png)


![LumberyardEditor.png](https://qiita-image-store.s3.amazonaws.com/0/2597/0bdff8e3-6ddd-86df-7043-45b18a72f7f8.png)

おつかれさまでした。


# 参考にしたドキュメント

[Setting up your development environment](https://s3.amazonaws.com/gamedev-tutorials/Tutorials/Programming-Basics-\(01\)_Setting_up_your_development_environment.pdf)

上記ドキュメントの内容要約
* ソースコード管理
* Setup Assistant を利用して依存するSDKのインストール
* lmbr_waf コンフィギュレーション
* Visual Studio 用ソリューションファイル完成

[Compiling the Engine, Editor, and Game](https://s3.amazonaws.com/gamedev-tutorials/Tutorials/Programming-Basics-\(02\)_Compiling_the_Engine_Editor_and_Game.pdf)

上記ドキュメントの内容要約
* lmbr_waf コンフィギュレーション
* lmbr_wafでコマンドラインからビルド
* VS2013Communityでエディタビルド
* VS2013からエディタ起動
* エディタ内でゲームモード起動
* ラウンチャー起動後にコンソールからレベルデータの読み込み