Skip to content

kspine/mmorpg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation



##MMORPG服务端机制验证程序 在这里你讲看到,从零开始完成一个mmorpg的实现。 包括c++版本的高效服务器 unity c#版本的3d演示客户端


##环境

  1. 服务器:windows vs2013
  2. 客户端:unity 5.2.0f3

##运行测试程序

  1. 编译运行服务器。默认端口为5150
  2. unity客户端使用工程文件形式提供。目录为clientUnity\MMORPG-Verification
  3. 运行客户端,连接服务器,注册账号,登录账号,进入unity3d世界。
  4. 主角红色方块,其他玩家白色方块,选中玩家后变成蓝色方块。
  5. 增加了怪物,怪物胶囊状物体.初始白色,选中变成蓝色,死亡后变成黄色。
  6. 增加了怪物AI,怪物会攻击玩家了。怪物死亡,过5s左右在刷新点重生。
  7. 增加地图阻挡,增加怪物阻挡,玩家无阻挡,AI移动时动态更新阻挡信息。MapData[512][512]数组维护阻挡数据
  8. AI增加寻路算法,向量寻路+末端A寻路算法。因为有阻挡,当大量怪物攻击玩家时,A算法会使怪物包围玩家。 当然只有在怪物追逐攻击玩家时,遇到了碰撞(该物之间的碰撞,地形碰撞)才会使用A*算法寻路,且当寻路失败5此后,切换AI到巡逻。 以减少算法消耗。
  9. AOE技能增加,客户端技能按键,数字1,10MP消耗,单体伤害。数字2(30MP消耗),选中目标后目标周围范围伤害。 数字3(30MP消耗)玩家周围范围伤害,数字4(30MP消耗),点击地面,点击点范围伤害。这样将mmorpg大部分的技能都可以演示了。
  10. 被AOE技能击中的表现,怪物胶囊体变成绿色,1s后恢复原本颜色,死亡时变成黄色不动,等待5s左右刷新点重生。
  11. 延迟伤害包,带轨迹技能如火球术,当击中目标是才有伤害显示,服务器计算延迟时间下发给客户端。
  12. 增加技能数字键6,动态创建一堵由绿色方块组成的墙。可以阻挡怪物移动。10s后消失。


##v1.x版本 12/01 - 12/31

  1. MMORPG相关技术验证 ,完成一个最最简单的服务器原形 不使用任何技巧性东西,只要是有c基础的,都可以100%的明白。达到展示mmorpg核心机制的目的。
  2. 服务器c++,文本二进制存储玩家数据,简化序列化过程。
  3. 客户端unity c#
  4. 通信验证,c++流和unity c#交互 (测试2w/s不丢包).
  5. 登录验证,移动同步,战斗同步,属性同步.
  6. 怪物创建和战斗,AI
  7. 技能验证,单体,群体,指定范围技能验证

###更新: 12/19

  1. 怪物刷出,增加一个怪物孵化器。设置怪物id,出生点,出生半径,刷怪数量。
  2. 怪物AI增加,简单的站立,移动,攻击,和在攻击范围外时追击玩家,直到攻击范围内后,切换到攻击模式,攻击玩家。
  3. EventSystem1.0版本介绍,事件系统雏形验证。增加了事件系统。服务器以后的核心逻辑系统。用于解耦消息收发和处理。用于减少互斥锁的 使用。在消息队列中集中处理消息,可以减少没必要的数据锁。使用double队列优化性能,因此在增加消息的时候上锁,处理消息的时候无须担心。 下个版本的eventSystem,增加实时处理功能,即Event到来后,游戏主循环就会立即处理不会等待下一帧才处理,提高事件处理的实时性。 我们在此将使用windows的事件内核对象,通知主循环事实处理,你可以看到,目前游戏主循环使用的是WaitForMultipleObjects方法来固定时间update, 这样while中就提供了天然的机制,来实时响应事件的到来。这便是你看到的为何在游戏主循环中使用wait functions系列的函数。
  4. 还需要增加一个,地图信息维护,目前是时候增加了。有了地图信息后就可以对怪物AI做简单优化。防止怪物移动或攻击时重叠在一起了。

###更新: 12/21

  1. 增加了地图数据,增加了阻挡信息,怪物自带阻挡。
  2. 增加了AI寻路算法。向量寻路+A*寻路
  3. 增加了AOE技能使用。
  4. 几乎完成了v1.x所希望的版本计划。继续努力。

###更新: 12/23

  1. 外部文件,加载地图数据 地图格式 version(short) width(short) hight(short) size(int) data(char数组)
  2. AI寻路算法,增加了四个方位检测。右上,左上,右下,左下。
  3. 完成了v1.x所有希望的所有功能。

###更新: 12/24

  1. 延迟伤害,带轨迹或前摇动作的技能需要的东西。

###更新: 12/26

  1. 增加一个技能,动态创建一堵墙。10s后消失。
  2. 服务器正式升级到v2.0版本。接下来是重构。


##v2.x版本 1/01 - 2/05

  1. v1.x版本基础上进行开发
  2. 服务器代码重构,优化整理,这个版本将会看到是v1.x肮脏的代码简洁优雅话的方式 使用oop技术,使用事件方式完成通知系统,使用九宫格维护视野等等的优化技巧。 使用更加优秀的AI,来处理怪物的日常行为。更加智能,更加真实。

##v3.x版本

  1. 数据库加入
  2. 服务器其他逻辑系统开发

About

验证相关技术可行性

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 61.2%
  • C# 38.0%
  • C 0.8%