Author Topic: [SOURCEMOD] Brutal-OXCE 7.12.1  (Read 126273 times)

Offline 0xEBJC

  • Colonel
  • ****
  • Posts: 180
  • Y'all are awesome! Thankful for this community.
    • View Profile
    • My Projects
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #375 on: November 14, 2023, 11:38:49 pm »
Wow, really good work on improvements and new game-play.


Sorry if this is already asked, or a feature, but is there anyway to set the brutal AI individually for each race?

Example: I play X-Com Files
I'd like most humans, cults, humanoid creatures, humanoid aliens, and Alien tech to have Brutal AI.

But I'd like to exclude most creatures, zombies, farmers & maniacs, creature based aliens, etc.?
or even better yet if there would be a property for each race when Brutal AI is Enabled

Enable Brutal AI Globally            [   ]
Enable Brutal AI Per Races Flags [ x ]

--------------------------
Sectoid
- Brutal AI: true
      Targeting: 2
      Mine_Avoidance: true
      ....

Zombie
- Brutal AI: false
--------------------------

This way you could have 3 options
   Brutal AI disabled
   Brutal AI enabled globally - all enemies are Brutal AI
   Brutal AI Per Enemy Flags - only Sectoids in the example above and not zombies, but also each enabled race can have different flags to include hiding more, or remembering player shot locations, etc...





« Last Edit: November 14, 2023, 11:41:30 pm by 0xEBJC »

Offline 0xEBJC

  • Colonel
  • ****
  • Posts: 180
  • Y'all are awesome! Thankful for this community.
    • View Profile
    • My Projects
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #376 on: November 15, 2023, 01:08:36 am »
can I enable the AI on the fly during a battle? say once I get into the battle and realize its creatures, then leave the Brutal AI disabled as it was set previous to the battle.

but if the Brutal IA is off, then enter a battle and realize it's a cult or an alien race, then enable the brutal AI for that battle?

Offline jnarical

  • Captain
  • ***
  • Posts: 78
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #377 on: November 15, 2023, 03:29:56 am »
can I enable the AI on the fly during a battle? say once I get into the battle and realize its creatures, then leave the Brutal AI disabled as it was set previous to the battle.

but if the Brutal IA is off, then enter a battle and realize it's a cult or an alien race, then enable the brutal AI for that battle?
I personally think the answer is “yes”, but not 100% sure. But you can check by yourself. Start custom battle, press CTRL+D for debug mode, make several turns watching aliens play, then disable Brutal AI and continue watching. The difference should be obvious

Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #378 on: November 15, 2023, 12:53:55 pm »
Wow, really good work on improvements and new game-play.

Sorry if this is already asked, or a feature, but is there anyway to set the brutal AI individually for each race?
Thanks for the kind words! :)

For the most part the answer is yes.
Let me quote from the 1st-post in this threat:

All the features for brutal-AI can also be enabled separately while the player themselves has disabled them. This way modders can customize the experience as they wish for their players.

The files to edit for that is "units.rul"
You can add the following:
"isBrutal" (true/false)
"isCheatOnMovement" (true/false) (equivalent to omniscience bug-hunt-mode for brutal-AI)
"aiTargetMode" (equivalent to Targeting behaviour for Brutal AI)

The global Brutal-AI option needs to be switched off for that as otherwise it would take precendence.

I haven't added every single option to the units themselves since there wasn't really much demand for that feature until now. So the options I implemented later, like the proxy-avoidance one is missing there. Actually it might be the only thing missing as for the aggression-settings you have the inherit-option and isLeeroyJenkins is also taken into account when inherit is enabled.

Edit: If you only set "isBrutal" in the units.rul, it will use defaults/global-settings for everything else.

Edit2: It's not per species but per unit-type though. So if a mod has many units across many different files, it might be quite laborious to manually switch it on or off for each individual unit-type.
« Last Edit: November 15, 2023, 01:05:21 pm by Xilmi »

Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #379 on: November 15, 2023, 01:03:27 pm »
can I enable the AI on the fly during a battle?
As jnarical correctly assumed the answer is yes.
You can just go to the advanced-settings and switch it on or off mid-combat and the AI will either use Brutal-AI or go back to base-AI when they move next.

