基于Pomelo的MMO RPG开发 网易杭州研究院 张小刚 zhang0925@gmail.com @demon0925.

Slides:



Advertisements
Similar presentations
高中新课程思想政治(必 修 1 、 2 )的教学体会 北京师大二附中 李文燕 2008 年西城新课程教师培训的讲稿.
Advertisements

●公司簡介. ●公司組織 行銷 企劃部 行銷 企劃部 研發 設計部 研發 設計部 視覺 設計部 視覺 設計部 媒體 製作部 媒體 製作部 行動 裝置部 行動 裝置部 執行長 總經理 管理部 本公司組織人力配置除董事長、執行長、總經理外,共 有六大部門,分別為研發部 6 人、管理部 4 人、視覺設計部.
教师成绩录入步骤 1. 登录教务系统 2. 进入教师成绩管理界面 3. 选择相应的教学班,点击 “ 课程成绩录 入 ” 进入成绩录入界面 4. 点击 “ 设置 ” 按钮设置 “ 成绩分项 ” 5. 录入成绩, “ 保存成绩 ” 按钮可以保存成 绩但不提交(提交后不能再修改成绩) 6. “ 提交成绩 ”
厦门凯科信息科技有限公司 凯科信息概括 核心团队成员 2001 年开始从事手机游戏及手机应用开 发, 是中国最早一批从事手机应用及游戏开发团队。 厦门凯科信息科技有限公司创始于 2006 年,作为手机 游戏的专业的开发商及运营商,在手机应用、游戏开 发及运营拥有综合竞争能力。
《饲料分析与质量检测技术》 说课 主讲教师:管建慧. 课程名称: 《饲料分析与饲料质量检测技术 》 课程编码:
7.2 图示化记忆 记忆的概述 图示化记忆 联想记忆法 奇特联想记忆法 用手记忆.
方振镇 华东架构师大会. SNS 和 Web 游戏基本对比 SNS 游戏后台 Web 游戏后台 如何选择 问答.
4 第 4 章 网页的布局 设计站点地图,有助于突出网站的主题,确定网 站的内容。而对于每一个网页来说,最重要的除了网 页的内容以外,还有就是网页的风格和布局。一个格 局凌乱的网页,内容再精彩,也不能说是一个好网页 。
2009/12/211 商務科技管理系 實 務 專 題 報 告 辦桌非難事 學生: 施雅雯 ( ) 張敬芝 ( ) 葉明臻 ( ) 黃怡琅 ( )
Web app和html5给前端带来的变化 —— 我们的html5游戏平台之旅.
武汉库得克 软件有限公司 公司简介 发展机遇 特点 一家专注于质量管理平台和整体 解决方案的提供商
報告書名:父母會傷人 班級:二技幼四甲 姓名:吳婉如 學號:1A2I0034 指導老師:高家斌
成语乐园 成语乐园 执教老师:李道梅.
組別:第五組 姓名: 蔡佳容 4a0i0040 林潔妮 4a0i0022 李立珊 4a0i0038
计算机网络基础 主讲:华蓓 实验室:电一楼(安徽省计算与通讯软件重点实验室) Tel:
21世纪全国高职高专 计算机系列实用规划教材 计算机网络技术基础 主 编: 杨瑞良 李 平 副主编: 邱 涛 李明龙.
詹天佑.
北师大版义务教育课程标准实验教科书 七年级上册讲义 第17课 先进的科学技术.
井字遊戲 圈圈叉叉 資工四乙 498G0090 黃瑞揚.
媽,我們真的不一樣 青少年期與中年期 老師: 趙品淳老師 組員: 胡珮玟4A1I0006 馬菀謙4A1I0040
一百零一年溪口國小 學校日 班級: 三年三班 教師: 張慈麟.
主办:泰兴市质量强市领导小组办公室 承办:泰 兴 市 市 场 监 督 管 理 局.
立體四子棋 研究成員:謝旻諺、 鄭家鈞 指導老師:林屏森老師.
“三步式”网络学习法 《探究与发现》数学网络学习平台介绍
关注热点 2014年天猫双十一成交总额 571亿 点亮217个国家地区
班級:二幼三甲 姓名:郭小瑄 、 詹淑評 學號:1A2I0029 、1A2I0025
初中思想品德 规范的教学设计与案例分析.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
三創產業學程 學群主持人:袁國榮召集人.
诸葛亮广场.
尔雅慕课学生操作手册说明.
尔雅慕课学生操作手册说明.
指導老師:陳韻如 姓名:吳宜珊 學號:4A0I0911 班級:幼保二乙
高等职业学校建筑设计类与艺术设计类专业骨干教师实践能力国家级培训
上海宏弈源软件科技有限公司 — 12年专注益智软件研发 和配套产品服务 上海宏弈源软件科技有限公司.
班級:系統三甲 學號:4A 姓名:張譽耀 學號:4A 姓名:梁旅維
郑州市惠济区第六中学 网站推介 姜茂方 2015年1月10日.
没有请柬该如何办 记者如何选取有利位置 着装 准备工作 提问时的注意事项
傳統童玩遊戲創新 組別:第八組 班級:幼保二甲 組員: 4A0I0005柯舒涵 4A0I0011謝孟真
《查理九世》 雷欧幻象.
第六课 我们的 中华文化.
转正述职报告 乐恩公司 史航
3.1能源资源的开发 ——以我国山西省为例.
《体育与健康》说课稿 课题:新兴体育舞蹈 —踢踏舞教学 北师大泉州附中 陈玉慈.
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
尔雅慕课学生操作手册说明 尔雅客服中心.
姓名:羅子婷 王鋕鋒 班級:晶片三乙 學號: 4A A 課程:古典文學導讀
霸气车辆.
尔雅慕课学生操作手册说明 尔雅客服中心.
尔雅慕课学生操作手册说明.
尔雅慕课学生操作手册说明 尔雅客服中心.
《网上报告厅》使用说明 北京爱迪科森教育科技股份有限公司.
專題J組 題目: 檢定考試管理系統 指導老師: 曾修宜 老師 組員: 曾聖棋 謝宗翰
福智 學員平台 2018/6/9 幹部月會 羅東教室.
尔雅慕课学生操作手册说明 尔雅客服中心.
数据库技术与应用 (开学篇) 同济大学.
大專院校美食網- 以新北市為例 商務科技管理專題 組 別: 第二組 專題成員: 方采薇 陳宜欣
來認識一下寶可夢Go! pokemon go!!!.
電子商務專題 水木書苑~網路書店~ 林則孟教授 林鴻裕 郭智亮 王柏元 張俊傑
第1章 SQL Server 2005概述 教学提示:SQL Server 2005是微软的下一代数据管理和分析解决方案,它给企业级应用数据和分析程序带来更好的安全性、稳定性和可靠性,使得它们更易于创建、部署和管理,从而可以在很大程度上帮助企业根据数据做出更快、更好的决策,提高开发团队的生产力和灵活度,以及在减少总体IT预算的同时,能够扩展IT基础架构以更好地满足多种需求。
关于视听障的N个小知识.
课程建设汇报 方宝富 合肥工业大学
107年7月新修訂轉診支付標準 及電子轉診平台簡介
慢性病飲食指南 商務科技管理系 實 務 專 題 報 告 學生: 蔡依珊( ) 胡育萍( )
尔雅慕课学生操作手册说明 尔雅客服中心.
104學年度 進修學校期初工作報告.
指數、對數函數 數101乙 周文翔 朱哲明 張良聿.
姓名:刘冰 专业:计算机科学与技术 指导教师:姚宣霞
李商隐诗两首 锦 瑟 马 嵬 夕阳无限好,只是尽黄昏。.
社群定位資訊系統 葉國賢 組員: 吳俊億 鄧硯文 郭冠良 魏毓男
Presentation transcript:

