Author Topic: SMACX Thinker Mod  (Read 167863 times)

0 Members and 6 Guests are viewing this topic.

Offline Induktio

Re: SMACX Thinker Mod
« Reply #375 on: October 08, 2019, 12:47:50 PM »
> nutrient_bonus seems potentially unreliable when used with the original Worldbuilder settings

The main issue here is that a small map with high water content is really small. There won't be that many ideal spawn locations to choose from, although some adjustments might be made in the algorithm. Some factions just won't have enough room there.

I didn't quite get what PvtHudson was asking here. Do you want to see a table on how the tech costs change with the number of researched techs? It's possible to run some simulations with it by spawning the factions on a random standard map, then continuously marking one tech more researched and calling the original tech_rate function to see how the costs change. But there's probably some factors that are not taken into account in that test (number of turns elapsed etc).

Offline PvtHudson

Re: SMACX Thinker Mod
« Reply #376 on: October 09, 2019, 07:56:22 AM »
I didn't quite get what PvtHudson was asking here. Do you want to see a table on how the tech costs change with the number of researched techs? It's possible to run some simulations with it by spawning the factions on a random standard map, then continuously marking one tech more researched and calling the original tech_rate function to see how the costs change. But there's probably some factors that are not taken into account in that test (number of turns elapsed etc).
I'd like not to see, but to have an ability to change costs returned by standard algorithm. So as each cost returned by standard algorithm is multiplied in game by the result of some_func(number_of_techs_known, some_coefficient_taken_from_ini), and the some_coefficient_taken_from_ini governed the curvature of some_func. This will allow to experiment with different speeds of tech cost rise.
« Last Edit: October 09, 2019, 09:54:01 AM by PvtHudson »
become one with all the people

Offline Induktio

Re: SMACX Thinker Mod
« Reply #377 on: October 09, 2019, 09:00:34 PM »
I'd like not to see, but to have an ability to change costs returned by standard algorithm. So as each cost returned by standard algorithm is multiplied in game by the result of some_func(number_of_techs_known, some_coefficient_taken_from_ini), and the some_coefficient_taken_from_ini governed the curvature of some_func. This will allow to experiment with different speeds of tech cost rise.

Well yeah, I suppose I could add some options to configure stuff like that. Let's assume the cost formula is something like x * Level^3 + y * Level. Those factors x and y could be read from the config file and I could add them to the next develop build for testing purposes. Changing the exponent value wouldn't be recommended though since it would have drastic implications towards the end of the tech tree.

I realized some of the difficulty scaling calculations were a little bit off in the current version so I'll adjust those too. In the original game at Transcend level, the first techs are roughly equally expensive for human/AIs but after that the AI gains up to a 50% discount for all techs. That's much bigger than the industry discount actually (30%).

Offline PvtHudson

Re: SMACX Thinker Mod
« Reply #378 on: October 10, 2019, 08:35:08 AM »
* Level
I'm not so sure the tech cost shall be based on level of the tech in question. Of course, this spawns issues with beelining. But it seems SMAC creators were much more concerned with preventing tech runaways. And it mostly works, except they hadn't envisioned the level of energy runaway players could accomplish.
I had adjusted (with the combination of alphax.txt/thinker.ini edits, starting conditions, and handicaps) my copy of ThinkerMod so that in almost every game tech parity with 1-2 top AIs continues well into and beyond quantum era, thanks to vastly different costs of the same techs for player and AI. Actually, I'm fairly satisfied with the behavior of standard tech cost algorithm (standard map, tech stag) except too costly early techs and too cheap late techs.
Hence I'd vote for adding means to adjust standard algorithm alongside with rewriting it completely.
become one with all the people

Offline Induktio

Re: SMACX Thinker Mod
« Reply #379 on: October 11, 2019, 06:40:53 PM »
If SMAC creators were concerned about tech runaways, it certainly was not reflected in the tech cost mechanism. It doesn't really do anything to prevent those, more like it does the opposite. I put some thought into what could be with the old tech cost mechanism, but I don't see any meaningful way to adjust it without rewriting something.

The advantages of basing the costs on tech ranks are significant, and these kind of mechanics were incorporated into later Civ games too. In the vanilla game, the AI tech discounts are so large on higher levels that it's no wonder if it manages to keep tech parity most of the time. It doesn't really mean the tech cost mechanic "balanced" things in any way though. But I need to do a little bit more play testing before releasing the next build.

Offline ocelotter

