web策略类游戏开发(一) WebGame架构篇

1 体系结构

1.1 传统的网站的架构
传统的网站一般都是以N层结构一般N为3,就是我们常说的三层架构。
3层架构分为数据层、业务逻辑层、页面显示层。

1.2 WebGame的架构
WebGame可以看作是网站和游戏的结合体,因此它具备了这两类系统的特性。我们不但可以把WebGame看作是一个网站,也可以把它看作是一个网络游戏。
的网站是B/S结构,网络游戏则是C/S结构,WebGame则是这两者的结合我们暂且称之为B/C/S结构。既在用户眼里,它是一个通过浏览器范围的网站。在服务器系统里,它又是一个传统的C/S结构的网络游戏。



点击在新窗口中浏览此图片


从上图分析,用户通过浏览器访问服务器的时候,首先是访问网页服务器,如windows平台下的IIS,linux下的Apache。在通过网页服务器,以某种特殊的方式(分布式访问,如.net下的remoting)去访问游戏服务器,通知游戏逻辑服务器执行玩家操作,并从游戏逻辑服务器里获得游戏相关的信息,或者直接通过访问数据库而获得游戏数据。

1.2.1 为什么要将服务器分为游戏服务器和网页服务器
网页服务器的特点是触发执行,及当有用户访问网页的时候,才会执行该网页的程序代码。而我们常见的WebGame(Ogame,Travian)这些游戏实际上是需要24小时不间断执行的,因此网页服务器的执行方式并不适合与游戏。因此我们另外需要一个应用程序来执行这些24小时不间断要做的事情。这也就是我们需要增加一个游戏服务器的原因。

1.3 Web三国的架构
因为目前Web三国是非商业开发,因此如果照搬上面的WebGame架构来设计,会导致开发周期过长,开发效率低下的问题。实际上在开发初期,Web三国是按照上面的架构去开发,碰上了上述问题,才换了另外一种结构。
实际性现在Web三国的结构和WebGame架构差不多,只不过将游戏服务器集成到网页服务器里,项目里按照传统的网站架构,将游戏分为:数据层、游戏逻辑层、页面层。
至于如何实现24小时不间断处理,者是通过在游戏启动时,创建一个线程去处理。这个是asp.net里的一个功能,我不清楚php里是否也有这样的功能。




作者:Yahle
曾用网名:Dogvane
原载: http://www.cnblogs.com/yah...
版权所有。转载时必须以链接形式注明作者和原始出处。

一地图管理:(MapManager 包) 这个包下有很多的用于地图上的管理。包括基础Map,功能加载地图, Map 下有以下的方法: 实现方案: 方案1.元素构成的地图 二.道具管理(ItemManager 包) 这个包是负责角色的使用物品包括道具(),武器(攻击) ,装备(防御) 三.声音管理(SoundManager 包) 这个包负责声音的特效,加载,卸载,场景音乐播放停止暂停,调整音量大小, 获取音量大小,还有一些显示的问题 四.角色管理(CharacterManager) 这个包负责创建不同的主角和配角,包括创建角色,设置角色属性,获取角色属性, 删除角色,分派角色的常见行为和技能等,设置怪物Ai。写一个接口或者建议基共享角 色中的属性和方法(当创建主角和创建怪物的时候,也一样可以使用这样方法); 制作使用的设计模式: Strategy 模式; 工厂模式; 单例模式; 外观模式. Decorator 模式: 五.事件管理(GameEvent 包) 划分不同的情节,用不同的来描述情节。包括不同的任务。 初步想法:写出不同的事件,每一个事件就关于一个故事情节,引发场景动画,引发一些 对白言语等等; 八.通信管理(CommunionManager 包): socket 通信,连接服务器,读取服务器的数据。读取和写入数据库; 打斗时候的各种情况记录 网络游戏中最重要的一个地方,这个关于通信的是影响到游戏是否能够顺利进行。 九.操作管理(ControlManager包): 用于设定游戏的操作键盘,和鼠标,实现与键盘鼠标进行交互管理用户输入的数据 十.游戏管理(GameManager包): (暂定) 包括游戏设定,音乐大小开关,场景特效开启调整画面质量等。查看个人信息、技能 表、自动保存问题,玩家在游戏中状态(包括时间的统计) 基本方法 GameSave();//游戏保存的问题。当玩家在游戏中死了的时候,应该如何去保存当前的数据 SoundOn(); //游戏开关全局 //画面质量,高,中,低 十一游戏Ai管理(AiManager 包 这里包括一套关于Ai 的算法机制,初步的一些想法: 包括一些有限状态机的设计模型,或者在有限状态机基础上去加入随机性去。 深入的技术:神经网络,包括BP 算法 共32页PDF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值