I intend to keep developing this indefinitely as a playground for graphics programming.
The hardest technical hurdles so far were (but not limited to): 1. The Async Loop: Re-architecting the main game loop to play nice with the browser's requestAnimationFrame (inverting control to avoid thread blocking). 2. WASM DPI Scaling and Pixel Ratios: Handling high-DPI/Retina scaling manually in wGPU so the canvas doesn't look blurry or cropped on mobile. 3. Safe ECS: Fighting the borrow checker to build a System Runner that allows mutable component access without runtime panics.
The submitted link is a peek/dive into the architecture.
Live Demo: https://journey.ujjwalvivek.com Source Code: https://github.com/ujjwalvivek/journey
I am actively looking for others to hop on and work on this! If you've been wanting to learn wGPU, experiment with ECS architecture, or just fix my terrible shaders, I'd love to review your PRs.
Happy to answer questions about the Rust -> WASM pipeline or wGPU witchcraft!
You are spot on. The rendering pipeline is fully optimized for mobile and should be hitting 60FPS, but the Input System is currently wired to physical events (WASD/Gamepad).
I prioritized the wGPU rendering performance for this release, so touch controls are the next thing on my backlog for v0.3.0. Appreciate the feedback!