Sandbox Logo
Page Header

V1.0: Inception

Step into a persistent sandbox where your creations become part of an ever-evolving shared universe. World introduces a unique take on collaborative building, where every player's contribution lives on for others to discover and appreciate.


It's basically Pixels but 3D


This game was whipped up in a few hours as an experiment, let's see how it goes.


I don't want to spend too much time developing on s&box because I got permanently banned from the discord without any context (but I presume it was because toxicity). This leaves a sour taste in my mouth, I love the s&box community & the engine but alas I am alien now.


If you have any feedbacks or suggestions, please leave a comment :)

The persistence system utilizes Pocketbase with a streamlined single-table architecture.

Currently using PocketHost.io for free hosting but might move to the a VPS in future due to reliability concerns.

Table: world

{
// System Fields
"id": "string (auto-generated)",
"created": "timestamp",
"updated": "timestamp",

// Position Fields (Integer)
"x": "integer",
"y": "integer",
"z": "integer",

// Rotation Fields (Float)
"rotX": "float",
"rotY": "float",
"rotZ": "float",
"rotW": "float",

// Metadata Fields
"owner": "string (required)",
"cloudModel": "string"
}

Indexes:
- Unique composite index on (x, y)
- Index on owner field

This could be any other database but I wanted to give Pocketbase a try since it's pretty niffy, it comes with a HTTP API which plays very nice with s&box. You can set rules for CRUD operations and much more.


In future, it might be worthwhile looking into the live-streaming functionality so when a player persists props, you can see it instantly.

Every second, once you've moved X amount, you query pocketbase for props near your X,Y location. It returns all those props.


Any prop already in the scene (which is in your radius) is ignored, any new props are spawned in a belated order (so you don't load 100+ cloud assets at once, at an attempt to smooth out fps spikes). Any outdated props are removed.


Persisted props are a dumbed down version without physics or intractability (Basically static).
Once you press MMB (persist keybind), your local props are bundled up and inserted into the master table.

They then become globally available for every user (simple right?)
The sandbox aspect in World is just Scenebox 2 (amazing), which has been cut down to its core and only the fundamental building remains.
World has only been out for about 12 hours and this is what some players have built so far :)


Plus the general brain rot
I have a few ideas, we'll see how it goes.

  • Prop streaming (See instantly when someone persist props globally) - Currently you have to unload/load the area, unless you're in the same game.
  • Ability to see timestamp/creator (we store this but has no use at the moment)
  • Ability to curate props so we can remove random trash (community voting?)
  • Ability to claim areas for building - Although this is another game idea I have, basically Plots from Minecraft.
  • Leave messages around the map for others to discover
  • Ability to delete/edit your persisted props - This is difficult because auth tokens aren't guaranteed, but maybe it's good enough?
  • Better loading/view distance - You can load the entire map at the moment but it's laggy initially, I might expose some settings in the Q menu for you to play around with.

User Comments