php在游戏开发中的应用

在写下这个的题目的时候,我深刻的意识到这个题目不是那么好写,泛泛而谈就容易失去意义,但是如果要把php在游戏开发应用的细节都加以详细的描述,则可以写成一本书。签于此,我就在本文中就简单的阐述我在webgame职业生涯里进化过程。
第一款游戏:玄幻题材。这款游戏前端是一款纯html的页游。技术选用:php + mysql,php框架选用CI。游戏的开发周期约10个月,在开发制作过程中除了表现上很大的困惑我们,其他的技术上并没有太大的困惑。游戏出来后,由于种种原因,没有大规模的运营。因此我也没有这款游戏的负载数据。
第二款游戏:武侠题材。这款游戏前端是用flash,后端用的php + mysql,php框架仍然延用CI,和flash的通讯采用短连接,协议采用amf3。这款游戏历经10个月出炉后,被企鹅独代。这款游戏由于大量的数据采用以服务端数据为准,导致了很多数据需要更新时不得不从新请求,从而导致了单服的负载偏低。这款游戏在研发过程中,最大的问题就是负载偏低。
第三款游戏:武侠题材。这款游戏前端采用flash,后端用的仍然是php + mysql,php框架换成yaf,和flash的通讯采用短连接,协议仍然采用amf3,游戏的开发周期大概8个月。我们在研发这款游戏的时候,吸取了第二款游戏教训,大量的数据缓存在flash,大大降低了请求数量,因此本款游戏的负载提升很可观,几乎是第二款游戏三倍(当然也可以说我们第二款选用有多烂:))。这款游戏的前后端架构,至目前为止还是适用市面上大部分游戏。
第四款游戏:武侠题材。这款游戏前端采用flash,后端使用的是php + redis,php框架保留第三款yaf,前后端的通讯采用socket,协议采用amf3,这款游戏研发周期大概8个月。这款游戏之所以采用弃用短连接采用长连接很重要的原因在于现在游戏的玩法很多是强交互,同时长连接能提供的游戏的体验比短连接好上百倍。由于某些原因,这游戏目前还没有大规模推广。
第五款游戏:足球题材。这款游戏的架构和第四款是一样的,前端采用flash,后端采用php + redis,php框架保留yaf,前后端的通讯采用socket,协议采用amf3,这款游戏的研发周期6个左右。这款游戏经实测同时在线1400,一台8核8G的物理机妥妥的支撑住(由于没有再往上的同时在线人数,因此没有测到最高的能支撑多少)。由此可见php在做webgame的应用中还是非常值得选用。
我们之所以在webgame每个产品都一直采用php很重要的原因是:php能满足游戏开发中的各各功能需要,而且php开发过程中相对于其他语言有的优势。
签于之前的项目经验,我们对php在游戏研发的技能做了如下的测评和建议:
技术选用:短连接,php + mysql
容易上手:★★★★★
负载能力:★★✩✩✩
业务能力:★★✩✩✩
推荐程度:★✩✩✩✩

技术选用:短连接,php + redis
容易上手:★★★★✩
负载能力:★★★★✩
业务能力:★★✩✩✩
推荐程度:★★★✩✩

技术选用:长连接,php + mysql
容易上手:★★★✩✩
负载能力:★★✩✩✩
业务能力:★★★✩✩
推荐程度:★★✩✩✩

技术选用:长连接,php + redis
容易上手:★★✩✩✩
负载能力:★★★★✩
业务能力:★★★★✩
推荐程度:★★★★★

在结束这篇文章之前,如果有希望通过长连接做游戏开发的phper可以去了解一下如下的项目:swoole,zphp,workerman。
欢迎大家加入:php游戏开发群(321489181)

文章来源:

Author:recoye
link:http://www.recoye.com/php-webgame