beyond-all-reason / beyond-all-reason/RecoilEngine
Dynamic aircraft minimum height plane
- Dominant language
- C++
- Stars
- 679
- Forks
- 290
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 40
Description
There are a few maps that would benefit from being able to tell aircraft to treat some XZ plane on the map as the water level. I am thinking of raaar's sky-void maps (eg https://zero-k.info/Maps/Detail/61746) which have sharp cliffs and clouds that planes are meant to fly above, as well as lava maps. For lava maps the parameter would ideally be dynamic, to support maps that raise and lower the lava. Without this parameter maps are prone to submerging low flying gunships in rising lava, which isn't the intention of these maps.
The callout would look something like Spring.SetAircraftHeightReference(height, canLand), and it may as well have an extra canLand parameter to control whether aircraft that can land on water are allowed to land on the height reference. All altitudes etc would be taken from the maximum of this number and the height of the underlying ground. Something would probably have to be done to update the smoothmesh, but idk what it would involve, as I don't use the smoothmesh.
This feature has two advantages over the fuller feature of making water height itself dynamic, even though dynamic water height is a superset of this request. The advantages aren't that great, but may be enough to get this done in lieu of dynamic water height.
- Just doing dynamic height reference for aircraft is a lot more tractable in terms of engine work.
- It seems cheaper performance-wise than full water height. For example, with both features, lava that rises over a few seconds could be implemented with constant aircraft reference height updates (to make aircraft respond in a pleasing way), with the more expensive water height update only happening at the end.
Contributor guide
Assessment
This issue has not been assessed yet.