コーディングを始める前に、作成するゲームがどのようなものかを知っておかなければなりません。 全ての詳細というわけではなく、少なくともハイレベルビュー - ゲームコンセプトについてです。 当たり前のことのようにに聞こえるかもしれませんが、ゲーム開発を始めた人の多くが後になって自分のアイディア通りに動作しない事態に直面します。
コンセプトの作成に特別なツールは必要ありません。簡単なゲームであれば簡単にアイディアができます。しかし、少なくとも自分の考えを紙に書き出すか短いドキュメントを作成しましょう。
ゲームコンセプトを作成することでゲームの基本的な要件を把握でき、要件を把握することでゲームの完成までに必要な時間とリソースを見積もることができます。 説明はここまでにして、それでは実際の例を見てみましょう。
まず、このチュートリアル用のpong ゲームを作成するアイディアは既にあります。 しかし、もう少し複雑なゲームを作りたいので、何か追加や変更ができないか考えていました。 最初、左右だけでなく上下にもラケットが移動できるような、より自由に動けるpong ゲームを作ることを考えていました。 既にBox2D physicsの使用を考えています。 - これは必須ではありませんが、このチュートリアルの目的に適ったものです。 And there was the idea - paddles could collide if they are both on one side of the court.スカッシュのように。
この段階でゲームの名前を決めておくと良いでしょう。しかしカッコいい名前を決めるために多くの時間を費やすのはやめましょう。 単に"First Game"と名づけましょう。
第二に、ゲーム内で使う基本的なEntityについて考えました。Entity とはゲームに追加する何らかのオブジェクトです。
次にSquong内で発生しうる全ての状況を考えます。プレイヤーはボールの所有権を変更しなければなりません。この状況はボールが壁の上部に当たった時に発生します。 But then player could go close to the wall, hit the ball and disallow the opponent to play. So I had to change the possession a little bit further from the top wall. Also the bottom wall should actually be the same as in pong - when the ball exits the court there, player loses:
これで全部です。他にゲームで必要なものはないでしょう。さらに考えるべきことは:
現状、ゲームを作るのに必要なものがたくさんあります。
既にAndEngineを使うことを決めています。 Now let's give a quick thought to the architecture of the game. 必要なものは以下です:
This gives us basic idea of what are we going to use from AndEngine.
At this point you can start drawing your entities or thinking where you get them.しかし、それにあまり多くの時間をかけないでください。 画像がない場合は、仮の画像を使用してください。ラケットにはrectangleを使い、ボールにはcircleを使います。 効果音や音楽を探しても良いですが、いまのところ優先度は低いです。
sceneとは、その言葉が意味する通りのものです。 ゲームを起動すると、通常はリソースの読み込み中であることを表すスプラッシュと呼ばれるSceneが表示されます。 その後メニュー scene が表示されます(a Tap-To-ontinue scene is sometimes present)。 Menu sceneで全ての項目を表示することができない場合は、別途 Settings sceneを用意することもできます。 他にも、ゲームによってはCredits SceneやAchievments Sceneなどがあるかもしれません。 Squong では以下の遷移図を使用します。 Scene の遷移状況を理解するには遷移図を見てください。
Info scene は単にこのチュートリアルへのリンクです。Androidにおける"ゲーム終了"のコンセプトは少し複雑なので注意してください。これについては後で説明します。
これは全て時間の無駄に見えるかもしれません。もうコーディングがしたくなっているでしょう。しかし私を信じてください。これらをすることで、後で、特に大規模なゲームを作る場合に役立つでしょう。
次のチャプターでは、遂にコーディングを開始します!