基于Pomelo的MMO RPG开发 网易杭州研究院 张小刚 zhang0925@gmail.com @demon0925

开始之前 多少人有Web服务的开发经验? 多少人有Game服务端的开发经验? 是否了解Pomelo框架?

主要内容 Pomelo框架介绍 基础篇 使用Pomelo框架一个简单的游戏 Demo 进阶篇 Pomelo的扩展库 展望篇 我们未来的工作

Pomelo框架

Pomelo框架运行架构

Pomelo框架总结 高可伸缩性 简单易用 强大 分布式架构 易于扩展 简单的API接口 极少的配置 基于Node.js,轻量 库和工具包支持 参考文档齐全,MMO demo

基础篇 从Demo开始 使用Pomelo构建工程 建立我们的游戏服务器 处理客户端的请求

捡宝Demo 玩家在单一场景中检取宝物,获得积分 支持多玩家 实时记录并刷新积分

搭建Demo 初始化Pomelo项目 构建场景服务 使用Pomelo进行通信 服务架构扩展和分析 参考资料

初始化工程 安装pomelo 初始化工程

服务端目录结构 服务端代码 Connector 服务器 配置文件 服务端入口 客户端代码

编写场景服务 场景是游戏世界在服务端的抽象 游戏可以很复杂,也可以很简单 在捡宝 demo中,场景就是游戏地图、玩家和其中 的宝物 场景地图 人物 宝物 游戏可以很复杂,也可以很简单 在捡宝 demo中,场景就是游戏地图、玩家和其中 的宝物

编写场景服务 Driven 这些服务要在哪里运行呢?

加入新的服务器类型

启动场景服务 服务端,写完了? 等会儿,客户端还没收到信儿呢?

Pomelo中的通信机制 Request/Response模式 广播模式 服务端之间的RPC调用 请求/响应模型 1 to 1 服务端对客户端 1 to N 服务端之间的RPC调用

客户端与服务端通信 Handler/Request模式

与客户端的通信 通过Channel来推送消息

服务器之间的通讯

