10月吐槽1:关于AI,AI的难度一种是通过角色技能的设计,一种是资源上优势,一种是本身高智能。现在在想,要体现AI的难度梯度,是否需要第三种实现,感觉似乎没有必要。
核心玩法:以象棋为基础,为在此基础上改进的PVP玩法。
玩法规则:【腾讯文档】副本-规则书
https://docs.qq.com/doc/DSGF6a052am9GdnlM
大聪明想到一个点子,先不做联网,改作热座模式,单机pvp
- 架构:B/S
- 数据库、协议、引擎、工具构件……之后再说了。客户端这边暂定lua+U3D(或dota2便于测试),服务端Java
- 模块:
- 核心模块——【 PVP象棋,AI,】(原型核心),悔棋,认输
- 验证防作弊,登录,房间,加解密(安全)
- 重要模块——聊天室,排行榜,敏感词
- 充值模块——英雄,皮肤,充值
- 其他模块——个人信息
- 可选模块——replay,数据日志
PS登录模块的设计:网上随便找了一下
PS其他模块后面再慢慢补充……
吐槽:
这两天都在设计PVP象棋变种的核心玩法。发现几个问题要先研究研究:
- 和棋频率过高
- 开局走法固定
- 子力(车马炮士卒)
- 先手优势(有多大优势或者劣势?)
PS2:关于AI和评估函数
象棋AI的评估函数是AI决策的核心,它评估当前棋盘上的局面,为AI提供一个数值,以便AI判断哪些走法更有利。以下是设计象棋AI评估函数的一些基本原则和具体因素:
1. 基本原则:
- 简洁性:评估函数需要足够简洁,以便在有限的时间内评估大量的走法。
- 准确性:尽管简洁,但评估函数还需要足够准确,能够反映出当前局面的优劣。
2. 具体因素:
- 材料平衡:评估每一方的棋子价值,例如,将和士的价值可能高于兵和卒。
- 棋子位置:评估棋子的位置价值,某些位置可能更有利于攻击或防守。
- 棋型和结构:评估当前棋盘上的棋型和结构,例如,连环车、双炮等。
- 棋子的活动性:评估棋子的活动性和灵活性,活跃的棋子通常更有价值。
- 局面的进攻和防守:评估每一方的攻击和防守能力,以及王(将/帅)的安全性。
3. 评估函数的具体设计:
- 加权和:评估函数通常是以上因素的加权和。每个因素都有一个权重,表示其在总评估中的重要性。
- 调整权重:通过对战测试和机器学习等方法,不断调整权重,以提高评估函数的准确性。
4. 以象棋AI为例:
- 材料平衡:将=9分,车=5分,马=3分,炮=3分,士=3分,象=3分,兵=1分。
- 棋子位置:为每个棋子的每个可能位置赋予一个位置价值,例如,中心位置的马可能比边缘位置的马更有价值。
- 棋型和结构:为常见的棋型和结构赋予一个价值,例如,连环车可能比单车更有价值。
- 活动性:为棋子的活动性赋予一个价值,例如,有多个走法的马可能比被限制的马更有价值。
5. 实现:
- 静态评估:评估当前局面,不考虑未来的走法。
- 动态评估:与搜索算法(如alpha-beta剪枝)结合,考虑未来的走法和对手的反应。
6. 优化:
机器学习和人工智能:使用机器学习算法,如深度学习,自动调整评估函数的权重和参数,以提高其准确性和效率。
这好像有点太复杂了吧...
@Nivdc:哪方面?架构?还是玩法?pvp肯定要联网的
@compass:
主要是模块吧,感觉好像提到了很多和游戏核心玩法不是很相关的东西。
全做出来的话恐怕得花不少时间...
@Nivdc:嗯嗯,谢谢建议。有可能只做核心玩法,然后缝合到之前的项目里面