Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up[WIP] Vehicle Overhaul Part 1a #23560
Conversation
Isaacssv552
added some commits
Apr 21, 2018
This comment has been minimized.
This comment has been minimized.
|
Just a friendly reminder: please keep your PRs as small as possible. Of course, each PR should implement working changes, but doing a single huge PR with a lot of changes is incorrect. |
ZhilkinSerg
requested review from
kevingranade
and removed request for
kevingranade
Apr 21, 2018
This comment has been minimized.
This comment has been minimized.
|
@illikun this is only for 1a. It’s still a bit large so I’ll be trying to pare back the changes to a minimum. The part list is just there to provoke discussion and make it easier for reviewers to determine if I’m in danger of putting too much into a single PR. |
This comment has been minimized.
This comment has been minimized.
|
Shell scripts probably shoud go separately from vehicle overhaul PR. |
Isaacssv552
added some commits
Apr 21, 2018
This comment has been minimized.
This comment has been minimized.
|
@AMurkin They've been moved to another pr. |
This comment has been minimized.
This comment has been minimized.
|
I've updated markup a little. Couldn't look into unformatted text. |
This comment has been minimized.
This comment has been minimized.
|
I suggest putting out any drastic vehicle changes post |
Isaacssv552
added some commits
Apr 21, 2018
This comment has been minimized.
This comment has been minimized.
|
The lines of code I've needed to write to make this work properly has rapidly grown out of control, so I'll probably have to split off as many subcomponents as possible into new PRs. |
Isaacssv552
added some commits
Apr 23, 2018
Isaacssv552
added some commits
Apr 23, 2018
This comment has been minimized.
This comment has been minimized.
|
The only places to split this I can see with a brief read: Context for the request to split, sometimes you can only make things so small. If splitting your code further is harder than writing it in the first place, yea call it quits and we'll deal with a big PR. That doesn't change the fact that reviewing will be slow, which is frustrating for everyone. Direct feedback: |
Isaacssv552
added some commits
Apr 24, 2018
Isaacssv552
referenced this pull request
Apr 24, 2018
Closed
[CR] Floating point velocity and new properties. #23602
This comment has been minimized.
This comment has been minimized.
tyrael93
commented
May 6, 2018
•
|
Hey can you fix the ancient "zombies quantum tunneling through vehicles" bug while you're at it |
This comment has been minimized.
This comment has been minimized.
|
This is a really good PR, and it will fix a lot of issues! Too bad I won't be able to make a bus with 4 V12s anymore... |
This comment has been minimized.
This comment has been minimized.
thethunderhawk
commented
May 15, 2018
|
@tyrael93 |
This comment has been minimized.
This comment has been minimized.
|
No progress and craptons of conflicts, closing. |
Isaacssv552 commentedApr 21, 2018
•
edited
Vehicles are currently a bit of a hot mess. There is precious little room for JSON customization and many of the hardcoded formulas are arbitrary, nonsensical, or both. Balance is sketchy at best, with V12 bicycles gaining a measure of notoriety. Despite these flaws, vehicles are immensely popular. Seemingly everyone not deliberating looking for a challenge attempts to build a Deathmobile.
Previous attempts to resolve these flaws have encountered a number of problems. Complex and obaque rpm and gearing restrictions proved an inadequate solution to overinflated maximum velocities. In addition, many features such as collisions and multiple engines were removed or broken. These difficulties are non-trivial and must be given due considered lest future projects rediscover them independently.
That said, I believe I can make some progress on the vehicle problem. I've already made good progress on part 1a and I have made an effort to separate features into discrete sections in hopes of controlling PR size. That said, this is very much still WIP. In particular, I need to decrease the size of this PR and tune parameters to avoid disrupting balance. My goal is not to rebalance vehicles but to improve the infrastructure upon which a good rebalancing might be built.
Current PR (1a) Progress:
Part 1: Dynamics and Combustion Engines
Combustion engines have very little JSON customizability and 'just work' via a mass of haphazard formulas. Simply improving the absolute basics of the system will have huge benefits. For instance, traction provides a means to limit the utility of large engines on small vehicles while drag can be tuned to prevent excessive maximum velocities.
Part 1a:
Terrain based traction and rolling resistance. Placeholder drag. Improved engine power and acceleration formulas. Physics based formulas where practical. JSON specification of Engine efficiency, Wheel traction and rolling resistance, and Terrain sinkage.
Part 1b:
Improvements which can be independently developed from the base established by 1a.
Part 1b-I:
Improved collisions. (#23000, #20017, #23578)
Part 1b-II
Improved drag.
Part 1b-III
Decibel based noise system. (Lower noise for higher cylinder count.)
Part 1b-IV
Improved smoke system.
Part 1b-V
Improved handling system.
Part 1c:
Improved readability and styling of vehicle.cpp.
Part 1d:
Part 1d-I
#23123
Part 1d-II
#20520
Part 2: Reactors, Electrical Engines, etc.
Reactors, electrical engines, and other devices will need an overhaul to maintain consistency with changes introduced in
Part 1. In addition, there are a number of unresolved issues with the current systems. (#21874, #21964, #22191, #22077, #21215, #20321)Part 3: Multitile Vehicle Parts
The ability for a single part to use multiple tiles would be useful for both current and future parts. It would allows treads to behave as expected. It would also be useful for
Part 4. Multitile functionality would allow improvement of the flotation system and simplify the creation of a watertightness system.I also intend to model armour and distance between the vehicle and the ground. This will resolve certain flaws discussed in #22025, #20847 and improve collision modeling. In particular, it will greatly improve modeling of a vehicle's ability to traverse very rough terrain. e.g. A pickup a quarter meter off the ground would be able to cross rocky terrain while a sports car 0.05 meters off the ground would become stuck.
Part 4: Boats
The vehicle code is littered with todos regarding a unified vehicle framework allowing for amphibious vehicles. Such a framework would be premature at this time; land vehicles barely have a unified framework themselves. However, it would make an excellent future goal.
Part 5: Turrets
Turrets may be seriously broken (#22541, #22512). I haven't look into turrets yet, but if I finish the previous parts it would be worthwhile to make sure turrets aren't broken in some non-obvious way.
Part 6: Modular Vehicle Parts
Allowing more flexibility in part scavenging, creation, and installation would be cool. Engines could have improved control systems attached, kitchens could have waffle irons installed, etc. However, this may not fit design goals and the previous 4 parts will provide many more options for it to utilize. It would be nice to have, but is far behind everything else in priority.
Part Null: What won't be included.
I do not intend to make JSON edits or add new content except as necessary to support code changes. Similarly, I won't be tweaking the vehicle menu except as necessary to maintain current functionality.