私はタワー防衛ゲームのための2Dゲームエンジンの構築に取り組んでいます。私は自分のゲームでEntity Component System(ECS)デザインを使用しています。これにより、柔軟性と拡張性が向上します。しかし、カスタムユーザー定義ルールを実装する方法については混乱しています。たとえば、2つの特定のエンティティが衝突したときに、特定の半径の爆発を引き起こすという規則をユーザが望むことがあります。あるいは、特定の企業の健康状態が一定のポイントに達すると、一定のスピードでそのスピードが上昇するというルールを望むかもしれません。または、他の2つのエンティティが衝突した場合、レベルは自動的に上書きされ、次のレベルに移動します。Game Engineデザインでカスタムルールを許可する方法は?
重要な点は、ユーザーがカスタムルールやイベントを定義できるようにすることです。デザインにこの機能を組み込むにはどうすればいいか分かりません。私が持っていた1つのアイデアは、述語のリストとアクションのリストで構成されるルールオブジェクトを作成することでしたが、これらのルールオブジェクトがどこに存在すべきか、どこでチェック/トリガーされるべきか、良いアイデアでもあります。
だから、ECSの設計理念は、任意のロジックがあってはならないということですコンポーネントまたはエンティティで使用します。アイデアは、ロジックが異なるシステムになければならないということです。しかし、それでもユーザーがカスタムルールを作成できるようにするにはどうすればよいですか?あなたの前にルールを実装することを提案しているようです。 –
私がロジックで作業してきたゲームエンジンでは、通常、コンポーネントやエンティティの内部にあります。コンポーネントのいくつかは非常に具体的になることができます。あなたのカスタムルールでさえ無限にすることはできません。一日の終わりには、有限のプロパティを変更する必要があります。 – Cuthbert