Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Walls decrease explosion damage #2666

Open
rofdo opened this issue Feb 27, 2024 · 5 comments
Open

Walls decrease explosion damage #2666

rofdo opened this issue Feb 27, 2024 · 5 comments
Labels
Approved Approved for implementation by the Game Design Team Enhancement New feature or request

Comments

@rofdo
Copy link

rofdo commented Feb 27, 2024

Description

When a wall is between an explosion and a unit/building, it receives less damage than without a wall.

Why?

  1. Players can choose to trade resources and space for protection against chain reactions.
  2. It feels counterintuitive that having walls between buildings doesn't decrease their chance to chain react.
    https://github.com/beyond-all-reason/Beyond-All-Reason/assets/72305059/5cb21098-7900-4ebf-a61b-370dcd24e60a
  3. Walls would become more useful. I feel like they are currently not used enough.

What area of the game does this feature request pertain?

Gameplay

Other (optional)

I don't know how this could be implemented, but i can imagine that it may affect performance, because for every unit affected by an explosion it would need to be checked if there is a wall between them.
Of course this could be optimized by for example only checking for explosions above a certain size.
However the main idea behind this feature was to give the players a way to prevent their buildings from chain reacting.
Implementing this feature only for exploding buildings affecting other buildings would be enough.

@rofdo rofdo added the Enhancement New feature or request label Feb 27, 2024
@github-actions github-actions bot added the Awaiting GDT Approval Awaiting approval from the Game Design Team (game mechanics, balance only) label Feb 27, 2024
@MeSaber
Copy link

MeSaber commented Mar 26, 2024

Having a wall inbetween a projectile and a defensive tower does decrease damage because how the aoe splash works. If a projectile explodes further out and edge effectiveness is not 100% it will change the outcome.

For not chain reacting you already have spreading.

Walls are already being used quite a lot and im sure they will be used more as the game evolves. Making walls too good might become a problem.

@WatchTheFort WatchTheFort added Approved Approved for implementation by the Game Design Team and removed Awaiting GDT Approval Awaiting approval from the Game Design Team (game mechanics, balance only) labels Apr 6, 2024
@WatchTheFort
Copy link
Member

Provisionally approved by the Game Design Team, however if there is no technically feasible solution, this will not be implemented.

@rofdo
Copy link
Author

rofdo commented Apr 8, 2024

Very nice. Since this changes how explosions interact with units I would assume that this would need to be handled on an engine level. @Dennshirennshij and I forked the engine and will try to implement this feature here https://github.com/Dennshirennshij/beyond-all-reason-spring.

We both don't have much experience with stuff like this so advice is welcome.

@rofdo
Copy link
Author

rofdo commented Apr 21, 2024

We have implemented a prove of concept of this feature. Right now every unit (not only walls) that is between another unit and an explosion reduces the amount of damage taken by 50%. This every unit affected by an explosion checks, if another unit is between itself and the explosion.

Here a before and after video:
https://github.com/beyond-all-reason/Beyond-All-Reason/assets/72305059/a6c73eb3-46d0-4b07-8b91-c8657e940d44
(notice: the walls take the same amount of damage in both situations, the wind turbines only take half the amount of damage in the second situation with our feature enabled)

No optimization of any kind has been done.

Without feature:
Screenshot_20240421_210731

With feature:
Screenshot_20240421_214412

At least for the "benchmark bar" scenario there seems to be no measurable influence on performance.
There are some questions that need to be answered:

  • Should each unit type have a value assigned to itself determining the amount of damping?
  • Should only walls damp the amount of damage taken by an explosion?
  • How much explosion damage should be prevented?
  • What are different cases where the performance of this feature could be a problem?

@sprunk
Copy link
Collaborator

sprunk commented Apr 23, 2024

Should each unit type have a value assigned to itself determining the amount of damping?
Should only walls damp the amount of damage taken by an explosion?
How much explosion damage should be prevented?

Each game generally answers this kind of question via Lua.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved Approved for implementation by the Game Design Team Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants