初めに
こんにちわ。
やろうって決めたゲームエンジンづくりですが、
今のところ挫折せずになんとか続いております。
あっという間で具体的に初めてから20日間がたちました。
前回の記事の続きです。
1日目:https://qiita.com/osakasho/items/f02d7acf8a822e25d3e0
10日目:https://qiita.com/osakasho/items/543eb0888b0a4e9162d2
20日目:イマココ<<
以下、現在のエディタ進捗キャプチャ
※当初設計より、めちゃUI変更しました。
美しいUIにするだけでそれっぽいですね。
とりあえず暫定的にPlayとStopで動作しますが、
まだ、作成途中です。
GITHUBレポジトリも作成しました。
※まだ全然使えるレベルじゃないです。
MITライセンスですべてオープンソース化します。
追加した内容
エディタUIの更新
プレイヤーエディタ
地形メーカー
これは以前記事で書いたリソースもの(https://qiita.com/osakasho/items/3155111258125ba6a22d)
を、少し使いやすくしただけなのであまり進化してないです。
デバッグプレイ機能
これが一番大事かもしれませんね。
エディタで追加したオブジェクトをすぐに確認できる機能です。
スクリプトエディタ
より複雑な機能にはコードベースが必須なので、用意しました。
今のところ書けて保存できるだけです。
シェーダエディタ
これもかけるだけなので、
実際に表示しながらかけないといけませんね。
今後の課題
- バグつぶし:ありすぎて何をかけばいいかわかりません。
- スクリプト対応:JSで任意のオブジェクトに対して対話的に操作できるようにする
- コンテンツブラウザの表示軽量化:Canvasで一時的にモデルをロードして表示するのが、ファイルが多すぎるとメインビューが止まってしまう
- サンプルゲームの作成:FPSっぽい何か作りたい
- WebRTCプラグインの実装:Skywayを使ってマルチプレイヤー対応する
- UI編集および追加:3Dオブジェクトのように直感的にUIを配置できるようにしたい。
- 物理エンジンの強化:今は三角形とAABBの衝突判定しかないので、AABBとAABBで軽量化するなど最適化が必要。
- 自動LODの実装:Next.jsでモデルアップロード時に自動で低ポリを作成し、エディタから自動LODを選択できるようにしたい。
- カメラレイヤー自動切換え:カメラからの距離で自動で表示非表示を切り変える処理
空いてる時間あれば
狂ったようにこれを作っているので、
来月には1つのゲームサンプル作って公開したいです。
おわり。