记录一下自己做的一个模拟经营类游戏原型的过程和思路以及最终效果。
模拟经营+资源管理
玩家扮演一个农场的管理者,在农场上建造形状各异的建筑并生产物品。
合理分配各种物品:可以通过建筑将低价值物品再生产出高价值物品;也可以通过餐厅制作成菜品并售卖获得金币;还可以将物品投入升级建筑以提高效率或解锁新的物品。利用环境Buff和各种随机事件带来的Buff,选择提高效率或规避风险。
在达成最终目标的同时,逐步建设农场。
玩法的核心在于——通过建筑生产物品。
由于此过程可以描述为生产和消耗的单一生产关系。因此,可以将所有生产内容抽象为蓝图(配方),利用蓝图来描述生产既可以保证涵盖所有生产内容,又可以将相关参数统一管理(如时间,Buff等)。
同时,蓝图还能作为一种数据结构,以数组的形式为建筑所拥有,解决了所属对象的问题。
因此可以拆分出3个主要系统和若干子系统:
主要系统:建筑 -> 蓝图 -> 物品
子系统:
Buff:修改蓝图数据控制生产
时间:实现生产逻辑进行
任务:外部系统,只做数据监控
至此,构建出了以 [建筑 - 蓝图 - 物品] 为核心链路,通过建筑数据配置与蓝图数据配置实现资源生产规则。将建筑的生产逻辑同物品和其他子系统解耦,方便建筑功能和蓝图内容的扩展。
所有模块的数据都用配置文件存储、加载
建筑
网格管理器
实现建筑放置(阶段开放)、非法检测、移动、旋转、删除操作
根据配置数据,创建建筑类的实例
建筑类
建筑拥有占地形状、等级、多个蓝图
建筑实现 生产/消耗 资源的逻辑
用接口区分功能,建筑为功能的组合体
蓝图(生产配方)
蓝图规定建筑生产的原料(类型/数量)、产物(类型/数量)、时间(基础±效率)、可否制作(解锁)
蓝图的原料可为空(随时间生产)
物品
数据类,具备基础信息,价格,拥有数量
物品管理器,提供查询、修改数据类的接口
事件&Buff
Buff基础参数:作用对象(物品/建筑)、类型、作用时间
可拓展的Buff类型,负责动态修改蓝图。基础包含产速、产量、解锁(与蓝图参数对应,随蓝图扩展)
随机事件由Buff列表组成
事件管理器管理事件,并提供事件触发的调用接口
任务
任务由节点组成有序的任务链
触发条件(任务内容)为 单一/并行 的 资源/建筑 的 类型/数量
任务管理器实现任务内容的检测和UI显示
时间系统
时间单位:天 - 昼夜 - 秒
时间系统为所有蓝图生产时间的标准,提供倍速功能
提供天数与昼夜节点切换时触发事件的功能
UI
制作简易但完整的可交互UI面板

提供运行时通过指令修改数据或调用函数功能,便于策划测试游戏流程

相关指令(可自定义添加):

集成的可视化建筑网格编辑工具,提供笔刷/矩形的绘制与擦除功能;窗口内创建配置等;
Before(抽象的坐标数据)

After(可视化集成界面)

功能:
窗口内新建配置功能,可以导出载入。
窗口内配置基础数据信息,配置工作一步到位
提供高效编辑工具:
添加/删除 提供自定义大小笔刷
提供矩形框选功能
一键清空、旋转
提供快捷键
自定义缩放尺寸与显示颜色
直观的统计数据信息
编辑蓝图配置文件的集成工具,通过序列化修改直接编辑关键信息,并提供易用操作界面
对不同的建筑类型(生产/交易类)提供对应的序列化显示
Before(杂乱的信息&不直观的蓝图)

After(干净的信息&直观的蓝图)两种形式:有原料 和 无原料(时间)
有原料:正常显示原料类型数量

无原料:只显示时间

Before(信息杂乱&堆叠冗长)

After(显示商品名/消耗/价格)

最后这个模拟经营类游戏原型也算差不多完成了,基本实现了所有的功能和交互需求,同时也有许多后续可拓展空间。这次特别尝试了用AI对制作编辑器的工作流进行优化,越发觉得AI的的发展真的是飞速。也许之后的原型制作流程有很大变化吧!