|
1 | | -# CLAUDE.md |
2 | | - |
3 | | -このファイルは、Claude Code (claude.ai/code) がこのリポジトリ内のコードを操作する際のガイダンスを提供します。 |
4 | | - |
5 | | - |
6 | | -## リポジトリアーキテクチャ |
7 | | - |
8 | | -Lumino は、以下の主要なアーキテクチャレイヤーを備えたマルチプラットフォームゲームエンジンライブラリです。 |
9 | | - |
10 | | -### コアパッケージ構造 |
11 | | -- **LuminoCore**: 基盤レイヤー (演算、I/O、スレッド、シリアル化、文字列) |
12 | | -- **LuminoEngine**: コアエンジンモジュール (グラフィックス RHI、オーディオ、レンダリング、プラットフォーム抽象化) |
13 | | -- **LuminoFramework**: 高レベルゲームフレームワーク (シーン、物理演算、UI、エフェクト) |
14 | | -- **LuminoFFI**: 他言語との統合のための C API バインディング |
15 | | -- **lumino-js**: JavaScript/WebAssembly バインディング |
16 | | - |
17 | | -### 主要なアーキテクチャコンセプト |
18 | | - |
19 | | -**マルチプラットフォーム設計**: エンジンは、Windows (DirectX12/OpenGL)、Linux/macOS (OpenGL/Vulkan)、WebAssembly (WebGL/WebGPU)、Android/iOS (OpenGL ES) をサポートします。 |
20 | | - |
21 | | -**グラフィックス RHI**: 複数のバックエンドをサポートするハードウェア抽象化レイヤー(DirectX12、Vulkan、OpenGL、WebGL、WebGPU) |
22 | | - |
23 | | -**アセットパイプライン**: メッシュ、テクスチャ、シェーダー、オーディオをサポートするランタイムアセットのロードとコンパイル |
24 | | - |
25 | | -**コンポーネントアーキテクチャ**: ゲームオブジェクト用のエンティティコンポーネントシステムを備えたシーングラフ |
26 | | - |
27 | | -**モダンC++17**: モダンC++機能、STLコンテナ、スマートポインタ、オプショナル型を使用 |
28 | | - |
29 | | -### パッケージ依存関係 |
30 | | -- LuminoCore → 内部依存関係なし |
31 | | -- LuminoEngine → LuminoCore |
32 | | -- LuminoFramework → LuminoEngine + LuminoCore |
33 | | -- LuminoFFI → LuminoEngine + LuminoCore |
34 | | - |
35 | | -### 外部依存関係 |
36 | | -vcpkg経由で管理: zlib、libpng、freetype、Vulkan、glslang、SPIRV-Cross、OpenAL、bullet3、box2d、ImGui、glTF、OBJローダー |
37 | | - |
38 | | -### シェーダーシステム |
39 | | -- プライマリ: HLSL/GLSL へのクロスコンパイルが可能な Slang シェーディング言語 |
40 | | -- レガシー: HLSL エフェクトシステム |
41 | | -- 場所: `packages/LuminoEngine/shader/` |
42 | | - |
43 | | -### プラットフォーム抽象化 |
44 | | -プラットフォーム固有のコードは `Platform/` ディレクトリに分離され、マネージャークラスによって Windows (Win32)、Linux/macOS (GLFW)、Web (Emscripten) 間で統一された API が提供されます。 |
45 | | - |
46 | | -## 開発ワークフロー |
47 | | - |
48 | | -1. **セットアップ**: `docs/how-to-build.md` に記載されているとおり、vcpkg をリポジトリのルートにクローンします。 |
49 | | -2. **ビルド**: テストを含む完全なビルドには、`dotnet run -- Bootstrap` を使用します。 |
50 | | -3. **イテレーション**: エンジンのみのリビルドには、`dotnet run -- BuildEngine` を使用します。 |
51 | | -4. **テスト**: エンジンのビルド中に ctest を介してテストが自動的に実行されます。 |
52 | | -5. **Web**: `packages/lumino-js/` で別の npm ビルドプロセスを使用します。 |
53 | | - |
54 | | -## 重要なファイルの場所 |
55 | | - |
56 | | -- メイン CMake: `CMakeLists.txt` |
57 | | -- コアエンジン: `packages/LuminoEngine/src/` |
58 | | -- パブリックヘッダー: `packages/*/include/` |
59 | | -- サンプル: `packages/*/examples/`、`examples/` |
60 | | -- テスト: `packages/*/test/` |
61 | | -- ビルドシステム: `tools/LuminoBuild/` |
62 | | -- ドキュメント: `docs/` |
| 1 | +# CLAUDE.md |
| 2 | + |
| 3 | +このファイルは、Claude Code (claude.ai/code) がこのリポジトリ内のコードを操作する際のガイダンスを提供します。 |
| 4 | + |
| 5 | + |
| 6 | +## リポジトリアーキテクチャ |
| 7 | + |
| 8 | +Lumino は、以下の主要なアーキテクチャレイヤーを備えたマルチプラットフォームゲームエンジンライブラリです。 |
| 9 | + |
| 10 | +### コアパッケージ構造 |
| 11 | +- **LuminoCore**: 基盤レイヤー (演算、I/O、スレッド、シリアル化、文字列) |
| 12 | +- **LuminoEngine**: コアエンジンモジュール (グラフィックス RHI、オーディオ、レンダリング、プラットフォーム抽象化) |
| 13 | +- **LuminoFramework**: 高レベルゲームフレームワーク (シーン、物理演算、UI、エフェクト) |
| 14 | +- **LuminoFFI**: 他言語との統合のための C API バインディング |
| 15 | +- **lumino-js**: JavaScript/WebAssembly バインディング |
| 16 | + |
| 17 | +### 主要なアーキテクチャコンセプト |
| 18 | + |
| 19 | +**マルチプラットフォーム設計**: エンジンは、Windows (DirectX12/OpenGL)、Linux/macOS (OpenGL/Vulkan)、WebAssembly (WebGL/WebGPU)、Android/iOS (OpenGL ES) をサポートします。 |
| 20 | + |
| 21 | +**グラフィックス RHI**: 複数のバックエンドをサポートするハードウェア抽象化レイヤー(DirectX12、Vulkan、OpenGL、WebGL、WebGPU) |
| 22 | + |
| 23 | +**アセットパイプライン**: メッシュ、テクスチャ、シェーダー、オーディオをサポートするランタイムアセットのロードとコンパイル |
| 24 | + |
| 25 | +**コンポーネントアーキテクチャ**: ゲームオブジェクト用のエンティティコンポーネントシステムを備えたシーングラフ |
| 26 | + |
| 27 | +**モダンC++17**: モダンC++機能、STLコンテナ、スマートポインタ、オプショナル型を使用 |
| 28 | + |
| 29 | +### パッケージ依存関係 |
| 30 | +- LuminoCore → 内部依存関係なし |
| 31 | +- LuminoEngine → LuminoCore |
| 32 | +- LuminoFramework → LuminoEngine + LuminoCore |
| 33 | +- LuminoFFI → LuminoEngine + LuminoCore |
| 34 | + |
| 35 | +### 外部依存関係 |
| 36 | +vcpkg経由で管理: zlib、libpng、freetype、Vulkan、glslang、SPIRV-Cross、OpenAL、bullet3、box2d、ImGui、glTF、OBJローダー |
| 37 | + |
| 38 | +### シェーダーシステム |
| 39 | +- プライマリ: HLSL/GLSL へのクロスコンパイルが可能な Slang シェーディング言語 |
| 40 | +- レガシー: HLSL エフェクトシステム |
| 41 | +- 場所: `packages/LuminoEngine/shader/` |
| 42 | + |
| 43 | +### プラットフォーム抽象化 |
| 44 | +プラットフォーム固有のコードは `Platform/` ディレクトリに分離され、マネージャークラスによって Windows (Win32)、Linux/macOS (GLFW)、Web (Emscripten) 間で統一された API が提供されます。 |
| 45 | + |
| 46 | +## 開発ワークフロー |
| 47 | + |
| 48 | +1. **セットアップ**: `docs/how-to-build.md` に記載されているとおり、vcpkg をリポジトリのルートにクローンします。 |
| 49 | +2. **ビルド**: テストを含む完全なビルドには、`dotnet run -- Bootstrap` を使用します。 |
| 50 | +3. **イテレーション**: エンジンのみのリビルドには、`dotnet run -- BuildEngine` を使用します。 |
| 51 | +4. **テスト**: エンジンのビルド中に ctest を介してテストが自動的に実行されます。 |
| 52 | +5. **Web**: `packages/lumino-js/` で別の npm ビルドプロセスを使用します。 |
| 53 | + |
| 54 | +## 重要なファイルの場所 |
| 55 | + |
| 56 | +- メイン CMake: `CMakeLists.txt` |
| 57 | +- コアエンジン: `packages/LuminoEngine/src/` |
| 58 | +- パブリックヘッダー: `packages/*/include/` |
| 59 | +- サンプル: `packages/*/examples/`、`examples/` |
| 60 | +- テスト: `packages/*/test/` |
| 61 | +- ビルドシステム: `tools/LuminoBuild/` |
| 62 | +- ドキュメント: `docs/` |
0 commit comments