|
再讲叙这个话题以前,有必要先明确"可修改数据"与"不可修改数据"的定义.
不可修改数据:游戏中固定,永不可更改的数据.例如:角色创建后的呢称.角色成长公式,WOW中的武器自身速度,等等^^^^^
可修改数据:游戏中不固定,可修改的数据.例如:HP,MP,WOW的技能等级,诛仙里的武器因为强化可修改所有属性.
(估且我们这样定义吧!)
定义完后,有人会问为什么要讨论这个?
呵呵,我举个例子你就明白了.
假如有个囚犯的资料如下:张三,男,32岁,银行抢劫犯,杀人犯,长相身材资料,家庭资料,好友资料,刑期,每日伙食标准,每日放风时间段(15点到16点),身上携带物品资料,^^^^^^(你把它看成一个角色的所有信息.)
现在这个叫张三的家伙朝监狱长叫喊:"放风时间到了,让我出去."(你把它看成玩家请求登陆游戏)
监狱长核对资料,确认此人是张三,张三的放风时间已到.批准放风.(服务器一次性读取张三的所有信息)
在放风的过程中,假如张三这个不老实的家伙偷偷利用自己的技术把自己的物品(手机)改造成一个手机炸弹(改造后的物品).如果服务器不把张三的手机物品的信息看成是可以修改的数据,则即便监狱长(服务器)发现,张三的手机炸弹依旧会当成是手机保存在张三的档案(DB)里.
这时造成的后果是什么呢?
现实里,当然是张三企图利用炸弹越狱.
在虚拟环境里,是玩家下次上线时,发现自己好不容易得来的手机炸弹依然是手机.(这也是某些玩家抱怨自己的收费道具莫名其妙丢失的原因之一.这种错误完全是策划的错误!)
看过这个例子,你明白作为一个策划,明确告诉程序哪些数据为可修改,哪些为不可修改的重要性有多大了吧!
说到这里还有必要叙述一种错误的服务器与DB之间的运作模式.
依然拿上面的例子来说.如果监狱长十分厉害,他发现并记录了张三的不良举动并记录下来(服务器认为手机为可修改数据).那么张三就不能成功越狱了吗?不一定.
张三是个非常狡猾的家伙.他通过长期观察,发现监狱长(服务器)是每到放风结束时才检查所有犯人的资料(更新DB).放风时间段内,监狱长(服务器)根本不管事.
于是,张三灵机一动,他又改造了一个手机炸弹,并且在放风时间还未结束的时候,忽然装病,请求回牢房(你可以看成玩家请求退出游戏.)
其他监狱管事看到张三忽然病倒,迅速把张三抬回了牢房.等到监狱长(服务器)在放风时间结束时来检查人员的时候,张三早就成功地回到牢房把东西藏的好好的。监狱长无法更新张三的资料.(玩家早已下线,服务器无法更新玩家信息)
于是在现实里,张三当晚越狱了。
在虚拟世界里,玩家下次上线时,依然发现自己花大价钱的买的收费道具又莫名其妙地不见了。
看到这里,我们策划应该又明白如何对程序说自动保存的事情了...
~~~~~~~~~~~
.......希望有熟悉客户端,服务器与DB之间如何安排可修改数据与不可修改数据的同行来一同探讨....
偶的QQ:120716122
|
|