OREngine (オーアールエンジン) は WebGL 製の軽量 3D エンジンです。64KB Intro Demo の制作を目的としており、TypeScript で実装されています。
- コンポーネントベースの柔軟なアーキテクチャ
- Vite を用いた高速ビルドシステム
- React との統合や Blender 連携に対応
packages/glpower は git submodule として提供されています。このサブモジュールを含む依存パッケージ一式を取得するため、以下のコマンドを実行します。
npm run initShader_Minifier を取得し、実行ファイルへのパスを通してください。
ShaderMinifier をインストール後、Path を設定します。
shader_minifier.exe を /Documents/application/shader_minifier/shader_minifier.exe に配置し、Mono をインストールします。
brew install mononpm run dev重要: ビルドやテストを行う前に一度
npm run initを実行してサブモジュール(packages/glpowerなど)を初期化してください。
npm run buildmain または master へ push すると https://<user>.github.io/<repo>/ にデプロイされます。develop ブランチは https://<user>.github.io/<repo>/develop/、プルリクエストは https://<user>.github.io/<repo>/pr-<番号>/ にそれぞれ配置されます。ワークフローの設定は .github/workflows/pages.yml にあります。
デモ用のビルドでは ShaderMinifier をスキップしているため、SKIP_SHADER_MINIFIER=true が環境変数として渡されます。将来的に Storybook を追加した場合は public/storybook 以下に成果物を配置することで同じ仕組みでデプロイできます。
ビルドと同様に、事前に npm run init を実行してサブモジュールを初期化しておく必要があります。
npm run testアーキテクチャの詳細やセットアップ手順、Blender との連携方法などは docs ディレクトリにまとめています。
ビルドサイズを 64KB 以下に抑えるにあたり、以下のツールに多大な助力をいただきました。 作者の皆さまに心より感謝いたします。
- compeko by 0b5vr
- Shader Minifier by Ctrl-Alt-Test
このプロジェクトは MIT License の下で公開されています。
