-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(idea/client): Re 16_game-engine-usage-policy (#75)
Co-authored-by: anythinglab <[email protected]>
- Loading branch information
1 parent
a38c778
commit 0888ce5
Showing
1 changed file
with
18 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Suteraにおけるゲームエンジンの利用方針 | ||
## 特定の環境への依存を避ける | ||
[Suteraの存在意義について](sutera/01-significance-of-sutera's-existence.md)にあるように、Suteraは持続的なSocial-VRの実現を目指しています。 | ||
そのため、特定のソフトウェアや環境への依存を極力避けることに努めており、ゲームエンジンもその例外ではありません。 | ||
特定のゲームエンジンをクライアントのコア部分に採用するとそれらの独自機能にロックインされてしまい、Suteraの持続性がSutera以外のプロダクトによって妨げられる可能性を孕むことになります。 | ||
加えて、有名なゲームエンジンの多くはプロプライエタリでクローズドであり、それらを採用することはオープンな環境を望むSuteraの理念に大きく反するでしょう。 | ||
|
||
## 現実的な妥協点 | ||
しかし、昨今のゲームエンジンは非常に高度であり、Suteraの開発チームとコミュニティだけでそれらを代替することが現実的でないのは十二分に理解しています。 | ||
その中でも描画処理の部分は特に優れていて再現困難であると考え、以下のような解決策を用いることにしました。 | ||
|
||
- a. 通信や各種演算はSuteraの仕様に準拠したWasmの実装を使用する | ||
- b. AvatarやWorldのギミックはWasmを利用してユーザーが実装できる | ||
- (参照: [Suteraが動的オブジェクトの形式としてWebAssembly(Wasm)を採用した理由](package/13_Why-Sutera-adopted-wasm-as-the-format-for-dynamic-objects_ja-jp.md)) | ||
- c. 描画処理部分のみ既存のゲームエンジンを利用する | ||
|
||
このようにするとSuteraのWasm実装と特定ゲームエンジンの描画処理部分を繋げるパイプを用意するだけで、比較的安易にゲームエンジンを乗り換えることができます。 | ||
これは潜在的なロックインの可能性を避けることに繋がり、Suteraの理念に適した判断といえます。 |