不需要任何简介,Balatro就是一个在 Lua 运行的免费开源 Love2D 引擎下的著名的 roguelike 德州扑克游戏开发者由 LocalThunk 这个开发者负责。
>>
我想说清楚的一个更重要的是 Balatro 的 CODE QUALITY。
正如众所周知,其源代码的质量..确实很差。
然而,在现实中,Balatro 的源代码包含了真正的创新数学技巧(因为 LocalThunk 很擅长数学,似乎)。
一些技术的关键点:
- Chips x Mult 公式解释:我们浏览了 Balatro 如何计算每次打出牌的代码。其中,如何识别手牌类型、如何处理 joker Effects、如何应用特殊效果(foil、holo 等)等。
- 鼠标位置作为廉价熵:Balatro 使用鼠标抖动作为廉价的硬件熵 RNG。零 OS 调用上下文。简单极了。
- 浮点数用于牌类别排序(比较):牌类别排序是通过一个聪明的公式来实现的,将不同变量打包为一个浮点数值。牌的面数、脸面值、ID等值都被各自的十进制位分配。
- 代码模式和在代码中的应用:Flyweight类似于策略模式等。我们将继续探索 Balatro 是如何实施众所周知的设计模式。然而,并非所有的模式都是标准的参考实现。
- 增量GC和每秒帧内计时预算:Yep,Balatro 使用自定义的GC触发器代码,运行每秒帧内的0.3ms预算(和至少300个MB内存阈值)。部分借鉴自Max Cahill的 nuGC。
- 视频中有很多的更多的内容。
全视频:https://www.youtube.com/watch?v=54w9crNNThU
评论 (0)