こんにちは、 Ebitengine 作者です。 Ebitengine にご興味を持っていただきありがとうございます。

Ebitengine と Unity はどちらもゲームを作る目的のソフトウェアですが、以下のような違いがあります。自分の作りたいゲームによって、どっちが良いかは変わってきます。

なるべくどちらにも肩入れしない視点からの説明になるよう努めました。しかしながら、自分が Ebitengine 作者であり、また Unity はほぼ触ったことがありません。偏った説明になってしまっているかもしれないことをご容赦ください。

2D と 3D

Ebitengine は 2D に特化していますが、 Unity は 2D と 3D 両方に対応しています。 3D ゲームを作られるのであれば、必然的に Unity を選ぶことになります。2D の場合は Ebitengine と Unity どちらも可能です。

(ちなみに、 Ebitengine で擬似的に 3D ゲームを作られる方もいらっしゃいますが (例: Tetra3D)、これはあくまで例外です。初手ではおすすめしません。)

GUI エディタ

Ebitengine には GUI エディタがありませんが、 Unity にはあります。マップエディタのようなものは Ebitengine にはありません。必要であるなら外部ツールに頼るか、または自作するしかありません。 Odencat は、 Ebitengine 製ゲーム「メグとばけもの」などの製作元ですが、自社製のエディタを使っています。

逆に Unity はエディタでマップなど様々なリソースを作ることができます。一方、エディタを学習するコストがかかります。

直感的には「ゲーム製作のためにエディタは便利に違いないし、あるに越したことはない」と思われるでしょう。実際ある程度の規模のゲーム製作になるとエディタは必須です。しかしデフォルトのエディタがない方がむしろ良い、というケースは以下が挙げられます:

  • エディタがオーバーキルである (= 作りたいゲームに対してエディタの機能が多く、学習コストに見合わない)

  • ブラックボックスが嫌である (= 自分が把握できない範囲があるのが嫌で、なるべく全部自分でコントロールしたい)

どちらが良いかは、好みや実現したいゲームなどによって変わってきます。

プログラミング言語

Ebitengine は Go、 Unity は C# を使います。前提知識が C のみであるということであれば、どちらも習得難易度は変わらないと思います。言語仕様だけでいうと Go のほうが若干平易です。日本語情報の入手のしやすさでは C# のほうが若干上だと思われます。どちらも良い言語であり、最終的には好みの問題です。どちらを学んでも損をすることはありません。

API と機能

Ebitengine は 2D に焦点を当てているので API や機能は Unity に比べると非常にシンプルです。思い通りに絵を出すだけならば Ebitengine のほうが圧倒的に簡単だと思われます。これは機能が少ないということの裏返しでもあります。

Unity は逆に機能が豊富ですが、 API は複雑で、エディタ学習コストもあり、自分が実現したいと思ったことを出来るまでの道のりは若干遠いかもしれません。

配布の容易さ

Ebitengine も Unity もどちらもポータビリティは高く、デスクトップだけでなくブラウザ (WebAssesmbly) や Nintendo Switch などのコンソールに対応しています。

ちなみにゲームを皆にプレイしてもらいたいなら、ブラウザ向けに出力するのが一番簡単です。ブラウザ向け出力は Ebitengine がコマンド一発でできる分、 Unity より楽だと思います。筆者は、 Unity におけるブラウザ向け出力方法についてよく知らないので、間違っているかもしれません。

日本語情報量

Web や書籍を含めて日本語情報は Unity のほうが圧倒的に多いでしょう。もちろん日本人ユーザーも多く、コミュニティも大きいです。反対に、 Ebitengine は Unity に比べると日本語情報量も少なくユーザーも少ないです。そもそも Go でゲームを作る界隈というのが世界的にも非常にマイノリティです。なにか問題に出くわしたときに、助けてくれる仲間がいるかどうかという点については、 Unity のほうが圧倒的に上でしょう。

この回答が、あなたのゲーム制作のヒントになれば幸いです。ゲーム作成は大変ですが、がんばってください!

1年1年更新

利用規約プライバシーポリシーに同意の上ご利用ください

星一さんの過去の回答
    Loading...