Yeah so these were the first derive macros I've ever written, and they're quite ad-hoc to say the least, with very few types / expression syntaxes being supported currently. Also, I'm not sure how useful others would find them as they're all meant to work in tandem for my exact use case where I wanted a very specific output that also generated const enums and verbose interface definitions that worked with my code generation for generating binary decoding functions for each type.
I'm not necessarily against open sourcing them, but I'd probably want to significantly polish / rewrite them first and write a lot of documentation, and probably only if there was significant demand. In the meantime I think there's a decent number of crates for generating Typescript bindings for Rust types that have much better support (like ts-rs and typeshare)
I think it's really great and highly recommend it! Its mental model seems a lot simpler to me, and the runtime performance and bundle size is top-tier as well.
Basically the bare minimum amount of data is stored in Postgres. Many of the locations are stateless, or it's okay if they are wiped on server restart (like NPC shop inventories, since they can just be regenerated on server startup, so they only exist in server memory). And most of the game world is just included in the large static bundle (item names and descriptions, dialogue, etc.).
The main data stored in Postgres are things that must be durable, like your items, currency, unlocked avatars, friends list, gallery, garden, guilds, friendship levels with villagers, profile information, personal shops, and things like that. But even in these cases integer identifiers are used (for things like item IDs and avatar IDs), so the tables remain very lean.
What do you mean by classical update style? I'm not sure if you're still referring to Postgres or if you're talking about the minigames (like does the update loop run at a fixed internal?), or maybe something else entirely?
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:
I'm not necessarily against open sourcing them, but I'd probably want to significantly polish / rewrite them first and write a lot of documentation, and probably only if there was significant demand. In the meantime I think there's a decent number of crates for generating Typescript bindings for Rust types that have much better support (like ts-rs and typeshare)