炉石传说 C# 开发笔记(6月底小结)
炉石传说的开发,已经有30个工作日了。
关于法术的定义方法,有过一次重大的变更:法术效果是整个炉石的核心,正是因为丰富的法术效果,才造就了炉石的可玩性。
原来构思的时候,对于法术效果没有充分的理解,所以只将效果数据做成了常数,例如 造成5点伤害。
随着更加深入的解除,发现还有 毁掉你的武器,对所有随从造成武器攻击力的伤害,这样的话,效果是一个 表达式。
然后考虑到,有些追加效果,例如,对某个随从造成2点伤害,如果这个随从没有死,则抽一张牌,
这里就牵涉到了根据条件追加效果的处理。
同时,德鲁伊的抉择系列,有的是主动让用户选择效果,有的是根据战场形势自动计算使用效果,这些也是原本没有考虑到的。
经过权衡之后,将数据定义表格进行了重构。
(旧的法术定义)

(新的法术定义)

新的表格对于法术的定义更加详细具体,每个种类的法术都有自己不同的字段。
同时在法术的使用流程上,也加入了更多的思考,并且将这种思考落于设计书。先进行了设计,然后将成熟的设计转化成代码。
对于炉石这样流程复杂,规则诡异的东西,一定要彻底做好设计!!设计的时候发现问题,修改成本是1,开发的时候修改成本是10,测试的时候修改成本是100

接下来的一段时间,大概截止到6月底,将是做单体测试的时间。将整个架构进行必要重构后就要进行测试了。
对于代码的重构,包括对于名字空间和代码目录的重构,花了一些时间整理了名字空间和代码结构,让正确的代码文件放在争取的地方。
让正确的方法出现在正确的类里面。Engine是总的空间名称,下面有Card,Effect,Client,Server等子空间。

炉石的测试,最难的就是对于结算的测试和规则的测试。平心而论,炉石的结算规则还是非常模糊的。
1.如果奥术飞弹的第一发将一个随从打死了,随从的亡语是召唤一个随从,那么,这个时候进行召唤操作吗?召唤出来的随从也是奥术飞弹的目标吗?
如果是的话,每一个奥术飞弹的结果都要结算,如果不是的话,3发结束后进行结算。

如果是全体型的烈焰风暴呢?
肯定是对所有随从造成伤害后再一次性结算了。

2. 叫嚣的中士
如果场上没有其他随从,有时候这张牌是不能上场的?iPad的时候,以前的版本一定会让你选择一个施法对象。
3.如果带有召唤战吼的随从入场,遇上满员的时候,该怎么处理呢?
炉石的很多规则不是很清晰,所以开发的时候,可能需要做两手准备,或者能让用户自定义,让这个项目的核心更接近于一个引擎,而不是一个炉石定制的东西。
炉石传说 C# 开发笔记(6月底小结)的更多相关文章
- 炉石传说 C# 开发笔记 (续)
炉石传说山寨的工作一直在进行着,在开发过程中深深体会到,对于业务的理解和整个程序的架构的整理远比开发难得多. 在开发过程中,如果你的模型不合理,不准确,很有可能造成代码的混乱,冗余,难以维护和扩展性比 ...
- 炉石传说 C# 开发笔记
最近在大连的同事强力推荐我玩 炉石传说,一个卡牌游戏.加上五一放一个很长很长的假期,为了磨练自己,决定尝试开发一个C#的炉石传说. 这件事情有人已经干过了,开发了一个网页版的炉石,但是貌似不能玩... ...
- 炉石传说 C# 开发笔记 (源代码整理公开)
源代码已经整理过了,去除了不需要的项目. 注意:以前文章中出现过的Git已经变更过了,请以前关注过,Fork过的朋友,重新Fork一下. GitHub地址 卡牌XML文件的做成:(Git上面是没有XM ...
- 炉石传说 C# 开发笔记(BS模式Demo)
原来这个项目,一直想做成CS模式的,BS模式对于炉石这样的游戏来说比较困难. 暴雪到现在也只出了 Windows 和 iPad版本的炉石,最大的问题还是在于如何在小屏幕下,实现最佳的客户体验. Win ...
- 炉石传说 C# 开发笔记 (法术篇)
炉石的设计,最核心的内容是法术效果. 法术卡牌,无疑是法术的集中体现,但是,法术效果除了在法术卡牌之外,也不除不在. 随从的战吼,亡语,奥秘的揭示等等都是法术效果的体现. 法术卡牌在炉石里面有很多种( ...
- 炉石传说 C# 开发笔记(BS上线尝试)
昨天买了一个月的1G 1核的服务器,由于不是新用户,所以没有享受到阿里的6个月免费的优惠. (阿里脑残,为什么不对于续费或者升级免费呢?) 在服务器的通讯上面已经OK了,完全绕过了ASP.NET,就是 ...
- 炉石传说 C# 开发笔记 (初版)
法术资料说明 1.资料的准备 从GitHub上面获得的工程里面,是没有XML卡牌资料配置的,这个是需要你自己生成的. 打开炉边处说的客户端 然后按下 卡牌资料生成 将炉石资料文件设定为 Github ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
随机推荐
- Ubuntu环境搭建系列—Chrome/JDK/Android篇
其实每次重装Ubuntu系统的时候都要进行一次基本到环境配置,而且每次总会忘记一些环境配置到东西,所以就写下这个博文,方便自己以后重装系统的时候回顾,同时也给大家做为重装系统后基本环境搭建的参考. 因 ...
- 我心中的核心组件(可插拔的AOP)~分布式Session组件
回到目录 对于目前的网站来说,为了满足高可用,高并发,高负载,一台WEB服务器已经远远不够用了,以后的WEB应用服务器应该是一种集群的环境,它们之间使用一些工具进行数据的同步,在由1台变成多台服务器时 ...
- 说说设计模式~观察者模式(Observer)
返回目录 观察者模式,也叫发布/订阅模式(publish/subscribe),监视器模式等.在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知.这通常透过呼 ...
- Node Express 4.0 安装
前言 今天想要用nodejs 写个后台服务,很久之前看过node express 框架,可真当向下手安装的时候,发现好多命令都不记得了.写完后台服务,没事了,总结了下安装过程,记录一下,以便以后查阅方 ...
- atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx
atitit.TokenService v3 qb1 token服务模块的设计 新特性.docx 1.1. V3 新特性1 1.2. V2 新特性1 2. Token的归类1 3. Token的用途 ...
- Win7系统.net framework 4.0没有注册导致部署在IIS的站点跑不起来怎么办
win7装了VS再装IIS,结果IIS里面有.NET4.0,但是程序始终是跑不起来,怎么办呢? 分析觉得可能是因为4.0没有注册到IIS,在win7下如果先安装vs2010 (附带会安装Microso ...
- linux命令 - alias
linux命令 - alias 为自己的常用命令语句指定别名,快捷方式 $ alias /? Usage: alias [/reload] [/d] [name=full command] /relo ...
- jquery 之 Deferred 使用与实现
观察者模式是开发中经常使用的模式,这个模式由两个主要部分组成:主题和观察者.通过观察者模式,实现主题和观察者的解耦. 主题负责发布内容,而观察者则接收主题发布的内容.通常情况下,观察者都是多个,所以, ...
- JQuery学习之Ajax应用
1.AJAX=异步javaScript和XML:在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页上进行显示 2.load():简单但强大的AJAX方法,load()方法从服务器加载数据,并 ...
- Unity3D 为什么保存Transform等引用效率会更高
正常来说,大部分同学一般get transform都直接gameobject.transform使用.但往往,你会发现有些人会将transform引用保存起来,例如: private Transf ...