2 comments

  • npinsker 9 hours ago
    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.

  • kwere 6 hours ago
    how much game data do you store on postgres ? do you use classical update cycles ?
    • lemphi 6 hours ago
      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?