Live data from Hacker News

SpacetimeDB

spacetimedb.com

101–110 of 205 posts

Re: SpacetimeDB

#101
post #91
post #75

Earlier quoted context omitted.

I believe they've done more complicated physics in their game bitcraft, but that code hasn't been released yet (no idea if it will be.) But there has been work in the discord recently and 2 member have individually implemented rapier[1] at this point. I can't say anything about the related netcode however as I don't know how much they've focused on it. At the very least work has been done. The unity tutorial is just…

Then again looking at the FAQ for Bitcraft, we have this: "What engine does BitCraft use? The BitCraft client is developed using the Unity game engine. For the server, we have developed a sophisticated distributed system called SpacetimeDB, which hosts the entirety of BitCraft’s server architecture. " Correct me if wrong, but this suggests the physics engine is Unity's, and not something implemented in SpacetimeDB.

I didn't truly know and I didn't want to just throw out a guess so I just asked. They mentioned they have a basic hand rolled system for their physics. So not using unity physics.

I guess making the claim that is was more complicated might have not been right for me to do, but it would be hard to believe that they did the degenerate case of O(n^2).

Speculation: I have only written a physics engine once during college (so please excuse my ignorance), but I think for a basic mmo a simple chunk and AABB approach would work. It would be easy to query for the surrounding chunks and just run the collision on that subset. I know one of the team members was working on porting a minecraft 1.7.3 server at one point, but I don't know if they got up to the point of moving collision off of the server and into the database.

https://www.youtube.com/watch?v=YYMEUk-tnWs

Re: SpacetimeDB

#102

Earlier quoted context omitted.

It had nothing to do with marketing, it was because conceptually stored procedures are similar to smart-contracts and share technical aspects. We thought engineers would find the similarities interesting. Instead they immediately assumed we were shilling tokens, so we pulled it down. Kind of sad that people can't see past that, but I also understand. It is what it is.

Hey Tyler; looking back I think maybe a better language than "reducers" etc would have been to just something analogous to the ECS term "systems", which I understand to be "processes that operate on entities / components" and always seemed overly general and non-specific to me but at least is familiar to game programmers operating in data driven design. You may recall I was partial to the term "verb" :-)

I think that's very fair, we've got quite a lot of momentum behind reducers at this point though. That doesn't make it a good, name but it is a sticky one.

"mutation" may also have been a good choice?

Re: SpacetimeDB

#103
post #95
post #85

Earlier quoted context omitted.

Nice, that's very interesting and a commendable achievement! If that is the case I would really like to see some internals of how the physics engine has been implemented in their pattern. I'm not asking for the rapier port source code, but it is hard to think in terms of a new advertised programming paradgim when there's no working examples. For example I am very curious to see how a constraint solve is implemented i…

On of the people who implemented it is from unity, from my understanding he can't actually release the code. For the other guy, this was his last comment on the matter > Sure, my plan was to write a readme and share the code with my colleagues anyway. It should be ready by the weekend because I'm in the middle of a refactoring right now. > The gist of it: each time a System adds a "movable" component to a StDb table,…

I see, that's extremely interesting. As mentioned earlier, I do respect efforts to push on something new, especially if it's against conventional wisdom and would be interested in poking around with an open mind. I'll join the Discord. Thank you!

Re: SpacetimeDB

#104
>SpacetimeDB wasn't built in a vacuum. It's the system powers our own large-scale MMORPG BitCraft.

I checked out BitCraft and it's not released yet. Don't know if I'm being unfair here, but isn't this a bit misleading?

Re: SpacetimeDB

#105
post #91

Earlier quoted context omitted.

Then again looking at the FAQ for Bitcraft, we have this: "What engine does BitCraft use? The BitCraft client is developed using the Unity game engine. For the server, we have developed a sophisticated distributed system called SpacetimeDB, which hosts the entirety of BitCraft’s server architecture. " Correct me if wrong, but this suggests the physics engine is Unity's, and not something implemented in SpacetimeDB.

I am contributing to a project by a SpacetimeDB community member to get Rapier running within Unity. Instead of trying to get Unity PhyX running on the server, we just use a deterministic Rust physics engine on both client and server. It is a mostly complete drop in replacement as it stands and is deterministic (Unity's PhyX is not). We'll keep improving it! https://github.com/Daxode/rapier4unity

That's great, especially the deterministic part. Did you run into determinism problems with two different CPU architectures for server and client?

Re: SpacetimeDB

#106
post #101
post #91

Earlier quoted context omitted.

Then again looking at the FAQ for Bitcraft, we have this: "What engine does BitCraft use? The BitCraft client is developed using the Unity game engine. For the server, we have developed a sophisticated distributed system called SpacetimeDB, which hosts the entirety of BitCraft’s server architecture. " Correct me if wrong, but this suggests the physics engine is Unity's, and not something implemented in SpacetimeDB.

I didn't truly know and I didn't want to just throw out a guess so I just asked. They mentioned they have a basic hand rolled system for their physics. So not using unity physics. I guess making the claim that is was more complicated might have not been right for me to do, but it would be hard to believe that they did the degenerate case of O(n^2). Speculation: I have only written a physics engine once during college…

Thank you for asking and forwarding the answer. I appreciate your comments.

Speculation as well: Looking at the trailer for Bitcraft, it looks like they have articulated characters and cloth physics. This raises more questions for me.

Re: SpacetimeDB

#108
The website and naming (and product space, sorta) remind me a lot of Parallel Universe. Any direct inspiration there, or shared personnel?

Re: SpacetimeDB

#109

Earlier quoted context omitted.

TODO does not imply no plan or that we haven't thought deeply about the problem. Prioritization is imperative when you're building an MMORPG and a new database with a small team for both.

How can you think deeply and plan for something when you don't know what don't know. You can only really understand these things when you've taken a game using these latency hiding techniques into production, and then after this, you'll probably realize that some of your original ideas were wrong. Where does this leave SpacetimeDB then?

I mean, they are dogfooding their own database. If they’re making a MMO game with it presumably the game has latency masking netcode, even if it isn’t in part of the database.
Post reply on HN