实施动态奖励制度

Joh*_*oit 8 java poker

我一直在开发在线扑克游戏.但我一直在撞墙.我想在系统中实施奖励,但我希望它们是动态的.意思是我不想重新编译我想要添加的每个奖项.

我曾考虑过为每个奖项使用Python代码.然后,当服务器检查用户是否有资格获得奖励时,它会运行带有Jython的python脚本(服务器使用Java和Netty NIO),如果函数返回某个值,我将奖励授予用户.哪个可以工作但是可能有更高效的技术,每次我需要检查用户是否获得奖励时,不会强迫我运行数百个python脚本.

什么时候进行这些检查的最佳时间?我已经考虑了一个钩子系统,我将指定钩子([onconnect] [ondisconnect] [chatmessage.received]).哪个也可以工作,但感觉有点粗糙,我仍然必须从数据库运行所有脚本.

jkr*_*ill 6

如果我是你,我会有一个完全独立的过程来授予奖励.它可能每天在包含所有播放器/游戏数据的底层数据库上运行一次.

您的面向客户的核心应用程序了解奖项,但它所知道的只是它从数据库加载的数据 - 例如标题,图像,描述,可能有多少人拥有该奖项等等,以及(基于数据库)表格)谁赢得了奖项.

您的"奖励过程"过程只需以批处理模式运行,每天/每小时一次等,并为符合条件的玩家提供新奖励.然后面向客户的核心应用程序通知他们,但实际上并不知道如何授予他们的聪明才智.这使您可以随时自由地重新编译和重新运行奖励计划,而不会影响核心应用程序.

另一种方法,取决于您的奖励受限制,将是编写一个简单的规则界面,允许您在数据中定义规则.这对于实现你所描述的内容是理想的,但在我看来,这对于没有多少奖励来说是相当多的工作.

PS - 在运行类似在线扑克服务器的东西时,你会一直遇到这个问题的版本.您绝对需要开发一种部署新代码的方法,而不会中断您的服务或有停机时间窗口.从长远来看,围绕以Java为中心的奖励代码解决方案并不能解决这个问题.您应该查看有关运行真正的24/7服务的文献,有很多方法可以解决这个问题,而且这些日子实际上并不困难.