我一直在开发一个在线扑克游戏。但是我一直在打墙。我想在系统中实施奖励,但我希望他们充满活力。这意味着我不想重新编译我想添加的每个奖项。实施动态奖励系统
我曾考虑过为每个奖项使用Python代码。然后,当服务器检查用户是否有资格获得奖励时,它将使用Jython运行python脚本(服务器位于Java和Netty NIO中),并且如果该函数返回某个值,则将奖励颁发给用户。哪个可以工作,但是可能有更高效的技术,每当我需要检查用户是否获得奖励时,都不会强制我运行数百个Python脚本。
什么时候做这些检查的最佳时机?我已经讨论了一个钩子系统,我将在其中指定钩子([onconnect] [ondisconnect] [chatmessage.received])。这也可以工作,但感觉有点粗糙,我仍然必须运行数据库中的所有脚本。
在纯Java中,您寻求的动力可以通过使用OSGi – earcam
来实现,因此我想创建一个类似于插件系统的奖项?每个奖项都是服务器在Jar中调用的接口,然后检查用户是否应该获得奖励。但是,什么是加载性能的影响,每次检查20个罐子,每个都有奖项?或者我可以做缓存...... mmmm –
j.w.为什么你关心装20个罐子?这是服务器启动时的一次性惩罚(这是服务器代码的权利?)。此外,要有效地从jar文件加载您的类,请参阅:http://download.oracle.com/javase/1.3/docs/guide/jar/jar.html#Index%20File%20Specification –