web策略类游戏开发

web策略类游戏开发

ID:18752179

大小:349.50 KB

页数:15页

时间:2018-09-22

web策略类游戏开发_第1页
web策略类游戏开发_第2页
web策略类游戏开发_第3页
web策略类游戏开发_第4页
web策略类游戏开发_第5页
资源描述:

《web策略类游戏开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、web策略类游戏开发(一)WebGame架构篇1体系结构1.1传统的网站的架构传统的网站一般都是以N层结构一般N为3,就是我们常说的三层架构。3层架构分为数据层、业务逻辑层、页面显示层。1.2WebGame的架构WebGame可以看作是网站和游戏的结合体,因此它具备了这两类系统的特性。我们不但可以把WebGame看作是一个网站,也可以把它看作是一个网络游戏。的网站是B/S结构,网络游戏则是C/S结构,WebGame则是这两者的结合我们暂且称之为B/C/S结构。既在用户眼里,它是一个通过浏览器范围的网站。在服务器系统里,它又是一个传统的C/S结构的网络游戏。从上图分析,用户通过

2、浏览器访问服务器的时候,首先是访问网页服务器,如windows平台下的IIS,linux下的Apache。在通过网页服务器,以某种特殊的方式(分布式访问,如.net下的remoting)去访问游戏服务器,通知游戏逻辑服务器执行玩家操作,并从游戏逻辑服务器里获得游戏相关的信息,或者直接通过访问数据库而获得游戏数据。1.2.1为什么要将服务器分为游戏服务器和网页服务器网页服务器的特点是触发执行,及当有用户访问网页的时候,才会执行该网页的程序代码。而我们常见的WebGame(Ogame,Travian)这些游戏实际上是需要24小时不间断执行的,因此网页服务器的执行方式并不适合与游戏

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

4、et里的一个功能,我不清楚php里是否也有这样的功能。web策略类游戏开发(二)WebGame事件1事件系统事件系统是整个WebGame系统里一个核心的组成部分,我们用它来控制的进程,让游戏世界里能够24小时运转。1.1事件的概念事件是指游戏里玩家的某个(系列)活动,它可以分为瞬时活动和非瞬时活动。瞬时活动顾名思义就是在玩家发出指令的瞬间就能完成的活动。像RPG游戏里,玩家从NPC里购买一瓶药水,在玩家发出这个指令后,玩家的金钱减少,并获得药水,这一切都在玩家发出指令后瞬间完成(当然实际逻辑上处理还需要几个ms处理时间)。而非瞬时活动则是在玩家发出某个指令后一段事件才会被执行

5、。例如RPG里玩家鼠标点击地图上某个地方,游戏角色则会自动行走到刚才点击处。这个移动过程就是一个非瞬时过程,它有了一个移动的过程,这个过程需要消耗一定的时间(玩家能感知的事件)非瞬时系列活动是指一位或者多位玩家通过一系列的瞬时非瞬时活动完成一个动作(功能)。例如wow里面的拍卖场,有1位玩家提供道具,同服务器里的其他玩家对该道具进行竞拍。在WebGame里,玩家的很多操作其实是非瞬时部分事件是村庄资源减少(前提投资),非瞬时事件是建筑物建设,这个动作(同能)的结果是建筑物等级上升。又比如《Travian》里的攻击,瞬时事件是当前村庄的士兵减少(派出部队),非瞬时事件是减少的

6、士兵移动到需要攻击的村庄(行军过程),动作结束是,两个村庄的部队开打了(战斗)。1.2触发器(事件队列)前面说了瞬时事件和非瞬时事件的概念,当WebGame在24小时运转的时候,系统会产生大量的非瞬时事件,这些非瞬时事件不会在玩家点击页面时执行,而是需要等一段时间后才会执行,因此在游戏里把这些非瞬时事件拿出来,按事件的执行时间进行排序,组成一个事件队列。再通过一个触发器,在事件设定的执行时间到达的那时执行相对应的事件。这里面就涉及到两个内容:•非瞬时的事件队列•事件触发器1.2.1事件队列数据库除了用于存储外,其查询功能也非常强大,直接拿来做事件队列很合适。事件队列里通常保存

7、事件涉及的对象(村庄),结束时间、事件类型以及事件相关参数等。下表为我们系统里使用的事件表:IDintVillageCodeintTargetVillageCodeintTypeintEndTimeDateTimeEventObjectntext保存时将这些对象做xml序列化保存到EventObject字段里。当然如果为了效率还可以存储二进制序列化后的对象,这样在序列化以及反序列化时能节省大部分时间。1.2.2触发器Asp.netAsp.net的处理在触发器上的处理就比较简单了。在服务器程序启动的时候,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。