预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

大宝(sodme)2010.12.202国服网络拓扑图韩版架构:一组七类进程玩家三线连接韩版优劣:架构复杂难以查证、跟踪与调试难以上手、维护与培训不稳定性能差逻辑易混乱最高仅1500人;优点是同内容下玩家数量可扩充单服国服架构:一组两类进程玩家单线连接国服优劣:最高2900人单线管理不易扩充单服何谓架构(作为动词)?“架构”就是程序人员对需求的设计对各个产品、各种功能、各部分模块及流程多种需求的设计有哪些架构(作为名词)?网络逻辑数据流功能(策划案)配置表(数据结构)架构从哪里来?从需求中来。哪些需求?玩法的、安全的、性能的、运营的甚至是团队成长的如何成长为架构师?学习参考实践验证改进设计原则:简单可控稳定高性能一些具体的设计目标(略举一二):大二的学生都可以读得懂、能写、能控因事没来上班时有人能动你的代码不怕有问题随时可追查设计框架:一组服务器仅含两个进程DB负责数据缓存、账号认证、计费通信等第三方接口接入;GAME负责游戏逻辑、玩法、游戏内容构建7数据缓存策略:账号列表管理同账号下最多三角色数据缓存(读取规则缓存上限调度策略)全局性数据存取策略:开机即读取定时保存全局快照第三方接口通信策略:基于防御性的接口互访规则(日志审计逻辑防御)基于验证重发的通信规则严重问题:DOWN机(内存数据库访问登录堵塞)数据错乱数据不保存解决方法:尽可能简单的表结构尽可能简单的SQL语句定长的数组可控的压力阀值(由GAME控制)总目标:不要让单玩家掌控你的机器资源10帧轮询机制:对象管理体系;网络、逻辑、AOI分线程;主逻辑一秒三帧网络发送一秒六帧消息队列机制:网络消息AI消息位置同步消息数据存取消息定时器消息脚本调用消息引擎与脚本:开发速度、稳定性、热更新逻辑的驱动来源:网络消息AI消息定时器消息三大驱动方式逻辑的驱动方式:在主循环帧中分别处理来自于各消息队列的消息(便于统一管理、性能监控)具体的内容组织:玩家NPC、怪、宠物家族、师徒、恋人物品、装备任务、活动等对象的层级:简单动态对象(无逻辑的活物、空艇等)复杂动态对象(NPC怪物玩家)对象集合(师徒恋人组队家族王国)个体对象设计:定义属性方法常用接口接口保护设定数据刷新、存取规则集合对象设计:定义管理方式数据结构数据同步方法异常处理原则基本模型:EPOLL数据的memcpy:一次性接收无memcpy;发数据时有一次memcpy。数据缓存事先建立。数据收发:统一的收取消息队列处理函数;单个玩家独立的发送队列按帧发送小包拼接。最多:位置对象加载状态。性能:2900人在线80M带宽基本模式:状态+消息主循环轮询状态:空闲狂燥逃跑返回消息:初始化处理伤害到达结束状态与消息的关系:由消息实现状态间跳转改变AI策略由状态的自轮询实现怪物智能的自我触发基本模式:以时间尺作为排队方式只执行当前时间刻度的逻辑(借鉴linux源代码)主要功能:提供自维护逻辑的运行(技能、BUFF、安全监控、统计等)基本实现:引擎层实现架构向脚本层提供定时器访问接口脚本层通过接口访问相关功能:添加定时器(一次性、轮询、按条件控制)回调函数定时器销毁基本模式:行走、战斗等玩家主要行为皆通过状态机机制实现“状态+消息”的基本触发方式状态:坐下近攻远攻站立移动等消息:设定状态删除状态开始终止等关系:维护一定时间且与其他状态有互斥等交互行为的可以设定为一个状态基本内容:场景静、动态逻辑加载区域自触发逻辑对象可见、范围相关的逻辑(伤害范围可见范围等)基本方式:称之为LinkMap的数据结构按“层+二维数组”的模式组织场景里的静、动态可管理资源。层与层之间可设定可见性、可计算性;二维数组内的各对象之间可以设定可见性脚本化热更新多日志单一系统的在线开关控制单一系统的资源统计版本的快速迭代、验证(30分钟解决问题)单个技术人的全面素质培养独当一面灵活应对预估风险作好准备方案(既要考虑坏也要考虑好)基于互不信任的架构和逻辑思路DB:数据回档不保存当机认证无返回物品系统:index不对应命名不统一沟通不充分交易系统:日志不充分追查难多数据存放点状态机系统:控制太精确双方无主从关系状态不同步尽量减少对第三方库的使用和依赖尽量做到代码自解释尽量不使用技巧性过强的设计方法尽量少上设计模式的当代码是为他人而写实践出真知预防抗风险分享促成长团队强才是真的强速度:从策划案开始交付实施之日两周之内出一个中型玩法或中型系统质量:“简单、可控”保证了系统稳定防御性编程思维保证了留有后路30分钟内解决服务器问题(要么修正错误要么关闭局部系统)不停机更新团队:人人都可以双端开发独当一面;技术全面;技能素质和心理素质全面设计本天成妙手偶得之Googletalk&mail:sodme.dev@gmail.com新浪微博:http://t.sina.co