frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Vircadia, a Bun and PostgreSQL-powered reactivity layer for games

https://vircadia.com/
12•kaliqt•1y ago

Comments

kaliqt•1y 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.

porridgeraisin•1y ago
Interested to know why Deutsche telekom sponsored this
nand_gate•1y ago
My guess is money laundering, given that the product is pretty vapourware-y (as a game dev in a past life: Vircadia looks more like 'how a web dev thinks multiplayer games work' aka basically unusable in a serious title).
kaliqt•1y ago
I think you fundamentally misunderstand the stack. Their main usage of the platform has to do with a E2E solution with avatars, audio, etc. all synced without issue. These features ship with the client and other private repositories wrapping the core.

However, for usage to HN users they would be (likely) more interested in the SDK, the core, the underlying system, and how it can fit their use cases.

If you want to understand a small part of the scale of this project, you are welcome to check out:

https://github.com/vircadia/vircadia-web https://github.com/vircadia/vircadia-web-sdk https://github.com/vircadia/vircadia-native-core

kaliqt•1y ago
For an E2E worlds solution, so this https://github.com/vircadia/vircadia-web and this https://github.com/vircadia/vircadia-native-core except heavily condensed so it's easier to modify/upgrade for each new bespoke use case.

Our old system, being very monolithic, while extremely performant and capable, was nearly impossible to adapt and change. So what we have now is much more dynamic but also still a work in progress, a more complete example will be published in the coming weeks.

ricardobeat•1y 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•1y 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.

kaliqt•1y ago
We CAN submit the change to the DB and not listen to the message on if it succeeded or not! The message will arrive eventually, it's just not necessary to await it, so you have options.
jasonjmcghee•1y ago
I had a similar reaction / question. Why not use KV store and get sub millisecond latency?
kaliqt•1y ago
So it's a bit of tradeoffs, we may add a second DB to the compose by the time we reach v1.0, but, if we had to pick the convergence of simplicity and flexibility to start, PostgreSQL is it.

We prototyped SQLite as well. It just wasn't working in the stack like we had needed.

The idea is simple: use as few components as possible to achieve the outcome. Better to have less than more initially, because we can simply add the more and extend the API, but ripping everything out and trying to trim it down is damn near impossible, especially when the platform garners widespread usage.

