🍤

Ebitengine Weekly #8 - SAEKOの開発フローの紹介㊙

2024/05/11に公開

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

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

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

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

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

Topics

開発日記 2024-05-07 by kyp

https://safehavn.dev/blog/2024-05-07/

SAEKO: Giantess Dating Sim の定期開発日記が更新されました。トピックは一つは先週の Ebitengine Weekly でも触れた東京ゲームダンジョン5についてで、その他に「デザイン案の実装フロー」と「自作アニメーションビューワを使った開発フロー」について紹介されています。

アニメーションは今までイラストレーターのkoh氏が考案したアニメーションを見ながら、kyp氏がGoコードとして実装するフローを取っていたのですが、これだとイラストレーターは実装された様子をすぐに確認できませんし、プログラマーが実装するのも大変です。

そこで、アニメーション用の独自のJSONファイルの形式と、それを解釈するビューワを自作し、イラストレーターがJSONファイルを編集して画面上で動きを確認できるようにしたおかげで、結果二人の負担を大幅に減らすことに成功したとのことです。

プログラマーが、チームメンバーとの作業領域の割り当てからがっつり見直すことで、トータルでの工数を大幅に減らすというお手本通りの効率化だと筆者は感じました!

ネタバレ回避のためにこれ以上の説明は難しいが、発売後により詳しい技術的な紹介をしたいとのことで、こちらも楽しみですね!

ブラウザ上でEbitengineを使ってwebカメラから取得した映像を描画してみた by hamao

https://zenn.dev/hamao/articles/219ab8aa2edd16
https://twitter.com/hamao_0820/status/1788351581777428702

syscall/js はブラウザの機能にアクセスするためのGoのパッケージです。Webカメラにアクセスするプログラムを書くのは普通はかなり手間なのですが、ブラウザの機能を利用することで比較的簡単にアクセスできてしまいます。

もちろんブラウザの機能に依存しておりデスクトップアプリとしては動作しないのでそれには留意していただくとして、ブラウザを活用すればやれることの幅はかなり広がりますし、その際ブラウザ(wasm)ビルドしやすいEbitengineは非常に便利ですね!

シェーダープリコンパイル機能

https://github.com/hajimehoshi/ebiten/issues/2861

シェーダーの事前コンパイル機能を提供する shederprecomp パッケージが実装されました。

今まではプログラムの起動後に、Kageコードを各プラットフォーム向けにコンパイルしていました。しかしこの方法はプログラムの起動時に長めのコンパイル時間がかかるなどの問題がありました。

今回追加された shederprecomp パッケージを使えば、KageプログラムからFXCなどの各プラットフォーム向けのコンパイル済みシェーダーコードを出力することができます。このファイルをアセットとして含めておけば、起動後の処理が減るというわけです。

やや高度な機能になるのですが、例によって example が用意されているため、興味のある方は読んでみてください。

https://github.com/hajimehoshi/ebiten/tree/main/examples/shaderprecomp

Games / Packages

Hexslide by dpostuk

https://dpost.itch.io/hexslide

ブラウザで遊べる独創性のあるパズルゲームです。Baba Is You あたりが好きな人なら是非とも遊んでほしいタイトルです。ビジュアルもサウンドも心地よくて完成度は高いです。

筆者は全然解けなかったのですが、もし全問正解できた方がいたらこっそりやり方を教えてください!

Minesweeper by ぼらすと

https://halwhite.itch.io/minesweeper
https://twitter.com/bollustration/status/1787842068758536374

みなさんご存知マインスイーパーです!過去のEbitengine Weeklyでも別の作品を紹介しましたね。やはりこちらもブラウザで遊ぶことができます。

もぐらんか? by スペリオン

https://twitter.com/spellyon/status/1788949616169562585

スペリオン氏が開発中のゲームの進捗動画です。ポストに書いてある通りなのですが、照明の表現などシェーダーで実装されており非常に魅力的な絵作りになっています。

筆者もこの手のビジュアル表現は学んでいきたいんですが、どこで習得できるんですかね...🤔

Inside The Crystal Mountain: 開発者による Speedrun 動画 by tipodue

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

Steamにて販売されているEbitengine製ゲーム Inside The Crystal Mountain の開発者による Speedrun 動画が公開されました。

https://store.steampowered.com/app/2713740/Inside_The_Crystal_Mountain/

このゲームは Asperite でドット絵を描き、マップを Tiled Editor で作成し、他は Ebitengine と go-steamworks のみで完成させたとのことです。

マップ、キャラ、エフェクト、その他アクションゲームとして一通り魅力的に仕上がっているうえに、非常にシンプルな技術スタックでできているため参考にもしやすそうです。なんとオープンソースとしていずれ公開する予定もあるとのことで、筆者も楽しみにしています。

Snake game by mikenye


https://github.com/mikenye/snake

こちらもみなさんご存知スネークゲームです。こちらのチュートリアル動画を見て実装したとのことで、よく知った題材でEbitengineに慣れるのはとてもよさそうですね。

PixelMek 3D by Mechteric

https://github.com/pixelmek-3d/pixelmek-3d
https://www.youtube.com/watch?v=LNY0OMTKTy8&list=PLOINtzQqJWIjJazpjglLLukTZF3KBNghR&index=6&t=1s

stagehand: The only scene manager you will ever need for Ebitengine by joelschutz

https://github.com/joelschutz/stagehand

kamera: Camera package for Ebitengine v2 by setanarut

https://github.com/setanarut/kamera


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

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

Discussion