Chinaunix首页 | 论坛 | 博客
  • 博客访问: 329774
  • 博文数量: 100
  • 博客积分: 2620
  • 博客等级: 少校
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 02:50
文章分类

全部博文(100)

文章存档

2011年(5)

2010年(12)

2009年(83)

分类:

2009-10-12 14:50:50

WebGame策略类游戏开发:架构

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

    从上图分析,用户通过浏览器访问服务器的时候,首先是访问网页服务器,如windows平台下的IIS,linux下的Apache。再通过网页服务器,以某种特殊的方式(分布式访问,如.net下的remoting)去访问游戏服务器,通知游戏逻辑服务器执行玩家操作,并从游戏逻辑服务器里获得游戏相关的信息,或者直接通过访问数据库而获得游戏数据。
为什么要将服务器分为游戏服务器和网页服务器
     网页服务器的特点是触发执行,及当有用户访问网页的时候,才会执行该网页的程序代码。而我们常见的WebGame(Ogame,Travian)这些游戏 实际上是需要24小时不间断执行的,因此网页服务器的执行方式并不适合于游戏。因此我们另外需要一个应用程序来执行这些24小时不间断要做的事情。这也就是我们需要增加一个游戏服务器的原因。
Web三国的架构
    因为目前Web三国是非商业开发,因此如果照搬上面的WebGame架构来设计,会导致开发周期过长,开发效率低下的问题。实际上在开发初期,Web三国是按照上面的架构去开发,碰上了上述问题,才换了另外一种结构。
   实际现在Web三国的结构和WebGame架构差不多,只不过将游戏服务器集成到网页服务器里,项目里按照传统的网站架构,将游戏分为:数据层、游戏逻辑层、页面层。
    至于如何实现24小时不间断处理,则是通过在游戏启动时,创建一个线程去处理。这个是asp.net里的一个功能,我不清楚php里是否也有这样的功能。

阅读(969) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~