基于pomelo的小游戏开发例析.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pomelo介绍 Pomelo的组成架构如图所示: pomelo介绍 pomelo的架构设计目标: ? 服务器(进程)的抽象与扩展 在 web 应用中, 每个服务器是无状态、对等的, 开发者无需通过框架或容器来管理服务器。 但游戏应用不同, 游戏可能需要包含多种不同类型的服务器,每类服务器在数量上也可能有不同的需求。这就需要框架对服务器进行抽象和解耦,支持服务器类型和数量上的扩展。 ? 客户端的请求、响应、广播 客户端的请求、响应与 web 应用是类似的, 但框架是基于长连接的, 实现模式与 http 请求有一定差别。 广播是游戏服务器最频繁的操作, 需要方便的 API, 并且在性能上达到极致。 ? 服务器间的通讯、调用 尽管框架尽量避免跨进程调用,但进程间的通讯是不可避免的, 因此需要一个方便好用的 RPC 框架来支撑。 ? 松耦合、可插拔的应用架构。 应用的扩展性很重要, pomelo framework 支持以 component 的形式插入任何第三方组件, 也支持加入自定义的路由规则, 自定义的 filter 等。 pomelo介绍 1、前端服务器的职责: ?负责承载客户端请求的连接 ?维护session信息 ?把请求转发到后端 ?把后端需要广播的消息发到前端 2、后端服务器职责: ?处理业务逻辑, 包括RPC和前端请求的逻辑 ?把消息推送回前端 服务器的抽象与分类 该架构把游戏服务器做了抽象, 抽象成为两类:前端服务器和后端服务器, 如图: pomelo介绍 图中的connector, area, chat三个目录代表三类服务器类型, 每个目录下的handler与remote决定了这个服务器的行为(对外接口)。 开发者只要往handler与remote目录填代码, 就可以实现某一类的服务器。这让服务器实现起来非常方便。 服务器抽象的实现 利用目录结构与服务器对应的形式, 可以快速实现服务器的抽象。 pomelo介绍 服务器抽象的实现 填一份配置文件servers.json就可以让服务器快速动起来。配置文件内容如下所示: pomelo介绍 客户端请求与响应、广播的抽象介绍 所有的web应用框架都实现了请求与响应的抽象。尽管游戏应用是基于长连接的, 但请求与响应的抽象跟web应用很类似。下图的代码是一个request请求示例: 请求的api与web应用的ajax请求很象,基于Convention over configuration的原则, 请求不需要任何配置。 pomelo介绍 客户端请求与响应、广播的抽象介绍 所有的web应用框架都实现了请求与响应的抽象。尽管游戏应用是基于长连接的, 但请求与响应的抽象跟web应用很类似。下图的代码是一个request请求示例: 请求的api与web应用的ajax请求很象,基于Convention over configuration的原则, 请求不需要任何配置。 pomelo介绍 服务器间RPC调用的抽象介绍 架构中各服务器之间的通讯主要是通过底层RPC框架来完成的,该RPC框架主要解决了进程间消息的路由和RPC底层通讯协议的选择两个问题。服务器间的RPC调用也实现了零配置。实例如下图所示: pomelo介绍 pomelo支持可插拔的component扩展架构 component是pomelo自定义组件,开发者可自加载自定义的component。 component在pomelo框架参考将有更深入的讨论。以下是component的生命周期图 用户只要实现component相关的接口: start, afterStart, stop, 就可以加载自定义的组件:app.load([name], comp, [opts]) 开发实例 捡宝Demo 玩家在单一场景中检取宝物,获得积分 支持多玩家 实时记录并刷新积分 开发实例-捡宝Demo 捡宝Demo 开发实例-捡宝Demo 搭建Demo 初始化Pomelo项目 构建场景服务 使用Pomelo进行通信 服务架构扩展和分析 开发实例-捡宝Demo 初始化工程 安装pomelo 初始化工程 开发实例-捡宝Demo 服务端目录结构 Connector 服务器 服务端代码 配置文件 服务端入口 客户端代码 开发实例-捡宝Demo 编写场景服务 场景是游戏世界在服务端的抽象 场景地图 人物 宝物 游戏可以很复杂,也可以很简单 在捡宝 demo中,场景就是游戏地图、玩家和其中的宝物 开发实例-捡宝Demo 编写场景服务 Driven 这些服务要在哪里运行呢? 开发实例-捡宝Demo 加入新的服务器类型 开发实例-捡宝Demo 启动场景服务 服务端,写完了? 等会儿,客户端还没收到信儿呢? 开发实例-捡宝Dem

您可能关注的文档

文档评论(0)

4477769 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档