tsunamayo / Starship-EVO

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

[New build - EXPERIMENTAL] 21w28a: Docking Port and sub-modules #3991

Open tsunamayo opened 3 years ago

tsunamayo commented 3 years ago

This build introduce the new docking port and a new Docking Controller allowing you to spawn decorative prefabs in a random fashion. Check out the upcoming post to learn more about the new docking philosophy.

Docking New Features

Still to do:

Also new due to popular request:

Bugfixes:

3987 Station Starting block name.

tsunamayo commented 3 years ago

Build is up! Here is a quick vid to explain the new spawn logic for those interested in stations. https://youtu.be/-rSuu6mV4CA I can give the blueprint if Dwarf is okay with that first! I will do a big post soon with all the change on the docking side.

ZachZent commented 3 years ago

I love it! Since you are doing connectors and whatnot, I'd though I'd repost an idea about a year ago that you quite liked. https://github.com/tsunamayo/Starship-EVO/issues/2817

To add, I'd like to see a 30, 45, 60 degree connector rather than only straight connectors. As great as they are, you are kind of limited to square-like stations and any angle requires an annoyingly long time to angle even a basic hallway if it is possible in the first place. That is unless you want to build an entire module on a child entity, but then the union will come out and break your legs. Since a module is a new grid anyway, why not skip the child entity middle man allowing for easier creation of more "rounded" stations. For example something like this where as before you would only be able to do 4 comfortably. image

To add to it, during the station comp we found that all the stations when "generated" had a tendency to be very grid like with large spaces in between them all. You can see it clearly with Dwarf's station already in game. The only exception was a station built by Domovoi where the modules were so close together that it looked solid. It will help vary up the stations as well as give more options in design

Dwarf-LordPangolin commented 3 years ago

Oh wow! Tons of cool stuff here!

I'm fine with the blueprint being shared; I just ask people to bear in mind that it's very much a work in progress, and the current version isn't finished. 😄

Edit: quick question: pressing F on the docking connector (which is awesome, BTW; I need to redesign my ships to fit these!) makes a swooshing noise, but nothing else happens; is it supposed to open?

tsunamayo commented 3 years ago

@Dwarf-LordPangolin Thanks mate! Here we go: Sub-modules.zip That must be a bug, let me check.

@ZachZent yes I agree it is very square-y. Not too deal breaker from my side, but I agree if we could try to make something like you suggested also for further design that would be very cool.

Why using a child entity bother you? Child entity impact has been massively reduced now, it is not 0 but pretty close to it (I still want to fight decorative child creep though). So no impact from a performance side should you guys want to try this. Maybe it is to have a perfectly aligned docked entity?

This is something I want to tackle at one point anyway. As you know I want us to get to the point where the torus would be made of brick entities. I dont want a single piece as that would not work, so I wanted to spawn many sections and dock them at a slight angle to make the ring. Maybe a wedged connector with an angle and an offset parameter? But there would be many issues due to seams on the hull... That could be a case for allowing clipping. Ah clipping, our old friend... Or what about an accordion type of corridor or brick that self adjust between the entity? On paper that would use the same tech as my yet to be redone soft piping (spline interpolation inside the vertex shader)

Also one thing we really need is some continuous circular motion. As the collisions has been dramatically improved I feel quite confident to put that in the game now...

timethatswasted commented 3 years ago

But there would be many issues due to seams on the hull... That could be a case for allowing clipping. Ah clipping, our old friend...

Just let it happen. You will make a lot of people happy.

I would think at this point it’s more memory intensive to calculate collisions to stop clipping and have people adding layers of slabs, 1/8 blocks and child entities to cover up the seam…. then it is to just allow clipping and find a work around to any exploits.

also it’s just sexy.

ZachZent commented 3 years ago

Why using a child entity bother you? Child entity impact has been massively reduced now, it is not 0 but pretty close to it (I still want to fight decorative child creep though). So no impact from a performance side should you guys want to try this.

Most of it is old thinking really and there is nothing stopping me from using CEs. Part of it though is from experience trying to make shapes using hinges or rotators. I've found that without extensive preplanning, using CEs as is rather imprecise. A hinge or rotator at the vertices of the shape will often leave an odd gap impossible to completely fill with bricks. Even with the 1/8 we have now, the only way I was able to do that on the fly is have two sliders under the hinge or rotator to put it into the right place which required a lot of trial and error. You can have a rotator at the very center of a shape which is more reliable and is easier to preplan, but then you have a number of rotators in the center and have to do something about them. The connector idea I had could be 100% configurable like a hinge rather then a preset 30, 45, and 60 or something like the accordion which sounds a bit like the old hose tech (which totally should make a come back). At this point, those individually would be the easiest to work with


As for the torus being made of individual blocks, I'm still unconvinced. Having the torus be made of so many connected segments will mean that it will end up being ultimately geometric rather then the smooth shape it is. It sounds like the torus would be more similar to a StarMade geometric "planet" then an entity of its own. Then there is having to consider how the land works since I hope/expect that terrain generation/destruction will not work on the same principles as building with blocks. Always got the impression you are going for NMS and other games which I can't think so right now smooth but chunk manipulable terrain. Needing to work that into a 100% custom geometric torus sounds quite tough and even more so if players want to build their own. Especially since the point of the torus is to be a test bed for future planets.

Personally I'd rather have the torus continue to be its own special entity. Perhaps composed of baked in breakable blocks/segments rather then block-built in. That way different "torus" generations can be added without needing to build an entire 21km torus then manually place the terrain inside. Two rings intersecting perpendicularly or an oval or a super wide o'neill cylinder. things like that which will liven up the place.

