ターミナルUIライブラリの試行錯誤と断念

2025-09-04
ターミナルUIライブラリの試行錯誤と断念

ゲームKartoffelsの開発中に、作者は既存のRatatuiライブラリに代わる高性能なターミナルUIライブラリKruciを作成しようと試みました。Kruciは宣言的なUIデザインを採用し、ピクセル単位の差分計算を避けることで性能向上を目指しました。しかし、イベント処理、状態管理、Zスタッキングなどで多くの課題に直面し、最終的に作者はプロジェクトを断念。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は、仮想のジャガイモのファームウェアをプログラミングするゲームです。122コミットを含むバージョン0.7では、重要な改善が導入されました。洞窟生成は、より現実的な結果を得るために、セルオートマトンとホワイトノイズを使用するようになり、以前の孤立した洞窟が多すぎるという問題が解決されました。ゲームエンジンのCPUアーキテクチャは、メモリ管理を改善するために、64ビットRISC-Vから32ビットに移行しました。新しい機能では各ボットの履歴を追跡し、ランキングへの道を切り開きます。UIの改善とゲームメカニクスの調整も含まれています。このアップデートではサーバーがリセットされ、アップロードされたすべてのボットプログラムが削除されたことに注意してください。

続きを読む
(pwy.io)
ゲーム