4 ms·
SpacetimeDB v1.0: Multiplayer at the speed of light
- laddad 2y agoI like the idea but how does one scale this?
- two_handfuls 2y agoVertically, looks like. I didn't see any mention of scale tests or multiserver support.
- spacephysics 2y agoTheir initial launch video mentions using nodes for scaling https://youtu.be/kzDnA_EVhTU?si=d5mFHpyOOk2Bzc4V https://youtu.be/kzDnA_EVhTU?si=d5mFHpyOOk2Bzc4V
- cloutiertyler 2y agoWe are currently working on IMC (inter-module communication) which allows the database modules to act like persistent actors. They can pass messages between databases and create new databases as well. It's similar to Erlang/BEAM.
- overu589 2y agoLove it. This addresses a long persisting itch in the back of my mind.
- femiagbabiaka 2y agoThis is an awesome project and an interesting use case for WASI. Get rid of this though: > This means that you can write your entire application in a single language, Rust, and deploy it as a single binary. No more microservices, no more containers, no more Kubernetes, no more Docker, no more VMs, no more DevOps, no more infrastructure, no more ops, no more servers. Don’t let your marketing team write your README.
- 47282847 2y agoWhy not fall back to simple GPL instead of a custom “AGPL plus linking exception“?
- gcr 2y agoIt prevents Google from using or adopting it internally. For some “militantly open source” projects, this can be a feature.
- two_handfuls 2y agoI kept on reading expecting to see motion prediction, multiversion, or similar given the name and focus on games, but no. This is a totally normal database, designed for low latency and with support for WASM stored procedures. You can host your own server or they will rent you one. Don't get me wrong, this looks very nice. It looks like a solid building block for persistent worlds in multiplayer games. You'll just have to do your lag masking netcode yourself.
- malkia 2y agoComing from gamedev I was expecting it too for real multi-player RPGs, shooters, etc, or something fancy like simualtenous turn based gaming (which was done in the past).
- cloutiertyler 2y agoDefinitely something we're looking to tackle in the near future. Lag-compensation, client-side prediction, and alternative transport layers are all in the works!
- riggsdk 2y agoHow would you deal with this common issue in many multiplayer shooters?: - I see someone sniping - I go behind a wall to safety - I still die From the enemy snipers perspective I was still in view when he shot. From my perspective I was not. Many game servers only roll back time to validate from the shooter's perspective. In this case you'd want some logic to perhaps negotiate a compromise - like only dealing half damage.
- cloutiertyler 2y agoI'm Tyler (guy in the video). We do not currently do lag compensation/client-side prediction for you, but you can do it. In BitCraft we implement it outside of SpacetimeDB. However, we DO plan to add automatic client-side prediction as a feature for SpacetimeDB in the near-ish future! Because all your server-side logic is in Wasm modules, we plan to run an embedded version of SpacetimeDB to execute the server logic on the client. As long as the server and client agree on the changes to the data we can reconcile the transactions, otherwise we'll rollback. Notably, we can do this with only partial state on the client!
- williamstein 2y agoNot open source.
- gcr 2y agoIf the client connects to the database directly, how is access control or cheating handled? UPDATE players SET gold = gold + 500 WHERE id = 12345;
- apetresc 2y agoBased on the description, it’s because you don’t get raw SQL access; they say the game logic is embedded directly into the database and you interact with it through stored procedures. All the rules are enforced there instead of whatever API endpoint you would normally use.
- cloutiertyler 2y agoMutations through SQL are disallowed for clients. They must update state via "reducers" (aka RPC calls to the Wasm module).
- Levitating 2y agoI am interested to use this for implementing a communication platform like matrix or IRC. Apparently the license only allows you to run one production instance though.
- Erikun 2y agoThere was an episode on the Developer Voices podcast about this some time ago. https://overcast.fm/+ABBSPFBjze0 https://overcast.fm/+ABBSPFBjze0
- NortySpock 2y agoyoutube link if you want to watch the interaction: https://www.youtube.com/watch?v=roEsJcQYjd8 https://www.youtube.com/watch?v=roEsJcQYjd8