Re: SMACX Thinker Mod
« Reply #380 on: October 23, 2019, 12:17:20 AM »
I've played more with Thinker, this time on Tiny maps, and have a bit more feedback. Non-default settings:

Transcend difficulty
directed research
iron man
base game Worldbuilder settings
revised_tech_cost=0
smac_only=1
nutrient_bonus=0
jungle=0

The first half of the last game I played as the Spartans was really tense and interesting. I hamstrung Morgan early and took most of his territory, but once war broke out with the Believers, things started to fall apart. They pressured me heavily for a long time, trading a few bases back and forth, and diplomacy with the other factions felt important to avoid elimination. Each turn had interesting problems, and since the map was so small, base/former micromanagement was not burdensome.

Unfortunately, once needlejets started to take over, the AI seemed to lose confidence in their ability to attack me. They got air power before me, and so even though I pretty quickly fortified my bases with AAA troops, they still should've been able to mount a strong offensive, or at least take out most of my formers/crawlers. I went back and checked a save (see the attached) from around this time, and you can see that Far Jericho is stacked with 12 missile needlejets; if you end the turn, they just fly them around between a couple of their bases, doing nothing unless one of my units enters their immediate vicinity.

Eventually I got copters, cleaned up the Believers (who seemed mostly helpless against them), and then the game gradually slipped away from the AI from there. The smaller AI factions mostly squabbled amongst themselves, despite clearly needing to gang up on myself or the Gaians to have a chance. The Gaians seemed to suffer from a similar air AI problem with handling interceptors, stacking them all in one out-of-the-way base where they couldn't protect any of their workers or bases.

So I think the AI needs improvement with handling air units to stand a chance in the mid game. At least with ground units they make aggressive moves, even if they often leave them vulnerable. Any offensive military unit that just sits around without attacking is an opportunity cost that drags the AI down.


I also noticed a few issues in the game that might be worth fixing, though they could be considered out of scope for this project:

1) The stockpile energy exploit is indeed in the game, I checked on some turn in the middle. I had hurried a bunch of facilities, and the next turn I ended up earning double my predicted income in credits due to the exploit, without even taking advantage of adding stockpile energy after unit production. I don't imagine the AI benefits from this, so this amounts to a substantial one-sided advantage for a human player, even one who isn't trying to use it. I think scient removed it from his patch because kyrub's fix had unintended consequences, but it's still worth fixing in my opinion.

2) I'm not sure if this is actually a bug or intended behavior, but it looks like interceptors still fight bombers with attack vs. attack when scrambling defensively, when it seems like it should be attack vs. armor. If this is "fixed", it might give needlejets and copters a bit more counterplay than there seems to be at the moment.


Questions about smac-in-smax:

1) If I add the Algorithmic Enhancement ability back in to the game in the smac alphax file, will the AI use it? Hunter-Seeker seems too strong in base SMAC.

2) Is there a way to add back in the SMAX alternative native units?

Offline Tayta Malikai

Re: SMACX Thinker Mod
« Reply #381 on: October 23, 2019, 08:12:53 AM »
G'day. I've been playing a few games with this mod, trying it out with the SMAC and Sigma factions, and the improvement in the AI's performance is like night and day. Excellent work.

Other people have covered most of the issues I have, so I'll just mention a few.

