Show HN: Mochia, a virtual pet browser game, built with Rust, SolidJS, Postgres
by lemphi | 2025-07-03 17:00:11+00:00
Around three years ago, I was reminiscing about how much I loved playing Neopets as a kid. Meanwhile, I was also looking for a project to better learn Rust and SolidJS. So.. I figured making my own virtual pet browser game would be a fun way to practice! Since then, I’ve been working on it nearly every day, and.. it’s grown quite a bit! Here are some bulleted lists for your convenience:

Technical Details:

* Backend monolithic Rust server runs on a single $5/month VPS * Lean frontend with just 3 dependencies (SolidJS, Solid Router, and Mutative) * Around 130,000 combined lines of code (frontend + backend) * Rust server uses axum, sqlx, tokio, rand, strum, tungstenite (websockets) * No server crashes or data loss in 3 years (thank you Rust + Postgres!) * Almost all graphics (500+ assets) are SVGs for perfect detail at every zoom level * Fully mobile responsive and playable on all modern browsers and devices * Actor model for player actions enables trivial parallel, multi-core scaling * Single page application that preloads entire game world on initial page load * Instantaneous navigation between pages (no additional page fetches required) * Lightweight game engine for minigames, powered by custom WebGL shaders * Rust is the single source of truth for data structures shared between browser and server * Custom derive macros used to autogenerate TypeScript bindings and binary decoding functions * Binary WebSocket messages with custom protocol for client-server communication * O(1) selection for nested, weighted-random item reward pools * Minigames can be played without an account (but rewards can't be saved)

Features:

* Completely free to play with no ads or tracking * Multiplayer browser-based virtual world with 80+ locations to explore * Dark mode toggle switch * Simple minigames that smoothly run at your display's refresh rate * Public leaderboards that track the top scores in each minigame * Pet training system with turn-based card-based battle arena * Dynamic player economy with player-run shops * Player guilds that members can level up to unlock perks * Abandoned mines area created by maze generation algorithm * Create / adopt pets, adorn them with hats, give them pets, change their color, etc. * 220 items to collect (food, toys, cosmetics, books, charms, tiny creatures, etc.) * In-game currency with banking, auctions, stock market, and jobs system * Villagers you can talk to, befriend, and complete quests and jobs for * Optional push notifications (like for when you win an auction) * 38 achievement avatars to unlock * Social features: befriend others, send gifts, and share your recent activity * NPC shops that restock over time (sometimes with very rare items!) * Luck system with ways to boost your luck for better rewards * Many puzzles that grant items or MP (currency) when solved * Fishing, gardening, caves, random events, fountains, galleries, etc. * Wheels to spin, treasure maps to complete, and secrets to explore! * Much, much more but I don't want to spoil everything!

Links:

* Website URL: https://mochia.net * Community Discord: https://discord.gg/ub6z8YH866 * Gameplay Video: https://www.youtube.com/watch?v=CC6beIxLq8Q * Screenshots Album: https://imgur.com/a/FC9f9u3

I'd love to answer any questions, hear any thoughts, or read any sort of feedback or criticism!