Skip to content

Era游戏机制优化方案

何雨航 edited this page Jul 6, 2018 · 3 revisions

[TOC]

简介

本优化方案是作为 Era.js 游戏引擎在制作时的参考,以及使用该游戏引擎制作的官方游戏 Demo 在游戏机制上的一些探索。具体的讲,就是对原 Era 游戏的一些要素进行更一般性、科学性的阐述,由此来为其他开发者在开发游戏时提供一个参考。

本引擎所推荐的在游戏设计时的一些机制将被分条目写在下面,未来的游戏引擎将为其提供技术实现的基础,官方Demo也将在这个基础上进行开发。(各个机制的排序为随机)

世界

世界相当于一个舞台,它一般来说只有一个。它应当具有以下特性:

  • 相应的文字介绍
  • 历史
  • 特殊人物槽
  • 属性
  • 固定/随机事件
  • 各种触发器(胜负等)
  • 各个地图(环境/地点)

环境

环境是依附于世界概念下的,包括自然环境与社会环境,这在开发游戏时为开发者和玩家提供了一个方便理解和扩展游戏性的小舞台。你可以把它理解成一个地图,或是一个战斗地点、或是一个房间等等,这个和地图相比,是一个小舞台。它应当具有的特性有:

  • 自然环境
  • 社会环境

自然环境

自然环境是依附于环境概念下的,其特性如下:

  • 时间
  • 地点
  • 属性
  • 触发器

社会环境

自然环境是依附于环境概念下的,其特性如下:

  • 人物
    • 对方
    • 己方
      • 玩家
      • 队友
        • 助手(会以你为主体地帮助你)
        • 同伴(会不以你为主体(平等)地帮助你)
    • 中立

人是一个十分复杂的概念,也是 Era 游戏中的一个核心概念(大家都懂的)。但是其实人物在设计的时候,其属性分类往往是比较混乱的。现将人的概念规范如下:

  • 灵:灵魂相关的(自我/理性/思考/魔法)
    • 姓名
    • 系统身份
    • hash
    • 称呼
      • 系统称呼
      • 自称
      • 尊称
      • 蔑称
    • 职业
      • 战士
        • 等级
        • 经验值
        • 经验值上限
    • 精力:0代表昏厥
    • 精力上限
    • 关系
      • 父亲
      • 母亲
      • 子女
      • 恋人
      • 妻子
      • 朋友
      • 仇人
    • 宝珠:多少代表效果好坏(可积累)
    • 属性:代表主观倾向性(特异)
    • 刻印:代表宝珠获取的Buff
    • 性格:代表主观倾向性(非特异)
    • 技能:学习到的招数(使用消耗耐力)
    • 魔法:学习到的魔法(使用消耗精力)
    • 后天:社会性的Buff
    • 履历:历史记录
  • 肉:肉体相关的(感性/激素/力量)
    • 性别
    • 种族
      • 属性
      • 技能
      • 魔法
    • 体力:0代表死亡
    • 体力上限
    • 耐力:0代表脱力
    • 耐力上限
    • 体型
    • 身高
    • 体重
    • 胸围
    • 腰围
    • 臀围
    • 罩杯
    • 力量
    • 敏捷
    • 体质
  • 服装:穿在里面的、装饰性的、情感的
    • 内:内衣
      • 内衣
      • 内裤
      • 袜子
    • 中:常服
      • 帽子
      • 面具
      • 衣服
      • 手套
      • 裤子
      • 鞋子
      • 外套
    • 饰品:
      • 项链
      • 手镯
      • 戒指
    • 纹身
  • 装备:穿在外面的、实用性的、理性的
    • 头部
    • 面部
    • 颈部
    • 上身
    • 左手
    • 右手
    • 双手
    • 手指
    • 下身
    • 脚部
    • 背包
      • 物品
      • 金钱

探险机制

探险是冒险游戏的一个常见机制,在 Era 游戏中也很常见。但由于 Era 类游戏是纯文本游戏,因此其游戏机制和其他种类游戏相比有较大的不同。

探险流程

  • 进入探险环境
    • 战斗
      • 成功:
        • 搜刮
        • 继续探险
      • 失败
        • 死亡
        • 逃跑并继续
        • 回家
    • 寻宝
      • 成功:
        • 搜刮
        • 继续探险
      • 失败
        • 继续探险
        • 死亡
        • 诅咒
        • 回家
    • 探索完毕
      • 回家
    • 其他事件
  • 回家

战斗机制

战斗是游戏的一个常见机制,在 Era 游戏中也很常见。但由于 Era 类游戏是纯文本游戏,因此其游戏机制和其他种类游戏相比有较大的不同。

