文章目录

  • 一、【第一章】游戏战斗系统核心抽象模型
    • 1)技能过程定义
    • 2)技能阶段(可以叫状态机,但这是时间驱动的各个阶段)
    • 3)不同技能分类
    • 4)简单实现方式(定时器驱动不同阶段的状态机)
  • 二、【第二章】核心框架
    • 1)战斗框架子系统(buff,也叫aura)
    • 2)简单实现示例
  • 三、【第三章】逻辑内容
  • 四、【第四章】网络问题
  • 五、【第五章】性能问题
  • 六、【第六章】可维护性问题

客户端:负责接收玩家战斗指令,根据服务器的驱动进行表现
服务器:负责逻辑驱动

一、【第一章】游戏战斗系统核心抽象模型

1)技能过程定义

1)技能实体在生命过程中,可通过抽象划分为一系列的阶段
2)不同的技能类型即为这些阶段组合而成的过程

2)技能阶段(可以叫状态机,但这是时间驱动的各个阶段)

1)start 技能开始
2)Cost 消耗处理
3)reading 吟唱(读条)
4)channeling 引导(比如说持续性的对一个目标造成伤害或者一定的效果)
5)OnCast 出手(起手的时候通知客户端做预表现,做表现的期间掩盖网络延迟)
6)Project 弹道飞行中(飞镖做物理碰检测,战斗中引入物理碰撞是比较困难的事情)
7)OnHit 击中(打中的一些效果,实际上就是执行了一段lua脚本)
8)FInish 技能结束

补充:
技能在服务器就是一段数据+逻辑,也就是游戏编程精粹第一本的数据驱动的系统,也就是行为树
  • 自述
    在我的项目中,用的阶段是:
StageBegin技能开始->StagePrapare技能准备->StageGuide技能引导
->StageEffect技能作用->StatePost技能作用后->StageEnd技能作用结束

3)不同技能分类

  • 瞬发技能
    start-》cost-》oncast-》project-》onhit-》finish
  • 吟唱技能
    start-》reading->cost->oncast->project->onhit->finish
  • 引导技能
    start->cost->channel->oncast->project->onhit->effect->timeout? channel:finishi(时间没结束就回到channel)
  • combo技能(连击技能,大部分技能都是连招的技能)
    ①都是由很多个技能组合起来的
    ②与特殊引导技能的区别:combo技能需要玩家不停的点击
  • 特殊引导技的技能 (实际上在一个时间轴上是连续释放的,但是在中间会被各种事件打断)
    玩家只需要按一个技能,就可以连续的放很多技能

4)简单实现方式(定时器驱动不同阶段的状态机)

  • 可配置的阶段内容
    出手表现时间T1 ---->
    飞行时间T2=distance/project_speed ---->
    击中表现时间T3

二、【第二章】核心框架

1)战斗框架子系统(buff,也叫aura)

  • 定义
    依附于实体数据上持续一段时间的可交互对象
数据
逻辑
相关实体:event_source(时间产生的来源),event_target(技能打中的目标),deco_source(给技能上buff的这个目标,可以简单理解为施法者)
交互点:skillout、skillin

2)简单实现示例

三、【第三章】逻辑内容

四、【第四章】网络问题

五、【第五章】性能问题

六、【第六章】可维护性问题

