下载 App
聚光灯gamejam开发者日志(3)
昨天 22:3010 浏览
前两个方案都绕回了同一个问题:我想要的并不是“元素很多”,而是同一个元素能有很多种用途。
这也是我重新想到《Baba Is You》的原因。
它最厉害的地方,不只是“可以修改规则”,而是规则本身就是场景里可以操作的东西。一个词并没有被锁死在唯一用途里,换一种组合,整个关卡的意义都可能跟着变化。
所以我开始换一个方向想:
如果不用词语,而是用代码呢?
每一条指令都不只做一件事
我想做一个很小的编程解谜游戏。
玩家控制一个机器人,写几行非常简单的代码,让它在格子地图里移动、推箱子。
但这里的函数不应该像普通编程游戏一样,一个函数永远只负责一件事。
我希望同一条指令,根据参数不同,可以作用在两个完全不同的东西上:
游戏世界,或者代码本身。
最早我列出来的第一批指令只有三个:
- goto
- hop
- swap
goto 作用在世界里:
- goto up
- goto down
- goto left
- goto right
机器人就向对应方向移动。
但 goto 也可以作用在代码里:
- goto line 2
这时它不移动机器人,而是把程序的执行位置跳到第二行。
同一个函数,一个用途改变角色的位置,另一个用途改变代码执行的位置。
这开始有一点我想要的感觉了。
hop 和 swap
hop 也采用同样的思路。
放到世界里,它是一次跳跃;放到代码里,它可以跳过一行代码。
而 swap 更有意思。
作用在世界里,可以交换两个对象的位置。
作用在代码里,则可以直接交换两行代码。
比如一段程序第一次经过某几行时,把两条指令交换了位置。等程序下一次循环回来,它看到的已经不是刚才那段代码了。
这不就是 self-modifying code?这不就是我想要的“涌现”?








![[开发日志2]上辈子作恶多端截图](https://img2-tc.tapimg.com/moment/etag/FoVip4VdSn67C9CalCvE_BqhHLly_20261009091800.jpg/_tap_ugc_m.jpg)



![[开发者日志04|部分美工展示及进一步开发]截图](https://img2-tc.tapimg.com/moment/etag/Fj82KLaqTENQ6NuUe1tuWjHhup6M_20261009022721.jpg/_tap_ugc_m.jpg)