CleverRaven / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world.
http://cataclysmdda.org
Other
10.65k stars 4.18k forks source link

Weight Limits for wheels, brainstorming/discussion #53174

Closed anoobindisguise closed 2 years ago

anoobindisguise commented 2 years ago

Is your feature request related to a problem? Please describe.

As part of my unfinished PR #53005 Erk suggested that wheels were given a maximum weight limit, to prevent for example a 200kg mutant from riding around on their 6000hp unicycle/shopping cart. Wheels and hub-assemblies would take damage when trying to move while too overloaded. This is a tentative attempt to find weight limits for each wheel type - this might not be 100% accurate because fail points are typically places other than the wheels but modeling damage to wheels is the easiest approach initially.

Wheels are also wanted to become "mired" in difficult off-road terrain. Examples could include shallow water, dirt, sand. I don't know what point would be best for that.

Solution you would like.

Here is my contribution to the discourse. This is a mix of real world and in game weighting to try and get a model for the weight limits of wheels.

1-TILE WHEELS Tricycle Wheels - these are for children's tricycles. An adult tricycle would use bike wheels. Weight limit source. Suggested: 55 KG limit.

Unicycle Wheel - Source Suggested: 100 kg limit.

Casters: Source. Suggest: 400 kg. Very susceptible to miring, awful on anything that isn't pavement.

"Wheels" (4 10-inch wheels) - These are used for hospital beds, ice cream carts, etc. While they are they same wheels needed to hold up a forklift they would have less weight capacity due to smaller axles. In game examples, ice cream cart is 24.5 KG but these wheels could likely handle much more. source (cata ice cream cart is mysteriously really light). Suggest 500kg, better off roading than casters too.

LIGHT MOUNT WHEELS Bike Wheel Source - 75-100 kg per wheel.

Motorcycle: Source - Assume a GVWR of about 550 kg. 275 per wheel.

10" Wheel: These suffer a discrepancy that they are both used for a scooter and a forklift, two very different vehicle types. Scooter ref. Cata scooters are heavy at 60 kg, so set it to about 100 kg/wheel? However a forklift can lift thousands of pounds and it is supported by only 4 of these wheels. Further these are the same wheels that by a set of 4. I don't know how to resolve this other than making axle-distributed weight count for more.

Cart Wheels: source here we see a small wagon that carries 2500 lbs of cargo (so about 700 kg per axle) or a heavy duty wagon that carries 12000 lbs of cargo (3000 kg per axle).

MEDIUM MOUNT WHEELS 17" Wheel - source minivans are about the highest-payload vehicles that use 17" wheels cata has. So going off this I'm going to put about 1500kg per axle.

24" wheel - the heaviest vehicle compared to number of wheels we use with this is the flatbed truck, 3580kg with only 4 wheels. I'm using a 4-wheeler, flatbed tow truck as a comparison as it is similar to what we have in game - source. Looks like about 25,000 lb total weight limit, so 6000kg per axle.

Racing Wheel: real world racecars are very light, as low as 500kg but the ones on Cata range from 1000kg-1300kg. I'd give these a load limit of 1000/axle.

HEAVY MOUNT WHEELS

32" wheel - source - max GVWR is about 12,000kg, so that's in total again about 6,000 kg per axle.

OTHER

Roller Drum - I have no clue what to place this at because the cata road roller is unreasonably large compared to any other real life steamroller.

Describe alternatives you have considered.

These values might be too low. It's hard to say if a bike has a 300-lb limit because the frame would get damage or if the wheels would collapse under the weight.

Make weight limit dependent on axle/hub-assembly. Make 24" a Heavy wheel, 6000kg limit per "axle", 1500 for an individual set up as a "bike". Make motorcycle wheels Medium. 1000 kg limit per medium "axle", 250 for an individual set up as a "bike". Light/wooden mount - 500 kg for an "axle", 75 for a "bike" (as examples)

Make weight limit dependent on axle length. say a multiplier of the effectiveness of each wheel equal to the width of the vehicle. So a flatbed truck would have 5x as effective wheels while a forklift would have 2x as effective wheels. However I worry this might encourage an illogical 10-wide vehicle with no supporting wheels inside that carried a ton of weight.

Wagon wheels in particular are a serious problem, wooden wagons carry a ridiculous amount of stuff compared to modern cars. This is why I'm thinking that wheels alone aren't a good measure of total carrying capacity, because I'm seeing a lot of illogical and contradictory numbers in my research.

Honestly I don't know if we can sanely model this at all, but I wanted to put some numbers out just in case and the more I look at it the more I'm thinking it isn't worthwhile to model. Vehicle weight destroying a bridge you drove over or mucking up the road (turning it into off-road "cracked asphalt") would be better penalties. This is well beyond my ability to code unfortunately. I also don't know how we'd handle miring unless we just base it off off-road performance.

