2016-04-16 24 views
0

因此,我正在爲塔防遊戲構建2D遊戲引擎。我在我的遊戲中使用了實體組件系統(ECS)設計,該設計允許更多的靈活性和可擴展性。然而,我很困惑我將如何去實現自定義用戶定義的規則。例如,用戶可能需要一個規則,該規則說明當兩個特定實體發生碰撞時,會引起具有一定半徑的爆炸。或者她可能需要一條規則,即當某個實體的健康狀況達到某個特定點時,速度會增加一定數量。或者可以說,當其他兩個實體發生碰撞時,等級會自動結束並轉移到下一個等級。如何在遊戲引擎設計中允許自定義規則?

問題是我希望用戶能夠定義自定義規則和事件,而且我不太清楚如何在設計中使用此功能。我想到的一個想法是創建一個規則對象,它包含一個謂詞列表和一個行爲列表,但我不太確定這些規則對象應該存在的位置或者應該在哪裏檢查/觸發,或者如果他們'甚至是一個好主意。

回答

0

用戶可以添加的規則列表需要是一個定義的集合,因此每個邏輯將被寫入最相關的組件。

你提到將是物理組件的一部分的碰撞規則,速度規則將是一個健康組件的一部分等

+0

所以ECS設計背後的理念是,不應該有任何的邏輯在組件或實體中。這個想法是邏輯應該在不同的系統中。但即使如此,我將如何允許用戶創建自定義規則?看來你的建議是我先手執行規則..? –

+0

在我使用邏輯的遊戲引擎中,通常是在組件或實體中。一些組件可以得到非常具體的。即使您的自定義規則也不能無邊無際,但在一天結束時,他們需要修改有限數量的屬性。 – Cuthbert