Bevy 0.3のアップデート内容
Androidの静的ライブラリをサポートするbevy-glsl-to-spirvの更新
タッチのサポート
テクスチャーフォーマットの修正
タッチUIの修正
Androidオーディオサポート 他
オーディオはまだ完全には機能していません。
・WASM(WebAssembly)アセットの読み込み:HTTP経由でアセット(画像や音楽ファイルなどゲームの素材のようなもの)を取得可能。
asset_server.load("sprite.png"); // コード例
まだ完成段階にはありません。
・タッチサポート:Touchesを実装。
・アセットシステムの改善:アセットに参照カウントを実装し、アセットが自動で解放されるようになりました。アセットの読み込みに関しても柔軟性が増しました。
let handle = asset_server.load("sprite.png"); // これまではResult<Handle<T>, AssetServerError>で結果を返していましたが、シンプルにHandle<T>を返すようになりました。unwrap()が不要になる分、よりコーディングが快適に。
let second_handle = handle.clone(); // クローンなどを作成することにより、参照カウントが加算(+1)されます。
・他にも多数あります。
一方で削除された項目なども多数あります。(以下に一例)
「load_asset_folder」「load_sync」「AssetLoader.from_bytes」「load_from_file」「get_version」などのメソッド。
「AssetChannel」「AssetInfo」などの構造体。
「AssetLoadRequestHandler」などのトレイト。
思っていたよりはるかに多くの追加/削除が確認できました。上記はごく一部を抜粋したものに過ぎません。個人的にbevy関連のドキュメントは全て独自にまとめていたのですが(様々な技術情報も詳細に独自に記録していくためにも)、まだまだ発展途上段階にあるBevyの変わりようは、(想定こそしていましたが実際に直面してみると)思っていたよりも不安定で、現時点での技術を常に最新の状態に(個人的に)まとめていくのはかなり非効率的であると感じました。最終的には自分にとっての理想の技術本に仕上げるためにもこの作業(ドキュメントを独自にまとめる作業)は欠かせないとは考えていますが、今は全体像が簡単に把握できる程度にどどめ、Rust自体の学習や、実践的に色々なゲームを作ってみることに集中したほうが良さそうです。
エディターは半年後くらいに安定したものが出るかも知れない・・・と「予想」できる発言がありました。もちろんどこまでも予想なのですが、今までは「検討もつかない」状態だったので、少し目安になる情報ではと感じています。
エディターはゲームをより効率的にわかりやすく開発する上で非常に重要なものです。もちろんbevyの場合、これはRustの学習を不要にするものではないのですが、この部分はbevyに対し最も期待している要素の一つでもあります。
bevy需要
まだまだ(日本では)bevy需要もないようで、当サイトのbevy記事も検索エンジンからは「Rust ゲームエンジン」経由のものがほとんどだったりします。bevyは開発途上の段階であり、ドキュメントもバージョンアップごとに大きく変更を迫られる可能性が大のため、不安定なドキュメントの充実はさけられている状態です。私個人はGoogleでヒットする限りの全てのbevy(GameEngine)の情報にあたり、一通りドキュメントをまとめ、今はDiscordの会話全てに目を通そうとしている段階にありますが、しばらくbevy中心の学習を離れ、一旦Rust自体の学習、あるいは簡単なbevyを使ったゲーム制作練習に取り掛かろうか検討中です(思っていたよりバージョンアップによるbevy自体の仕様変更が大きかったため)。
今までbevyは関連するbevy_xxxxクレートの検索をbevyから行えなかったため、独自のdbに情報をまとめる効果は大きかったのですが、今回のアップデートでbevyから全要素に対し検索がかけられるようになりました。わりと大掛かりなドキュメント構造の変更のため(今後はここまで大きな変更はあまりないと予測していますが)、この期に再度bevy情報を整理しておこうかとも考えています。
当サイトでもbevy情報は扱っていこうとは考えていますが、丁寧なドキュメントはbevyのバージョンアップごとに価値がなくなってしまう可能性もあるため、ほどほどにしておきたいとも思っています。恐らく今の段階でbevyをいじってみようと考えている方は英語で直接情報を仕入れようと考えている方が全てだと思うので、当サイトで中途半端な解説情報を載せてもあまり意味もないような気もしてきました。実はこの前に公開したSnakeも公開した後、既に「最新バージョンではコンパイルできない」ことに気づき、コードを修正しようか迷っていました。最新情報を追いながら、安定版に入る頃にはある程度bevyを使いこなせるようになっていたい・・・というのが当面の目標です。