Web/wasm Rust voxel game with: - wgpu 23 client (WebGPU when available, WebGL2 fallback) - Chunked terrain (17x17 chunks, deterministic value-noise generator) - Greedy meshing with frustum + distance culling - Sky shader, leaf wind shader, distance fog - Player physics: substepped AABB collision, gravity, fall damage, natural-surface respawn - Touch UI (MCPE-style joystick + jump/break/place/sprint), gamepad polling with axis calibration, mouse+keyboard - HP / death-screen / respawn flow - 10-slot hotbar with mouse-wheel + hotkey + tap cycling - Settings menu (mouse sens, FOV, render distance, input mode toggle) - Axum multiplayer server: WebSocket protocol, edit log, 10Hz player broadcasts - 31 unit tests covering spawn invariants, collision sweeps, raycast hit/miss, greedy mesh winding, fall damage, oriented box rotation, hotbar block roundtrip, and the input-merge regression that latched movement after touch release Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
37 lines
856 B
TOML
37 lines
856 B
TOML
[package]
|
|
name = "voxel-game"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
[dependencies]
|
|
winit = { version = "0.30", features = ["rwh_06"] }
|
|
wgpu = "23"
|
|
glam = { version = "0.29", features = ["bytemuck"] }
|
|
bytemuck = { version = "1", features = ["derive"] }
|
|
pollster = "0.4"
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
console_error_panic_hook = "0.1"
|
|
console_log = "1"
|
|
wasm-bindgen = "0.2"
|
|
wasm-bindgen-futures = "0.4"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = [
|
|
"Document", "Window", "Element", "HtmlCanvasElement", "Location", "Performance", "Navigator",
|
|
] }
|
|
wgpu = { version = "23", features = ["webgl"] }
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
codegen-units = 1
|
|
|
|
[profile.dev]
|
|
opt-level = 1
|