実戦でGodot Engineを採用する際に気になること

Godot Engineはオープンソースであり非営利のプロジェクトです。 開発はコミュニティによって行われ、コントリビュータ(貢献者)によって実際のコーディングが行われています。

これを聞くと、Godotは責任の所在が不明でアマチュア集団が作っていると勘違いされがちです。 偉い人の中にはこのような疑問を持っている方もいるのではないでしょうか?

  • コンソールでちゃんとリリースできるの?
  • トラブルが起きた時サポートされるの?
  • 突然使えなくなったりしない?

こういった疑問に対して、ある程度回答のようなものができたらと思います。 本記事がGodot採用の一助になれれば幸いです。

コンソールでちゃんとリリースできるの?

結論から言うとできます。現にSwitchなどでGodot製のゲームがいくつもリリースされています。

ただしハードルは少しあります。まずOSSとコンソールプラットフォームは相性が良くないという理由があります。

ゲームやエンジンをコンソール対応するには、コンソールプラットフォームとNDA(秘密保持契約)を結び、提供されるクローズドなSDKを使用して行います。しかしそれを使用したコードもクローズドにすることが契約上求められるため、そのコードをオープンソースにすることができない、という問題が出てきます。

そのためGodotプロジェクト公式ではコンソールに対応することができません。コンソール対応の実装コードをGitHubに上げることはできないですし、Issueを立ててオープンな場で議論したりプルリクエストを出すこともできないのです。GitHubに上がっているソースコードWindows, Linux, macOS, iOS, Androidなど、オープンなプラットフォームに対応したものに限られています。

詳細はこちらの数年前の記事に書かれています。

godotengine.org

余談ですが、数年前に某商用エンジンがオープンソース化する際、コンソールのAPIにアクセスしているクローズドなソースコードもまとめてGitHubに上げてしまうという事件が起きました。界隈ではNDA違反じゃないかと話題になり、その後クローズドなソースコードGitHubから削除されました。

話を戻すと、Godotで作られたゲームをコンソールで動かすには次の2つの方法があります。

  • 他社のコンソールポーティングを使う
  • 自社でコンソール対応を行う

他社のコンソールポーティングを使う

他社が提供するGodotのコンソールポーティングを使う方法です。

GodotはOSSなので、どこの誰でもGodotから派生したエンジンを作って売ることができます。 その流れでGodotを派生させてコンソール向けのポーティングを行い他社にライセンスするビジネスを行う企業がいくつか存在します。 そういった企業はコンソールプラットフォームとNDA契約を結んでおり、クローズドなソースコードを持っています。

現在、コンソールポーティングを行っている代表的な企業はW4 Gamesです。こちらの価格モデルを見ると、プロジェクトの規模にもよりますが、一般的なミドルウェア1つ分くらいの価格で使用できそうな雰囲気です。

また重要な点として、W4 GamesはGodotのコア開発者が立ち上げた会社ということが挙げられます。Godotプロジェクト公式とは異なるのですが、半分公式くらいの立ち位置と考えてもいいのかな?と思われます。

自社でコンソール対応を行う

社内でGodotのコンソール対応を行うというストロングな方法です。

社内でエンジンを派生させることはライセンス上可能です。MITライセンスによる権利表記さえすれば自由に行えます。 社内のエンジニアがコンソール対応することで、ライセンス料なしでコンソールへゲームをリリースすることができます。

エンジニアの人件費があるから実際無料ではないのですが、一回対応してしまえばあとはメンテコストのみでいけます。 大企業なんかはこの方法を選ぶこともあるかもしれません。

トラブルが起きた時サポートされるの?

ゲームエンジンにトラブルはつきものです。トラブルが起きた時に誰に頼ればいいか不明だと怖いですよね。

商用エンジンでトラブルが起きた時は、エンジンの提供元に問い合わせてトラブルを解決できるかもしれません。

しかしOSSのGodotはどうでしょうか? なんとGodotエンジンのライセンスには「このソフトウェアを使ったことで何が起きても開発者に責任はないよ!」と書かれています。

エンジンを開発しているGodotプロジェクトにサポートを頼むことはできません。 トラブルが起きた際は次の2つの選択肢があります。

  • 有料でサポートを行っている企業に頼む
  • 社内でなんとかサポートする

有料でサポートを行っている企業に頼む

先述したコンソールポーティングを行っているW4 Gamesは、コンソール対応だけでなくサポートも行うとのことです。 もちろんこれは有料プランですが、これは責任の所在を明確にしたいというエンタープライズ向けの施策と思われます。

W4 GamesはGodotのコア開発者が設立した企業ですので、強力なサポートが得られるはずです。

社内でなんとかサポートする

Godot Engineに詳しい人を社内で育てる、もしくは外部から詳しい人を雇ったり業務委託するなどが必要になります。

そういった人はトラブルが起きたら、GitHubのIssueを検索したりコミュニティから情報を得たり、 あるいはGodotのソースコードを見て原因を調査したりして問題の対応策を考えます。

基本は社内で技術サポートの担当者を立てて、それでどうしても解決しなかったら社外に頼るというのが良いのではないでしょうか?

突然使えなくなったりしない?

Godotが突然使えなくなることはありえないと言えます。

商用ゲームエンジンのように利益を追求する必要はないし、採算が取れなくなって提供が終了するなんてこともありません。 Godotプロジェクトは企業ではなく、株主もいないのである日買収されて使えなくなるなんてこともありません。

一般的にOSSにも権利者はいます。ライセンスのコピーライトに記載されている人物、組織がそれです。 その権利者がライセンスを突然書き換えることは理論上は可能です。

しかし仮にユーザーの不利益になる方向に書き換えられたとしても、それに不服な人は書き換える前のバージョンを使い続けることもできれば、フォークして派生させることもできるのです。そういった理由もありGodotが突然使えなくなるということはあり得ないと考えられます。

Godotの資金繰りって?

Godotは資金繰りが弱くて心配という話を聞きました。

Godotの資金繰りはhttps://fund.godotengine.orgが寄付を集めて行っています。 Godotプロジェクトはここから開発費を受けていることになります。

GodotはOSSなので、基本的にはボランティアが開発を行っているのですが、コア開発者と呼ばれる中心的な人たちも活動しています。 コア開発者はフルタイム(もしくはパートタイム)で作業を行い、プルリクエストをレビューしたりコーディングを行うこともあります。

寄付の額が増えるとこのコア開発者の人数が増やすことができ、新機能の追加や不具合の修正など開発スピードがアップします。 個人でも会社組織でも、応援するという意味で寄付してみませんか?

fund.godotengine.org

(ここのCreditsに日本のゲーム会社のロゴが並ぶ日を願っています。)