🐈
Rust/BEVY入門メモ
Rust/BEVY入門メモ
BEVYがどんな感じか見てみたくなったので、自分用にメモを取りながら試してみる。
目標としては、BEVYで簡単なゲームを作り、html5デプロイできるところまで確認したい。
Rust入門
を読みながら進める。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
~/.zshrc
に以下を追加
export PATH=$HOME/.cargo/bin:$PATH
source ~/.zshrc
rustc --version
rustup update
mkdir rusttmp
cd rusttmp
mkdir hello_world
cd hello_world
nvim main.rs
fn main() {
println!("Hello, world!");
}
rustc main.rs
./main
cargo --version
cd ..
cargo new hello_cargo
cd hello_cargo
cargo build
./target/debug/hello_cargo
cargo run
cargo check
cargo build --release
./target/release/hello_cargo
雑だが最小限の使い方は把握した。
言語としてのRustの方はリファレンス見ながらやればなんとかなるだろう…。
BEVY入門
を見ながらやる。
cd ~/rusttmp
git clone https://github.com/bevyengine/bevy
cd bevy
git checkout latest
cargo run --example breakout
ブロック崩しが動いた。ゲームとしての出来はとても不安になるが(マウス対応なし、ゲームオーバーなし、クリアもなし)、動作自体は問題なさそうだ。
自分にとって重要なのはこれをhtml5デプロイしたらどうなるかなので、ここのgetting startedは一旦中断し、html5デプロイの方を見ながらやってみる。
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli
cargo build --release --example lighting --target wasm32-unknown-unknown
wasm-bindgen --out-name wasm_example \
--out-dir examples/wasm/target \
--target web target/wasm32-unknown-unknown/release/examples/lighting.wasm
npx http-server examples/wasm -p 3002
別窓で
open http://localhost:3002
デモのレイトレーシング的3Dオブジェクトをキーボード操作できるやつが動いた。動作はよさそうに見える。
ただ、生成された wasm_example_bg.wasm
のサイズが37Mで、これはちょっと自分の用途には大きすぎる…。他の奴でもそうだけど、wasm使う場合はどうしてもサイズ肥大は避けられないのか?うーん…。
とりあえず手元でhtml5ビルドして動かして満足したので一旦終了。
Discussion