mzm.sh

Hello, Vulkan

ゼロから始めることは、効率的な道ではない。それでも、いつもその道を選んでしまう。

既存のエンジンを使う人は多い。理由は分かる — ウィンドウ管理、入力処理、オーディオ、 アセットパイプライン、その他の「面白くない部分」をすべて引き受けてくれる。しかし 同時に、多くの決断を代わりに行ってしまう。私はその決断を自分でしてみたかった。

なので: Vulkan、Rust、そして空白の main.rs から始める。

なぜVulkanか

Vulkanは明示的だ。メモリを自分で確保し、同期を自分で管理し、レンダーパスを細部まで 自分で記述する。作業量は多いが、書いたコードとGPUが実際に実行することの間のギャップが 小さく、見えやすい。

学習の観点から、明示的であることは魔法的であることより良い。

なぜRustか

所有権の概念が、GPUリソースのライフタイム管理を扱いやすくする。Vulkanのオブジェクトは 破棄できるタイミングに厳格なルールがある — Rustはそのルールをコメントや希望の中ではなく、 型システムの中で表現できる。

コンパイル時間は理想的ではない。それ以外はすべて良い。

作っているもの

レンダラー、そしていつかはゲーム。レンダラーが先だ。光がどう動くかを理解してから、 それを使うゲームを書きたい。

このサイトはその過程を記録する。スケジュールの約束はしない。

fn main() {
    println!("第一歩");
}