《帝国时代》应用架构剖析

来源:互联网 发布:便签元数据已损坏 编辑:程序博客网 时间:2024/04/29 22:14
《帝国时代》应用架构剖析


本人非游戏开发者,本人也没有做过任何游戏、调试过任何游戏代码、阅读过任何游戏代码。本次只是黑盒子从外围分析,做门外汉总结罢了。各位做游戏的朋友请勿多嘲笑,毕竟我不是游戏圈子中人,而且研究的目的也不同。目标是:《帝国时代》也是个软件,也具有功能,也有自定义平台-地图编辑器。所以分析这类软件的应用架构,能够锻炼自己的架构抽象分析能力、自定义平台架构能力,以及借鉴人家的好的面向对象设计开发思想思想。因为每个物品都有自己的特性、行为,所以私以为人家的面向对象分析设计开发一定做的很棒很有借鉴学习性。


科技树
--------
有了科技树,时代就按科技树的不断升级进行划分。有了科技树,各个种族就有了标准模板和各自比较独特的物品,但其实各个独特的物品也只是在形式表象上不一样,其实质的物品属性\行为还具有共性,只是换了一个材质\动画\声音而已。

科技树有一定的分类:一般分为经济建筑、军事建筑、经济物品、军事物品。物品包含有人也有物。

一、经济建筑
1、城镇中心:资源仓库;农民产生;文明升级;技能提升:农民织布机(农民防御力和生命力)、农民行动速度/携带量效率加快、建筑物视野增长、敲钟聚集
2、船坞:鱼资源仓库;渔船、运输船、喷火船\爆破船\战舰\炮船;技能提升
3、住所
4、磨坊:用于技能提升:耕种技术加快速度、携带量、农田产生量、农田轮耕
5、仓库:金、木、石头仓库;技能提升:加快采矿速度
6、市场:贸易马车生产、食物\金\石\木买卖

二、经济物品(人)
1、食物:农田、野果、绵羊\鹿\野猪、鱼
2、资源:金、树、石

3、特殊资源:圣物(可自动金子增长),需要僧侣采集并放入教堂中

4、农民:农田建造\食物收获\资源采集、建造\修复经济建筑\军事建筑\军事物品


三、军事建筑
1、军营:刀枪类兵种产生;刀枪类兵种技能提升
2、靶场:射击类兵种产生;射击类兵种技能提升

3、马厩:骑兵产生;骑兵类技能提升

4、修道院:僧侣产生;僧侣类技能提升

5、攻城器工厂:攻击类工具产生;攻击类工具技能提升

6、攻击类建筑:防守塔、箭塔、炮塔
7、综合攻击类建筑:城堡,可产生投石车、战象、毁灭者等物品,还可提升技能(如部队生产速度、城堡生命值增加)

8、防守类建筑:哨所、石头城墙、城门、木栅栏

9、军事技能提升类建筑:铁匠铺(提升射程、步兵攻击力\防护力、骑兵攻击力\防护力);大学(提升射击类属性的军事建筑的技能:取消最小射程、射击更精准、射击更威力大;提升建造速度;城墙生命值增加、建筑生命值增加)

四、军事物品(人)
1、刀枪类兵种:剑士、长枪兵
2、射击类兵种:步弓手、掷矛兵、火枪手

3、骑兵类兵种:侦察骑兵、骑士、骆驼兵、骑射手

4、特殊兵种:僧侣(可转化物品所有权、可恢复物品生命值)

5、攻击类工具:冲撞车、弩炮


五、其他
1、奇观(胜利因素之一,保持年限后胜利)
2、其他装饰:旗子、火把
3、地形材质:山脉、河流、桥梁、船残骸


物品相克
------
这是《帝国时代》有一个创新。同一个物品,针对不同目标物品,它的攻击力和防御力是不一样的。


物品属性
-----
每个物品都有以下属性:
1、制造成本(食物\金\木\石)、
2、制造前提(什么物品什么时代后)、
3、生命值、生命值恢复步进
4、攻击力、
5、攻击速度
6、行进速度(遇到高山\河流还有影响因素)、
7、射程(视野)、射击精准度
8、护甲防守力(抵御近身攻击)
9、盾牌防守力(抵御远程攻击)


物品行为
----
每个能活动的物品都有以下行为:
1、编队:两翼、方阵、线性、交错、跟随
2、状态:巡逻、强制攻击、停止(卸下)、修理(展开)、治疗(转化)、死亡(摧毁)、建造经济建筑、建造军事建筑、设立聚集点


科技树与时代与种族
----
科技树有了,绑定好时代,绑定好种族,这就基本框架成了。

