Luke100000 / ImmersiveAircraft

Various vanilla-friendly aircraft to explore the world at a higher pace.
https://modrinth.com/mod/immersive-aircraft
GNU General Public License v3.0
40 stars 26 forks source link

Feature Request: Wear and tear #144

Open GrahamJenkins opened 4 months ago

GrahamJenkins commented 4 months ago

Aircraft durability is IMO an underused mechanic. In my limited experience you take off, get above any dangers, and as long as you have fuel can fly for an hour or more. If you do take some minor damage it's also a very easy, couple of clicks to repair when you're on the ground.

Suggestion:

  1. While in the air, make aircraft decay a configurable amount of durability. Maybe this results in a max flight time of 15 minutes before you must land and repair your aircraft. If you run out of durability it could just kill the engine and force you to land rather than explode.
  2. Repairing could/should cost something. Another mod (small ships) requires iron nuggets and planks to repair. Something relatively cheap and able to be stocked up on would be ideal. Nothing expensive or difficult, but just enough that if you aren't a little careful about how you use your aircraft you'll have to land and scavenge some local resources before getting airborne again.

Just last night I ran out of lava buckets thousands of blocks from my base, so I had to land on a desert island, harvest a bunch of trees, craft furnaces and smelt charcoal to get airborne again. This was a reasonable consequence to me not paying attention to my fuel and led to unplanned, but overall positive gameplay. IMO durability (as a configurable option) would be the same.

As a side note, if a durability mechanic were to be added, it would be easy to add another upgrade (like reinforced hulls) that decreases the rate of durability loss, like an unbreaking enchantment.

Thanks for the consideration!

Luke100000 commented 4 months ago

We decided against 2. to keep mechanics simple. People are already massively confused on what fuel is XD

If you run out of durability it could just kill the engine and force you to land

This sounds very familiar with fuel in general imo, not sure if another, third mechanic is really needed here.

if a durability mechanic were to be added, it would be easy to add another upgrade (like reinforced hulls)

There already is reinforced hulls :)

ItoKyoshiro commented 4 months ago

Also loving this mod!! I would second 1 for some Durability Decay (or Cost). If it could be tied to Wind/Weather (saw this values under the config but haven't manage to understand them yet) would be even better for having a more immersive experience, like having to land and repair while in a thunderstorm :P If it too cumbersome (and not so hard to code) maybe have some value like -1 for no Decay as default and then the option to add a custom value based on ticks/seconds via config. As for 2, I would like it with a config option where I could add custom items with specific repairSpeed, kinda similar how it's done with fuelList or Ammunitions (so personally I would add the Hulls as the material cost to repair with high efficiency or Iron Ingots with low one :D) and the default would just be blank without modifying how's working right now

Max7238 commented 3 months ago

I'm really disappointed to see this was added. It's an annoyance at best. Fuel already existed as a reason to land, not to mention landing to check out points of interest. Adding an extra, "You can't get in until you hold right-click for a while," has already gotten someone killed in my server; not to mention how it affects the ability to pick up aircraft. It can be argued that making aircraft harder to break is nice, so getting shot at in an cargo airship is less consistently a fall to the floor among all the spoils - but the benefits to gameplay outweigh the detriments. It's an extra mechanic that takes away from the fun and ease-of-use instead of adding to it, which, in any game, is a sign that it is at best unnecessary and at worst should be immediately removed...

Luke100000 commented 3 months ago

It wasn't added tho, what you experienced is damage. As long as you don't crash, the vehicle won't take damage.

not to mention how it affects the ability to pick up aircraft

That's the point, aircraft became somewhat of a temporary pocket-item. I would like players to keep the aircraft around, rather than picking up like an item. Unlike minecarts its not even restricted to rails.

If it helps you I can add configurable regeneration, which is pretty much how the old system worked.

Chris6ix commented 1 month ago

The damage mechanic is kinda useless right now, as it is VERY forgiving and really doesn't punish players for flying bad. You can literally nose dive the plane multiple times, click it a couple of times, and it's like nothing ever happened. It is like @Max7238 said, just an annoyance, without any challenge/fun behind it. The only "punishment" for crashing is being forced to hold right click for a few seconds.

I really like @GrahamJenkins 2nd idea as it has the potential to fix the damage system and turn it into something a bit challenging/fun. If you (@Luke100000) believe that that would confuse some players, then you could add it behind a config option? This could be split into 2 settings:

  1. repairCost, which would default to false to keep it simple for "normal" players (so would keep the current system), but when set to true would enable the repair cost system.
  2. repairCostList, which would be a simple list like the fuelList, where you could define items and the amount of hp they repair. Examples would be "minecraft:iron_nugget": 2, which would heal the plane by 2 hp when using an iron nugget on it and "minecraft:iron_ingot": 18, which would heal the plane by 18 hp when using an iron ingot on it

I like this idea of yours:

I would like players to keep the aircraft around, rather than picking up like an item.

But if you really want to make that a thing, then you have to actually prevent players from breaking it and picking it up. Making it so that if a plane reaches 0hp (Either by crashing or by it getting hit when you try to break it), the plane just despawns (Just dropping its inventory, but not the plane as an item). That would achieve your goal and would indeed make the mod a lot more interesting.

That combined with a nice repair system like I explained above would honestly give the mod quite the upgrade and would IMO turn the currently quite bad damage system into something enjoyable. Tell me what you think of this :)

