GithubHelp home page GithubHelp logo

pumpkye / autochess Goto Github PK

View Code? Open in Web Editor NEW
29.0 2.0 13.0 1.34 MB

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

License: MIT License

TypeScript 98.29% Python 1.71%

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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.