tsunamayo / Starship-EVO

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

[Suggestion] merging and separation #3217

Open AlienXtream opened 3 years ago

AlienXtream commented 3 years ago

continuation of discussion from #3210 (lol, it counts down XD) mainly here to discuss the potential mechanics of them and determine possible implementations. these would be long term changes if they happened in any capacity at all

-welding mechanic of some sort to combine 2 separate ships into a single entity. logistics and mechanics to be discussed -separation of "detached" parts from damage ("shrapnel" from explosions, as though you put a firecracker and lego together). possibly also affect construction.

i am aware that some rewriting of the block system would be needed.

here's my idea for how each could work. this is just one possible solution

-welding. Similar to how docking may work having to line the ships together such that their grid line up and are close in space (specific thresholds for variability would need experimenting with to ballance reliability and practicality). once close enough the player(s) would have to get out and "weld" the contact point(s). this would connect the target ship (first selected via weld tool) to the closest point of the parent ship assuming no intersections would occur. ideally you would align the actual grid but this would be too restricting so simply having the ship be a child grid of the parent would be better in this case.

-seperation. basically, parts that have no physical connection to the grid become independent entities. they would not really break off like in SE but rather a clone of them would be created that is treated as a rigid body while the original is not visible.

a secondary system relating to construction would actually disconnect the parts and make them separate grids. in the same vein as this a "cutting tool" to split some stretch blocks apart would be nice. obviously many stretched blocks won't work with this but ones that have some for of axis symmetry such as the basic cube this would be helpful to "cut out" parts without needing to delete a large stretched area. would be absolutely necessary if separation of grids is to ever be made possible. i know that the current system does not support this but thats the whole point, to make suggestions for changes and additions that would improve the game.

now, i AM aware of the problems this would cause both with having new clipping issues and even performance but something like these are a MUST for survival IMO. ultimately the final call is yours Tsuna as you are the one who would have to program these things in, im just trying to give you ideas of how such things might work if you ever decided to add them :)

tsunamayo commented 3 years ago

Hi, so yes I think I would like to add the weld tool at one point. For debris also I will want to look into that, but the problem is not spawning a new entity but rather define structural integrity, and then how to compute it in real-time without inducing lag. Not sure to understand the cutting tool exactly. If you mean cutting tool in order to get new shape out of them then no it is not possible and never will be. I know it sucks but it is one of the drawback of the stretch tech + voxel tech. I dont think that is that important for survival though. I think whats is more important is mining, crafting, missions, trading and such. Cheers!

AlienXtream commented 3 years ago

no, i dont mean procedural meshes. i mean lets say you have a 16x3x1 section of either large or small blocks. currently if you want to cut a 3x3 hole in that you need to delete the whole section and rebuild it. being able to split or separate it so it is comprised of a 13x3x1 and a 3x3x1 section that can then be deleted, leaving the other in tact. just a single axis slice to cut the targeted section (the one that was clicked on) down to a smaller size. given that the largest check you would need to do is 16x16x16 (which, while a fair bit isn't too hard for a modern computer to do in less than a frame i would imagine). in short, taking larger stretched element and splitting it into 2 smaller stretched elements. even if it were limited to things that are fully symmetrical like the basic cubes and nothing else it would still be incredibly useful of a tool. its one of those tools that would be quite handy and even borderline necessary if you ever want to make it so things have to be physically connected to remain attached.