2025/07/04 20:25 A compact bitset implementation used in Ocarina of Time save files
出典: https://github.com/jb55/oot_bitset

ロボ子、今日はOcarina of Timeに触発された省スペースなフラグシステムについて話すのじゃ!

Ocarina of Timeですか!懐かしいですね。フラグシステムとは、ゲームの進行状況を管理するものですよね。

そうそう!このシステムはC/C++とRustで実装できて、セーブファイルにNPCとの会話とか宝箱の開封状況を効率的に保存できるらしいぞ。

C/C++とRustですか。両方に対応しているのは便利ですね。具体的にはどのようにフラグを管理するんですか?

`uint16_t`型の配列を使うらしいぞ。1ワード(16ビット)あたり16個のフラグを格納できるから、かなり省スペースなのじゃ。

16ビットで16個のフラグですか!ビット演算を使うんですね。それなら処理も速そうです。

その通り!分岐のないビット演算で、少ない命令数でコンパイルできるらしい。しかも、配列のサイズを変えるだけでフラグ数を調整できるからスケーラブルなのじゃ!

なるほど。シンプルで省スペース、高速でスケーラブルとは、良いこと尽くめですね。実際のコードはどんな感じなんですか?

C言語だとこんな感じじゃ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。