我正在开展一个项目,我希望用户能够尽可能地修改和自定义.
开源可能是一个不错的选择,但不是因为我想保持一些内部类关闭.
我想到的另外两个选项是作为外部库和Lua脚本的插件.
库(DLL)的问题是跨平台兼容性是必须的,因为它是某种游戏服务器,它主要设计用于专用服务器(通常是Linux),但许多人也会在它们上使用它本地机器(主要是Windows).
由于它是一个游戏服务器应用程序应该能够处理大量的连接和与游戏性能相关的操作是非常重要的,所以我对Lua脚本有疑问.
我怀疑是否合理或者Lua是一个好的解决方案?您还可以考虑我担心的更好/其他选择吗?
总结一下重要方面:
跨平台兼容性
良好的表现( - >在线游戏)
插件/脚本,任何人都可以创建,只要他/她知道语言,可能是Lua,C或其他任何东西
闭源插件/脚本的选项(不是那么重要,但会很好:)
sbk.. 5
我担心,如果Lua对你足够快,唯一可以回答的是......你.我们不知道你究竟在做什么,以及你是如何实现它的.我的建议是原型和测量.在Lua和C/C++中编写一个小而相关的系统部分,测量两者的性能并确定Lua是否足够快.以WoW作为案例研究,Lua似乎对游戏的客户端/ UI部分足够快,但我不能说服务器.但无论如何,我怀疑那里的语言比Lua更快,更容易嵌入(免责声明:我自己没有测量过Lua的性能,特别是对其他类似的语言没有,所以带上一点点盐)
你提到的一些关于DLL不是跨平台的东西,所以只是FYI:如果你想使用DLL插件并动态加载它们,Linux上就会存在相同的功能."DLL"被称为"共享库"或"共享对象",通常通过.so的扩展名来实现.而不是Windows LoadLibrary,GetProcAddress和FreeLibrary,有dlopen,dlsym和dlclose.
我担心,如果Lua对你足够快,唯一可以回答的是......你.我们不知道你究竟在做什么,以及你是如何实现它的.我的建议是原型和测量.在Lua和C/C++中编写一个小而相关的系统部分,测量两者的性能并确定Lua是否足够快.以WoW作为案例研究,Lua似乎对游戏的客户端/ UI部分足够快,但我不能说服务器.但无论如何,我怀疑那里的语言比Lua更快,更容易嵌入(免责声明:我自己没有测量过Lua的性能,特别是对其他类似的语言没有,所以带上一点点盐)
你提到的一些关于DLL不是跨平台的东西,所以只是FYI:如果你想使用DLL插件并动态加载它们,Linux上就会存在相同的功能."DLL"被称为"共享库"或"共享对象",通常通过.so的扩展名来实现.而不是Windows LoadLibrary,GetProcAddress和FreeLibrary,有dlopen,dlsym和dlclose.