2014年3月30日日曜日

NetBeans で libGDX プロジェクトを作成する

NetBeans で libGDX プロジェクトを作成する方法を紹介します
libGDX は Java 用クロスプラットフォームゲーム開発フレームワークで、現在 Windows, Mac, Linux, Android, iOS, BlackBerry, HTML5 をサポートしています
今までは開発には Eclipse を推奨していたこともあり、他の IDE にて開発するのは少し手間が必要でした
今回新たにセットアップツールの刷新が行われ、ビルドツールとして gradle が採用されたことにより、 NetBeans をはじめ、 Eclipse 以外の IDE 、エディタによる開発が簡単に行うことができるようになりました
本エントリでは、この新しいセットアップツールと、 NetBeans での libGDX プロジェクトの作成方法を紹介したいと思います
なお、 libGDX は現在も活発に開発が進められているプロジェクトであるため、閲覧される時点では挙動が異なる可能性があることをご了承ください
今回使用した環境は以下の通りになります

OS: Mac OS X 10.9.2
JDK: 1.7.0_51
Xcode: 5.1
※ Xcode は iOS プラットフォーム利用時のみ必要となります
NetBeans 8.0(Build 201403101706)
Gradle Support Plugin 1.3.0

まず、セットアップツールをダウンロードします
適当な場所に保存後、下記コマンドにてセットアップツール起動します

$ java -jar gdx-setup.jar

起動後、上記のようなウィンドウが表示されるので、各項目に適当な値を入力します
(※4月23日最新版セットアップツールに更新)

Name … アプリケーション名
Package … 作成するプロジェクトのパッケージ名
Game class … プラットフォーム共通(core)のメインゲームクラス名
Destination … プロジェクト作成先ディレクトリ
Android SDK … Android SDK のパス(local.properties に設定されます)

"Sub Project"、"Extensions" については必要に応じ、チェックを行ってください
入力後、 "Generate" ボタンをクリックすると、プロジェクトが "Destination" フィールドに指定した場所に生成されます

次に作成したプロジェクトを NetBeans で開きます
「ファイル > プロジェクトを開く」にて、生成されたディレクトリまで移動します


プロジェクトを開くと、以下のようなツリー構造で NetBeans に開かれます


作成したプロジェクト(ルートプロジェクト)は、5つのサブプロジェクトで構成されます

android … Android 用プロジェクト
core … プラットフォーム共通プロジェクト
desktop … デスクトップ (Windows, Mac, Linux) 用プロジェクト
gwt … HTML5(GWT) 用プロジェクト
ios … iOS 用プロジェクト

各サブプロジェクトはダブルクリックすることで開くことができます
まず、ルートプロジェクトの設定を行います
(ルートプロジェクトに行った設定はすべてのサブプロジェクトに反映されます)
ルートプロジェクトを右クリックし、コンテキストメニューから "プロパティ" を選択すると以下のようなウィンドウが表示されます



"Gradle home" の "Inherit" チェックボックスをはずします
また、テキストボックスに値が入力されている場合は、それも削除し、空白の状態にします
お使いの環境が Mac で、 JDK に Java 8 を使用されている場合は "Platform for build scripts"、"Target platform"、"Source Level" にて Java 7 (1.7) を選択してください
(デスクトップ用プロジェクトに使用されている lwjgl が2014年3月29日時点で Java 8 に対応していないため)
上記設定が終わったら、"OK" ボタンをクリックし、設定を反映します

プロジェクトの設定が終わったので、各サブプロジェクトを実行してみます
最初はデスクトップ用アプリケーションを実行します
サブプロジェクト内の desktop をダブルクリックして開きます
開いたプロジェクトを右クリックし、表示されたコンテキスト内から「Tasks > run」と選択し、クリックします


ビルドが実行され、以下のようなウィンドウが表示されます

次に Android 用アプリケーションを起動します
実行するために事前に端末の接続、またはエミュレータの準備を事前に行っていてください
今回は Genymotion を実行環境として使用します
サブプロジェクト内の android をダブルクリックして開きます
開いたプロジェクトを右クリックし、表示されたコンテキスト内から「Tasks > installDebug」と選択し、クリックします
Android 用のタスクは量が多いため、表示できていない場合は「Custom Tasks > Custom Tasks」と選択し、表示された "Execute Custom Tasks" ウィンドウの "Tasks" フィールドに "installDebug" と入力し、 "Execute" ボタンをクリックすることで同様に実行することができます
("Save And Execute" ボタンをクリックすると、実行したタスクが保存されるため、2回目以降は入力の手間が省けます)


ビルドが実行され、接続していた端末、またはエミュレータにアプリケーションがインストールされます
実行すると以下のように表示されるかと思います


次は HTML5 (GWT) 用アプリケーションを起動します
サブプロジェクト内の android をダブルクリックして開きます
開いたプロジェクトを右クリックし、表示されたコンテキスト内から「Tasks > superDev」と選択し、クリックします
(リスト内に "gwtSuperDev" という似た名前のタスクがありますが、こちらでは正常に起動できませんので、間違えないようご注意ください)


次にブラウザを開き、 "http://localhost:9876/" へアクセスします
(制限はないのですが、 Google Chrome ブラウザの使用をおすすめします)
以下のような表示がされるので、"Dev Mode On"、"Dev Mode Off" をブックマークレットとしてブックマークバーに登録ください


次に "http://localhost:8080/gwt/" へアクセスします
最初に以下のようなダイアログが表示されますので、先ほど登録した "Dev Mode On" ブックマークレットを実行します


実行すると、以下のように表示されるので、 "Compile" ボタンをクリックします


コンパイル終了後、以下のように表示されます
(再度先ほどのダイアログが出る場合がありますが、ローディングが終わるまでお待ちください)


最後に iOS 用アプリケーションを起動します
サブプロジェクト内の ios をダブルクリックして開きます
開いたプロジェクトを右クリックし、表示されたコンテキスト内から「Build」を選択し、クリックします
ビルド終了後、再度プロジェクトを右クリックし、「Tasks > launchiPhoneSimulator」と選択し、クリックします
(今回は iPhone シミュレータでの実行を行いますが、 iPad シミュレータ、および実機での実行も可能です)


実行後、以下のように表示されます
(初回実行時はシミュレータ起動までかなり時間が掛かりますのでご注意ください)


以上が、サポートする各プラットフォームでの実行となります
新しいセットアップツールと gradle を使用することで、簡単に NetBeans 上にプロジェクト構築が出来ることをご理解頂けたかと思います

実際のゲーム開発は、サブプロジェクトにあった core (プラットフォーム共通)プロジェクトを中心に実装していくことになります
libGDX を使用したゲーム開発の詳細については、また別のエントリにて紹介できればと思います