Offline 0xEBJC

  • Colonel
  • ****
  • Posts: 180
  • Y'all are awesome! Thankful for this community.
    • View Profile
    • My Projects
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #380 on: November 16, 2023, 01:43:00 am »
Thanks for the kind words! :)

For the most part the answer is yes.
Let me quote from the 1st-post in this threat:

All the features for brutal-AI can also be enabled separately while the player themselves has disabled them. This way modders can customize the experience as they wish for their players.

The files to edit for that is "units.rul"
You can add the following:
"isBrutal" (true/false)
"isCheatOnMovement" (true/false) (equivalent to omniscience bug-hunt-mode for brutal-AI)
"aiTargetMode" (equivalent to Targeting behaviour for Brutal AI)

The global Brutal-AI option needs to be switched off for that as otherwise it would take precendence.

I haven't added every single option to the units themselves since there wasn't really much demand for that feature until now. So the options I implemented later, like the proxy-avoidance one is missing there. Actually it might be the only thing missing as for the aggression-settings you have the inherit-option and isLeeroyJenkins is also taken into account when inherit is enabled.

Edit: If you only set "isBrutal" in the units.rul, it will use defaults/global-settings for everything else.

Edit2: It's not per species but per unit-type though. So if a mod has many units across many different files, it might be quite laborious to manually switch it on or off for each individual unit-type.

Awesome, thanks!

Another idea I had was to be able to set the the Brutal-AI flag after a specific number of turns, custom for each race.  For example one race has normal AI and then after say 10 turns brutal AI is enabled or 3 turns for another race that much more organized like mutons? or what would really make the races dynamic would be to have turn specific settings per AI flag per race, here's an example, pardon for the pseudo code.

Brutal AI Settings
 - Sectoids
   -- isBrutal: True {3:15}
   -- aiTargetMode : True {5:15}
   ...
 - Mutons   
   -- isBrutal: True {:}
   -- aiTargetMode : True {2:}
 - Waspoids
   -- isBrutal: True {6:8,12:}

This way you could have custom AI behavior per race, each AI flag enabled or disabled during certain rounds. Blank would mean starts at 1st turn or never ends, no last turn to turn off Brutal AI. Not sure how best to implement this in where to place it in the rul configs.
   


Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #381 on: November 16, 2023, 02:26:37 pm »
This sounds too specific and too much like a "one person wants that"-feature to me. So I suggest to make your own fork and implement it like that if you really want it.

Offline Abyss

  • Colonel
  • ****
  • Posts: 355
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #382 on: November 17, 2023, 12:35:19 pm »
This sounds too specific and too much like a "one person wants that"-feature to me. So I suggest to make your own fork and implement it like that if you really want it.


Hi Xilmi!

As you may remember, I changed my mind drastically from the first look while diving into the gameplay with BAI. Please consider this sincere feedback from the best fan with 6 years of time-to-time playthroughs of XCF and XPZ (this is not a bravade, I believe I could have done much better things than wasting time on it).     

I think guy asks about something more broad than just one option.
The thing I noticed while playing XCF and XPZ with BAI for ~80 hrs - is lack of diversification of enemy strategies. Like, whoever you face on a battlefield, will be acting roughly same.
This makes BAI a bit less entertaining on a long run, because player has to keep focus more and, what is more important, sometimes exchange pawns to advance in combat.

Second thought, is that BAI works much harder than Vanilla AI. So, same conditions will result in drastical change in difficulty. What you have perceived as "challenge" with BAI becomes a very easy mission with VAI. That becomes serious problem, but I have an idea that will partially solve the diversification question:
That will be very deliberate of you to consider to implement random chance of BAI and VAI missions (if not mixing BAI and VAI troops in a single mission). But then, the difficulty level for VAI missions should be at least +1 more to player's option.
The proposed options are:
- chance of VAI mission appear
- set VAI missions difficulty 0-4 (Personally I use pre-max difficulty for BAI gameplay, so expect VAI difficulty should be max) 
That's it.
And then, you (or anyone who is able to) can proliferate any other mixed behaviors for races, ranks etc.         

