Page 1 of 1

AI Technology

Posted: Sat Jun 19, 2010 11:21 am
by redhat1968
I understand that the AI advances in leaps and bounds, but what I came across is a little ridiculous. In my personal Mod, I have adjusted the effects of research down dramtically to better appreciate each ship starting with the NX class, then the Daedalus, then the Constitution, etc... However, as the Feds, I recently bought off the Miradorns after several tens of thousands of credits. The Feds had Tech 1 or 2 buidings and the Miradorns had Tech 9 level buildings.

Is there anyway to dramitically slow down the advancement of the AI minors as well?

Posted: Sat Jun 19, 2010 5:21 pm
by Chernabog
Hi,

Take a look at this post viewtopic.php?name=Forums&file=viewtopic&t=13

Looks like you will need to do some hex editing...

Alternatively you can just disable all of the upgrade structures and change the way structures/upgrades etc work in the first place, negating the differences between minor and major races... takes ages though (but I have managed to do it in my mod :) ).

Regards,

C.

Posted: Sun Jun 20, 2010 6:33 am
by Gowron
Fastest way would probably be to increase the advancement delay factor at position 0x177338 in trek.exe.

(position 579538 in assembler)

viewtopic.php?name=Forums&file=viewtopic&p=12145#12145

The default value is
55 55 55 55 55 55 D5 3F
(that's 1/3)

Change that to
00 00 00 00 00 00 F0 3F
for example. This would make minor races grow at 1/3 speed compared to the original game.

Or change it to
00 00 00 00 00 00 00 40
to make minors grow at 1/6 speed.

Thanks for the help, but still need help with Oribital Bats

Posted: Wed Jun 23, 2010 11:31 am
by redhat1968
Based on Gowron's link and DCER and Flocke's posts, I was able to Hex Edit some of the values to successfully limit the AI's Growth. However, Orbital Batteries are still a problem.

I did some testing by giving my Tech 1 Scout and Transport ships Long Range and 3 Speed and a cost of 1. I then built 9 of each and proceeded to the closest minor race, in this case, the Naucicans. On Turn 22, they had 84 Orbital Batteries which given the weak ships of the Tech 1 time frame is 18 ships guaranteed destroyed during a planetary assault.

Based on the advice that Flocke gave back in 2009, I eliminated the loop at ASM call 4522F0 which after restarting the game from Turn 1, reduced the OBs from 84 to exactly 1 per turn.

The Feds can usually buy off a minor, even a warlike one like the Naucicans, but the Klingons or Cardassians rely on conquest and there is no possible way to build enough ships to overcome the OB disadvantage.

In the last year, has there been any success limiting Minors from building OBs to let's say, one every ten turns, so a successful, but still challenging, early invasion can be attempted.

Would it be possible to rewrite the code to divide the number of OBs by 10 so instead of 22 OBs on Turn 22, the minor would have a more reasonable 2 instead. I have limited Hex Editing ability and no ASM experience. Flocke said there was a little room for code rewriting and I was curious if anyone had thought of this or any other idea recently.

Otherwise, has the damage that an OB does been decyphered. That way, Tech 1 ships might be able to survive against 20 orbitals or Tech 10 ships against 200 OBs.

Flocke, for testing purposes in the mean time, how many nops need to be added at 45216C to completely eliminate the AI's ability to build OBs. If I am looking at the correct spot, there are 11 Bytes of data before a couple of bytes of 00.

Posted: Thu Jun 24, 2010 3:59 am
by stardust
A point about the Orbital Batteries. You or the AI can build as many as you like but if you or the AI haven't build enough energy structures to power them all at once then only the ones that are powered will attack you on each turn, so don't let an eye watering number of the things put you off trying to invade ;)

For example. I have fifty orbitals but facilities to power ten. Ten will open fire if I'm attacked and will likely be destroyed if the AI are strong enough.

Next turn I'll have another ten out of the forty I have left powered up assuming the AI haven't destroyed some or all of my energy structures next turn and so on until either they give up and get destroyed or I lose the colony.

Re: Thanks for the help, but still need help with Oribital B

Posted: Fri Jun 25, 2010 7:55 am
by Flocke
redhat1968 wrote:how many nops need to be added at 45216C to completely eliminate the AI's ability to build OBs.
Hi redhat, replace E8 7F 3C FF FF by nops, you'd easily see this when using OllyDbg. Same for IDA when selecting the call and switching to hex view.

However, there have still been unsolved upgrading issues that need asm investigation (especially debugging which I didn't get to work on my machine at that time and still is quite problematic for me).
I figured that on each upgrade all normal structures first get scrapped and then replaced by new ones and have been able to decrypt the general code structure as described in an earlier post, but didn't figure how to set the count and type to e.g. build them explictly so the whole routine could be rewritten.
The last attempts I've made, the ai sometimes switched the race to which the buildings belong (each major has a different building set) causing them not to scrap the ones they've build before. Moreover ai began to build countless low-level structures replacing their previous high-level ones and also I often encountered the bug when ai just scraps their buildings (e.g. the factories).
I think also population advancement and ship building partially have been troublesome.
Maybe there are even more issues I just don't remember or haven't noticed at all.

Rewriting the orbital buildup seems to be an easier part cause there's an explict call to build one single orb that can be looped as often you want.

Good luck to you. :)

Edit: Btw, for adjusting the orb's strength and power you can use ue as far I know. :roll:

Posted: Fri Aug 20, 2010 10:38 am
by redhat1968
Gowron wrote:Fastest way would probably be to increase the advancement delay factor at position 0x177338 in trek.exe.

(position 579538 in assembler)

viewtopic.php?name=Forums&file=viewtopic&p=12145#12145

The default value is
55 55 55 55 55 55 D5 3F
(that's 1/3)

Change that to
00 00 00 00 00 00 F0 3F
for example. This would make minor races grow at 1/3 speed compared to the original game.

Or change it to
00 00 00 00 00 00 00 40
to make minors grow at 1/6 speed.
Although I understand Hex editing and have the program, I am horribly inept at comprehending ASM programming. The problem is, in my latest game, I encountered the Gorn, Bolians, and Vulcans all in a cluster when I was only on tech level 2. They all had tech level 9. I quickly bought them all off and when I encountered the Dominion, I sliced through there territory like butter. I would like to slow the minors Tech level down even further. I know Hex Code 40 = Dec 64.

What would it take to make them grow at 1/8 Speed or 1/10 Speed, for example?

Thanks for any help you might offer.