There is a major bug in Thinker: the orbital attack view in F6 menu does not work properly. The faction and target selection appears normally, but when you press the "ATTACK" button, nothing happens - the code to process the attack doesn't get called. This is pretty bad when I have a force of planet busters ready and I want to take out my enemy's defense pods before I launch.
It's a simple workaround to just load the save in the default terranx.exe, make your attacks, and then switch back to Thinker, but having a vanilla mechanic be straight-up broken isn't great.
(Incidentally, it turns out that ODPs intercept PBs everywhere on the map, not just against the owner's units.)

Speaking of satellites, I've noticed in my games that only one AI tends to build them, both SMAC and Sigma. In my Sigma game, by 2289, Navarro had 10 of each, and Fedorov had only built a single ODP. They were both at war for most of the game, so it could be that Fedorov's build orders prioritized more units to defend himself.
Given that the AI benefits a lot more from satellites now due to having many bases, they really should build more.

Another thing the AI could do with is some better defenses. They already build a lot of sensors, AAA defenders, and some Aerospace Complexes; but not many of their bases had Perimeter Defenses, and they built zero Tachyon Fields despite having the tech for many turns. I think they should especially prioritize building the latter as they become available: they will help to blunt the impact of the player going all-out on the chop-and-drop.
(Ideally defenses would be buffed across the board, but that's out-of-scope for Thinker.)

Lastly: the AI does not react to an Economic Victory being triggered, making it simple to win just by hitting next turn 20 times (although Econ Victory is so painful that this will not be relevant very often). Both Navarro and Fedorov were building the Ascent to Transcendence, but it would have been trivial for me to stop them by nuking their bases.
They also had Planet Busters built, but never used them despite the charter being repealed. This may be a function of their aggressiveness settings (both had 0).
It would be nice if the AI could somehow adjust its tactics and strategy in response to these events. I'm not sure what rules should be used to make that happen, though. At the very least, it should attempt to nuke your HQ and/or project bases if it detects you are nearing victory (and, obviously, you are not pacted with them - treaty is debatable).

I realize this is a lot, so I just want to say thanks again for all your hard work. Thinker mod has really given new life to the game for me.
« Last Edit: October 23, 2019, 10:11:37 AM by Tayta Malikai »

Offline Induktio

Re: SMACX Thinker Mod
« Reply #382 on: October 26, 2019, 10:03:15 PM »
Time to post a new develop build of Thinker (20191026). Time allocation for this project vs. other stuff I've been doing has been problematic, but nevertheless today's update changes a couple of things:

* Fix long-standing bug where AI sometimes ignores undefended enemy bases next to them (reported by DrazharLn)
* AI should now rebuild HQs faster than was the case before
* revised_tech_cost values are increased from the previous version, difficulty scaling is also modified

For AI factions, each unit of cost_factor applies a 10% bonus/penalty. 10 = 100% of human cost on Talent/Librarian level.

For human factions, difficulty level applies a multiplicative modifier based on this list:
(click to show/hide)

The baseline tech cost function is also changed to the form: 3 * Level^3 + 117 * Level. All other modifers are applied on this number to determine the final tech cost. With these settings, AI bonuses shouldn't differ too much from the values in the vanilla tech cost formula.

Offline Induktio

Re: SMACX Thinker Mod
« Reply #383 on: October 26, 2019, 10:23:51 PM »
> If I add the Algorithmic Enhancement ability back in to the game in the smac alphax file, will the AI use it? Hunter-Seeker seems too strong in base SMAC.

I can't say for certain without testing, but it might work. At least design_units planner will attempt to add the enhancement feature if it is just available.

> Is there a way to add back in the SMAX alternative native units?

That would require some kind of new binary patching, so it's not available for now.

> At least with ground units they make aggressive moves, even if they often leave them vulnerable.

That's great to hear. At least the AI is supposed to be making more attacks with the new land-based combat AI. But as you can imagine, air unit handling is still just the vanilla AI, so it is what it is. Some air units are just inherently overpowered when micromanaged properly, so in the end I'm not sure what could meaningfully be done there.

> There is a major bug in Thinker: the orbital attack view in F6 menu does not work properly.

I couldn't verify this bug at all. Is it maybe related to some game settings or maybe smac_only mode?

> Speaking of satellites, I've noticed in my games that only one AI tends to build them, both SMAC and Sigma.

That's also strange. Usually all of them should start building satellites as soon as they get the prerequisities, so not sure what might be happening there. Would need a save game to look at.

Offline Tayta Malikai

Re: SMACX Thinker Mod
« Reply #384 on: October 27, 2019, 01:00:49 AM »
>I couldn't verify this bug at all. Is it maybe related to some game settings or maybe smac_only mode?
I turned off smac_only mode, and I was indeed able to shoot down satellites again. Some sort of binary weirdness?

>That's also strange. Usually all of them should start building satellites as soon as they get the prerequisities, so not sure what might be happening there. Would need a save game to look at.
No problem. Here are all the saves I kept from that Sigma game. Uses the latest Sigma factions (included for completeness).
Navarro starts to build satellites sometime between 2240 and 2251. Fedorov built his single ODP around 2283 to 2286.
Mind you, those two were at war for almost the whole game...

Re: SMACX Thinker Mod
« Reply #385 on: October 29, 2019, 12:38:14 AM »
Hi, Induktio.
Nice to see you are still on it and released new version while I was away.

Blunt question. Did you manage to encourage AI to equip units with Soporific Gas Pods?

Offline Induktio

Re: SMACX Thinker Mod
« Reply #386 on: October 29, 2019, 05:53:20 PM »
> I turned off smac_only mode, and I was indeed able to shoot down satellites again. Some sort of binary weirdness?

Okay, this issue is confirmed now. Having smac_only enabled seems to break the orbital attack selection. Probably it's some kind of a binary issue since enabling that flag toggles a bunch of stuff in the binary. It's possible this issue has been discovered earlier since Yitzi et al. did some modding using this same flag to toggle the smac-in-smacx thing. Let me know if anyone has info on this.

> Navarro starts to build satellites sometime between 2240 and 2251. Fedorov built his single ODP around 2283 to 2286.

Not sure about this one. Having lots of wars with nearby neighbors might also mess up the build queues somewhat. In the previous version, the priorities were tweaked to emphasize unit production when there are enemies nearby.

> Blunt question. Did you manage to encourage AI to equip units with Soporific Gas Pods?

I haven't changed anything in that regard. Design_units planner will only create a couple of custom units which will not have that capability.

Re: SMACX Thinker Mod
« Reply #387 on: October 29, 2019, 06:29:09 PM »
> Blunt question. Did you manage to encourage AI to equip units with Soporific Gas Pods?

I haven't changed anything in that regard. Design_units planner will only create a couple of custom units which will not have that capability.

Pardon my ignorance in this area. Does AI design custom not predefined units at all? If so, how adding different abilities and other features is controlled in general? Is it just random or in response to the game state? Could it be that frequency of adding features is controlled by each feature individually? Like Soporific Gas Pods just turned out to be off all the time?

Offline Induktio

Re: SMACX Thinker Mod
« Reply #388 on: October 30, 2019, 05:26:50 PM »
> Does AI design custom not predefined units at all?

Eh? I mean it should be obviously visible the AI designs some custom units, when new garrison units and so forth appear on their prototype lists.

> If so, how adding different abilities and other features is controlled in general?

The game binary has its own complicated functions that decide what kind of prototypes are created. Apparently soporific gas pods and some other abilities are not on their list. Just to clarify, design_units is a completely separate feature from the game binary's prototype creator. It just creates a couple of extra prototypes that the vanilla binary does not do. If somebody wants to reverse how the vanilla binary designs the prototypes, then be my guest.

Re: SMACX Thinker Mod
« Reply #389 on: October 31, 2019, 12:09:54 AM »
Ah, one more thing I wanted to ask. Sorry, if I asked this already.

Did you tweaked unit cost calculation? There is one rule in unit cost calculation that sets attack value to 1/2 of armor value for cost calculation purposes only. I understand it stems from previous civilization versions where all defensive units have attack value at least half of their defense. I guess AC designers wanted to encourage players to follow the same unit design. However, cost formula multiplies attack and defense. Thus making defensive unit cost growing quadratically by its defensive value even if you don't invest in their attack value. And there is no way to make it less expensive!!! Whereas attack unit cost with minimal defense growths linearly proportionally to their attack value (as anyone would expect).

Would you mind dropping this rule if you are able and willing to? Thank you.

 

* User

Welcome, Guest. Please login or register.
Did you miss your activation email?


Login with username, password and session length

Select language:

* Community poll

SMAC v.4 SMAX v.2 (or previous versions)
-=-
24 (7%)
XP Compatibility patch
-=-
9 (2%)
Gog version for Windows
-=-
103 (32%)
Scient (unofficial) patch
-=-
40 (12%)
Kyrub's latest patch
-=-
14 (4%)
Yitzi's latest patch
-=-
89 (28%)
AC for Mac
-=-
3 (0%)
AC for Linux
-=-
6 (1%)
Gog version for Mac
-=-
10 (3%)
No patch
-=-
16 (5%)
Total Members Voted: 314
AC2 Wiki Logo
-click pic for wik-

* Random quote

The happy life is thought to be one of excellence.. now an excellent life requires exertion, and does not consist of amusement. If Eudaimonia, or happiness, is activity in accordance with excellence, it is reasonable that it should in accordance with the highest excellence, and this will be that of the best thing in us.
~Aristotle 'Nichomachean Ethics', Datalinks

* Select your theme

*
Templates: 5: index (default), PortaMx/Mainindex (default), PortaMx/Frames (default), Display (default), GenericControls (default).
Sub templates: 8: init, html_above, body_above, portamx_above, main, portamx_below, body_below, html_below.
Language files: 4: index+Modifications.english (default), TopicRating/.english (default), PortaMx/PortaMx.english (default), OharaYTEmbed.english (default).
Style sheets: 0: .
Files included: 45 - 1228KB. (show)
Queries used: 39.

[Show Queries]