Chris6ix commented 1 month ago

Maybe an additional setting called enableDamage could be added to address @Max7238 complain. That setting would, when set to false, just disable the damage system and make it impossible for planes to receive damage. That would allow players that do not want this mechanic at all to still enjoy the mod.

Max7238 commented 4 weeks ago

All I will say to @Luke100000 's reply is this:

Forcing an "intended" behavior on players instead of working with how players are interacting with your mechanics / systems is punishing and nonsensical. Instead of trying to force people to play how YOU want them to, look at how people ARE playing, and work with that. If people are using them like items you pick up and put down, ya know... Like BOATS... Consider that behavior for the Gyrodyne. It costs a lot of food (before this damage thing). That was fair. Wanting some of the more complex ones to stick around, I get that. EEspecially when they have huge storage space.

Just not the Gyrodyne.

Luke100000 commented 4 weeks ago

Instead of trying to force people to play how YOU want them to

Damage, or health in general, was one of the most requested things. It is not my idea to begin with (and thats why it wasnt a thing initially).

It costs a lot of food (before this damage thing).

Food mechanics did not change.

Wanting some of the more complex ones to stick around, I get that.

Only affecting some would introduce inconsistent behavior.

You will get the regeneration flag (or "vanilla-mechanicsa-flag"), whether or not this is enabled by default depends on how I can improve damage mechanics. I personally do not want to introduce items. People are already heavily confused by what fuel to use. @Chris6ix any ideas on how to explain repairing? Right now its shown automatically as its part of right click, which however would not be possible of repairing becomes optional.

Chris6ix commented 4 weeks ago

People are already heavily confused by what fuel to use.

Really? If that's the case, then you could add an explanation of fuels to the mods page and wiki.

@Chris6ix any ideas on how to explain repairing? Right now its shown automatically as its part of right click, which however would not be possible of repairing becomes optional.

You could also explain the repair feature on the mod page and wiki. You could add a small, red warning message (Something like "Low durability, consider repairing") and some fire/smoke particles coming from the plane when it's low hp (below 20%), but I really don't think more is necessary. This really isn't that complicated of a mod, so I don't think that you have to babyproof it.

Basically, the main thing you could do is improve documentation imo.

Max7238 commented 2 weeks ago

Only affecting some would introduce inconsistent behavior.

This is contradictory; the Gyrodyne is already different from the others in that it does not use fuel, it consumes saturation and food. Therefore it is already inconsistent with how all other aircraft work in the pack. Being an airborne boat, especially in mod-packs that introduce enormous numbers of biomes or only spawn things rarely so covering huge distances becomes a requirement, really that's all it needs to be in those cases.

I can sort of see the logic behind it if this is the only mod being used, but I've never been in an environment where that was the case. Even still, if the durability mechanic was hotly requested, the way it's implemented now works perfectly for all other aircraft so... Win some, lose some, I s'pose.

GrahamJenkins commented 2 weeks ago

@Luke100000 Per your original response, as well as other feedback in this thread, perhaps it would make sense to add a (server) configuration variable that affects how much/if hunger affects flight. I see that the hunger line was added 10 months ago, but don't believe I've ever seen the "too hungry to fly" message. But I'm sure it's well thought out. I skimmed through the related code and if I read correctly, when the player is too low on food it's the same as running out of fuel for other aircraft. Assuming I don't have a too outdated version installed, it would make sense to be able to configure (in my case increase) the exhaustion rate by overriding the static 0.025f rate.

Regarding people being confused about fuel, the simplest solution that comes to mind is adding a little tooltip when hovering over the fuel slot listing what is accepted. IMHO it should be intuitive enough to most people, my 6 year old kid was able to figure out what to do with a couple of pieces of charcoal within minutes of being surprised with their first airship. (aside, their eyes made the biggest WOW I've seen in a while, thanks for that)

Re adding a repair item, I can understand the hesitation to add another item that feels like fuel. While I may not agree 100%, I can definitely respect the perspective. Balance is hard and you've done a pretty good job overall!

@Max7238 I don't know you but am sure you're a lovely person. I'm sure you don't intend it, but if you review your comments in this thread you might notice that they come across as somewhat critical or even condescending. I'd like to respectfully remind you that this is an open source project, Luke has donated countless hours building a very cool mod that we all enjoy, free of charge. Constructive, diverse opinions provide useful feedback that can help a project appeal to more people. Negativity on the other hand is a major factor in why many open source developers have left the space/abandoned projects. I appreciate the feedback on my suggestion/request and hope you have a great day.