一个终端UI库的实验与放弃

2025-09-04
一个终端UI库的实验与放弃

作者在开发游戏Kartoffels时,尝试编写一个高性能的终端UI库Kruci,以替代现有的Ratatui库。Kruci采用声明式UI设计,并试图通过避免逐像素差异化计算来提升性能。然而,在处理事件、状态管理以及Z-stacking等方面,Kruci遇到了诸多挑战,最终作者决定放弃该项目,认为优化Ratatui或专注于游戏开发更有效率。

阅读更多
(pwy.io)
开发

用距离函数驯服 iCalendar 循环事件

2025-04-17
用距离函数驯服 iCalendar 循环事件

作者在实现一个处理 iCalendar 文件的库时,遇到了处理循环事件的难题。iCalendar 使用复杂的规则来定义循环事件,传统的实现方法通常针对不同的频率和参数编写大量特定逻辑。作者另辟蹊径,将循环规则视为 SQL 查询,并借鉴计算机图形学中签名的距离函数(SDF)的思想,用距离函数来表示事件的发生。这种方法将复杂的规则分解成简单的距离函数,通过迭代计算找到事件的发生时间,避免了大量的条件判断,使得代码更简洁、更易于维护。虽然初始实现效率不高,但作者通过优化,使其能够在毫秒级内处理复杂的循环规则。

阅读更多
(pwy.io)

土豆游戏Kartoffels v0.7更新:洞穴生成算法与RISC-V架构切换

2025-02-17
土豆游戏Kartoffels v0.7更新:洞穴生成算法与RISC-V架构切换

Kartoffels是一款让玩家为虚拟土豆编写固件的游戏。v0.7版本更新包含122次提交,主要改进包括:采用基于细胞自动机的白噪声算法生成更真实的洞穴地图,并解决了此前地图可能出现过多孤立洞穴的问题;将游戏引擎的CPU架构从64位RISC-V切换到32位,以优化内存使用;新增了对每个机器人的行为历史记录功能,为未来排行榜等功能打下基础;重做了部分UI界面,并改进了一些游戏机制。此次更新还重置了服务器,所有上传的机器人程序都将被清除。

阅读更多
(pwy.io)
游戏