web-dev-qa-db-ja.com

Android用のシンプルな2Dゲームを作成する方法は?

私はゲーム開発に関しては完全に初心者であり、正しい方向に向けてくれる人が必要です。
わかりやすくするために、次のアニメーションを検討してください。 simple zombie game animation

基本的に、上記のアニメーションをAndroidゲームとしてエミュレートする方法を知る必要がありますが、そのために必要な手順はわかりません。私の質問は次のように要約できます。

  • このような単純なゲームにはゲームエンジンを使用する必要がありますか?
  • または、特定のフレームワークを使用せずに実行できますか?
  • Adobe Flashなどのアニメーションアプリケーションを使用する必要がありますか?
  • この種のゲームを作成するために必要な手順は何ですか?
46
Hamed Momeni

ゲームエンジンを使用するかどうかが優先されます。それはあなたが何を望んでいるかによって異なります。レンダリング、衝突検出などの基礎となる概念について学びたい場合、これらを自分で書くことは完全に受け入れられ、とても楽しいです。一方、詳細を気にせずにゲームを終わらせたい場合は、エンジンが間違いなく道です。

ゲームエンジンは、非常に基本的なラッパー(通常、低レベルのタスクを処理する簡単な機能を提供します)から、実際のゲーム開発が特定のプラットフォームに似ていない非常に複雑な抽象化にまで及びます。変更せずにさまざまなプラットフォームにそれを。

そのアニメーションに基づいてゲームを実装するには、次を使用できます。

  • ノンプレイヤーキャラクターごとに、一連の連続した「フレーム」を作成します。これは、サイクルすると動きの錯覚を与えます。これらは、任意のグラフィックアプリケーション(できればテクスチャマップ/アトラス)で作成できます。
  • プレーヤーキャラクターの場合、kickpunchなど、各「移動」のアニメーションシーケンスが必要になります。その後、プレーヤーが何らかのアクションをトリガーしたときに正しいシーケンスを再生します(例:プレーヤーがキックボタンを押したときにkickシーケンスを再生します)。
  • 各文字には境界ボックス(つまり、文字のサイズと位置を定義する長方形)が必要です。プレイヤーキャラクターは、おそらく攻撃のタイプに基づいて異なるサイズのボックスを持っている必要があります(つまり、kickアクションのボックスは、punchアクションのボックスよりも右側に拡張されます。
  • 画面の右側でキャラクターをランダムにスポーンし、(タイプに基づいて)プレイヤーに向かってある程度の速度で移動します。各反復中に、プレーヤーと各非プレーヤーの境界ボックスの間の衝突をテストします。衝突が見つかった場合、プレイヤーがキックまたはパンチしているかどうかを確認し、ヒットしたキャラクターを殺します。プレイヤーが攻撃していない場合は、プレイヤーにダメージを与える可能性があります。

それはあなたの問題の非常に基本的な説明であり、基本的なバージョンを実装するために研究するのに十分なアイデアを与えるはずです:

調べたいゲームエンジン:

Androidゲームの作成に興味がある場合は、この本をご覧ください。

39
free3dom

仕事をやり遂げるのに役立つゲームエンジンがたくさんあります。

そこにあるlinkはすべてのモバイルゲームエンジン向けです。


Android 2Dゲームエンジン

Cocos2D-x

言語:C++

方向:2D

難易度:中級


Corona SDK

言語:ルア

方向:2D/3D

難易度:中級


EDGELIB

言語:C++

方向:2D

難易度:中級


ゲームメーカー

言語:なし(グラフィカル)

方向:2D

難易度:簡単


GameSalad

言語:なし(グラフィカル)

方向:2D

難易度:簡単


HaxeFlixel

言語:Haxe

方向:2D

難易度:中級


libGDX

言語:Java

方向:2D/3D

難易度:中級


マーマレード

言語:C++

方向:2D/3D

難易度:中級


Stencyl

言語:ActionScript(オプション)、Objective-C(オプション)

方向:2D

難易度:中級


nity3D

言語:JavaScript(実際にはUnityスクリプト)、C#(モノ)

方向:2D/3D

難易度:中級

18
atlassium

あなたが尋ねた順に答えます

  1. 常にエンジンを使用することをお勧めします。なぜなら、彼らは仕事を簡単にするからです。それが彼らの目的です。

  2. フレームワークなしで特定のアニメーションと動きを行うことができますが、実際にはコードとロジックが複雑になります。

  3. Adobe FlashはAndroidでは役に立ちません。ほとんどのAndroidデバイスは、ユーザーが何らかの操作を行ってFlashを取得するまで、Flashを実行しません。

  4. 私が推奨する手順は

    • いくつかのエンジンを研究する
    • いくつかのフレームワークを確認する
    • ゲームのロジックに応じてエンジンを選択してください
  5. 一部のエンジンは、アドベンチャーゲーム、パズル、その他のRPGで使用できます。必要に応じて1つを選択してください。

いくつかの簡単なプログラム:

  • アプリゲームキット
  • Android用のCocos2d
  • Corona SDK
  • ゲームメーカー
  • ステンシル

これらから始めることができます。 Unityは最高のエンジンですが、最も複雑なエンジンでもあります。

2
josedlujan

良い答えを見つける前に約10年間この質問を自問しました。私の意見では、Androidのすべてのゲームフレームワークはまだ十分に成熟していないか、実装が少し難しいです。 this を使用することをお勧めします。 Androidだけでなく、あらゆるデバイスでゲームを実行できます。基本を知っていれば、簡単に学ぶことができます。

ここに素晴らしい チュートリアル があります!

Adobeのテクノロジーを使用してゲームを作成しました。これを確認できます こちら

0
FRR