8 ms·
SpacetimeDB fits into a genre of tech that I want to call "universe brain reorgs" - structural re-arrangements that might unlock wild performance increases. The
by aeturnum 2y ago
SpacetimeDB fits into a genre of tech that I want to call "universe brain reorgs" - structural re-arrangements that might unlock wild performance increases. The challenge with these is that they require devs to re-align their thinking and it's hard to disentangle if "the problem" is that the technology isn't being fully embraced or if the promises of the tech don't work for your use case.
Other techs in this category have seen a lot of success. I'd classify Elixir and Node as being similar in that you adopt a stack to get access to some rare guarantees and also accept new or exotic limits.
I think these things tend to rely on having clear-eyed visionaries out in front, able to show off their strengths in open source. Without a successful project it's hard to believe the claims. I hope clockwork labs is able to deliver their example game (it seems high risk because, even if the game is a technical wonder - what if it isn't fun?!).
- cloutiertyler 2y agoWe are definitely inspired by Elixir/BEAM. IMC (inter-module communication) is directly inspired by it. It is high risk, but I think a risk worth taking.
- aeturnum 2y agoAbsolutely! I work in Elixir and I feel very good about its tradeoffs - and a lot of being good with the tool is knowing when to not use it. This tech is very much out of my wheelhouse but it seems very cool and I hope y'all find a nice fit!
- MasterYoda 2y agoWhich tradeoffs does elixir have?
- aeturnum 2y agoWell, it totally gives up memory mutation. Each value is final (under the hood). So you lose an entire category of optimizations and an entire category of errors. You also gain some new optimizations you can do because values never change. In general that makes it worse at tight loops where you really want optimal machine code and better at handling heterogeneous calls like HTTP requests.
- deleted 2y ago[deleted]
- theLiminator 2y ago> Node What's your reasoning behind this? Just being able to run the same code on frontend and backend?
- barrell 2y agoWhen node first came out, it was pretty revolutionary. Being able to almost instantly start a JavaScript thread from a single file that could support realtime experiences (a la socket.io et al) without a build step felt pretty paradigm shifting
- ffsm8 2y ago> could support realtime experiences Node supports realtime applications? Really? Isn't it garbage collected? Or does the term mean something different in nodejs? I've only come to know the term in the context of time guarantees (i.e. if it's scheduled to run in x, it is guaranteed to run at that time) and that shouldn't apply to nodejs I think? When you schedule something there, I believe it'll run on the first free thread after the timer relapsed - which entirely depends on the load of the system
- anon7000 2y agoRealtime in this context probably just refers to the end user experience — multiple people connecting over web sockets to the same backend and seeing the same thing in “real time”.
- Jarwain 2y agoTheres discussion distinguishing hard real-time (what you describe), firm real-time (infrequent deadline misses are problematic but managable), and soft real-time (missing deadlines aren't a big deal). Node does a pretty hood job with soft real-time.
- Rohansi 2y agoWhat games do you know that are hard or firm real-time? Real-time in this context is more like real-time communication rather than process scheduling.
- duxup 2y agoI feel like a lot of the "needs visionaries?, stuff has a pretty high chance of having not much real value. That's not a judgment on SpacetimeDB, but it is kinda how it plays out with these kinds of things.
- aeturnum 2y agoIMO it's more that there is value...but the chance that any random developer (i.e. me) is going to be able to realize it is much lower. Your instincts about how do to things will be predictably wrong in this new, different paradigm. You generally want a guide or you risk foot-gun'ing any project through misunderstanding.
- meheleventyone 2y agoCould also be marketing hype! The MMO space tends to be full of this, most famously in the VC funded arena with Improbable. This also suffers from the same problem that Improbable did that there are just not that many people making MMOs but maybe it'll find a niche elsewhere. I've been making multiplayer games professionally for twenty years from fast-paced shooters to spaceship MMOs and to me this isn't really crazy. If you wanted to make a comparison it's like having SQLite in memory but with the added infrastructure to support networking to clients and persisting state to disk. Obviously there is more work involved than that but conceptually thats where things are at. How nice it is to actually develop a game with is a pretty open question, and almost certainly the most important one when evaluating this sort of product, but you'd be surprised at the range of stacks in existence.
- lakomen 2y ago[dead]
- AtlasBarfed 2y agoIt's a database that emphasizes stored procedures. And if you need it to distribute computing, it has the same challenges as the eliminated "game servers". In addition, outside of single table updates and selects, SQL has scaling limits. If you throw the computation at the db server as well, you limit the vertical scaling. Gaming and gamers are used to sharding (and geographic tower of babel us an implicit shard as well).
- gafferongames 2y ago> SpacetimeDB fits into a genre of tech that I want to call "universe brain reorgs" - structural re-arrangements that might unlock wild performance increases. The challenge with these is that they require devs to re-align their thinking and it's hard to disentangle if "the problem" is that the technology isn't being fully embraced or if the promises of the tech don't work for your use case. And this is exactly why as a professional multiplayer game developer I'm quite concerned about SpacetimeDB. If you're a game developer and choose to use it, you must accept that you will completely structurally re-arrange your game server, and gameplay and simulation code in such a way that you'll conform to a database structure and programming model developed by some people who are currently making their first game. I'd be surprised if any professional game developers would consider this a good idea. The last time somebody suggested such a significant refactor for game servers, was when the two cofounders of Improbable walked into our office at Respawn, shortly after we shipped Titanfall 1, and told us they wanted the complete source code for Titanfall 1, and they would show us how awesome Improbable is, by porting the entire Titanfall codebase to Improbable in just a few months! They ended up getting the source code, despite all programmers and the technical director advising the COO against it... and we never heard from them again.