FAForever / fa

Lua code for FAF
221 stars 228 forks source link

Balance idea: make transports move slower based on how many and which types of units they have loaded #6186

Open Basilisk3 opened 1 month ago

Basilisk3 commented 1 month ago

Intended changes

Example numbers:

Thoughts on the changes

Garanas commented 1 month ago

I'm personally a huge fan of this idea 👍 .

These type of features can both be a balance knob as you describe while also improving immersion at the same time.

MrRowey commented 1 month ago

Balance Team Does not want to do this as it will be too big of a nerf to certain unit drops. it sounds interesting but in actual practice won't make much sense.

Garanas commented 1 month ago

Perhaps this is closed too fast? It doesn't need to have a large impact in practice. For example:

What if we buff the standard movement speed by 1, and a fully loaded tech 1 transport (with 6 slots) will then have its movement speed reduced to what it is now. That way you still have the effect, but it doesn't impact existing build orders as much.

Basilisk3 commented 1 month ago

Let's calculate what this suggestion would entail. Since this has already been closed, and I do not want to waste too much time, I will focus on Tech 2 transports. The Continental should obviously be adjusted as well and since it can carry more units, it would need a larger speed buff and maybe some other QOL changes while we are at it. Tech 1 transports could get a speed increase of 0.75 or 1 to compensate.

Average Tech 2 transport buffed to 14.75 MaxAirspeed, loaded with two Tech 3 units: 14.75 - 1.2 = 13.55 (basically the same)

Seraphim Tech 2 transport buffed to 14.75 MaxAirspeed, fully loaded with 16 Tech 1 units: 14.75 - 2.4 = 12.35 (slower, which improves their balance, since they are too powerful and game-deciding currently)

Aeon Tech 2 transport buffed to 14.75 MaxAirspeed, fully loaded with 12 Tech 1 units (aka an average arty drop): 14.75 - 1.8 = 12.95 (slightly slower, which is reasonable, as regular arty drops are also slightly too strong)

By the way, I also disagree with closing suggestions this quickly. The issue has only been up for 13 hours, which means that almost nobody has had the chance to read through it. These issues are not only for the balance team to see, they are also here to garner feedback from other people, namely devs.

EvildrewFAF commented 1 month ago

Hello, I just wanted to point out that this idea has been expressed and implemented in the Superior FAF Experience last year both as an initial idea and in a concrete form that very much resembles the description of the proposal.

See references: https://forum.faforever.com/topic/6368/the-superior-faf-experience-mod

*"Unit numbers or weight on transporters impacting the transporter’s speed"**

https://docs.google.com/document/d/e/2PACX-1vRa-6P3t8RqSKg1jIpd18JnHKq5wA80arg3wsya-qINKAoLP8Rzlor4HisgiOdSgoIULBf9A_ocJiAA/pub

"**Weight adjusted transporter speeds.

Every unit has a UnitWeight, in general:

Tech1 = 1,

Tech2 = 2,

Tech3 = 3-5,

SACUs = 5,

ACUs = 4

This slows transports down by the following per unit of weight:

Tech 1 transport -0.35, max speed = 11

Tech 2 transport -0.15, max speed = 15

Tech 3 transport -0.05, max speed = 15

This feature makes transports with cargo fly measurably slower even if to the eye it is not always as noticeable.**"

I suggest those who believe that this idea is great and would like to experience it for themselves may want to immerse themselves into playing the Superior FAF Experience and also experience all the other great ideas that are implemented in it. There is no need to take the word of the balance group whose mod tbh is pretty boring to play as to what is a good idea or in this case what makes sense. At least Jip sees it, might want to think about Jip deciding which direction the game goes into since he supposedly is the Games Team Leader and let the Balance Team do what their name implies and that would be bring the numbers into balance. Pretty big ask to ask them to do high level math when their main skill is fast clicking and memorizing build orders. Anyway just something to think about...

Basilisk3 commented 1 month ago

Hello, I just wanted to point out that this idea has been expressed and implemented in the Superior FAF Experience last year both as an initial idea and in a concrete form that very much resembles the description of the proposal.

See references: https://forum.faforever.com/topic/6368/the-superior-faf-experience-mod

I believe it was @Garanas who suggested that we (re)introduce the UnitWeight blueprint field to calculate the speeds of loaded transports. This also gives us the option to tweak units individually, for example we could make engineers lighter than Bricks.

@EvildrewFAF Ironically, that is basically what you already did in your mod, so good work on that. Even the values line up with our proposal: Speed Multiplier = 1 - ((weight*0.15)/bp.Air.MaxAirspeed).

One thing I would change is that I would move the function out of the script files, and move them into AirTransportUnit.lua. That should be a more robust solution, as it would result in all transports receiving this behavior automatically. I already tried that myself and it works.

