beyond-all-reason / Beyond-All-Reason

Main game repository for Beyond All Reason.
https://www.beyondallreason.info/
Other
1.8k stars 300 forks source link

Terrain manipulation #3890

Open RebelNode opened 4 weeks ago

RebelNode commented 4 weeks ago

Description

https://github.com/user-attachments/assets/a36e41ce-dfd0-4005-bb47-3a1053551ef5

You can manipulate terrain with building frames such that it affects unit passability in your favor in a match. This kind of manipulation should probably be prevented somehow. Maybe add a small local terrain restore command when a buildingframe decays or is destroyed just to undo the terrain flattening that happens upon placing a building frame.

https://discord.com/channels/549281623154229250/1300196979254628432/1300386398422958081 for higher quality video. But you probably get the idea from above.

Expected Behaviour

Player cannot gain gameplay advantage from manipulating the terrain with building frames.

Actual Behaviour

Player can gain gameplay advantage from manipulating the terrain with building frames.

Reproduction steps

See video above.

Other

No response

SethDGamre commented 4 weeks ago

Would the ideal behavior be to restore terrain slowly over time after a building has been removed from the area?

WatchTheFort commented 4 weeks ago

Or don't deform the terrain at all, and add a levelling pad under the building instead.

SethDGamre commented 4 weeks ago

Or don't deform the terrain at all, and add a levelling pad under the building instead.

how the heckin shoot do you propose to accomplish that? This is some hard coded engine behavior stuff innit?

WatchTheFort commented 4 weeks ago

how the heckin shoot do you propose to accomplish that? This is some hard coded engine behavior stuff innit?

https://springrts.com/wiki/Gamedev:UnitDefs#levelGround

SethDGamre commented 4 weeks ago

Better, but would just mean the issue raised in OP just takes longer to do. Also means building structures on slightly bumpy terrain might take longer sometimes leading to player ???

Good to tag as a GDT issue?

WatchTheFort commented 4 weeks ago

What do you mean? All it would be doing is instead of levelling the land, the building would have a cube underneath that fills in the void space. When the building dies, the cube dies, and the original terrain is right there.

Functionally, it would be no different than raising the terrain. The only possible issue is in cases where the building lowers the terrain.

sprunk commented 4 weeks ago

you could also just disallow building on ramps

MeSaber commented 3 weeks ago

What do you mean? All it would be doing is instead of levelling the land, the building would have a cube underneath that fills in the void space. When the building dies, the cube dies, and the original terrain is right there.

Functionally, it would be no different than raising the terrain. The only possible issue is in cases where the building lowers the terrain.

Doesnt this raise an issue if you finish a factory and build a tank it wont be able to exit because steepness?

MeSaber commented 3 weeks ago

you could also just disallow building on ramps

You can do these steep terrains with dgun alone and it would cause the same issue.

I actually liked Seths idea that terrain in time goes to normal instead of staying deformed all game. Digging with weapons (like nukes) is just meme anyway.

SethDGamre commented 3 weeks ago

From GDT minutes: "Terrain should restore after a building is removed instantly. This is so that structure explosions will partially cover the restoration. Ideally, a special effect of some kind should be added to reclaim events to do the same."

AGUREX commented 2 weeks ago

If I may, I believe the root of the problem lies in the unconstrained manipulation of terrain.