And, a gentle reminder for list of quality of life changes from the player's perspective:
- most casual players never go into code. That's why, I believe, it's better to take advanced configurations into options menu.
- zombies should play vanilla (sadly, XPZ and XCF have different mechanics - but zombies never take cover and hide behind the corners, as they are driven by either animal instincts or controlled by parasites)
- animals should play vanilla/max aggressiveness (random split), because they are not tacticians

Quote
I haven't added every single option to the units themselves since there wasn't really much demand for that feature until now.
There is demand and many other players watch into BAI to use it.
The only thing is it being more flexible and configurable for long runs, not to confront player's brain each mission, but time-to-time (and players/modders decide how often it should)!

Out of the topic, you did great job and we love you <3
« Last Edit: November 17, 2023, 12:36:54 pm by Abyss »

Offline Yankes

  • Global Moderator
  • Commander
  • *****
  • Posts: 3350
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #383 on: November 17, 2023, 01:02:30 pm »
And, a gentle reminder for list of quality of life changes from the player's perspective:
- most casual players never go into code. That's why, I believe, it's better to take advanced configurations into options menu.
Casual  players have no idea too how balance AI, to do it you need spend months testing and seeing if given set of configs is correct.
This effective promote this player to modder as he need have good understanding of all mechanics and balance.
Some this problems are explained in this video:
https://www.youtube.com/watch?v=-nJtd8AJghM

Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #384 on: November 17, 2023, 07:49:57 pm »
I'll now try to share some of my thoughts losely related to Abyss' and Yankes' posts...

There's basically infinite amounts of things that could be tweaked to make a game more balanced, interesting or immersive. Whether that's via AI, enemy stats and numbers or game-progression-mechanisms.

The issue with the general game-design of X-Com is that the outcome of each mission has a huge impact on everything that comes after it. What this means is that an individual-mission must not really have a close outcome. I test the AI in quick-battles and think: "This mission was fun!" In vanilla-X-Com the discrepancy between a rookie and a better-trained soldier is significant but not overwhelming. In XCF this discrepancy is a lot bigger. So even in the regular game but even moreso in mods like XCF, where you empower your squad more and more, there really can't be many missions that are actually tough to overcome because they'd set back your progress so much or would even be game-ending.

Brutal-AI was never designed to result in a balanced experience in the first place. It was made based on observing the enemies' behavior and thinking about what the enemies ideally should do. What that eventually would result in from a gameplay-perspective wasn't really considered.

Randomly mixing up BAI- and VAI-missions most likely has the following effect: The player determines the most effective way to scout out whether they got BAI or VAI and then retreats from the BAI-missions.
Mixing BAI and VAI-troops in a single mission would be a lot more reasonable to achieve this kind of effect. Currently it's only possible to assign this on a unit-type to unit-type basis but not randomly.

But here is also the question: Who really has the competence to tweak the numbers for likelyness over a game that has so many other variables. Only a very dedicated person could properly balance it and then it's balanced for them. Everyone else might still need a different balance because skill and frustration-tolerance vary widely between different players.

In order for me to develop something it also must be fun for me to develop. And adding tweaking-options that I know will for the most part just lead to even more overchoice in the sense that only the most experienced people will have a chance to know how to properly tweak these values, simply isn't fun to develop to me.

Offline donk

  • Sergeant
  • **
  • Posts: 37
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #385 on: November 17, 2023, 08:21:26 pm »
Hi, I'm using this to play XCF, and I can't find the option to pre-prime grenades. There's one for saving your pre-primed setup, but not to enable it. Right click in pre-battle does nothing. Am I missing something?

Edit: And of course now that I posted this it works. I had this problem for days but now suddenly it works after fiddling with the options. So ignore this I guess.
« Last Edit: November 17, 2023, 08:48:34 pm by donk »

Offline zee_ra

  • Colonel
  • ****
  • Posts: 213
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #386 on: November 18, 2023, 01:51:04 am »
@Xilmi,

I think the essential feature of Brutal AI mod that would make a gameplay interesting is the ability to configure the ability to play by stealth, while at the same time allowing the enemies to blaster you early.

