Indie Games Fund LATAM に今すぐお申し込みください

Android ゲーム開発の基本

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このガイドでは、新規のゲーム デベロッパー向けに、Android ゲーム開発で使用される主なツールとライブラリを紹介します。Android ゲーム開発の各種ガイドは、ゲーム開発環境の大部分の計画またはセットアップがすでに完了しているデベロッパーを対象としています。たとえば、経験豊富なゲーム デベロッパーは、通常、特定のゲームエンジン、IDE、グラフィック API を使用する環境でゲームを開発します。

ほとんどの場合、初心者の方には、パフォーマンスを最大限に高める高度なオプションではなく、よりユーザー フレンドリーなオプションをおすすめします。高度なツールとライブラリを使い慣れているデベロッパーは、概要を参照して、特定のタイプの最適化(パフォーマンスの向上や電池寿命の延長など)に役立つガイドを見つけることができます。

ゲームエンジン

ゲームエンジンは、ゲーム開発用のライブラリとツールのセットを含むソフトウェア フレームワークです。そのようなライブラリを使用すると、ゲームにさまざまな機能を追加できます。それらの機能により、デベロッパーはゲーム コンテンツの作成と最適化に集中できます。一般的に、そうした機能には、グラフィック、アニメーション、サウンド、ゲームループ、入力デバイスのサポートなどがあります。

また、通常、ゲームエンジンには、機能を構成し、ゲームの設計、開発、および Android へのエクスポートを行うための IDE などのツールが付属しています。

ゲームの開発時に行うべき最も重要な事柄の一つは、新しいゲームエンジンを開発するか、既存のゲームエンジンをカスタマイズするか、未修正のゲームエンジンを使用するかを選択することです。

事前構築済み

ゲーム開発に慣れていない場合は、このオプションをおすすめします。事前構築済みのゲームエンジンを使用するオプションは、ゲームエンジンの開発や AGDK ライブラリの追加に時間を費やす必要がないため、Android ゲームを開発する最も簡単な方法です。ただし、ゲームエンジンを修正せずに Android ゲームを開発するには、そのゲームエンジンがすでに Android 開発をサポートしている必要があります。

事前構築済みのゲームエンジンを使用する場合は、Google が提供する追加の Android の最適化、ワークフロー ツール、ベスト プラクティスを利用できます。さらに、Google はさまざまなソーシャル ツールと配信ツールを含む Google Play 開発者サービスも提供しています。

Android 開発をサポートする既存のゲームエンジンには、次のようなものがあります。

  • Godot: GDScript、C#、C++ などの複数のプログラミング言語をサポートするオープンソースのゲームエンジン。
  • Defold: Lua プログラミング言語を使用するオープンソースのゲームエンジン。
  • Unity: 広く利用されている、C# プログラミング言語を使用する商用ゲームエンジン。
  • Unreal: ハイエンド 3D グラフィックに特化した商用ゲームエンジン。Blueprint というビジュアル スクリプト作成システムと C++ を使用します。

詳しくは、Android でゲームエンジンを使用するガイドをご覧ください。

カスタム

最も高度なオプションは、新しいゲームエンジンを作成するか、既存のゲームエンジンに Android サポートを追加する方法です。この方法は複雑で時間がかかりますが、自身のニーズに合わせて完全に最適化および調整されたエンジンを開発できます。たとえば、多くの既存のゲームエンジンには、ゲームのサイズを増大させ、パフォーマンスを低下させる余分な機能が含まれています。こうした機能を取り除くと、ゲームエンジンを改善できます。

ゲームエンジンの開発は複雑で時間がかかるため、このオプションは新規のゲーム デベロッパーにはおすすめしません。事実上、このオプションは複数のゲームでエンジンを使用することを計画している大規模な組織に適しています。

IDE

Android ゲームの開発に使用する IDE は、利用するゲームエンジンとワークフローに依存します。よく利用されるゲームエンジンには、設計とコード編集をサポートするゲームエディタが付属しています。通常、ゲーム デベロッパーはゲームエディタを Android Studio と一緒に使用します。Windows では、Google は Visual Studio による Android ゲームのデバッグとプロファイリングもサポートしています。

