tsunamayo / Starship-EVO

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

[New build - DEFAULT] 23w41a: Oxygen Life Support, Air-tightness, Force fields #5302

Open tsunamayo opened 10 months ago

tsunamayo commented 10 months ago

This build introduce a capital element of survival: oxygen.

Player changes:

Life Support blocks

The life Support system will pressurize the room it is placed inside. There is a nice screen displaying the status and even a rotating fan with some cool VFX! The algoritm works like in real life: a few oxygen molecules are emitted and will bounce around to find the volume pressurized. If a molecule ends up outside the ship bounds a leak is declared and pressurization is not achieved. The downside is that the volume is a box, ie a L shaped room will potentially give oxygen to a volume outside. You can check how it is working by selecting a Life Support brick with the link tool (molecules travel more slowly in preview mode). It worked well on the ship I tested, and it will react automatically to any new blocks or moving door / mechanism triggered. The tank reserve allows for a long uptime (2 hours) before a replenish is needed. Tank replenish either manually (not recommended for large ships), or automatically inside an atmosphere or near a station (it is magic). As it would be too tedious to have to pipe them, they cannot be connected to pipes at all. Again an option has been added inside the Entity screen to provide Oxygen ship-wide for creative or older ships.

Force-Field

The force field will project a wall preventing oxygen from leaking, but allowing player or ship to cross it. Perfect for hangars! The brick will raycast at the two extremity to determinate the height of the field. It comes in standard and wedge variant.

As a bonus two creative new features have been added:

Other changes:

Still to do:

ZachZent commented 10 months ago

Been curious how this would go down and I love the idea. A question. How many of the vent blocks do you need per ship/volume? I can't imagine on a 1km long cargo ship you would only need one, right?

The tank reserve allows for a long uptime (2 hours) before a replenish is needed. Tank replenish either manually (not recommended for large ships), or automatically inside an atmosphere or near a station (it is magic).

I like the idea of absorbing o2 from the atmosphere and not needing to pipe up. However one part that may have been overlooked, stations. They wouldn't be going into atmo so the vent would need to be refilled manually. And if the station is very large... A suggestion, a "control unit" block. Something that can be linked to the vents for refills from one source. Perhaps that can be piped into for automation.

Asnro commented 10 months ago

I love the "bouncing molecule" interpretation of airtightness, it should allow child entities to be airtight, right? This would be great news for players who build with lots of child entities!

However, a concern: if the life support block can't be piped into, what's the point of oxygen tanks and pipes? Can/could the life support blocks draw oxygen from tanks on the same entity, even if piping isn't allowed?

tsunamayo commented 10 months ago

Yeah maybe indeed for player station a magic connection to an oxygen tank would be needed. I will see what I can do. Yes this works great with children entity, the only downside is the box (as I am not longer using voxels...)

@ZachZent so one life support can "support" a 25000m3 volume, so the large hangar from SURGE on the tutorial needs two. Cheers

AlienXtream commented 10 months ago

i was wondering. these particles. how many of them are there and could you, say, detect when a player hits/overlaps a particle relatively cheeply? if so, perhaps you could actually have a little timer on the player that gets reset when the player hits one of these particles. a "breath timer" if you like. actually, you wouldn't even need that. just have the players approximate head position do a simple check for particles in a small area around it every second or so. if none are detected for 30s the player is either not in an atmo or there isn't enough air in there anyway. i am not sure what you mean about piping? do you mean to refill the players air or for the vent to work? im a little unclear on that. i assume you mean that logistics pipes can not be connected but that the link tool can connect a vent to a tank?

ProPeach commented 10 months ago

Oh wow, what an awesome surprise! Very impressive that it works with child entities, most other games seem to struggle with that (I suppose because they are using voxels?) The visual of the particles is very cool too.

Huge thanks for the return of the gas VFX panel!! I've missed it a lot lol

I haven't had a chance to test it yet, but do you think the airtightness will work with planet/asteroid terrain? Say if you built an underground base on a moon or asteroid and had one wall as exposed rock, would you be able to pressurise that room? If not we can always cheat a little and hide some hull in the ground I suppose lol

TIKIRobo commented 10 months ago

just going to start a short list of some of the issues ive encountered to start tho id like to say holy shit the steam vents are amazing thank you so much lol also quick question about the vent's sound effect, do you think we could have the option to change it to be more of a hissing sound like in classic star wars when whatever ship lands and steam shoots out with a hiss?

first issue: force fields seem to encounter so sort of issue with the hitboxes of curved blocks (sometimes)

https://github.com/tsunamayo/Starship-EVO/assets/56371294/fe99d792-0f30-4155-b324-f46e582cf231

second: the game thinks this is okay because the life support block only shot particles up and forward, not side to side

Starship EVO 10_13_2023 7_47_42 AM

third: fan blades are invisible from one side Starship EVO 10_13_2023 7_53_00 AM

fourth: Stretched vents only emit particles from one corner, effect should scale with the size of the vent (please keep vents being able to stretch) image

one last issue/suggestion fan blocks should be "invisible" to the o2 particles, currently if the fan and life support are touching then o2 particles can pass through which is good, but if there is even one block between them it doesn't work anymore, vents could also extend the range of the o2 field?

Briaireous commented 10 months ago

@tsunamayo it appears that the prefab glass canopies leak regardless of how it is built.

the sloped one works fine. Starship EVO 10_13_2023 11_22_52 AM

the flat one, not so much even if it is on the main body Starship EVO 10_13_2023 11_20_58 AM Starship EVO 10_13_2023 11_20_47 AM Starship EVO 10_13_2023 11_20_52 AM

Briaireous commented 10 months ago

Starship EVO 10_13_2023 11_02_17 AM Starship EVO 10_13_2023 11_15_39 AM Starship EVO 10_13_2023 11_15_22 AM Starship EVO 10_13_2023 11_15_13 AM Starship EVO 10_13_2023 11_14_59 AM Starship EVO 10_13_2023 11_14_37 AM Starship EVO 10_13_2023 11_14_23 AM Starship EVO 10_13_2023 11_14_11 AM Starship EVO 10_13_2023 11_13_38 AM Starship EVO 10_13_2023 11_13_24 AM Starship EVO 10_13_2023 11_12_54 AM

ProPeach commented 10 months ago

also quick question about the vent's sound effect, do you think we could have the option to change it to be more of a hissing sound like in classic star wars when whatever ship lands and steam shoots out with a hiss?

100% support this! :D A good pshhhhhhhhh of escaping air would be perfect for a the default sfx, you could use the original Skywanderers effect if you still have it hanging around your hard drive lol

ultrak2k commented 10 months ago

Hmm, I'm unsure on air refilling being just magic instead of having a pipe system, especially since there might be situations where you have a large ship that needs an air refill but has to get it from not either a station or a planet that has oxygen in it's atmosphere, at least having the option to pipe up oxygen would be nice. I'm unsure how oxygen would work on stations as in, how would they get refilled? Would ships need to resupply them from atmospheres automatically? That would be quite interesting, though surely docking ports and pipes would be very fitting for that type of thing too.

Pawnp commented 10 months ago

Is there any progress with the suggestion on disabling the ship rename and 30 minute reminder? https://github.com/tsunamayo/Starship-EVO/issues/5197