ウィンドウへの画像表示について

libGDX ではウィンドウへ画像を表示する方法をいくつか用意していますが、おそらく最も使うことが多い、 SpriteBatch クラスと ShapeRenderer クラスについて今回紹介します

SpriteBatch クラスは画像(テクスチャ)を描画するためのクラスです

 

SpriteBatch (libgdx API)

 

読み込んだ画像に対して、座標(描画位置)などを指定して描画することが可能です

詳細については下記ページを参照ください

 

qiita.com

 

デモでは以下のように、 Texture クラスを使い、画像を読み込んだあと、それを描画しています

 

f:id:picopicolab:20151103164943p:plain

 

gist.github.com

 

ShapeRenderer クラスは点や線、四角形や円などの単純な図形描画などを行うために使うクラスです

ShapeRenderer (libgdx API)

座標(描画位置)、サイズなどを指定して描画を行います

デモでは以下のように、赤い線で円を、青い塗りつぶしで四角形を描画しています

 

f:id:picopicolab:20151103172235p:plain

 

gist.github.com

 

今後の開発において、ペイントソフトなどで作成した画像の表示に SpriteBatch クラス、 単純な図形の描画や、デバッグ用の当たり判定表示などで ShapeRenderer クラスが使用されていくかと思います

ウィンドウの表示と FPS 出力について

libGDX の公式ページよりセットアップツールをダウンロードし、プロジェクトを作成します
(ここでは、 DemoGame という名前でプロジェクトを作成しています)

セットアップツールの使い方、及び Android Studio でのプロジェクトのインポートについては下記ページを参照して行います

 

ttlg.hateblo.jp

 

セットアップ直後はデモとしてテクスチャを描画する処理が書かれていますが、それらを削除して実行すると以下のようなウィンドウが表示されます
(ウィンドウサイズはブログ用に調整しています)

 

f:id:picopicolab:20151103064356p:plain

 

gist.github.com

 

次に FPSAndroid Studio の Run Tool Window に表示します

FPS とは1秒あたりに処理されるフレーム数を表す値となります

詳細については、下記 Wikipedia のページを参照ください

 

フレームレート - Wikipedia

 

libGDX ではこの値を出力するには、 FPSLogger クラスを使用します

 

FPSLogger (libgdx API)

 

上記のウィンドウに FPSLogger を組み込んで実行すると、下記のように出力されます

 

f:id:picopicolab:20151103065647p:plain

 

gist.github.com

 

単純なウィンドウ表示のみですが、ゲーム開発のためのプロジェクトの準備ができました

プラットフォーム・ゲームについて

プラットフォーム・ゲームを開発するにあたり、その要素を考えてみます

プラットフォーム・ゲームとして、世界的に有名な作品である『スーパーマリオブラザーズ』を例に考えた場合、そのゲーム内容は「プレイヤーの目的は、ステージの中で敵や障害物を避け、また穴に落ちないように気をつけながら、制限時間内にゴールの旗へたどりつくこと」であると説明できます
(下記 Wikipedia より引用)

 

スーパーマリオブラザーズ - Wikipedia

 

そしてステージは地上、地下、海、城など様々な種類のものが用意され、その中に、

  • プレイヤーキャラクター(マリオ、またはルイージ)
  • 敵キャラクター(クリボー、ノコノコなど)
  • 障害物(ブロックや土管など)
  • 地面、穴

などが出現します

今回開発するゲームは現時点では全容は見えていないものの、上記と同じような構成にて作られるのではないかと思っています

1ヶ月という期間、且つ手探りで進めつつというやり方では、すべてを実現することは難しいかと思いますが、最低限ゲームとして成立する要素に絞り込み、ある程度の形まで持っていけたらと思っています

開発するゲームの種類について

ゲームのジャンルとしては、アクション、シューティング、 RPG など様々な種類のものが存在しますが、今回の開発ではアクション、特にプラットフォーム・ゲームと呼ばれるゲームの開発を行いたいと思います
(プラットフォーム・ゲームの詳細については下記 Wikipedia の解説を参照ください)

 

プラットフォーム・ゲーム - Wikipedia

 

動作環境として、 PC だけではなく、 AndroidiPhone といってモバイル端末を想定したものとするため、画面クリック、またはタップによってジャンプアクションを行う、ラン&ジャンプという方式を採用します
(一定のコースが繰り返し出現するエンドレス形式か、決められたゴールが存在するステージクリア形式にするかは現時点では未定です)

以降では、プラットフォーム・ゲーム開発を想定した内容をまとめていこうと思います

開発の目的と進め方について

今回はゲーム開発について知るということを目的としていますので、完成、及び(何らかの形での)公開ということを最終的なゴールとしていません

そのため、進め方としては 1GAM という、1ヶ月に1つゲームを作るという方式を取り、1ヶ月後にそのまま開発を継続するか、新たなゲーム開発を始めるか、または十分な知見が得られたとして、開発そのものをやめるかの選択を行いたいと思います

 

www.onegameamonth.com

開発参考資料について

ゲームエンジンに libGDX を採用するにあたり、以下のまとめ記事、ブログ、書籍を参考にさせて頂いています

 

github.com

qiita.com

mikio.github.io

libgdxメモ

snoopopo.hatenablog.com

ttlg.hateblo.jp

www.amazon.co.jp

ゲーム開発環境について

使用するゲームエンジン、周辺ツールなどは以下の通りです

可能な限り、現時点で無料で利用できるものを中心に選択しています

 

 

ゲームエンジンとしては、 Unity 、 Cocos2d-x を始め、無料にて利用できる、高機能なものが多数ありますが、さほど高スペックではないマシンに、 Ubuntu Linux をインストールして開発するため、 libGDX を選択することとなりました