Additional context

@I-am-Erk You were interested in this so I thought I would put some info out. I don't expect anything to actually be done with this, but if anyone finds the info useful that would be cool.

PatrikLundell commented 2 years ago

A 100 kg unicycle weight limit would render it useless for many (non mutated) characters. I think a maximum size (2 m) starting character has a normal weight of 100 kg, and that weight is while completely naked (same problem with the in-game ponies, which are too weak to carry normal size/weight characters who are geared up, let alone ones carrying loot).

A problem with the introduction of weight limits is player feedback, as it's very easy to just fill up a vehicle with whatever loot you've collected and then suddenly have your wheels destroyed if there's no warning. Also note that you can fill a vehicle in various ways, such as manually moving things into the vehicle tiles, dropping inventory items, and loading things using the item sorting system. You also tend to end the activity by boarding the vehicle, and I, for one, would not be happy to have all the wheels explode as I do so...

I'm not surprised of you get contradictory numbers, as you probably find safe weights based on the wheels mixed with maximum weight for the wheels, mixed with legal carrying weights for vehicles (which I believe are based more on the braking capabilities of the vehicle than on the physical load bearing capabilities of the wheels). I think that may be a reason why cart wheels get high numbers, as they're probably based on the capability of the wheels rather than the braking capability of the horses (and carts are probably not geared towards moving at 100 km/h either).

Modern car legal load limits are way lower than what the vehicles are able to move, as can be seen in (poor) countries where nobody cares about such things and cars can have rather impressing towers of "stuff" on top of them (as well as in rich countries, where trucks routinely are fined for carrying rather significant overweight loads).

I don't think silly ultra wide vehicles are going to be a problem as they're going to be a pain to move anywhere anyway.

