無料・ロイヤリティなしで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で集計してクリア率や継続率を見ます。ゲーム側のコードは「イベント名を送る」だけに留め、集計ロジックをクライアントに持たせないのがポイントです。