kaliqt 3 days ago

We gave Vircadia a full Gen 2 overhaul (big thanks to our sponsors such as Linux Professional Institute, Deutsche Telekom, etc. for enabling this), aiming to cut down on code bloat and boost performance. The main shift is swapping out our custom backend infrastructure for a battle-tested, high-performance system like PostgreSQL with Bun wrapping and managing every end of it.

It's kind of unheard of to do this for things like game dev (preferring custom solutions), but it works and makes things way easier to manage. The shape of the data in a database affects how well it works for a use case, and that model scales well for virtually every kind of software ever, the same should apply here!

Feel free to prototype some game ideas you might have been tossing around, our priority is DX for the project as a whole to enable more developers with less resources to build bigger worlds, so please do share feedback here and/or in GH issues!

Our roadmap is for more SDKs, and cutting down on bloat where possible, with the express goal of giving devs more cycles in the day to focus on the actual gameplay instead of tooling.

  • ricardobeat 10 hours ago

    The example shows using it to update player positions. Doesn’t Postgres add significant latency considering a 16-33ms budget for state updates? How well does this scale?

    • andyferris 7 hours ago

      Generally client games optimistically carry on a few frames (and sometimes much more!) ahead of the what the server has responded with as accepted.

      This is because gamers require low latency to effectively play, but things can be slightly out of sync and logic can be complex, and anti cheat can be hard to implement server side only (which is why eg fortnite and valarant install fancy client side anti cheat software too).

      For a friendly game of stardew valley or turn based strategy you can afford to wait for transactions to complete and causality to be enforced.

    • jasonjmcghee 5 hours ago

      I had a similar reaction / question. Why not use KV store and get sub millisecond latency?

  • Drakim 9 hours ago

    How does the system separate between state changes that must be confirmed by backed compared to state changes that can be updated locally (by prediction) to give the user more snappy experience?

  • porridgeraisin 11 hours ago

    Interested to know why Deutsche telekom sponsored this

reedf1 9 hours ago

I would love to get into some game design - and something like this seems intuitive enough from my perspective as a software engineer. Forgive me if this is a naive question, but is the use case for this single-player games or multiplayer games?