我在我的落地方块游戏中添加了一个炸弹块。清除包含它的行时,它会在3×3半径内爆炸。简单。

然后我花了一整天思考:如果两个炸弹相邻呢?

连接了一个基于队列的传播系统。基本上是在活跃网格上进行BFS。跑了它,期待两个爆炸。

一个炸弹引爆了一个邻居。那个引爆了两个更多。然后是五个更多。整个棋盘在不到半秒钟内清空了,我只是坐在那里看着它发生。

我没有计划这个机制。算法产生了它。

这就是我开始时没有人警告我的:有时你的最佳机制并不是从设计决策中产生的。它们从你为完全不同的原因实施的数据结构中产生。

我已经在过去几个月里重建了我的C++游戏引擎(SimpleEngine2D)——8个游戏模式、智能指针迁移、大量UI工作。链式反应是一个下午的副产品。现在它是每个人都在讨论的东西。

有人在实施中产生了机制或功能,而不是设计吗?我真的很好奇这有多常见。