Skip to content

Commit

Permalink
docs(idea/client): Re 16_game-engine-usage-policy (#75)
Browse files Browse the repository at this point in the history
Co-authored-by: anythinglab <[email protected]>
  • Loading branch information
See2et and anythinglab authored Oct 25, 2024
1 parent a38c778 commit 0888ce5
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions client/16_game-engine-usage-policy.md
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の理念に適した判断といえます。

0 comments on commit 0888ce5

Please sign in to comment.