frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Journey – A Custom 2D ECS Game Engine Written in Rust and WGPU

https://ujjwalvivek.com/blog/proj_0004_rust_game_engine.md
9•ujjwalvivek•2h ago

Comments

ujjwalvivek•2h ago
OP here. "Journey" is my long-term R&D project to understand modern rendering pipelines and system architecture constraints. It's a custom 2D ECS engine written in Rust and wGPU that compiles to WebAssembly.

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!

Hammershaft•1h ago
On a mobile device I can't interact with the game, consider detecting mobile screen sizes and loading some gifs :)
ujjwalvivek•59m ago
Thanks for checking it out!

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!

owenpalmer•8m ago
Why do you need a loading screen to show me a markdown file?

Show HN: Andrej Karpathy's microgpt.py to C99 microgpt.c – 4,600x faster

https://github.com/enjector/microgpt-c
36•Ajay__soni•1h ago•1 comments

Show HN: Scanned 1927-1945 Daily USFS Work Diary

https://forestrydiary.com/
45•dogline•2h ago•7 comments

Show HN: Free Alternative to Wispr Flow, Superwhisper, and Monologue

https://github.com/zachlatta/freeflow
91•zachlatta•4h ago•44 comments

Show HN: Jemini – Gemini for the Epstein Files

https://jmail.world/jemini
259•dvrp•19h ago•48 comments

Show HN: 2D Coulomb Gas Simulator

https://simonhalvdansson.github.io/2D-Coulomb-Gas-Tools/index_gpu.html
29•swesnow•6h ago•5 comments

Show HN: Maths, CS and AI Compendium

https://github.com/HenryNdubuaku/maths-cs-ai-compendium
54•HenryNdubuaku•10h ago•14 comments

Show HN: Simple org-mode web adapter

https://github.com/SpaceTurth/Org-Web-Adapter
52•turth•9h ago•5 comments

Show HN: WowAI.pet – Generate cinematic videos from blurry pet photos

https://wowai.pet/
2•zy5a59•2h ago•0 comments

Show HN: Nerve: Stitches all your data sources into one mega-API

https://playground.get-nerve.com/
11•mprast•2d ago•2 comments

Show HN: Wildex – we built Pokémon Go for real wildlife

https://apps.apple.com/us/app/wildex-identify-plants-animals/id6748092158
59•AnujNayyar•4h ago•44 comments

Show HN: ZIT: Zooplankton Image Tool for 2d rendering of biological locomotion

https://github.com/juleshenry/zooplankton-image-tool
2•juleshenry•4h ago•0 comments

Show HN: Vocalinux // 100% offline voice typing for Linux

https://vocalinux.com/
3•jatinkrmalik•4h ago•0 comments

Show HN: Scene It SF – Hollywood thinks San Francisco is 3 blocks wide

2•distribution14•4h ago•0 comments

Show HN: Your binary is no longer safe

https://reorchestrate.com/posts/your-binary-is-no-longer-safe/
3•seddonm1•4h ago•0 comments

Show HN: Scrappy – Open-source browser scraper written in Go

https://github.com/sunergos-ro/scrappy
6•RaulOnRails•5h ago•1 comments

Show HN: Microgpt is a GPT you can visualize in the browser

https://microgpt.boratto.ca
268•b44•1d ago•25 comments

Show HN: VOOG – Moog-style polyphonic synthesizer in Python with tkinter GUI

https://github.com/gpasquero/voog
92•gpasquero•1d ago•39 comments

Show HN: Telescope now queries Kubernetes logs directly

https://github.com/iamtelescope/telescope/releases/tag/v0.0.24
6•r0b3r4•5h ago•0 comments

Show HN: ViewLint – Lint UI, Not Code

https://github.com/EvanZhouDev/viewlint
2•EvanZhouDev•5h ago•0 comments

Show HN: Pangolin: Open-source identity-based VPN (Twingate/Zscaler alternative)

https://github.com/fosrl/pangolin
74•miloschwartz•1d ago•24 comments

Show HN: JeffTube

https://jmail.world/jefftube
27•dvrp•21h ago•3 comments

Show HN: Knock-Knock.net – Visualizing the bots knocking on my server's door

https://knock-knock.net
215•djkurlander•1d ago•89 comments

Show HN: GEDB – A pure-Go embedded database

5•ReturnErr•11h ago•0 comments

Show HN: Rollin – Wheelchair accessibility scores for 56K+ locations (free API)

https://joinrollin.com/
4•thattechiedude•7h ago•4 comments

Show HN: Interactive Chord Finder, Free Piano Scale and Chord Explorer

https://interactivechordfinder.com
2•magikMaker•7h ago•1 comments

Show HN: Nothing as a Service – Premium nothingness for minimalists

https://euphonious-blancmange-24c5b0.netlify.app/
2•Nabil_Bellaali•7h ago•1 comments

Show HN: Lightwave – Real-time notes app, 3.5 years of hand-rolled JavaScript

46•jv22222•1d ago•29 comments

Show HN: AsdPrompt – Vimium-style keyboard navigation for AI chat responses

https://asdprompt.com/
2•contrary2belief•8h ago•0 comments

Show HN: Claude-engram – Brain-inspired persistent memory, runs inside Claude.ai

https://github.com/mlapeter/claude-engram
5•mlapeter•8h ago•2 comments

Show HN: Tanin – TUI Noise Generator

https://github.com/AnonMiraj/Tanin
5•anongazelle•18h ago•2 comments