ゲームエディタ

ゲームエディタではゲーム設計機能とコード編集機能が緊密に統合されていることが多く、設計者はコードを記述せずに開発タスクを完了できる場合もあります。初めて Android ゲームを開発する場合は、このオプションを Android Studio と組み合わせて使用することをおすすめします。このオプションには、次のようなメリットがあります。

  • ゲーム設計に重点を置いて UI とツールセットが構築されている。
  • アセット設計タスクとコード編集タスクが統合されている。
  • ゲームエンジンがサポートするプログラミング言語またはスクリプト言語に重点を置いて構築されている。
  • モデリング ツールとレンダリング ツールが付属している。

Android Studio

Android Studio は、Android アプリ開発用の公式 IDE です。Android 開発に重点を置いたツールであるため、使用するその他の IDE と一緒にインストールすることをおすすめします。Android Studio で完了できるタスクには、次のようなものがあります。

  • C/C++、Java、Kotlin のいずれかで記述されたコードをデバッグする。
  • Android ゲームのビルドに必要な Android SDK を管理する。
  • ゲームのビルド、プロファイリング、最適化を行う。
  • Android NDK を使用して C/C++ コードを編集する。
  • アプリのパッケージと Google Play 設定を構成する。

詳しくは、Android Studio の概要をご覧ください。

Visual Studio

Windows で Visual Studio を使用してゲームを開発する場合は、Visual Studio 向け Android Game Development Extension(AGDE)により、Android をターゲットとして追加できます。このセットアップは、すでに Visual C++ プロジェクトを使用して開発中のゲームをターゲットとするため、高度なスキルを持つゲーム デベロッパー向けのオプションです。AGDE を使用すると、次のようなことができます。

  • 既存の Visual C++ プロジェクトを使用して Android ゲームを作成する。
  • Visual Studio を使用してゲームをデバッグおよびプロファイリングする。
  • Incredibuild や SN-DBS などの分散ビルドシステムを使用する。

詳しくは、AGDE の概要をご覧ください。

Android NDK

Android NDK は、C または C++ を使用してネイティブ コードで Android アプリを開発できるツールのセットです。デバイス ハードウェアへのより直接的なアクセスを提供して、ゲームのパフォーマンスを向上させることができます。また、C および C++ ライブラリを再利用し、複数のプラットフォームでゲームコードを共有することもできます。

NDK は、一部の AGDK ライブラリおよびツールだけでなく、Android 向けの開発を行う際の多くのゲームエンジンでも必要です。その理由の一つは、NDK が、Android デバイスでサポートされる一般的な低レベル グラフィック API にアクセスするためによく使われる強力な方法であることです。

NDK について詳しくは、Android NDK のドキュメントをご覧ください。

グラフィック API

Android ゲームで 2D および 3D グラフィックのパフォーマンスを最適化するには、低レベル グラフィック API を使用して GPU と通信する必要があります。Android ゲーム開発で最も広くサポートされているオプションは、OpenGL ES と Vulkan です。

Android 開発をサポートする未修正のゲームエンジンを使用する場合の多くは、OpenGL ES または Vulkan を使用します。AGDK を使用して C または C++ でゲームを開発する場合も、OpenGL ES または Vulkan を使用する必要があります。しかも、AGI グラフィック プロファイリング ツールがサポートするグラフィック API はこれらのみです。

OpenGL ES

OpenGL ES には次のようなメリットがあります。

  • パフォーマンスが高い。
  • 比較的複雑でなく、使いやすい。
  • 多種多様な古いデバイスをサポートしている。

詳しくは、Android 用の OpenGL ES の概要をご覧ください。

Vulkan

Vulkan には次のようなメリットがあります。

  • パフォーマンスが非常に高い。
  • GPU をきめ細かく制御できる。
  • CPU 使用率が低い。

詳しくは、Android 用の Vulkan の概要をご覧ください。