Git Product home page Git Product logo

autochess's Introduction

AutoChess

自走棋战斗模拟器,搭配双方阵容然后模拟战斗,得到战斗结果,希望借此探索更加平衡的棋子设定

基于完全独立开发的战斗逻辑和独立的职业种族设定(主要是简化),跟DOTA2上的自走棋数值和棋子设定完全没有什么关系,但是玩法和基本规则是一样的,目的是为了探 索一套适合自走棋玩法的平衡性设定方法,使得羁绊和棋子的强度更加平衡,加入新棋子和职业的时候其强度也更加合适,而不是太强或者太弱,避免平衡性调整时不是太强 就太弱的窘境。

这个项目的内容被我搞得越来越多(emmm...做不完的感觉),如果有对这个有兴趣的朋友欢迎合作

打开方式: 使用cocos creator v2.0.9 打开根目录下的autoChess工程,在cocos里使用浏览器运行预览即可

  • 点击棋盘上任何一个格子,弹出的框里输入npcId+level,例如1023哈斯卡,等级2,则输入10232
  • 点击开始战斗,在浏览器控制台查看战斗结果

已经实现的功能:

  • 向棋盘上布置棋子,并显示阵容的总价值和羁绊情况
  • 棋子之间互相战斗,包括目标选取,移动,攻击,攻防血护甲设定,棋子行动顺序,攻击和技能范围,伤害计算公式等
  • 简化的设定包括3个职业+6个种族,每个种族4英雄,一个24个英雄,所有24个英雄的技能和职业种族buff效果都已实现
  • 战斗结果和过程中的技能释放/伤害/buff/控制等信息在浏览器控制台可以看到。
  • 保存在棋盘上设定的阵容(另有一个简易的web服务器用于保存和读取阵容)
  • 模拟保存的阵容之间的战斗得出各个阵容的胜率(抽出了一个不包含ui和输出的版本,该版本运行在的nodejs环境下,用于大量执行阵容战斗模拟,在我的家用机上 i5-8400一个线程每秒可以执行300回合对战)

计划中的功能:

  • 阵容输入优化,目前在棋盘上布置棋子是通过在弹出框上输入npcId+level的方式,可视化并不理想,考虑改成左边一个npc列表,然后点击选择,右侧显示棋子属性 和技能,下方按钮确认的形式
  • 棋子属性显示,显示任何棋子的攻防血,技能等信息
  • 战斗回放,现在所有的战斗过程和结果都是打印到控制台的,希望添加一个简易回放,直接在布置棋子的棋盘上显示战斗的过程(位移,血量/蓝量,释放大技能等)
  • 引入技能弹道,目前所有技能和攻击都是即时生效的,间隔主要靠cd和蓝量控制,后面希望引入弹道/抬手等机制

更加遥远的计划:

  • 添加一个游戏服务器,实现卡池发卡和轮次循环,发钱升级等,这样就能当成游戏玩了
  • 为前端添加npc渲染和技能特效,这样比较像一个游戏

基础设定:

  • 升星数值提升为100%,三合一升级,升级后的数值相对前一等级提升100%
  • 具体数值根据模拟战斗给出的强度进行调整,这里的数值只是举个例子,最近几天我在跑平衡性测试的时候已经修改的面目全非了 ^_^
  • 以职业互克为基础,战法贼三个基础职业,每个职业8个npc,所以职业buff很好凑的
    • 三大职业buff为3/6,数值加成为30/60
    • 战士:近战物理攻击,拥有强大的物理减伤,低魔抗
    • 法师:远程魔法攻击,脆皮
    • 贼:移动速度快,高物理爆发
  • 种族提供能力加成2/4,数值加成为20/40
    • 兽人:更高的血量 200/400
    • 野兽:更高的物理攻击 20%/20%
    • 人类:更快的技能cd 20%/20%
    • 血精灵:更强的法抗,20/20法抗
    • 矮人:降低受到负面效果影响的时间20/20,并且获得血量回复10/20
    • 巨魔:增加攻速,35/35
  • npc的具体技能在工程的data目录下有两张excel表,可以看到具体的npc技能设定

关于运行在node.js的战斗模拟器

  • 从AutoChess中抽出核心战斗模块
  • 根据一定规则生成大量随机阵容进行对局,统计和分析战斗结果,并依此修改棋子的数值,然后再跑该测试,反复迭代,能使得棋子的整体强度往预期的方向上收敛

autochess's People

Contributors

pumpkye avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.