[HN Gopher] Show HN: Mochia, a virtual pet browser game, built w...
___________________________________________________________________
Show HN: Mochia, a virtual pet browser game, built with Rust,
SolidJS, Postgres
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!
Author : lemphi
Score : 7 points
Date : 2025-07-03 17:00 UTC (6 hours ago)
(HTM) web link (mochia.net)
(TXT) w3m dump (mochia.net)
| npinsker wrote:
| I played Neopets a long time ago. It meant a lot of different
| things to a lot of people, and -- while you're obviously not 100%
| there yet -- it's incredibly impressive to have done such a large
| piece of it on your own.
|
| That said, I always saw the "core fantasy" of the experience as
| developing a relationship with your pet(s). I liked having to
| feed my pet, and read books to it, and then it would talk to me
| back. Playing games and going on adventures were framed as being
| done "with" your pet. The pets were well-drawn and cute, and the
| higher-level cosmetic items were expensive but very desirable.
|
| From your page, I wasn't sold on that fantasy, or any fantasy in
| particular. If you look at the popular pet-care games nowadays,
| they have a fraction of the features you do while still (clearly)
| striking a chord with a huge number of people. Maybe part of it
| is because they focus on that relationship more? Especially in
| today's world -- but even back in 2000 -- I think features like
| games, items, stats, etc. need to tie in to some sort of greater
| fantasy in order to catch interest.
|
| You don't have to care about any of this though, especially since
| you're making it for yourself. It looks fun and the tech stack
| seems awesome.
|
| Is it actually possible to play minigames without creating an
| account? I couldn't figure out how.
| lemphi wrote:
| Thank for you for this thoughtful reply!
|
| Yeah, I definitely hear you with regard to the "greater
| fantasy" aspect. Some other players have also recently
| mentioned their desire for more fleshed out lore. It's
| something I personally struggle with but I should definitely do
| better in this regard, as I do want mochia to be enjoyed by
| more people.
|
| You currently can feed your pets, give them toys, and read
| books to them (each book also has unique text that you can read
| inside, often with secrets about the world), and your pets
| should reply with their reaction (as different pet species like
| different things), but I agree with you that a lot of these
| interactions don't really "sell" themselves, and they certainly
| deserve more polish.
|
| And yes, the minigames don't require an account. My apologies,
| I should have been more clear in the original post on exactly
| what a minigame is in this context. These are the locations
| that start off with a black tutorial screen, and then generally
| involve a game loop. Most other locations require an account
| because they require making a request to the server, but
| minigames can just be played entirely client-side just for fun.
| Here's some of my favorite ones that don't require a login:
|
| https://mochia.net/map/airia/shrumble
|
| https://mochia.net/map/whisperwood/enspell
|
| https://mochia.net/map/treehollow/snarf
|
| https://mochia.net/map/treehollow/loose-lambs
|
| https://mochia.net/map/airia/leapscape
|
| https://mochia.net/map/whisperwood/stellara
|
| https://mochia.net/map/airia/sugar-rush
|
| https://mochia.net/map/dunespire/pyramid/brick-break
|
| https://mochia.net/map/ghoulery/spelunker
|
| https://mochia.net/map/whisperwood/comet-rush
|
| https://mochia.net/map/whisperwood/fruit-blast
|
| https://mochia.net/map/whisperwood/radiant-revival
|
| https://mochia.net/map/flakefall/matchicle
___________________________________________________________________
(page generated 2025-07-03 23:01 UTC)