[英]What is a good scripting language to integrate into high-performance applications?
我是游戲開發人員,現在正在為我們公司編寫跨平台,多線程引擎。 可以說,游戲引擎中最強大的工具之一就是它的腳本系統,因此我正在尋找一種新的腳本語言來集成到我們的引擎中(目前使用的是相對基本的內部引擎)。
所需腳本系統的主要功能(按重要性順序)是:
到目前為止,我已經積累了使用Lua,Squirrel(OO語言,基於Lua)並編寫了一個ActionScript 2虛擬機的經驗。
那么,您建議哪種腳本系統符合上述標准? (如果可能的話,您是否也可以發布或鏈接到您可能擁有的其他腳本語言的任何比較)
謝謝,格蘭特
由於Blizzard-Activision將其作為開發魔獸世界加載項的主要平台,Lua的優勢在於受到眾多知名視頻游戲開發人員和知識淵博的開發人員的良好基礎的時間考驗。
Lua多年來一直用於視頻游戲行業。 輕巧高效。
話雖這么說, ChaiScript和Falcon是很好的候選人, 可以滿足您的需求和比Lua更高級別的語言,但歷史和社區支持較少。
Lua非常適合您的需求。 我會以同樣的順序接受它們。
Lua是最快的腳本語言之一。 編譯速度快,運行速度快。
Lua在任何具有ANSI C編譯器的平台上編譯,其中afaik包括所有游戲平台。
Lua可以預編譯,但作為一種非常動態的語言,大多數錯誤只能在運行時檢測到。 預編譯代碼(作為字節碼)在大小方面通常比源代碼更大。
有許多Lua / C ++綁定工具。
它不支持多線程(您不能從多個線程訪問解釋器的單個實例),但是您可以擁有多個解釋器實例,每個線程一個實例,甚至每個游戲對象一個實例。
到目前為止,我們已經和Squirrel好運了。 Lua非常受歡迎,正在成為一個標准。
我建議你更關心內存而不是速度。 大多數腳本語言都“足夠快”,如果它們變慢,你總是可以將一些功能推回到C ++中。 但是,它們中的許多都會耗費大量內存,並且在控制台內存上比CPU時間更加稀缺。 無限的內存消耗最終會讓你崩潰,如果你只需要為解釋器分配4MB,那就像必須從窗口拋出30個紋理來騰出空間。
如果你還沒看過,我建議你查看Angelscript 。
我已經在跨平台環境(僅使用重新編譯的Windows和Linux)中成功使用它,它可以很好地與C ++(對象和代碼)集成。
它是輕量級的並且支持多線程(在問題被提出的意義上),表現良好並且編譯為可以提前完成的字節代碼。
從Python開始。
如果你能證明你需要更快的速度,那么看看Stackless Python 。 這就是EVE Online用於游戲的內容。
JavaScript可能是一個合理的選擇,因為大量的努力已經用於優化在Web瀏覽器中使用的各種實現。
想到這些:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.