可以划分为N个时代,每个时代命个名,每个时代都有其相应的物品;
可以划分为N个种族,每个种族命个名,每个种族都有其相应的物品;

只不过不同时代、不同种族的物品叫的名称不一样、可造的限制物品类型不一样、物品图片材质\动画\声音不一样、物品属性值上下限不一样、技能升级上下限不一样。


地图
-----
有了这些基础元素,就可以布局地图了,地图要素有:
1、玩家数量、人口上限
2、战役胜利模式选择:杀君、时间限制、得分、胜利(摧毁城镇中心与农民、军事建筑和军队)、自定义(地图探索、圣物、奇观)
3、探索模式选择:全视野\黑幕;离开即遮盖\探索后即薄雾\探索后即非黑幕

4、每玩家种族选择
5、每玩家时代上下限
6、每玩家资源上下限
7、每玩家时代升级条件(食金木石类型和数量、建筑类型和数量)
8、每玩家科技物品种类限制;科技物品升级等级上下限限制;科技物品的时代限制
9、玩家之间关系选择:中立、联盟、敌对

10、地图大小、地形分布选
11、地图上的资源分布多寡程度
12、电脑玩家的AI难易程度限制


任务
------
这些设好后,应该一场战争就可以展开了。但《帝国时代》不仅仅是挖资源、建军队、战争,它还增加了一些趣味性,比如完成一些任务,任务完成才算这场战役胜利。

比如说:
1、将指定物品带到指定区域
2、将指定物品带给指定物品
3、拥有某个物品
4、区域中有某个物品
5、摧毁某个物品
6、捕获某个物品
7、资源累计属性到达多少
8、科技研发到达多少
9、选择某个物品
10、某个游戏者被击败

如果这些任务完成了,它就会有一些后果,比如说:
1、胜利或失败
2、某和某改变了外交策略
3、有提示信息或音乐播放
4、有某玩家的贡品(贡品种类\贡品数量)送到或送出
5、可以升到某个时代、或者可以研发某个科技
6、可以制造某个物品、某个物品被自动摧毁或消失、改变物品所有权
7、改变视野黑幕
8、城门打开或关闭


剧情
-----
为了让玩家知道这些任务,就需要任务的背景、任务说明、任务的提示给玩家交代了。
在胜利或失败后,都有个性化的文字和动画可以自定义插入
几个剧情连在一起,就可以成为一个大连续剧,比如你可以用《帝国时代》的地图编辑器、材质编辑器、物品编辑器,搞一个《三国演义》,分为官渡、新野、赤壁、荆州等战役。


技术
-----
一个单机游戏,它的核心有:
1、科技树、物品属性与行为、剧本
2、物品的材质\声音、物品特效(如雾、火、水、爆炸等)、物品的物理碰撞、物品的相互遮挡\投影。3D类的,这块也是难关。

3、物品的AI。这个相当核心。要根据自己的现有资源\剩余资源\地形\现有物品种类,还要审视同盟与敌人,来计算要生产什么、生产多少、寻径、多少物品去选择哪个目标物品、什么物品去选择什么目标物品、什么时间升级都有AI。听说有限状态机和寻径算法是两大AI核心。

一般有限状态机都有可编辑的规则引擎;或者更复杂的有脚本引擎来操控(如Lua、JS)。这是做其他软件可以借鉴的。


4、摄像机窗口外的物品属性值刷新;缩略地图的状态刷新
5、摄像机内的物品属性、状态、UI刷新

如果网络版游戏,还需要加上:
1、网络(还要分是对等网,还是C\S网)
2、安全:防作弊、防破解
3、聊天系统

如果是一个商业运营型,还需要加上:
1、充值、支付、购买
2、用户账户档案、登录网关


所以说,游戏,是一个剧情和技术都非常要给力的一个行当。

如果给你材质,就按《帝国时代》的剧情、功能,你用代码重新实现一次,你的代码功底会如何呢?


《帝国时代》和企业管理软件的应用架构对比

-------

1、物品VS对象
2、物品有属性行为、有物品先后关联关系、有物品相克;在企业管理软件的业务实体之间也是如此
3、时代意味着高级功能、中级功能、基本功能
4、种族意味着岗位角色权限
5、地图意味着业务初始参数
6、任务相当于可触发的流程事件
7、有限状态机把规则、流程事件、物品绑定在一起,让业务处理自动进行。客户输入数据做自动化线的一端,经过事件触发\过程自动处理后,自动输出推送给客户或遇到规则事件再触发推送给客户。

原创粉丝点击