PHP+Flash网页游戏开发 - 基本思路

网页游戏很多人都玩过,比如QQ农场。若交互就是交互行比较差一些的,比如某某飞刀,某某一剑,某某忍者之类的,没有实时寻路系统,打怪之类点链接,战斗回合单向,推送信息比较少的,还有一些策略游戏,都可以用PHP作为服务器端。由于使用短连接,承载能力还是可以的。以一个简单的RPG游戏为例,说明这类游戏的思路。

1. 开发环境及通讯协议

服务器端 Nginx + PHP5.3 + MySql 开发工具 Phpdesigner 对中文支持不错,自动检测文件编码,实时语法调试。 

客户端 Flash制作素材 Flash Develop 编写代码。

 

通讯协议 Json格式编码,Php 内置支持json Flash 需要下载相应的类,www.json.org 下载。之所以没用xml ,传送的数据多一些,解析也麻烦一些,所以选择比较简便的json 编码格式。当然也可以用amfphp.

 

2. 游戏流程 登录 -> 选择服务器 ->加载常用资源->选择或新建角色->进入游戏

新角色首先进入的当然是新手村,完成一些新手任务。新手村场景包含背景图和几个NPC

 

3. 服务器端

主要数据表如下

用户表: 账户信息

角色表: 角色信息,记录角色属性, 货币,位置信息,背包仓库格子数

物品表: 记录角色获得的物品,如道具 装备

技能表: 角色当前学会的技能 

任务信息表: 用户当前接取的任务

商城表: 游戏必不可少的,^o^

购买记录表

邮件表

暂且这些吧,对于一个简单的游戏够用了。

 

服务器的工作就是相应客户端的请求,处理后返回json编码的数据,最好是模块化结构。

对于经常调用的临时数据,比如角色的攻击,防御这些动态计算的数据可以考虑用Mysql 的memory 表。数据在内存中,访问速度比较快。

4. 客户端

用到的图片,UI等都按类存放在swf文件,并导出相应的类,以便代码调用

加载资源,使用Loader 类,并存储资源信息

发送命令数据 使用 URLRequest 和 URLLoader 完成

界面分背景层 NPC层,UI层(操作栏,聊天栏等),信息层(弹出窗口)

 

5. 需要解决的几个问题

1>  动态加载的资源调用,根据资源列表加载完毕,需要存储AppDomain到列表,然后查找资源导出的类实例化就可以

2>需要倒计时的功能与服务器时间同步,由于有延迟,需要调整服务器时间和本地时间,如服务器时间T1 ,收到这个数据时间 T2,那么延迟就是T2-T1,单位毫秒。

3>战斗处理 例如点击怪物 发起战斗,服务器收到命令,根据角色和怪物信息,生成战斗序列返回给客户端,客户端只需播放即可,玩过xx一剑,xx忍者的就很容易明白了。保存下来就是所谓的录像了。相对于可控制的回合制,这个简单多了。只需请求一次,看着战斗很激烈,其实是战斗开始就决定了结果,只是加入一些随机元素而已。 

4> npc功能 点击npc 显示功能列表 主要是根据npc配置信息和角色当前任务。

5> 副本 不过是个特殊的地图,玩家只是角色和角色同队伍的玩家。按顺序和怪物交手,也比较容易处理。

6> 登录同步 网站页面登录后,保存登录信息到cookie. flash 发送http请求时会带上容器的cookie信息,php就可以判断登录状态了。

7> 组队,可以考虑用memory 内存表存放数据。不过由于不能推送数据,还是有一定难度的。

 

相对于rpg游戏,农场类的游戏就简单不少,基本上是没有交互的,只是需要注意些并发操作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值