AI個人開発の技術スタック

2DゲームをGodotで作る

個人で2Dゲームを作るなら、完全無料でロイヤリティも発生しないGodotが選びやすい選択肢です。専用の2Dレンダリングエンジンを持ち、スクリプト言語のGDScriptはシンプルでAIとの相性も良好です。

無料・ロイヤリティなしで2D特化のエンジン

GodotはMITライセンスの完全無料・オープンソースのゲームエンジンです。売上に応じたロイヤリティや、インストール数に応じた課金は発生しません。Unityの無料プラン(Personal)には直近12か月の収益が20万ドルを超えると使えなくなるという条件がありますが、Godotにはそうした収益条件自体がありません。

3D機能も持っていますが、2D専用のレンダリングパイプラインと2D向けのノード群が用意されており、2Dゲームに絞るなら余計な複雑さを抱えずに作り始められます。

GDScriptはAIが書きやすい言語

Godotの標準スクリプト言語であるGDScriptは、Pythonに近いシンプルな文法を持ちます。この手引のGoのAPI(モバイルアプリのAPIにGoを選ぶ理由)と同じ考え方で、言語仕様が小さくシンプルであるほど、AIコーディングエージェントが一貫したコードを生成しやすくなります。C#での開発にも対応していますが、個人開発でまず動くものを作るならGDScriptで十分な場合がほとんどです。

キャラクターを動かす最小限のスクリプトは、次のように短く書けます。

extends CharacterBody2D

@export var speed: float = 200.0

func _physics_process(delta: float) -> void:
    var direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
    velocity = direction * speed
    move_and_slide()

@exportを付けた変数はエディタのインスペクタから値を調整できます。移動方向の取得から物理演算への反映まで、数行で完結する読みやすさがGDScriptの特徴です。

Web書き出しでそのまま公開できる

Godotで作ったゲームは、Web(HTML5/WebAssembly)、デスクトップ、モバイルへ書き出せます。エディタのGUIからだけでなく、CIからコマンド1つでビルドできます。

godot --headless --export-release "Web" build/index.html

成果物は静的ファイルなので、この手引のCloudflare Workers編で紹介しているR2やCloudflareの無料枠、あるいは自前VPS上のCaddyでそのまま配信できます。エンジン自体が無料なうえ、公開先も低コストに抑えやすいのがGodotで2Dゲームを作る際の強みです。

KPIもGoのAPIへ送る

プレイ回数やクリア率、課金などのKPIも、専用の計測SaaSを入れず、この手引のGoのAPIへHTTPRequestノードで直接送る方法があります。

extends Node

func track_event(event_name: String, props: Dictionary = {}) -> void:
    var http := HTTPRequest.new()
    add_child(http)
    http.request_completed.connect(func(_r, _c, _h, _b): http.queue_free())

    var body := JSON.stringify({
        "name": event_name,
        "props": props,
        "ts": Time.get_unix_time_from_system()
    })
    var headers := PackedStringArray(["Content-Type: application/json"])
    http.request("https://api.example.com/v1/events", headers, HTTPClient.METHOD_POST, body)
track_event("stage_cleared", { "stage": 3 })

HTTPRequestノードは使い捨てなので、リクエスト完了後にqueue_free()で破棄しています。送られたイベントはExpo編と同じくPostgreSQLやD1に貯め、SQLで集計してクリア率や継続率を見ます。ゲーム側のコードは「イベント名を送る」だけに留め、集計ロジックをクライアントに持たせないのがポイントです。

公開先の選定から相談したい方へ

Web書き出ししたゲームの配信先選びから、構築・運用まで対応します。

運用について相談する