The decision to do the less then more instead of more then less approach was spurred by us (the wider project) always having way too much bulk and then finding it impossible to turn the ship when we needed to (https://github.com/vircadia/vircadia-native-core).

We need to be agile to reach the milestones we have set out, hence the differed approach using off the shelf parts and only adding what we need, when we need it.

koakuma-chan•1y ago
I love that you use Bun.
kaliqt•1y ago
We have to cut bloat where we can if this is to work for higher up revision games, so Bun is the only answer that balances speed and simplicity (TypeScript native).
Drakim•1y 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?
reedf1•1y 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?
kaliqt•1y ago
Definitely multiplayer games, you wouldn't really need a syncing networking layer if you're doing single player as you can store state in any method you desire, something as simple as serializing JSON to the disk for example, or up to your server. But even then, a traditional setup like Supabase might be simpler to wrap your head around if you're just handing "user" data and not "player" data in a shared world.
kaliqt•1y ago
Postgres finishes its updates sub-ms in a reasonably sized DB if optimized correctly. In terms of upper-scale (>1000 players in a somewhat real-world scenario), we're working out benchmarks to test that.

Postgres is not slow by any stretch of the imagination, but it depends on how the schema is setup and what layers you have between the user and the DB, naturally any game developer will want to tweak the client+schema before going live. The layers between we manage to make it as minimal as possible, so that shouldn't be touched, if it's too slow for a reasonable use case, it means we have more optimization to do!

Long Presumed Dead, a Thriving Coral Reef Is Discovered in West Africa

https://e360.yale.edu/digest/benin-coral-reef
106•speckx•1h ago•4 comments

Gemini 3.6 Flash, 3.5 Flash-Lite, and 3.5 Flash Cyber

https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-6-flash-3-5-flas...
326•logickkk1•2h ago•252 comments

The World's 2,400 Castles

https://thecastlemap.com/
78•marklit•1h ago•61 comments

PCjs Machines

https://www.pcjs.org/
108•naves•3h ago•8 comments

Meta's AI Models Are Powering the First Wave of Genesis Mission Projects

https://ai.meta.com/blog/genesis-mission-lawrence-berkeley-national-laboratory-segment-anything-d...
16•surprisetalk•35m ago•1 comments

Qwen-Image-3.0: Rich Content, Authentic Details, Deep Knowledge

https://qwen.ai/blog?id=qwen-image-3.0
466•ilreb•8h ago•190 comments

Bloomy (YC S26) is hiring a founding engineer

1•alexsouthmayd•38m ago

France's Anssi Will Block PQC-Free Products from Certification Starting 2027

https://postquantum.com/security-pqc/anssi-pqc-certification-2027/
33•Sami_Lehtinen•1h ago•7 comments

Show HN: I built a command palette for the terminal – 6.2MB, pure Go, no fzf

https://github.com/matheuzgomes/decoreba
9•MarinhoD•16m ago•0 comments

My USB Drive Has a Hidden Encrypted Vault

https://rootkitlabs.com/2026/06/22/I%27m-Building-a-Secure-USB-Drive/
22•machinehum•1d ago•2 comments

The unreasonable difficulty of time series forecasting

https://suzyahyah.github.io/machine%20learning/2026/06/27/trouble-with-time-series.html
29•suzyahyah•2d ago•8 comments

Apple Defeats Liability for Not Scanning iCloud for CSAM

https://blog.ericgoldman.org/archives/2026/07/apple-defeats-liability-for-not-scanning-icloud-for...
182•speckx•3h ago•140 comments

Who's afraid of Chinese models?

https://stratechery.com/2026/whos-afraid-of-chinese-models/
911•mfiguiere•1d ago•737 comments

Python 3.15's Ultra-Low Overhead Interpreter Profiling Mode – Ken Jin's Blog

https://fidget-spinner.github.io/posts/ultra-fast-tracing.html
118•rbanffy•6d ago•6 comments

Why Are There No Empires in Age of Empires? (2019)

https://acoup.blog/2019/11/22/collections-why-are-there-no-empires-in-age-of-empires/
29•jkly•3h ago•14 comments

Incremental – A library for incremental computations

https://github.com/janestreet/incremental
318•handfuloflight•13h ago•60 comments

Apple Fixes Hide My Email Vulnerability After 404 Media Coverage

https://www.404media.co/apple-fixes-hide-my-email-vulnerability-after-404-media-coverage/
53•arto•2h ago•6 comments

Shanay-Timpishka, a boiling hot river 700km from the nearest active volcano

https://terradaily.com/anything-that-falls-into-a-four-kilometre-stretch-of-a-river-in-the-centra...
33•camtarn•4d ago•6 comments

Show HN: Explore 6048 YC companies as an interactive galaxy

https://artifacta.io/a/pg_x9pombpdybx90q2s16eu
28•jnakano89•2d ago•8 comments

Jelly UI: Soft-body physics for native HTML form controls

https://jelly-ui.com/
633•baldvinmar•1d ago•191 comments

Oracle could face $7B collateral bill for Wisconsin data centre

https://www.ft.com/content/b37030b6-bda8-4ba9-8e08-e6b88687b8f5
97•1vuio0pswjnm7•2h ago•68 comments

Kimi Work

https://www.kimi.com/products/kimi-work
656•ms7892•1d ago•265 comments

Human mathematicians are being outcounterexampled

https://xenaproject.wordpress.com/2026/07/20/human-mathematicians-are-being-outcounterexampled/
448•artninja1988•22h ago•222 comments

How to pack ternary numbers in 8-bit bytes

https://compilade.net/blog/ternary-packing
85•JoshTriplett•6d ago•42 comments

Claude Is Not a Compiler

https://blog.exe.dev/claude-is-not-a-compiler
115•bryanmikaelian•2h ago•117 comments

Arduino Launches Plug-and-Play Modules for Long-Range Sensor Projects

https://www.allaboutcircuits.com/news/arduino-launches-plug-and-play-modules-for-long-range-senso...
78•WaitWaitWha•3d ago•36 comments

Motion Sensors and Home Security Gadgets Without Cameras

https://www.wired.com/story/best-motion-sensors-private-alternatives-security/
43•joozio•2d ago•19 comments

Running Doom on Our Custom CPU and Going Viral

https://www.armaangomes.com/blogs/doom/
124•arghunter•13h ago•35 comments

Nativ: Run frontier open models locally on your Mac

https://blaizzy.github.io/nativ/
360•aratahikaru5•23h ago•122 comments

Show HN: Immersive Gaussian Splat tour of grace cathedral, San Francisco

https://vincentwoo.com/3d/grace_cathedral/
249•akanet•21h ago•53 comments