2010-06-22 65 views
2

我正在尋找不同的方法來在遊戲中使用「事件腳本」引擎。我正在討論沿着Z-machine(Infocom)或Maniac Mansion的SCUMM或者MUD/MUSH或更現代化的例子中使用的引擎的能力,比如NWN。我不熟悉這些幕後的內容,但最終的結果就是我正在尋找的東西。引擎的實現語言是C/C++遊戲事件腳本引擎 - 不同的方法?

我正在查看創建內容的兩個問題,然後在我的引擎中解釋該內容。

內容創建將由專家級工程師型來完成,所以我不THINK有任何理由包括次級「腳本」語言,真正的原因是,如果我想要一個更小的技術人能夠寫出正確的內容?

我已經有了一些想法,但我寧願不引導的答案,我要評估幾種設計選擇,以確保我挑最好的一個

回答

3

幾個想法:

  • 腳本適用於快速原型設計以及新手用戶。即使你的專家工程師也會不時地使用腳本。

  • 對於事件處理,您可以對對象使用腳本語言並將一組對象綁定到每個事件。當一個事件發生時,你的引擎在每個對象上調用「它發生的」方法。

  • 對於事件處理,您可以使用具有第一類函數的腳本語言並將一組函數綁定到每個事件。事件發生時,您的引擎將使用該事件調用每個函數。

大多數現代腳本語言都支持對象和函數,但並不都是一樣。

對於這類問題,沒有哪種語言更小,更簡單,性能更好,內存佔用更好,或者更容易與C進行集成,而這正是爲了解決這類問題而設計的。欲瞭解更多信息,請參閱Programming in Lua; previous edition免費在線。

+0

謝謝我認爲這回答我的問題以及任何可以 – Nektarios 2010-06-22 17:45:32

+1

爲了擴大這一點,如果您的「專家工程師」如果接受腳本解決方案並使其能夠在遊戲運行時編輯腳本。我無法告訴你,讓你的跑步遊戲,對腳本進行調整,然後重置狀態以允許您重新觸發腳本(如果它是一次性的;如果它是'潛在的',然後編輯並保存你立即看到它)。 – 2010-06-23 02:49:22