On an unrelated note, I took a look at your mod and there appears to be a lot of interesting changes in it. May I ask how you managed to fix beam weapons missing? Jip and I among others increased the hitboxes of several units to tackle this. If you found a better solution, I would love to know so we can fix it for everyone.

EvildrewFAF commented 1 month ago

I am aware that things can be done at a higher level as you suggested than doing them in the unit files directly. However, since I had to do it with my own noob level coding skills that is the way I chose to do it. I know my approach does not adhere to the proper format of the international coding convention, but I just do not understand some of the tutorials on how to do it correctly or if those suggestions will even protect it from all the changes that get done which often times damage the integrity of all sim mods, so that's just the way it is as of now.

So, regarding the values, a working version was uploaded with the values as I detailed in December 2023, I believe version 30 of the Superior FAF Experience. I do know that Jip has played it a few times in the past and liked the work done in the Superior FAF Experience according to his own words, might have given him inspiration... Anyway, since this is the first time I have seen anyone aside from myself bring this idea up, I will point out where your proposal is lacking a bit in logic. You do not account for the fact that T2 and T3 transporters are bigger, have more powerful engines and that the standard weight of the units that they carry relative to their own weight is less than for a T1 transporter. You assume they are all equal and that only the cargo weight impacts the speed.

The lazer beams thing was done back in 2019 in my previous mods. It is a combination of hitbox sizes and a target bone placed adjusting for the speed of the unit. I remember back then things happened on slack and people who had a say made fun of it and me and said it was stupid and so they discarded. Well, who am I to interfere with their preferences for playing a game where things don't work like they should :) I think Jip did some good work in 2022 relating to this topic. It's grunt work for sure and the fact that no one has picked it up and completed it for the good of the "community" shows how little people really care for things working logically or correctly.

Hope to see you playing the Superior FAF Experience soon.

Garanas commented 1 month ago

It's grunt work for sure and the fact that no one has picked it up and completed it for the good of the "community" shows how little people really care for things working logically or correctly.

As a note: @Basilisk3 also did a lot of changes to improve the situation on beams 😃

Basilisk3 commented 1 month ago

Anyway, since this is the first time I have seen anyone aside from myself bring this idea up, I will point out where your proposal is lacking a bit in logic.You do not account for the fact that T2 and T3 transporters are bigger, have more powerful engines and that the standard weight of the units that they carry relative to their own weight is less than for a T1 transporter. You assume they are all equal and that only the cargo weight impacts the speed.

Since we already introduce more complexity with the change itself, I believe we should keep the initial implementation simple for the time being. Just to be clear, I am not discounting your idea here. Once the changes have been made, we can investigate adding further diversity between the transports like you already did in your mod.

I remember back then things happened on slack and people who had a say made fun of it and me and said it was stupid and so they discarded. Well, who am I to interfere with their preferences for playing a game where things don't work like they should :)

I think we managed to fix the bug for the most part. At least I did not see it happen in a long time.

Basilisk3 commented 1 month ago

@EvildrewFAF Would it be okay for you if I implement a refactored version of your code directly into AirTransportUnit.lua? If yes, you would need to update your mod accordingly, meaning removing the code from the script files and hooking AirTransportUnit.lua to add a check for the tech level of the transport.

EvildrewFAF commented 1 month ago

Let me confirm what you are suggesting, because maybe you are saying something else than what I am understanding.

You will create an AirTransportUnit.lua that does what I have coded in the Transporters' script files for me to put in the Superior FAF Experience in exchange for the permission to implement your derivative form of it into the FAF Develop, FAF Beta Balance, and FAF (default) modes.

Is this what you meant?

Basilisk3 commented 1 month ago

You will create an AirTransportUnit.lua that does what I have coded in the Transporters' script files for me to put in the Superior FAF Experience in exchange for the permission to implement your derivative form of it into the FAF Develop, FAF Beta Balance, and FAF (default) modes.

I am asking for your permission to implement an altered/refactored/simplified version of your code into the game. What I would like to introduce into AirTransportUnit.lua would not be exactly what you have implemented. Your solution is more detailed, which is why you would need to do some adjustments to your mod to keep compatibility.

To keep compatibility, maybe you could even keep the scripts as they are right now and just hook an old version of AirTransportUnit.lua once I have made the changes. I do not have experience in doing that, but maybe it is possible by hooking an empty function. What you do with the altered code is up to you, for all I am concerned. @Garanas please correct me if I am completely wrong about this 😃.

Code wise, my concrete changes would be:

How it would be different from your implementation (gameplay):

Your mod is huge, so forgive me if I have missed something.