这是情况的低谷。我正在用PHP创建一个角色扮演游戏。战斗系统由各种buff和debuff组成。战斗可能需要花费数轮(这是针对AI)。缓存数据与重新计算PHP中的数据
我是两个主意,保证了玩家的数据的正确性(BUFF和DEBUFF到期随着时间的推移,一个+5强度的buff可能只持续1回合)。通过这些用户的数据和变化获取从项目,设备,被动技能他的数据的字符序列初始化我能
1)进入,然后赤身裸体,存储在会话中添加。如果buff存在,我就应用它。如果没有,它就消失了。这样,数据的正确性就可以保证性能的提高......我假设。
2)将整个字符数据存储在会话中,并更新爱好者。当增益激活时,我添加修饰符,如果debuff/buff消失了,我必须记得'回滚'或者清理掉buff中的任何效果。我认为这对数据库不太重要,但是很难确保正确性,因为可能会有这么多不同类型的增益。
所以在
一)数据库的开销 二)作战系统 三)行业惯例对这种情况下的可维护性,
请问上述两种溶液票价方面?还有更多我不知道的事情吗?我正在考虑使用用户模式来实现#2,但是因为网络是无状态的,似乎会增加更多开销。
的统计数据是相当庞大的,至少> 30个属性(由玩家最隐藏;只是用于内部计算)。真正的问题是如果我缓存字符数据,当buff/debuff消失时,我必须将“de-init()”应用于缓存数据。而如果我使用解决方案#1并从DB重新计算角色的属性(基于EQ等),我不必去掉一个BUFF。 – Extrakun 2009-09-09 05:12:42