ネイティブ・ブラウザ両対応の新しいゲームエンジンを作り始めました
ネイティブとブラウザの両方の環境に対応した新しいゲームエンジンを作り始めました。描画の基本的な機能を使えるようになったので、お披露目しようと思います。
デモ
↑chrome (chromium)では問題なく動作していると思います。
firefoxではnightly版でのみ実行可能です。
使用している技術など
開発言語はc++です。rustが流行っていますが、私の経験値の少なさや、windows-rsなどrust向けのライブラリのインターフェイスの不安定さ、最近のc++の安全性への取り組みなどを考慮し、c++で開発することにしました。
グラフィックスの抽象化にWebGPUを使っており、ネイティブ版ではdawn、ブラウザ版ではemscriptenがc++に公開しているライブラリを使っています。
開発状況
やったこと
- WebGPUでの各種バッファを扱えるようになる。
- 開発者がスクリプトを実行したり、そのデバッグをしたりできる。
- キーボード入力
これからやること
- Unityで言うところのsceneやgameobjectなどの実装
- エディタ
- 描画機能いろいろ(カメラ、メッシュ、マテリアル、etc)
- (その他無限にある様々)
まだゲームエンジンと呼べる代物では到底ないですが、これから機能を充実させていきます。