Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP]Hot air balloons #37935

Closed
wants to merge 19 commits into from
Closed

[WIP]Hot air balloons #37935

wants to merge 19 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Feb 11, 2020

Summary

SUMMARY: Features "Hot air balloons"

Purpose of change

This relies on #33829
And therefore has the same changes from it.

Adds flyable hot air balloons

Describe the solution

Purely craftable, not found in the world ( though i suppose a rare map extra for a crashed balloon might make sense )

Craft a balloon from synthetic fabric, a lot of it ( where do you get all that synthetic fabric from? I dunno, might be hard! )

Craft a simple burner to expel hot air.

Attach the balloon to a boardable frame/aisle/seat ( only 1 balloon per vehicle, so far )

A calculation is done for the lift of the balloon, depending on air pressure, humidity, temperature and so on, if it can lift more than it weighs, then it can fly, in much the same way that bricks don't

You operate the controls and set a desired z-level altitude, after some time ( and some burner fuel being used ) it will climb or fall to that z-level.

It will also be pushed along by the wind - unattended by the player, so the player can sit and read a book whilst drifting across the world.

If the envelope gets damaged, its lift decreases.

Describe alternatives you've considered

Theres some kludges here ( you wont be shocked to hear that on my PRs )
The burner can't be an engine, I tried, but engines are assumed to do so many things that a burner dosnt, that it was just too weird to fit that square peg into that round hole, so it consumes burner fuel manually, when operated via the vehicle use menu.

Landing is nice and easy, when in reality it could be rougher.

A balloon envelope is not an easy thing to move around, but we dont have multi-tile items or vehicle parts yet , so it is what it is.

Currently, if the lift is just below enough for its weight, then it stops being able to fly and drops much the same way that bricks do, in reality climb rate and descent rate would be gradual or fast depending on how far over or under its required lift it is, I can look into this later.

Lots of other little stuff, polishing, interactions with othre vehicle mechanics, and a thousand and one oddities ill need to look into, as per the helicopter stuff.

Also, like helicopters, its slow, performance-wise, so yaknow, probably wouldnt be much good as a mobile base.

Testing

Lots of flying around and climbing and falling and jumping out of moving balloons, and then spawning a stepladder and climbing back up onto it, and shooting my own balloon while flying, reading a comic book in a strong gale at z-level 10 etc .

Additional context

Gif of flying about.
https://gfycat.com/verifiablewaterygosling

Gif of after I jumped out of it, and you can see it sshadow moving across the ground as it flies away from me :(

https://gfycat.com/idealrectangularkinglet

@RarkGrames
Copy link
Contributor

What is the idea behind dropping the Blackhawk spawn chance from 33% to 5% in military bases?

Also, as an idea, air drop crates could come with a parachute that can be salvaged to get fabric for crafting the balloons.

@ghost
Copy link
Author

ghost commented Feb 12, 2020

What is the idea behind dropping the Blackhawk spawn chance from 33% to 5% in military bases?

Also, as an idea, air drop crates could come with a parachute that can be salvaged to get fabric for crafting the balloons.

The military base had a 33% chance to spawn blackhawk wrecks, but in the helicopter PR there are now multiple versions of wrecks, some mostly intact and with working rotors, so the military base was an ideal spot to have a low chance to get a working military helicopter.

33% chance to spawn a mostly useless wreck is one thing, and that was the case before.

but 33% chance to spawn something very useful, now, is too high.

@RarkGrames
Copy link
Contributor

That entry was a placeholder for a working helicopter. I would imagine that a military base would be a prime candidate for salvaging working helicopters. If it is about balance, then it may be worth considering having a chance for spawning a wreck or a working helicopter instead of having a 5% chance of having anything on the helipad at all.

@ghost
Copy link
Author

ghost commented Feb 12, 2020

That entry was a placeholder for a working helicopter. I would imagine that a military base would be a prime candidate for salvaging working helicopters. If it is about balance, then it may be worth considering having a chance for spawning a wreck or a working helicopter instead of having a 5% chance of having anything on the helipad at all.

That entry was a placeholder for a working helicopter. I would imagine that a military base would be a prime candidate for salvaging working helicopters. If it is about balance, then it may be worth considering having a chance for spawning a wreck or a working helicopter instead of having a 5% chance of having anything on the helipad at all.

There are 2,135 Black Hawk helicopters in service throughout the entire US , 800 Apaches.

There are 11,000 civilian helicopters in total in the US, and 6,131 military helicopters in service, in total, in the US.

This is surprisingly low, and would make it very rare for one to appear, let alone mostly intact, in a region of New England. @kevingranade did some calculations on this previously for the helicopter PR, I'll defer to him if he thinks this is too low, but as it stands, I think even a higher chance to spawn wrecks would be pushing it.

@ghost ghost added 0.E Content Freeze <Enhancement / Feature> New features, or enhancements on existing [C++] Changes (can be) made in C++. Previously named `Code` Vehicles Vehicles, parts, mechanics & interactions Z-levels Levels below and above ground. labels Feb 12, 2020
@RarkGrames
Copy link
Contributor

That makes sense.

@damien
Copy link
Contributor

damien commented Feb 12, 2020

A thought: Could balloons be used to add buoyancy to boats? I'd imagine they could behave like inefficient sails that add more lift than drag.

@I-am-Erk
Copy link
Member

The amount of lift a balloon would provide to a boat hull would be pretty negligible

@ghost ghost requested review from I-am-Erk and John-Candlebury as code owners March 6, 2020 19:17
@ghost ghost changed the base branch from master to dev March 6, 2020 19:17
@ZhilkinSerg ZhilkinSerg force-pushed the dev branch 2 times, most recently from aa39539 to 9761f13 Compare March 10, 2020 09:21
@ZhilkinSerg ZhilkinSerg force-pushed the dev branch 6 times, most recently from 924f105 to 39e00e3 Compare March 18, 2020 07:00
@ZhilkinSerg ZhilkinSerg force-pushed the dev branch 2 times, most recently from e47b0a8 to ad63e77 Compare April 1, 2020 11:59
@ghost ghost changed the title [WIP]Hot air balloons Hot air balloons Apr 3, 2020
@ghost
Copy link
Author

ghost commented Apr 3, 2020

Rebased, cleaned up, edited how burners work slightly, to make more sense. tested, works.

@damien
Copy link
Contributor

damien commented Apr 3, 2020

Out of scope for this PR, but maybe a feature for later: Once we have ways of adding turbines/rotors to a vehicle, it'd be cool to have some sort of system to determine aerodynamic lift. Such a feature could be accompanied by airplane wings, glider parts, and such. This would hopefully enable construction of working planes and gliders.

@ghost
Copy link
Author

ghost commented Apr 4, 2020

Getting a crash on saving, something to do with the display code.. will investigate.

@ghost
Copy link
Author

ghost commented Apr 4, 2020

Ah it was becuase my testworld had z-levels turned off, helicopters forbid flying with z-levels turned off, but balloons didnt, ive fixed that now.

Its probably possible to get it working somehow with z-levels turned off, in soem weird way, but for the moment it causes crashes, so ive forbidden it.

consider this ready now.

@damien
Copy link
Contributor

damien commented Apr 4, 2020

@davidpwbrown Anything I can do to help test? Very excited to see your work hit experimental. :)