服务器的鸭子类型 area connector chat frontend backend 基于websocket的server status 基于websocket的server 提供rpc服务的server

服务端架构

Pomelo的扩展支持 说好的分布式架构呢? 前端服务器扩展 场景服务器扩展 客户端的扩展 让我们加入更多的Connectors 加入更多场景 客户端的扩展 支持更多类型的客户端

扩展Connector 加入多台connectors 连接分配问题 负载均衡 负载均衡服务器

扩展场景服务 加入新的场景服务器 重写路由算法

客户端的扩展 提供更多的客户端支持 JS Client IOS Client Android/Java Client Unity 3D Client Flash Client

分布式的服务器架构

捡宝Demo

参考资料 IOS Client: Android Client: https://github.com/NetEase/pomelo-iosclient Android Client: https://github.com/NetEase/pomelo-androidclient Unity 3D Client: https://github.com/NetEase/pomelo-unityclient Flash Client: https://github.com/stokegames/pomelo-flashclient

参考资料 Pomelo快速使用指南: Treasures wiki: Treasures git : 作者:王朝 @Seeker https://github.com/NetEase/pomelo/wiki/Quick-start-guide Treasures wiki: https://github.com/NetEase/pomelo/wiki/Tutorial-2----Treasures Treasures git : https://github.com/NetEase/treasures 作者:王朝 @Seeker

这个例子,也太简单了吧? 需要保存进度!每次都从零开始,坑爹呢! 需要战斗系统!没有战斗还能叫MMO RPG? 人都跑到房子上了! 数据持久化问题 需要战斗系统!没有战斗还能叫MMO RPG? 人工智能 人都跑到房子上了! 障碍物系统和寻路 简单的全局广播,我们的服务器撑得住吗?

进阶篇 持久化问题 人工智能 寻路系统 场景细分

持久化的挑战 大量需要持久化的数据 大量事务 高实时应用 结论 移动 攻击 。。。 玩家间战斗 使用技能 大于100ms的延时是无法接受的 Sql方式无法满足我们的要求

我们的解决方案

我们的解决方案 Pomelo-sync

参考资料 Wiki: Git: 作者:尧飘海 @飘hai https://github.com/NetEase/pomelo-sync https://github.com/NetEase/pomelo/wiki/pomelo- sync%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3 Git: https://github.com/NetEase/pomelo-sync 作者:尧飘海 @飘hai

进阶篇 持久化问题 人工智能 寻路系统 场景细分

老虎,跑起来! 怪物的生成 怪物行为的驱动 那要怎么实现这个功能呢? 我们需要AI! 和宝物一样,随便找个坐标点扔上去得了 很简单,见人就咬就行了 那要怎么实现这个功能呢? 。。。 。。。冏 我们需要AI!

AI模块的实现 Behaviors Tree

AI应用场景 驱动怪物 自动巡逻 主动追随,攻击 放弃攻击/返回 玩家自动行为 跟随/追击 拾取道具/装备 自动攻击

Pomelo-bt Git: https://github.com/NetEase/pomelo-bt 作者:周永昶 @郁闷的武昌鱼

进阶篇 持久化问题 人工智能 寻路系统 场景细分

障碍物与寻路 飞檐走壁才叫大侠 总是有些地方是不能去的 障碍物系统 那,如何确定路径? 寻路系统

障碍物的标注

内存中的障碍物地图

寻路算法 基于矩阵的A*算法

有障碍物的情况

可能出现的悲剧

算法复杂度 在理想情况下,接近O(n) 在悲剧的情况下,O(n2) 目标不可达 实际距离远大于直线距离

Pomelo-pathfinding Git: 作者:张小刚 @demon0925 https://github.com/NetEase/pomelo-pathfinding 作者:张小刚 @demon0925

进阶篇 持久化问题 人工智能 寻路系统 场景细分

全局广播的悲剧 MESSAGES IN MESSAGES OUT 100 10000 1 100 1 100 1 100 100 1

1000 1000000 全局广播的悲剧 MESSAGES IN MESSAGES OUT 1 1000 1 1000 1000 1

必须要进行场景细分 场景细分的数据基础 AOI(Area of Intrerest) 大场景,小视野 玩家只关心视野范围内的事件 MMO RPG中广泛使用的场景细分技术 将场景划分为小的区域,仅在区域内进行广播

Pomelo-AOI 基于灯塔的AOI算法

Pomelo-AOI Git: 作者:张小刚 @demon0925 https://github.com/NetEase/pomelo-aoi 作者:张小刚 @demon0925

展望 基于字典和Protobuf的数据压缩协议 原生socket的支持 基于服务器动态扩展副本支持

参考资料 Pomelo Lordofpomelo wiki: https://github.com/NetEase/pomelo/wiki git: https://github.com/NetEase/pomelo Lordofpomelo wiki : https://github.com/NetEase/pomelo/wiki/lordofpomelo git : https://github.com/NetEase/lordofpomelo

Q & A