libGDX関連情報まとめ 2014/4/19 (Androidで2Dゲーム)

More than 5 years have passed since last update.


libGDXは、マルチプラットフォーム(Andoird,iOS,Windows,OS X,Linux)対応のゲームエンジンです。

2Dゲーム制作でよく利用されています。

使用言語はJava。Eclipseで開発できます。


AndroidでJavaでゲーム開発したい。

ってときにフレームワークはなにがいいでしょうか。

C/C++で書くならマルチプラットフォームだしCocos2D-Xがよさそう。

Codos2D系は情報もおおいし日本語の書籍も多数出版されてますしね。

ただ、Cocos2D for androidはもう開発あんまり活発じゃないっぽい。

Javaで書きたいんじゃー!となると、現状では

・AndEngine

・libGDX

ってとこでしょうか。

どちらも海外ではかなり使われていて開発も活発です。

ただ日本ではあんまり情報ないですよね…。

(AndEngineは日本語書籍は1冊でてます。AndEngineでつくるAndroid 2Dゲーム

 AndEngineは、Cocos2Dっぽい感じがします。

 全レイヤーに対してサポートが手厚い感じ。

 一方libGDXは、ライブラリという感じでフレームワークとしてはそこまでガチガチじゃないかな。

 パフォーマンスや移植性に手間やノウハウがいるところはlibGDXにまかせて、ゲームロジックは自前で実装という雰囲気です。(シーンの制御とかはライブラリにありますが)

 ゲームキャラの管理などは自前で実装したいので、libGDXのほうが向いてるかなー

 また、libGDXの利点としてマルチプラットフォームです。

 Android,Windows,Linuxなどのみならず、最近ではRoboVM正式サポートでiOSアプリも開発できますよ。Javaで!

 ということで当面はlibGDXに力をいれていくことにしました。

 ここでは調べた情報をまとめていくことにします。

2014-04-15 06.04.37.png


libGDX関連情報


● 公式

http://libgdx.badlogicgames.com/

ドキュメント(Wiki)

https://github.com/libgdx/libgdx/wiki

JavaDoc

http://libgdx.badlogicgames.com/nightlies/docs/api/


● まとめ

LibGDX 開発

http://seesaawiki.jp/aksoft/d/LibGDX%20%b3%ab%c8%af

(入門)

・環境構築

・サンプル

・LibGDXの動作確認メモ その1

libgdxメモlibgdxメモ

http://doc.tir.ne.jp/devel/clan/libgdx

・ハマりどころの詳細な解説(TexttureAtlus,Font系その他)

・日本語フォント

 https://github.com/ayamada/mplus-1mn-medium-16-fnt-tir

へびのぬけがら: libGDXへびのぬけがら: libGDX

http://snakemanshow.blogspot.jp/search/label/libGDX

・情報へのリンクが充実

・NetBeansへの設定方法

ANDROIDNOTE

http://androidnote.logdown.com/tags/libgdx

・libGDXの機能、Game,Screenクラスについて(ブログの一部)

Mofumofu

http://mofumofu546.blogspot.jp/2013/10/0-libgdx.html

・libGDXを扱ったブログ

・Viewpoetについて

 http://mofumofu546.blogspot.jp/2013/10/3-libgdx-2dlibgdx-viewport.html

・Tween Engineについて


● 個別の情報

libGDXのサンプル「superjumper」を動かす

http://naosim.syoyu.net/android/libgdx%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%80%8Csuperjumper%E3%80%8D%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99

・サンプルプロジェクトのeclipseへのインポート

Parse.com Restful API in LibGDX Game

http://www.indiedb.com/games/endure/news/parsecom-restful-api-in-libgdx-game


● チュートリアル

 英語版のみだが詳細でわかりやすい。

LibGDX Tutorial series

http://www.gamefromscratch.com/page/LibGDX-Tutorial-series.aspx

・初歩からScene2D活用まで

LibGDX Zombie Bird Tutorial - (Flappy Bird Remake)

http://www.kilobolt.com/zombie-bird-tutorial-flappy-bird-remake.html

・BOX2Dを活用したチュートリアル

・サンプルゲームを作りながらのチュートリアル

LibGDX Tutorial series

http://www.gamefromscratch.com/page/LibGDX-Tutorial-series.aspx

Java Game Development (LibGDX)

https://www.youtube.com/playlist?list=PLXY8okVWvwZ0JOwHiH1TntAdq-UDPnC2L

・YouTubeでのチュートリアル動画シリーズ(#25まである)

※#8まで観た


● libGDXの感想

(Androidでミニゲームを試作。そのままのコードがWindowsでも動いた。嬉しい)


Android

2014-04-15 06.04.37.png

2014-04-15 06.08.45.png

なかなかのパフォーマンスだ!


Windows(デスクトップ)

スクリーンショット 2014-04-15 18.58.04.png

libGDXはシンプルで常識的な作りなのですぐ使い始められるけど、Viewportの設定は何でやるのが最適か?Scene2dを利用するのか?ゲームのキャラクラスは独自クラス、Sprite、Actorどれで実装するのか?…といった細かいセオリーがわからない。サンプルを参考にするか…

libGDXは互換性やパフォーマンスが重要なところは完備されていてありがたいのだけど毎回繰り返される記述量が多くなりがちなので、オレオレゲームフレームワークをこの上に実装するのがいいような気がする。シーングラフとかアクターは自前のほうが使いやすそうだ。UI系はそのままでも便利。

Updateで呼び出される周期は固定できず、deltaで経過時間がわたされる。

ゲーム内ロジックは60fps固定で動かしたいなあ。

(加速度とかかかわると単純に移動距離にdelta掛けるだけにはいかないしね)

deltaの値もを元にゲームロジックを複数回実行する方法とする。


検討した結果方針としては

UIはScene2d.uiなどを利用

ゲームのキャラクター(Actorとか)は独自実装がいいかも。

Vector2dやRectangelクラスはゲームでも使いやすいので利用する。

※サンプルによってはActorを継承したクラスをゲームキャラにつかっているものもあるな

ここはもうちょっと感覚がつかめてきたら追記する