tsunamayo commented 3 years ago

@timethatswasted no I dont think it is sexy, I think clipping look like crap. Especially when people dont care and leave z-figthing surfaces everywhere. I dont get why people try so hard to make smooth surface when it never look as good as a more angular one. And there is some gameplay consideration behind, so sorry that train left...

@ZachZent I dont like the current torus because:

Kaiser-Indrasil commented 3 years ago

I dont get why people try so hard to make smooth surface when it never look as good as a more angular one.

@tsunamayo I beg to differ. Just look at how godlike Ulty's stuff is:

image

ZachZent commented 3 years ago

Fair enough. A benefit with a completely custom ring would be an internal structure inside the ring a la forerunners from halo. Either in this post or a separate discussion, why don't you share your idea for terrain as it seems to have deviated from the expected.

Though to shift back to the original purpose, I'm not sure if variable degree connectors would be the best option in general. For the future ring it is the best option rather then using hinges. Much less work on the builder's part and allows variability like station generations. However there is the issue with filling in the gaps between connected areas. Only some angles would be able to be completely filled in without clipping or gaps and besides the 30, 45, 60, the effort would be quite large if you need to fill in the gaps with 1/8 blocks on 21km ring would be extreme. image Quick and dirty image of a 30 degree connector. With this it is easy to fill in the gaps since it is just 30 degrees, the blocks stretches out to fill it in well both on the open and closed side. But imagine an 18 degree connector which would make a 20 sided polygon. Much tougher if you want to avoid gaps and clipping. I'm not sure of the answer truthfully as hinges/rotators have the same problem, but a way to allow the connection of angled entities will greatly enhance the stations and the future ring.

Garrett-C commented 3 years ago

Fair enough. A benefit with a completely custom ring would be an internal structure inside the ring a la forerunners from halo. Either in this post or a separate discussion, why don't you share your idea for terrain as it seems to have deviated from the expected.

Though to shift back to the original purpose, I'm not sure if variable degree connectors would be the best option in general. For the future ring it is the best option rather then using hinges. Much less work on the builder's part and allows variability like station generations. However there is the issue with filling in the gaps between connected areas. Only some angles would be able to be completely filled in without clipping or gaps and besides the 30, 45, 60, the effort would be quite large if you need to fill in the gaps with 1/8 blocks on 21km ring would be extreme. image Quick and dirty image of a 30 degree connector. With this it is easy to fill in the gaps since it is just 30 degrees, the blocks stretches out to fill it in well both on the open and closed side. But imagine an 18 degree connector which would make a 20 sided polygon. Much tougher if you want to avoid gaps and clipping. I'm not sure of the answer truthfully as hinges/rotators have the same problem, but a way to allow the connection of angled entities will greatly enhance the stations and the future ring.

Not sure what you mean about angles other than those 3 you listed being difficult. Any ratio of whole numbers between 1:1 and 1:16 would be easily doable with out clipping. So an adjustable angle on a docking tube would make sense to accommodate that.

ZachZent commented 3 years ago

Not sure what you mean about angles other than those 3 you listed being difficult. Any ratio of whole numbers between 1:1 and 1:16 would be easily doable with out clipping. So an adjustable angle on a docking tube would make sense to accommodate that.

Good point, I was more thinking if you were to choose the exact angle like you would on a hinge. image For example this 100 sided polygon would require center rotator increments of 3.6 degrees of exterior hinge/connector angles of 176.4 degrees. Filling in the gaps on the outside and slimming in the connected parts on the inside if the build goes further in from the connected point may not be possible using only stretched blocks without leaving a gap or clipping (though I have not done the math to 100% prove)

I'd expect the custom torus to have many more sides as to at least keep the general appearance of smoothness. even if not a perfect circle. Maybe if connector angle increments you can select are limited to what can be filled in using stretched blocks to the max stretch of 1x16 displayed with the number of sides you will get, that will be functional enough for players to make these many sided polygons knowing that the gaps can be filled in. image

Uncle-Ulty commented 3 years ago

I dont get why people try so hard to make smooth surface when it never look as good as a more angular one.

Ouch! direct critical hit!

I beg to differ. Just look at how godlike Ulty's stuff is:

thanks <3. (Every time I see this ship I get annoyed about some minor details that should be improved)

about torus stations, I don't see any angle that allows smooth surfaces. maybe a combination of 2 or more angles would work, but It would make everything harder to make... I think the cosmetic solution is an outer or inner plate to fill de gaps...

a 1:16 wedge would work for Zach sample of a 100 sided polygon, since the 1:16 angle is 3,58°. It still would remain a small gap of 0,02º per section, but it would be visually negligible.

All the possible wedge angles of bricks proportions allowed in this game:

image

ZachZent commented 3 years ago

For future reference, I expanded on Ulty's graph including the more specific angles and the accompanying external angle. image

tsunamayo commented 3 years ago

@Uncle-Ulty @ZachZent @Garrett-C Haha indeed you guys are amazing. Yes we could make those neat angle, I wonder if it is too complex or not at the end. Indeed what I would do is a skirt to cover the seam. I will implement a recursive spawn algo so we can start toying with that.

Garrett-C commented 3 years ago

Sounds like you have some neat ideas for them. Very excited.

timethatswasted commented 3 years ago

Hmm can we also get a “skirt” to cover the seems of child entities for ships and stations? I’ve been using pipes since they clip through blocks to fill the gaps. A square or wedge shaped pipe would be nice….