tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
117 stars 17 forks source link

Simple physical cargo system (suggestion) #2904

Open cloudrambler opened 4 years ago

cloudrambler commented 4 years ago

Having read some previous suggestions and Dev discussions, it seems there is a preference for cargo to be represented by physical items (not just stats within a fixed inventory block). Also there have been discussions about physical docking of ships / stations to exchange cargo (through an extending tube or similar).

I have a proposal for how those two requirements could be met in a fun and game friendly way.

Exchangeable cargo can be represented as large cubes. I suggest a small cube that is 1.5 blocks in proportion and a large cube that is 3.5 blocks in proportion. The reason for these sizes is that the small cube could move within a deck space of 2 blocks with clearance, and the large cube would pass through the largest door (16 bricks).

The cubes could be one unite of cargo and 10 units of cargo respectively (volume ratio is more like 1:13, but 10 is an easy number to work with for listing and exchanging cargo).

Cubes could have built in magnetic buffers so they automatically float at a fixed distance from any constructed surface, and they can posses the function of pushing and pulling each other along while maintaining a similar offset to each other. So a line of cargo cubes could be pushed or pulled like a train, provided they stay close enough to a reference structure. Thus we could build open holds, transfer tubes, bridges, rails etc. without any of those structures needing to use special blocks; just the flat surface would be enough for the cargo cubes to follow (always in a straight line unless diverted perpendicularly).

Thus the cubes could be moved with a manual grav gun, and by introducing a new block (similar to the magnetic lock) that can push or pull a nearby cube, it will be possible to translate a string of cubes in all three orthogonal axes, simply by placing a few of the selectable push/pull blocks at junctions. A large three dimensional hold on one ship could be transferred to a similar hold on a docked ship, simply by reversing the polarity of all the push/pull devices that were used to fill the hold (first-in-last-out).

Another type of block (optional) could be provided that would fix a nearby cargo cube in place and also allow access to its contents. Thus these cargo cubes could be used as an alternative to static inventory blocks. Personally I would not mind having such an arrangement instead of static inventory blocks.

The cargo blocks could be illustrated differently to show the type of cargo contained. It would be fun to see them moving into a ship and then be able to view them all walking around in the ship. It would make the aspect of cargo feel real in keeping with the rest of the game.

This method also provides a good mechanic for physical piracy, as once a hatch was blown open, pulling out any cargo cube could also result in getting lucky and dragging out a whole train of them. Good design from the defending ship would also reduce this risk.

Finally, having the cargo blocks be magnetically coupled would be a good reason to have them constantly powered.

tsunamayo commented 4 years ago

Fun suggestion here! I will first implement ship inventory, moving cargo will have to wait! But I definitely want to give it a shot. Cheers

WILDCATreactor commented 4 years ago

Hmm, what if you could just use the link tool to attach/detach them from a surface or player (rightclick to self-tow?)? if the anchored block is destroyed then any cargo cube or cube chain comes loose.

cloudrambler commented 4 years ago

If the gravity generators in STEVO obey the same overlap rules as the ones in Space Engineers, then I can mimic the push/pull function mentioned above. If that works I will build an in-game proof of concept. Watch this space.

MatCat commented 4 years ago

just cubes alone would be a bit boring, would be cool if you could design your own cargo containers and the engine could with something similar to a ship controller block detect the cargo containers max volume to determine its storage capacity, that way cargo containers can look like whatever you want.