既然是整点没用的,那么此处所谓的软件工程原则的使用必不是关于《异星工厂》游戏开发的内容,而是关于游玩《异星工厂》的内容,切记切记!
工厂游戏
《异星工厂》独特的工厂游戏玩法也许不对所有人的胃口,却使玩得进去的玩家收获乐趣无穷。游戏的目标很简单,玩家扮演一个流落异星的工程师,要在防备异星虫族的进攻的同时,用双手一步步搭建起完备的生产线,造出火箭逃离星球。
游戏的乐趣则远远不止是造出你想要的物品这么简单,它的精髓就在于如何优化产线,让产线供需平衡,效率拉满,井然有序。
熟练的玩家自然不需要指导,因此本文权当一个新玩家写给自己的信笔涂鸦,但求一乐。
本文将联系软工中软件设计方面的:
- 抽象化与逐步求精
- 模块化
- 高内聚低耦合
- 开闭原则
- 信息隐藏
- 关注点分离
几个方面的概念,尝试把它们联系到《异星工厂》游戏中,让我们在 happy gaming 的同时可以造出一条也许不是最好但绝对不是最坏的产线来。
抽象化与逐步求精
软件设计的抽象原则是指,软件设计一般要自顶向下地经历一系列抽象级别从高到低的设计阶段,后续阶段会在前一阶段的基础上引进更接近于软件实现的设计元素,这一过程又称为“逐步求精”。
——《软件工程(第四版)》
对于游戏而言,一般我们不会对整个工厂进行自顶向下的设计——当然了,除非是老玩家,这里假定我们不是。为了玩得开心,更多时候我们是玩一点造一点,一个产线接着一个产线地造。因此首先考虑抽象原则如何使用在产线设计上。
一条产线当然有输入和输出,这是我们的“需求”,也是一条产线的最高层抽象。此时我们只关心它消耗的东西和产出的物品,如何排布组装机和传送带,以及效率如何,我们暂时不考虑。