下载 App
聚光灯gamejam开发者日志(5)--一群人在一起辩论涌现出的智慧!
修改于昨天 01:2528 浏览综合
这次的作品是围绕“涌现”主题制作的。我们最初讨论时反复问自己:涌现到底是什么?
我们对涌现的理解是“一个人做不成的事情,一群人在一起辩论 涌现 出一个思维或者功能。
蚁群、鸟群、鱼群、城市、市场——没有哪个个体知道全局蓝图,但群体却建造出了远超任何个体智慧总和的东西。整体大于部分之和,不是因为魔法,而是因为 交互 。
所以我们的游戏想表达的涌现有两个层次:
软层的涌现 :一群人组织起来辩论,涌现出的智慧!(游戏中的表现)

硬层的涌现 :一群蜂拥而至的野兽,在密林中突然涌现出现在我们的面前!(概念图表现)

技术复杂度:这是我们踩过最深的坑
想法很美,实现是地狱。涌现系统的特点是: 规则简单,交互复杂 。调试时你永远不知道是哪个模块的哪个时序出了问题。展开讲几个核心技术点。
1. 队伍阵列的移动与队形保持
几十个士兵要保持阵型移动,最直觉的做法是每个士兵自己找路——结果就是挤成一团、互相推搡。我们的方案是 虚拟锚点跟随 :以队伍几何中心为参考,每个士兵分配一个相对阵列偏移位,移动时只追自己的锚点,不追别人,士兵的ai用了2000+行的代码,还好我有写注释的习惯^_^

再加距离分层降速(离锚点越近速度越低,天然收敛不抖动),队形在移动、转向中都能保持。这套方案的计算量是 O(n),50个单位在安卓上完全无压力。
弓箭兵AI:不聪明,但看起来很聪明
弓箭兵只写了三条局部规则:射程内最远优先索敌、敌人逼近则后退拉扯、无目标时回到阵列锚点。没有 teamwork,没有指挥链。但三条规则叠加起来,战场上弓兵会自动“放风筝”、前排近战自然形成掩护——这就是我们想要的: 玩家看到的战术,是涌现出来的,不是我们写出来的 。
索敌轮询做了节流(每秒一次而非每帧),这是安卓端必须的克制。