I'm not sure introducing this would add to the game. I'd rather focus on vehicles getting into trouble moving through unsuitable terrain (provided means to rescue them are introduced as well). That, however, should not be done until the game gets a usable road network so you actually have a decent chance to move to your destination on roads only and without such routes (when they exist) making huge detours (not counting lakes, which of course can't be driven across).

Photoloss commented 2 years ago

Rather than theorising on all the possible ways wheels could viably be mounted, how much weight those assemblies can bear, and how to implement both gradual wear and sudden catastrophic failure in a way which is satisfying for both realism and gameplay I think it would be better to prioritise vehicle weight limits based on traction.

Realistically anything from a military ATV to a shopping cart will get stuck in mud, grass, slight bumps, potholes, rubble or even zombie guts long before suffering structural damage from weight alone. The current "offroad" score only distinguishes 3 states I know of ("road", "flat", "other") and it takes forever to stall out the top speed and render the vehicle immobile.

If this system were appended with models for traction/grip and corresponding incidents I wager most cases would succumb to those long before we reach the structural limits. A shopping cart for example gets stuck on a curb or any reasonably large drain if it's too heavy for you to lift the wheels off the ground, the casters themselves are not damaged by this at all. The only common use cases where the combination of traction, wrecks and zombies do not meaningfully hinder vehicles are intercity roads (wrecks too rare) and bikes/carts in building complexes. The latter would rarely if ever be affected by reasonable structural limits either.

And if the OP is purely aimed at endgame custom deathmobiles then I do not see how their proposal would stop players from just mounting a few extra wheels and hauling slightly fewer giant ingots.

Alex-Folts commented 2 years ago

Need suspension.

Usually carry load limited by suspension, when you dont have suspension travel left because of extra weight - suspension dont work, which means it does not dissipate energy when wheel hits bump on road, wheel have no travel upwards and essentially carry all impact energy through the hub, through bearing into housing of the hub and into the car frame, weakest link here is bearing and it will get damaged and eventually fall apart. The higher speed the higher impact.

You can move on flat road even with overloaded vehicle, there is enough redundancy to hold static load, but if you will go offroad or drive over objects lying on the road you will stress suspension a lot and then wheel hub should take damage, eventually it will get destroyed and wheel will falloff.

Need shock absorbers(for suspension) and springs, stiffness of the spring define max load on wheel, shock absorber absorbs impact energy, the more travel it have the more energy it will absorb. Technically system should resolve impact on a wheel as travel of the suspension, the amount of remaining travel is basically how much energy shock absorber can dissipate, and if there is not enough travel - convert leftover energy of the impact(amount which was not absorbed) into damage to the wheel hub. So you will damage hub even if you not fully loaded one of the wheels, for cases of heavy offroad at high speed.

As for feedback to the player about overloading, you can clearly see that your suspension compressed to the maximum, also by how much travel it left you can estimate % of the load, you can see it per wheel assuming vehicle on flat leveled surface, so we can have message in the log about overloading one of the wheels, we can examine each wheel and see rough percentage of how much load it carry. Wheels should not fallout when vehicle static, damage should be applied in motion, so even if you overload it a lot, you have chance to see overload before you start driving, and throw extra junk, if you dont care you potentially will lose wheels while driving, sounds fair.

So suspensionless type vehicles should be very unreliable outside of the good flat road, extra weight will just multiply damage caused by bumps and other stuff you run over.

I-am-Erk commented 2 years ago

We do have the parts for suspension, but I also think a first pass on this could abstract suspension if it is difficult to add. I would run it that a wheel has a maximum weight limit (often fairly low), and suspension vehicle parts in the same tile increase that limit, but a given suspension may only be useful with certain wheel types - so you can't put a humvee suspension on a 4" caster wheel. Adding suspension to every vehicle is a big endeavour notwithstanding the code, so I'm not sure this needs to be done immediately even though it's a cool addition.

Given the presence of the 'vehicle interaction' menu, it should be fairly easy to display wheel load as a percent. We could also have a message when you start the car - "the (vehicle)'s suspension is straining under a heavy load" eg, as well as a message when parts take damage due to strain - "The (vehicle)'s (part) is damaged by the heavy load!" or something.

I agree that miring in soft terrain is a highly desired feature as well. Both of these things are absolutely necessary imo. Remember in the game we deal with, people are building vehicles with no resemblance to real life at the moment, and those vehicles absolutely would have a very high chance of overburdening their suspension and wheels. It's fine if the stats we start with don't mean that players regularly overburden a perfectly functional modern pickup truck, but it would be nice to stop people from driving around a 20x20 superfortress on office chair casters.

Photoloss commented 2 years ago

people are building vehicles with no resemblance to real life at the moment

This is my main concern with adding suspension and why I believe it will be a lot more complex to do properly. A frame with extra weight in a "suspension" component doesn't really do justice to the construction options for mountain bikes and quad bikes, but where and how exactly do we draw the limits for fantasy vehicles making use of those parts? I am fairly certain most modern vehicle designs are dictated by profit optimisation in mass production rather than making the most of any given weight class or footprint. Licence classes are an interesting point for weight optimisation but those will be muddled by other cargo industry standards.

it would be nice to stop people from driving around a 20x20 superfortress on office chair casters

Nothing wrong with that if it's made of aluminium rods and pulled by sails 😝

On a more serious note such designs could be viable for heavy loads but only with careful engineering and on very flat surfaces. Basically the same idea as a nail bed or a roller conveyor: the load is distributed over a lot of individually small and weak wheels, and each individual wheel does not need to move very far to distribute excess load to nearby neighbours.

Of course that would require a large number of caster wheels, can we still run land cruisers on a single set of casters because they're "stable wheels"?

I-am-Erk commented 2 years ago

I'm not sure the current state of very silly vehicles on casters, but regardless the goal winds up similar... Make a unified system that provides a reasonable facsimile of the two major limitations facing such vehicles from an engineering perspective, wheel-road weight and frame/wheel/suspension weight tolerance.

For the first bit: I'm sure that we'll never be able to reasonably capture the amount of options for real suspensions and their effects on weight capacity of vehicles. In general though I think we can get started with a pretty basic set of items covering a nice wide range. We don't need a total simulation here, and it's something that shouldn't actually be a huge issue until you're trying to either build a supertanker fortress from three welded together RVs, or trying to bolt six inch armour plating to a Honda civic and strap two moose to the hood

Alex-Folts commented 2 years ago

As for shopping cart, maybe we should introduce powered/unpowered wheels, means that some wheels engine cant power at all, so you need to install at least one proper wheel which will propel your vehicle, or use alternative ways of propulsion. I mean it make sense that large v8 engine not supposed to power small cart wheels, you can theoretically do it, but will need a lot of hacks.

Or wheel hub should be powered/unpowered, and wheel hub define which wheels it support.

Or maybe add "drive axle" and "drive sprocket" driver parts, it should be installed on top of wheel hub, and wheel which have drive axle installed will be powered by available large engines, wheel which have drive sprocket will be powered by available small engines, if no driver part in same tile with wheel - wheel not powered, some wheel hubs will not support installing driver so their wheel won't be possible to power. It would make sense, if you wanna have motorcycle with v8 engine you will need at least install proper wheel hub, drive axle and 17", 24" or 32" wheel. This will also make possible RWD/FWD/AWD/4x4/6x4/6x6 wheel driven vehicles, which is good addition if in the future will be introduced miring...

I-am-Erk commented 2 years ago

I would eventually like to see drive axles, drivetrains, steering axles, steering columns... Those things require a lot more code, they need vehicle parts to be aware of what's going on in multiple tiles at once.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not \'bump\' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.