🍤

Ebitengine Weekly #21 - デバッグ用GUIライブラリ microui に注目!

2024/09/03に公開

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

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

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

あたりをチェック・フォロー等していってください!

Topics

ぷちConf #3 が開催されました!

ついに、オフライン・オンラインハイブリッド開催のゆるい勉強会・交流会「ぷちConf」の第三回が、さる8月30日に開催され、盛況のうちに終了しました!今回も多くの方にご参加いただき、ありがとうございました!

詳しくはアーカイブ動画や、こちらの振り返り記事をどうぞ。

https://zenn.dev/eihigh/articles/ebitengine-petit-conf-3

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

ebitengine/microui 開発進行中


https://github.com/ebitengine/microui

かねてより需要のあった「デバッグ用の簡易GUIライブラリ」の開発が進行中です。背景についてもう少し詳しく補足すると、

  • この種のライブラリではCの Dear ImGui が原点にして最も有名で、Go向けにimgui-goなどのバインディングもいくつか存在する。
  • ただしそれらの多くはCとCgoを利用しているため、コンパイルが難しい。
  • また、Dear ImGuiは機能豊富な分移植のハードルも高い。
  • そんな中で、ImGuiの系統にありよりシンプルな機能セットを持つ microui があり、またこれをPure Goに移植する zeozeozeo 氏による試み microui-go が存在した。
  • このリポジトリをforkし、Ebitengine organization配下で開発が始まったのが ebitengine/microui である。
  • この開発には原作者の zeozeozeo 氏のほか、Ebitengine 開発者星さん、Ebitengine Discord Serverの面々も参加している。

といった流れになります。現在は絶賛開発中で、APIもこれから大きく変わる可能性があります。逆に言うと今がコントリビュートのチャンスなので、興味のある方はdiscordサーバーを覗いてみてください。

ImGuiやその系譜はゲームやツールに本格的に利用できるGUIとは言えないものの、ゲーム開発のデバッグやプロトタイプに組み込むには非常に便利なものです。それこそ最大手のコンシューマーゲーム開発でも使われている実績を持ちます。

Ebitengineのそれはやや独自路線であること、そしてこのライブラリの存在がすべてのEbitengineユーザーに利用を強制するものではない(Ebitengine本体のリポジトリとは別であることがその意思表明)ことを念頭に置きつつも、使ってみたい方は多いでしょうから、今後の進捗に注目です。

サンプルコードはこちらです。

https://github.com/ebitengine/microui/blob/main/example/ui.go

Ebitengine Game Jam 2025 開催決定!

https://itch.io/jam/ebitengine-game-jam-2025

なんと早くも来年のEbitengine Game Jamの特設ページが公開されました!例年通りテーマはGoogle Formsで募集中ですので、ぜひご応募ください。

Works

Ebitengine for OBS ブラウザソース by syumai

https://x.com/__syumai/status/1829927322587447364

OBS(配信ソフト)にブラウザを利用して映像を表示する機能があることをまず知らなかったのですが、なんとそこでEbitengineアプリを走らせて配信画面に画像を表示するという試みです。一体どうなってるの...?

興味深いポイントを上げるとキリがなくて、

  • OBS内ブラウザへはWebSocket経由で操作している(オンラインゲームに近い作り)
  • ターミナルから操作している(通常のクリックとかではなく)
  • Ebitengineの画面が透過している

などなど...。詳しい話が聞いてみたい。それにしても、Webカメラの画像を取得したりWebRTCでリアルタイム通信してみたり、Ebitengine×ブラウザの可能性は本当に無限大ですねえ。

Conway's Game of Life by knusbaum

ライフゲームをEbitengineで実装したものです。興味深いことになんとシェーダー言語Kageで描画が実装されています。そのコードはこちら

https://github.com/knusbaum/conway/blob/main/shader.kage

soft bodies by demouth

https://x.com/demouth/status/1830402740251771201

でまうす氏によるGoで物理演算の記事でも使用された jakecoffman/cp を活用したソフトボディのデモです。ふわふわ感と色合いがキュート。

https://github.com/demouth/ebitengine-sketch/blob/main/015/main.go

animated curve text by setanarut

https://gist.github.com/setanarut/fd9859a1eea6109ec8a30c899ab7952e

曲線に沿って文字を描画してみるデモです。これの応用で、モーショングラフィック的な面白い演出が作れそうです。やってみたい。

らんだむあくしょん! by 長井長縄

https://x.com/NagaiNaganawa/status/1830908631014940893

ぷちConfでの発表、イケてるボタンを考えるに触発されてボタンの処理を見直してみたとのこと。こうやってEbitengineユーザー同士の知見が流通していくのは本当に主催者冥利に尽きる話です。いつもありがとうございます。

Ebitengine Tetris Clone by cakePhone

https://github.com/cakePhone/ebitengine-tetris-clone


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

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

Discussion