🍤

Ebitengine Weekly #7 - EbitenUI 開発者インタビュー📻️

2024/05/08に公開

おことわり:筆者がGW期間中大変ぐうたらしていたため、今更ながら4/27から5/5までの内容をお伝えします。次回からは通常通り週末に更新いたします。

本編の前に、Ebitengine (Weekly) について

Ebitengine とは、Go言語で2Dゲームを作るための非常にシンプルなライブラリです。習得しやすく、モバイルやNintendo Switchにも移植でき、実績も豊富です。(公式サイト

英語メインですが、日本語チャンネルもある Discord Server があるので、是非ご参加ください。

この記事、Ebitengine Weekly では、そんな Ebitengine に関するありとあらゆる話題を収集し、zenn 上で毎週お届けしています。発信場所として

のような場所を使っていますので、フォローなどしていただけると幸いです。

Topics

EbitenUI 開発者インタビュー

Goに関する様々な話題を扱う go podcast() にて、Ebitengine で GUI を作るための EbitenUI のメンテナである Mark Carpenter 氏が EbitenUI について語るトークが公開されました。

https://gopodcast.dev/episodes/036-game-ui-in-go-with-ebitenui-maintainer-mark-carpenter

文字起こし があるので、英語が聞き取れなくても安心です。

筆者なりにかいつまんでまとめると、以下のような感じでしょうか。

  • 趣味のMMORPGを開発するために、サーバーサイドとフロントエンドの両方でGoを使い始めた。
  • 当初はGodotでフロントエンドを作っていたが、ネットワーク領域の困難さ、それとバージョンアップで互換性が失われたことから、Ebitengineに移行した。
  • Ebitengineにはいい感じのUIライブラリがなく、当時開発が停止していたEbitenUIを改良して使った。
  • 最終的に、原作者に連絡して、EbitenUIのメンテナ権限を貰い、以降メインで開発している。
  • Ebitengineのゲームループに合わせてUIも更新/描画される設計で、非常にシンプル、かつ、ゲームと組み合わせやすい。
  • カスタムテーマ機能の追加などにも取り組んでいる。
  • ついでに自動アップデーターなどもGoで実装しており、楽しく作業している。
  • 気軽に私達の Discord Server に参加してほしい。

EbitenUIのリポジトリはこちらです。ぜひご覧ください。

https://github.com/ebitenui/ebitenui

Ebitengine v2.7.3 がリリースされました

https://ebitengine.org/ja/documents/2.7.html#v2.7.3

ebiten.ScreenSizeInFullscreen がブラウザでクラッシュした問題の修正がリリースされました。

東京ゲームダンジョン5が開催されました / SAEKO: Giantess Dating Sim が試遊展示されました

さる5/4、インディーゲーム展示会「東京ゲームダンジョン5」が開催されました。また、本記事シリーズでもたびたび取り上げさせていただいている SAEKO: Giantess Dating Sim も試遊できました。こちらのゲームメーカーズ様の記事でも、SAEKOがフィーチャーされています。

https://gamemakers.jp/article/2024_05_08_68058/

https://twitter.com/9gatsu_mid/status/1786634693452153075

東京ゲームダンジョンは開催のたびに急速に規模が拡大している今熱いインディーゲームイベントです。筆者は今回(5)は都合が合わず行けませんでしたが、過去の開催の時点で往来に苦労するほどの人の入りだった記憶があります。

いつの日か Ebitengine 製のゲームが試遊台を埋め尽くす日が来るといいですね...?!

SAEKO: Giantess Dating Sim の Steam ストアページはこちら。発売は2024年予定です。

https://store.steampowered.com/app/2492120/SAEKO_Giantess_Dating_Sim/?l=japanese

Articles

Ebitengineでビルドにアセットを埋め込む by kyp

https://kyp.jp/posts/240505_ebitengine/

Go の embed 機能を活用するためのテクニックが紹介されています。アセットを embed すればゲーム全体をバイナリ一つにまとめられるので、大変配布しやすくなります。

一つはアセット専用のパッケージを分けるテクニック。もう一つは、SAEKOのように大量のファイルを扱う場合、ビルド時の embed 処理時間が問題になることへの対策として、ビルドタグで embed 機能を使うかどうか切り替える方法が紹介されています。また、embed とファイルアクセスを両方使う際は、ファイルアクセスの方を os.DirFS を使って embed.FS とファイルパスの扱いを揃えることも重要です。

余談ですが、Discord Server でお伺いした内容だと、いくらファイルが多いとはいえ数十秒も embed にかかるのは不審なので、もしかすると Go 側に改善の余地があるのかもしれません。

Games / Releases

egriden - Ebitengine framework for creating simple grid-based games by greenthepear

https://github.com/greenthepear/egriden

John the Crawler by Vasya Serko

https://gitlab.com/NotDzhedai/johnthecrawler

https://www.youtube.com/watch?v=nmE1OFPFLXc


来週の Ebitengine Weekly もお楽しみに!

最新情報や過去の記事はこちらからチェックいただけますので、ぜひフォローなどしてください🙏

Discussion