我正在从事一个项目,我希望用户能够尽可能多地进行修改和自定义。
开源可能是一个不错的选择,但这并不是因为我想关闭一些内部类。
我想到的另外两个选项是作为外部库的插件和 Lua脚本。
库 (DLL) 的问题是跨平台兼容性是必须具备的,因为它是某种游戏服务器,主要设计用于专用服务器(通常是 Linux),但许多人也会使用它在他们的本地机器上(主要是 Windows)。
由于它是一个游戏服务器应用程序,应该能够处理大量连接,并且与游戏性能相关的操作非常重要,所以我对 Lua 脚本有疑问。
我的怀疑是否合理,或者 Lua 是一个好的解决方案吗? 另外,对于我的问题,您能想到更好的/其他选择吗?
总结重要方面:
- 跨平台兼容性
- 良好的表现(->在线游戏)
- 任何人都可以创建的插件/脚本,只要他/她了解该语言,可以是 Lua、C 或其他语言
- 闭源插件/脚本的选项(不是很重要,但没关系:)
最佳答案
恐怕唯一能回答 Lua 是否对你来说足够快的人就是......你。我们不知道你到底在做什么,你是如何实现的。我的建议是制作原型(prototype)和测量。用 Lua 和 C/C++ 编写一个小但相关的系统部分,测量两者的性能并确定 Lua 是否足够快。以 WoW 作为案例研究,Lua 似乎对于游戏的客户端/UI 部分来说足够快,但我不能说关于服务器的任何事情。但无论如何,我怀疑是否存在比 Lua 更快、更容易嵌入的语言(免责声明:我自己没有衡量过 Lua 的性能,尤其是与其他类似语言相比,所以对此持怀疑态度)
您提到 DLL 不是跨平台的,所以仅供引用:如果您想将 DLL 用于插件并动态加载它们,Linux 上存在相同的功能。 “DLL”称为“共享库”或“共享对象”,通常以 .so 为扩展名。而不是 window LoadLibrary , GetProcAddress和 FreeLibrary , 有 dlopen , dlsym和 dlclose .
关于c++ - Lua 是游戏服务器的最佳/最快选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601431/