战斗流程

  • 进入战斗

  • 显示敌人

  • 初始化攻击顺序

    • 攻击顺序列表 = []
      最小值 = [战场[0], 1/战场[0].敏捷]
      for 人物 in 战场:
      	值 = 1 / 人物.敏捷
      	if 值 < 最小值:
      		最小值 = [人物, 值]
      	攻击顺序列表.新增([人物, 值])
      最小值[0].行动()
      for 对 in 攻击顺序列表:
      	对[1] -= 最小值[1]
      	if 对[0] == 最小值[0]:
      		对[1] += 1 / 对[0].敏捷
      
  • 进入回合

    • 攻击者行动
    • 攻击结算
    • 防御结算
    • 行动效果结算
    • 判定
      • 继续
        • 更新攻击顺序
        • 循环
      • 终止
        • 成功
          • 搜刮结算
          • 退出
        • 失败
          • 死亡
          • 逃跑并继续
          • 回家

数值机制

(数值机制参照于Dota2)

核心

攻击者属性:体力,耐力,精力,力量,敏捷,智力,攻击力,伤害类型

攻击者武器属性:属性加成,攻击力加成,精准加成

攻击者饰品属性:

攻击者技能属性:

防御者属性:体力,耐力,精力,力量,敏捷,智力,护甲,魔抗,

防御者防具属性:护甲加成,魔抗加成,

防御者饰品属性:闪避加成,回复加成

防御者技能属性:

进行物理攻击时

  1. 随机出一个基础攻击
  2. 加上属性的加成
  3. 乘上外来的百分比攻击力加成(百分比)
  4. 加上外来的固定值攻击力加成(固定值)
  5. 减去外来的固定值攻击力减免(固定值)
  6. 计算暴击概率,根据情况乘上暴击比例(条件性)
  7. 计算闪避概率,根据情况落空(条件性)
  8. 计算格挡概率,根据情况减免固定值伤害(条件性)
  9. 计算护甲的百分比伤害减免(百分比)
  10. 计算法力损毁
  11. 计算体力下降
  12. 计算吸血

进行魔法攻击时

  1. 确定基础攻击力

单位机制

技能

技能来源
  1. Person的默认技能
  2. 种族技能
  3. 学习的技能
  4. 物品的技能
  5. 状态技能
技能升级

技能树

技能类型
主动
被动
自动
目标类型
无目标
点/区域/群体目标
单位目标
施法事件

属性

主属性
  • 增加攻击力
力量
  1. 增加生命值
  2. 增加生命回复
  3. 增加魔法抗性
敏捷
  1. 增加护甲
  2. 增加攻击速度
  3. 增加优先度
智力
  1. 增加最大魔法值
  2. 增加魔法恢复速度
  3. 增加魔法伤害幅度

天赋

可以来源于种族以及职业这些与等级息息相关的概念

经验

经验值采用斐波那契数列:

0 1 2 3 4 5
100 100 200 300 500 800

复活

体力

主属性为力量: $$ 体力 = fib(level) * 100 + 力量 * 50 $$ 主属性非力量: $$

$$

  1. 增加体力
  2. 减少体力
  3. 改变体力上限
  4. 治疗
  5. 生命恢复
  • 体力 = fib(level) * 100

耐力

精力

护甲

格挡

伤害格挡是一个固定数值减少一个单位受到物理攻击伤害的机制。大多数伤害格挡技能都是几率性的被动。

格挡几率相乘,数值以最高的为准

魔抗

只能影响魔法伤害

闪避

一定几率让伤害无效化

  • 致盲
  • 精准:攻击不会被闪避
  • 必中:闪避失效

移速

光环

光环是让全场单位获得 (De)Buff 的一种被动技能。

幻象

攻击机制

伤害来源

  1. 攻击伤害
  2. 技能伤害

伤害类型

  1. 物理伤害
    1. 物理攻击伤害
    2. 物理技能伤害
  2. 魔法伤害
  3. 纯粹伤害

攻击力

技能伤害

伤害调整

  1. 加深伤害接收
  2. 加深伤害输出
  3. 减免伤害接收
  4. 减免伤害输出
  5. 伤害无效化

持续伤害

在每一单位时间受到一次伤害

持续施法

  1. 前摇长
  2. 后摇长
  3. 持续施法

攻击特效

  1. 可叠加
  2. 致命一击:一定几率暴击
  3. 分裂/溅射
  4. 重击:造成眩晕
  5. 吸血:在攻击的时候根据所造成的实际伤害进行治疗
  6. 法力损毁:燃烧目标魔法值并造成伤害

状态效果

  • 破坏:禁用被动
  • 龙卷风:禁用单位并无敌
  • 眩晕:无法攻击
  • 沉默:无法释放技能
  • 缠绕:无法释放攻击
  • 嘲讽:指定攻击
  • 恐惧:无法攻击某单位
  • 隐藏:某单位无法被攻击