游戏思考06:游戏核心逻辑设计—战斗系统基础及进阶(未完待续,12/14)相关推荐

  1. 游戏思考09:服务器地形(未完待续12/15)

    文章目录 [第一章]游戏中地形管理概念的基础 1)什么是地形,为什么要有地形管理 2)地形管理角度的游戏发展史概述(在服务器怎么描述地形数据?) 2D游戏 2.5D游戏 3D游戏 [第二章]服务器端地 ...

  2. 游戏专辑一 3D游戏碰撞之体素内存、效率优化(未完待续10/14)

    文章目录 一.背景介绍 二.体素生成 三.体素内存优化 1)体素合并的原理 2)体素合并的算法 3)地面处理 4)水的处理 5)范围控制 1)玩家场景由外框是全部包括,然后,外框包括内框. 2)因为玩 ...

  3. 实现2020年TI杯大学生电子设计竞赛F题简易无接触温度测量、身份识别与口罩检测装置(未完待续)

    声明 本文仅在CSDN发布,其他均为盗版.请支持正版! 正版链接: https://blog.csdn.net/meenr/article/details/109298042 本文目录 *实现2020 ...

  4. Visual C++实现黑白棋游戏实战三:核心算法设计与实现(附源码和资源 可用于大作业)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 在前面的博客中已经讲解了黑白棋游戏的菜单和各种对话框的实现,下面将对黑白棋游戏的核心算法的设计和实现进行讲解 一.棋盘窗口类的设计 黑白棋的棋盘窗口 ...

  5. 游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

    文章目录 一.压力测试关注点 二.计算最耗时的加载操作 1)从数据库读取数据,对加载的类型进一步划分各种类型,计算最耗时操作 2)查看CPU随着在线人数的变化所占百分比 3)查看内存变化 4)备注 三 ...

  6. 补充游戏思考13:游戏服务器杂谈(主要讲mmorpg,年更系列,未完待续10/20)

    文章目录 一.冒险岛状态同步数据的举例说明 1)基于帧的人物状态同步 2)基于预言的人物状态同步(插值计算) 3)基于客户端的怪物状态同步 4)基于服务器的怪物状态同步 一.冒险岛状态同步数据的举例说 ...

  7. 游戏思考04:网络游戏同步算法产生原因和相关介绍:跟随(插值)、预测、延迟补偿,三种算法(未完待续02/07)

    文章目录 一.网络同步的典型场景 二.简单粗暴的数据同步为何行不通?(帧同步的难题) 1)网络同步的流程 2)网络延迟和抖动的直观解释 3)产生卡顿.瞬移的原因分析 4)测试网速网速 三.网络同步的优 ...

  8. Visual C++实现俄罗斯方块游戏实战三:核心算法设计与实现(附源码和资源)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 一.主游戏类的设计 俄罗斯方块的主游戏类负责显示游戏界面,方块游戏等级等内容,同时还要管理游戏的输入操作 可以分为以下几个模块 1:游戏界面和方块的 ...

  9. 游戏思考10:游戏服务器的进程和线程简单谈谈(未完待续6/30)

    文章目录 一.总的看法 二.各种搭配 1)多进程单线程(每个单进程一个单线程) 2)单进程多线程 3)单进程单线程 一.总的看法 之前游戏开多线程是因为机器原因,榨干CPU的全部性能,现在机器性能好了 ...

  10. CMake Cookbook笔记(12/23未完待续,游戏服务器观点阅读,编译器及指令集不涉及)

    文章目录 一.配置环境(略) 二.从可执行文件到库 1)将单个源码文件编译为可执行文件 2)切换生成器(-G) 3)构建和链接静态库和动态库(还有对象库的使用举例) 4)用条件句控制编译 5)向用户显 ...

最新文章

  1. oracle rman catalogo,ORACLE 11g RMAN备份恢复--catalog
  2. 爬虫的基本知识第一个请求requests模块的基本使用
  3. 脚本类恶意程序分析技巧汇总
  4. 从MySql 数据库中导出数据并生成指定格式xml文件
  5. Laravel Facades的实现原理
  6. ORACLE查询不可用状态索引
  7. [JAVA]字符串单词倒转处理前面的空格
  8. slf4j-api slf4j-log4j12以及log4j之间的关系
  9. SpringCloud学习笔记:熔断器Hystrix(5)
  10. ListView优化的
  11. BigNumber.js
  12. 数据库自增 ID 用完了会咋样?
  13. 使用Adb shell dumpsys检测Android的Activity任务栈
  14. 岛用海水淡化设备拯救日常用水难
  15. CSS 获取当前可视屏幕高度--使用calc()方法动态计算宽度或者高度
  16. 计量经济学(stata)笔记1 记录每天的进步
  17. c语言实现string sds,redis学习 - sds字符串
  18. 你的团队健康吗?如何打造一支健康的团队?
  19. iphone4安装使用微信
  20. 10---字符个数统计

热门文章

  1. 会计如何使用计算机,2020年高级会计师考试如何使用计算器?(图文说明)
  2. 三毛的老家:4月中旬了还在中雪!
  3. Air780E模块PPP应用开发指南
  4. 用java操作MySQL编写的高校水电费管理系统
  5. ios系统中的美国App Store出现英文看不懂怎么办?
  6. coreldraw16开三折页_cdr印刷设计排版教程,教你三折页设计制作方法
  7. AutoCAD各版本注册表参数
  8. android -------- ConstraintLayout 宽高比和偏移量比(三)
  9. Excel VB脚本,下拉框多选
  10. python爬楼梯问题_使用python算法解决楼梯台阶问题方法详解