Hello, Vulkan
ゼロから始めることは、効率的な道ではない。それでも、いつもその道を選んでしまう。
既存のエンジンを使う人は多い。理由は分かる — ウィンドウ管理、入力処理、オーディオ、 アセットパイプライン、その他の「面白くない部分」をすべて引き受けてくれる。しかし 同時に、多くの決断を代わりに行ってしまう。私はその決断を自分でしてみたかった。
なので: Vulkan、Rust、そして空白の main.rs から始める。
なぜVulkanか
Vulkanは明示的だ。メモリを自分で確保し、同期を自分で管理し、レンダーパスを細部まで 自分で記述する。作業量は多いが、書いたコードとGPUが実際に実行することの間のギャップが 小さく、見えやすい。
学習の観点から、明示的であることは魔法的であることより良い。
なぜRustか
所有権の概念が、GPUリソースのライフタイム管理を扱いやすくする。Vulkanのオブジェクトは 破棄できるタイミングに厳格なルールがある — Rustはそのルールをコメントや希望の中ではなく、 型システムの中で表現できる。
コンパイル時間は理想的ではない。それ以外はすべて良い。
作っているもの
レンダラー、そしていつかはゲーム。レンダラーが先だ。光がどう動くかを理解してから、 それを使うゲームを書きたい。
このサイトはその過程を記録する。スケジュールの約束はしない。
fn main() {
println!("第一歩");
}