So far, the observed behavior on the latest versions, when playing custom XCF-based mod, has been very plausible.  With aiTargetMode: 3, aiAggression: 2, autoAggression: 3, cheatOnMovement: false, the stealth play is satisfactory, while the enemy does not seem to be dumb (e.g. the enemy does not attempt a zergling rush, and does not refrain from trying to actually do damage every turn, relentlessly).  It is still possible to take Durathread Factory or a Cult Base with only two agents this way, albeit such encounter is a challenge in general.  The enemy is also actually using launchers in that mode, which makes a huge, huge difference when encountering early legates or mummies in XCF.

So far, the only downside is relatively slow performance, especially graphical one, when soldiers are on the upper levels.  I don't understand why that is the case: the openxcom level of graphics should pose no challenge for any hardware accelerated setup, even if coded straightforwardly and inefficiently.

I also noticed that the engine is not taking advantage of multi-core setups.

In terms of features, I think the most pertinent ones at this point would be the ones that allow certain types of explosion (e.g. "spectral smoke", which might as well be a regular smoke with a special flag set) to propagate through the walls.

I wonder, what set of config flags you find to be most optimal when playing your sessions?

Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #387 on: November 18, 2023, 11:36:05 am »
Hi, I'm using this to play XCF, and I can't find the option to pre-prime grenades. There's one for saving your pre-primed setup, but not to enable it. Right click in pre-battle does nothing. Am I missing something?

Edit: And of course now that I posted this it works. I had this problem for days but now suddenly it works after fiddling with the options. So ignore this I guess.
As far as I know you could always just pre-prime-them pre-battle. What I added is an option under Advanced=>Battlescape called "One-click grenade priming", which is what allows you to do it much faster as you don't have to select a number on the timer (it will always default to 0 with this option).

Offline Xilmi

  • Moderator
  • Commander
  • ***
  • Posts: 642
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #388 on: November 18, 2023, 11:58:18 am »
I wonder, what set of config flags you find to be most optimal when playing your sessions?
Do you mean in regards to performance or for gameplay?

If the AI calculations are slow that is on me. I've done quite a bunch of things to optimize it but things like the analysis of where there is good cover or what are good locations to attack from will slow it down noticably. The option "Perfomance optmisation" reduces the amount of tiles analyzed for seeking cover. It especially has an impact on flying units, who would otherwise also consider all possible locations they could move to. Units like the bats for examle with very high TUs sometimes analyze like 6000 positions on the map otherwise.

When it comes to rendering-performance I know that stuff like light-propagation is an issue, especially with increased viewing-ranges (40 instead of 20 tiles). OXCE (and thus also Brutal-OXCE) should be quite a bit better at that than regular OXC, since the OXCE-guys put a lot of effort into optimization in this regard. But there's still potential. Modern games do these things with using all of the hardware, especially the GPU, which I believe OpenXCom makes no use of. I personally lack the expertise in that regard and imagine it would be a gargantuan task, even if I had the expertise. So I can't really improve it.

When it comes to gameplay, I pretty much go with the default-configuration for AI, which is the default because I think it's the strongest that doesn't cheat yet. I also enable "Aggressive Retaliation", which is different than in basic-OXC/OXCE in that it normalizes the search-pattern and also triggers off successful landing-missions and "Enhanced Dogfight Behavior", which makes it so that you can't outrun faster craft once you have engaged them.

Offline zee_ra

  • Colonel
  • ****
  • Posts: 213
    • View Profile
Re: [SOURCEMOD] Brutal-OXCE 7.7.4
« Reply #389 on: November 18, 2023, 06:10:38 pm »
When it comes to gameplay, I pretty much go with the default-configuration for AI, which is the default because I think it's the strongest that doesn't cheat yet. I also enable "Aggressive Retaliation", which is different than in basic-OXC/OXCE in that it normalizes the search-pattern and also triggers off successful landing-missions and "Enhanced Dogfight Behavior", which makes it so that you can't outrun faster craft once you have engaged them.

What is the default configuration specifically?  Particularly, the settings aiTargetMode, aiAggression, autoAggression, cheatOnMovement?

With Aggressive Retaliation, I found that the enemy is actually being smart and trying to expend resources.  This also makes early defenses useful (e.g. 6 SAMs, with 1 hit to sufficient to kill).  I still have not seen if the retaliation stops after N attempts or not.  What is the actual behavior in that respect?  Would the attempts continue to infinity?

I think, it has never been possible to outrun a faster craft.  Certainly not when those are on hunt/pursuit.