@ghost
Copy link
Author

ghost commented Apr 4, 2020

@davidpwbrown Anything I can do to help test? Very excited to see your work hit experimental. :)

Pull it locally, build, play around with it, report bugs :)

@ghost
Copy link
Author

ghost commented Apr 4, 2020

akshuallyyyy some more bugs just found.

Copy link
Member

@anothersimulacrum anothersimulacrum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some notes:
I seem to be unable to descend to z level 0. Descending from z level 4 to 1 works (and ascending), but descending below z level 1 does not appear to.

When you set a burner to a z level with giving it any fuel, it sinks through the floor.
here's my balloon on z -8

I if I give it fuel, I can then ascend through the floor. While certainly an interesting experience, this doesn't seem very intended.

Setting up and tearing down the envelope could probably use a bit more attention:
In my experience, when not on a groomed field, you almost always use a tarp under the balloon when you're setting it up/taking it down (and even sometimes on a groomed field). I'm not sure how much of this is wanting to keep the balloon clean versus wanting to keep the balloon intact, but it's probably a good idea.
You should require a large open space to set up the balloon.

Inflating the balloon should require some tools.
Generally, inflation is in two stages:
Cold inflation, where you open up the neck of the envelope and blow cold air into it with a fan.
Then hot inflation, where the balloon is full of air, and then you use the burner to warn the arm up, which gets it off the ground and over the balloon. At this point you need something putting weight on the balloon, or it will ascend.

Obviously, hot air balloons existed before powered fans, so there's some way to inflate it without one, but I'm sure it would be very slow.

Set up/teardown times might be a bit short, but I'm not sure how long it takes without multiple people.

Personally, I think that the burner you have here should be called a makeshift burner, and in the future a proper burner could be added with propane, instead these fuels.

bool vehicle::is_burner_fuel( itype_id fuel ) const
{
if( fuel == "gasoline" || fuel == "diesel" || fuel == "lamp_oil" || fuel == "jp8" ||
fuel == "motor_oil" || fuel == "avgas" ) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be in JSON.

…d generalising those functions and removing misbehaving altitude clamp
@ghost
Copy link
Author

ghost commented Apr 5, 2020

The ascending/descending stuff is fixed, will look into the setup/jsonisation next.

@ghost ghost changed the title Hot air balloons [WIP]Hot air balloons Apr 5, 2020
@ZhilkinSerg
Copy link
Contributor

Feel free to reopen when you come back.

@Maleclypse
Copy link
Member

@I-am-Erk I can't add this to the "PRs we want Project", but I think this would go there?

@Consoleable
Copy link
Contributor

How can I support this? I know C++ and am familiar with the jsons

@Night-Pryanik
Copy link
Contributor

Just open a new PR and copy the code from here (preserving the authorship).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C++] Changes (can be) made in C++. Previously named `Code` <Enhancement / Feature> New features, or enhancements on existing Vehicles Vehicles, parts, mechanics & interactions Z-levels Levels below and above ground.
Projects
Status: Abandoned PRs with no one to pick them up
Development

Successfully merging this pull request may close these issues.

9 participants