WebGame译成中文为网页游戏,
此类游戏不同于常见的游戏,
它是以网页为游戏界面,
和Mud
有些类似,
但由于其结合了当今流行的ajax元素,
所以在界面及用户交互上比Mud很大提高.
WebGame由于是基于网页的,
所以它的平台相关性较小(只要有一个网页浏览器就差不多可以了.),
WebGame一般界面相对于通常游戏来说不够炫,
基本没有大家所常见的游戏特效,
它的界面一般就是显示一些玩家的数据和一些供玩家操作的按钮/链接.
不同于大家常见的
RPG游戏或是战略对抗游戏,
这些游戏通常要求玩家实时的操作游戏,
WebGame的时间进度相对来说较慢,
而正是由于WebGame
的游戏进度相当的慢,
玩家基本上不需要花费太多时间耗在游戏上面就行了,
可以作为一款休闲娱乐的游戏玩,
大家可以见到的WebGame
有ogame,
travian, 战神世界等等(还有很多,
不一一列举了).
由于最近在试玩一个新的游戏(混沌战争,
http://alpha.chaoswar.cn:8080),
所以有些便对其的设计产生了兴趣.
把自己的粗略的想法写出来,
希望能看到大家更好的想法~
本文中着重讨论WebGame对于数据流程的处理.
WebGame要处理两类事情:
1. 维护玩家数据
2. 处理用户对数据的查询/更新请求.
玩家数据又可再分为三类:
固定的数据(
此类数据一般一经设定就不会改变,
例如用户名称,及其他.),
主动更新的数据(
此类数据会依照系统设定的某个公式以与时间成正比的方式增长,
例如用户的资源),
被动更新的数据(此类数据不会主动发生改变
, 但它会受主动更新数据/用户行为的影响而改变,
例如战斗积分)
用户的行为大致会有以下几点:
1. 对资源生产单位的升级(
增加生产力),
2. 建造高级建筑/生产消耗单位(主要是具有战斗力的士兵/
具有生产力的农民,
这两种情况类似)
3. 攻击别的玩家,
获得/失去战斗单位,
资源.
4. 玩家系统内部的交流(如内部邮件).
5. 玩家之间的交易,
一般而言,
一个游戏系统都是设定在一系列的公式基础上的,
这样用户资源的计算才能有章可循,
并且游戏中应当有其对时间和系统最小时间片的定义(最小时间片为系统的最小计时单位,
一般为1秒).
但是如何计算这些资源,
如何能够保证返回给用户的信息总是实时并准确的呢? 通过实时的演算系统各个玩家的状态是不合理的, 因为当玩家数量巨大的时候被次演算都将是一个耗时的过程. 对于玩家数据的计算我们引入事件这一概念.
所谓事件是由用户交互而产生的影响玩家数据变化默认轨迹的过程. 假设如果一个系统没有用户的交互,
那么我们可以说系统的每时每个用户的数据都是可以通过运算求出的, 因为我们有一系列的公式来计算这些状态.
但正是由于游戏系统会接收大量的用户交互而产生大量的事件才导致了玩家数据的变化脱离系统计算轨迹. 那么我们可以得出,
在一个系统的有事件发生之前, 系统的状态是可以通过公式计算出来的, 同样, 在一个事件之后, 下一个事件发生之前,
这之间的系统状态同样可以通过相关的公式计算得出. 那么我们可以继而得出, 假如系统现在同时有n个事件在队列中的话,
系统在第n个事件发生后的状态可以由 第一个事件发生前的状态(公式计算) -> 第一个事件发生后的状态(事件处理) ->
第二个事件发生前的状态(公式计算)->第二事件发生后….. -> 第n个事件发生前(公式计算)->
第n个事件发生后的状态逐步推导而出.
今天写到这… 被别的事耽搁了..