Now I realize that alot of you are multiplay online guys/girls. Thats Cool. This is aimed at those who like to play with bots no matter what the reason. So please, if you've got something against playing with bots please keep any unconstructive comments to yourself.
I really want to make the bots behave more like they did in UT99. Specifically, I'd like to restore the hide and seek style that was possible with UT99.
What I know is there seemed to be alot more variation in the personality of the bots in UT99, like whether they would hunt you down or stay back and pick you off at a distance. UT2k4 seems to be all about "hunt you down". I can see why this would produce a quicker more furious gameplay, but it gets old. Me personally, I prefer a balance.
So, I started looking for what was changed.
First off, I noticed that there is no CampingRate in UT2k4 like there was for the bots in UT99 that controlled how much a particular bot camped. So, it's not possible to have "Sniper Wolf" like bots. It doesn't look like it could be restored either without rewriting much of the ai controller code.
Call me crazy but I miss camping bots, they added a certain amount of suspense to the game.
I then ran across something that looked interesting. There seems to be a minor oversight in the class RosterEntry. In UT99 you used to be able to select the CombatStyle of the bots.
IE...
CombatStyleNames(0)="Normal"
CombatStyleNames(1)="Aggressive"
CombatStyleNames(2)="Berserk"
CombatStyleNames(3)="Cautious"
CombatStyleNames(4)="Avoidant"
The original CombatStyle code is still in UT2k4, even if the CombatStyleNames aren't. As this is loaded from the .upl along with other settings.
The line that defines CombatStyle in class Bot:
var(Combat) float CombatStyle; // -1 to 1 = low means tends to stay off and snipe, high means tends to charge and melee.
Even though the range for Combat style is -1 to 1, class RosterEntry seems to limit the value to between 0 and 1
with the code below:
B.CombatStyle = FClamp(CombatStyle, 0, 1);
( according to UnrealWiki )
float FClamp (float V, float A, float B)
If V is smaller than A, A is returned. If V is larger than B, B is returned. In any other case V is returned.
Therefore to get the full range shouldn't it be:
B.CombatStyle = FClamp(CombatStyle, -1, 1);
And finally the big question, could someone show me how to atleast code a mutator to fix CombatStyle?
Thanks for reading and any constructive comments
EntityX
I really want to make the bots behave more like they did in UT99. Specifically, I'd like to restore the hide and seek style that was possible with UT99.
What I know is there seemed to be alot more variation in the personality of the bots in UT99, like whether they would hunt you down or stay back and pick you off at a distance. UT2k4 seems to be all about "hunt you down". I can see why this would produce a quicker more furious gameplay, but it gets old. Me personally, I prefer a balance.
So, I started looking for what was changed.
First off, I noticed that there is no CampingRate in UT2k4 like there was for the bots in UT99 that controlled how much a particular bot camped. So, it's not possible to have "Sniper Wolf" like bots. It doesn't look like it could be restored either without rewriting much of the ai controller code.
Call me crazy but I miss camping bots, they added a certain amount of suspense to the game.
I then ran across something that looked interesting. There seems to be a minor oversight in the class RosterEntry. In UT99 you used to be able to select the CombatStyle of the bots.
IE...
CombatStyleNames(0)="Normal"
CombatStyleNames(1)="Aggressive"
CombatStyleNames(2)="Berserk"
CombatStyleNames(3)="Cautious"
CombatStyleNames(4)="Avoidant"
The original CombatStyle code is still in UT2k4, even if the CombatStyleNames aren't. As this is loaded from the .upl along with other settings.
The line that defines CombatStyle in class Bot:
var(Combat) float CombatStyle; // -1 to 1 = low means tends to stay off and snipe, high means tends to charge and melee.
Even though the range for Combat style is -1 to 1, class RosterEntry seems to limit the value to between 0 and 1
with the code below:
B.CombatStyle = FClamp(CombatStyle, 0, 1);
( according to UnrealWiki )
float FClamp (float V, float A, float B)
If V is smaller than A, A is returned. If V is larger than B, B is returned. In any other case V is returned.
Therefore to get the full range shouldn't it be:
B.CombatStyle = FClamp(CombatStyle, -1, 1);
And finally the big question, could someone show me how to atleast code a mutator to fix CombatStyle?
Thanks for reading and any constructive comments
EntityX
Comment