##MMORPG服务端机制验证程序 在这里你讲看到,从零开始完成一个mmorpg的实现。 包括c++版本的高效服务器 unity c#版本的3d演示客户端
##环境
- 服务器:windows vs2013
- 客户端:unity 5.2.0f3
##运行测试程序
- 编译运行服务器。默认端口为5150
- unity客户端使用工程文件形式提供。目录为clientUnity\MMORPG-Verification
- 运行客户端,连接服务器,注册账号,登录账号,进入unity3d世界。
- 主角红色方块,其他玩家白色方块,选中玩家后变成蓝色方块。
- 增加了怪物,怪物胶囊状物体.初始白色,选中变成蓝色,死亡后变成黄色。
- 增加了怪物AI,怪物会攻击玩家了。怪物死亡,过5s左右在刷新点重生。
- 增加地图阻挡,增加怪物阻挡,玩家无阻挡,AI移动时动态更新阻挡信息。MapData[512][512]数组维护阻挡数据
- AI增加寻路算法,向量寻路+末端A寻路算法。因为有阻挡,当大量怪物攻击玩家时,A算法会使怪物包围玩家。 当然只有在怪物追逐攻击玩家时,遇到了碰撞(该物之间的碰撞,地形碰撞)才会使用A*算法寻路,且当寻路失败5此后,切换AI到巡逻。 以减少算法消耗。
- AOE技能增加,客户端技能按键,数字1,10MP消耗,单体伤害。数字2(30MP消耗),选中目标后目标周围范围伤害。 数字3(30MP消耗)玩家周围范围伤害,数字4(30MP消耗),点击地面,点击点范围伤害。这样将mmorpg大部分的技能都可以演示了。
- 被AOE技能击中的表现,怪物胶囊体变成绿色,1s后恢复原本颜色,死亡时变成黄色不动,等待5s左右刷新点重生。
- 延迟伤害包,带轨迹技能如火球术,当击中目标是才有伤害显示,服务器计算延迟时间下发给客户端。
- 增加技能数字键6,动态创建一堵由绿色方块组成的墙。可以阻挡怪物移动。10s后消失。
##v1.x版本 12/01 - 12/31
- MMORPG相关技术验证 ,完成一个最最简单的服务器原形 不使用任何技巧性东西,只要是有c基础的,都可以100%的明白。达到展示mmorpg核心机制的目的。
- 服务器c++,文本二进制存储玩家数据,简化序列化过程。
- 客户端unity c#
- 通信验证,c++流和unity c#交互 (测试2w/s不丢包).
- 登录验证,移动同步,战斗同步,属性同步.
- 怪物创建和战斗,AI
- 技能验证,单体,群体,指定范围技能验证
###更新: 12/19
- 怪物刷出,增加一个怪物孵化器。设置怪物id,出生点,出生半径,刷怪数量。
- 怪物AI增加,简单的站立,移动,攻击,和在攻击范围外时追击玩家,直到攻击范围内后,切换到攻击模式,攻击玩家。
- EventSystem1.0版本介绍,事件系统雏形验证。增加了事件系统。服务器以后的核心逻辑系统。用于解耦消息收发和处理。用于减少互斥锁的 使用。在消息队列中集中处理消息,可以减少没必要的数据锁。使用double队列优化性能,因此在增加消息的时候上锁,处理消息的时候无须担心。 下个版本的eventSystem,增加实时处理功能,即Event到来后,游戏主循环就会立即处理不会等待下一帧才处理,提高事件处理的实时性。 我们在此将使用windows的事件内核对象,通知主循环事实处理,你可以看到,目前游戏主循环使用的是WaitForMultipleObjects方法来固定时间update, 这样while中就提供了天然的机制,来实时响应事件的到来。这便是你看到的为何在游戏主循环中使用wait functions系列的函数。
- 还需要增加一个,地图信息维护,目前是时候增加了。有了地图信息后就可以对怪物AI做简单优化。防止怪物移动或攻击时重叠在一起了。
###更新: 12/21
- 增加了地图数据,增加了阻挡信息,怪物自带阻挡。
- 增加了AI寻路算法。向量寻路+A*寻路
- 增加了AOE技能使用。
- 几乎完成了v1.x所希望的版本计划。继续努力。
###更新: 12/23
- 外部文件,加载地图数据 地图格式 version(short) width(short) hight(short) size(int) data(char数组)
- AI寻路算法,增加了四个方位检测。右上,左上,右下,左下。
- 完成了v1.x所有希望的所有功能。
###更新: 12/24
- 延迟伤害,带轨迹或前摇动作的技能需要的东西。
###更新: 12/26
- 增加一个技能,动态创建一堵墙。10s后消失。
- 服务器正式升级到v2.0版本。接下来是重构。
##v2.x版本 1/01 - 2/05
- v1.x版本基础上进行开发
- 服务器代码重构,优化整理,这个版本将会看到是v1.x肮脏的代码简洁优雅话的方式 使用oop技术,使用事件方式完成通知系统,使用九宫格维护视野等等的优化技巧。 使用更加优秀的AI,来处理怪物的日常行为。更加智能,更加真实。
##v3.x版本
- 数据库加入
- 服务器其他逻辑系统开发