• Hello and welcome to MSFC. We are a small and close knitted community who specialises in modding the game Star Trek Armada 2 and the Fleet Operations modification, however we have an open field for discussing a number of topics including movies, real life events and everything in-between.

    Being such a close community, we do have some restrictions, including all users required to be registered before being able to post as well as all members requiring to have participated in the community for sometime before being able to download our modding files to name the main ones. This is done for both the protection of our members and to encourage new members to get involved with the community. We also require all new registrations to first be authorised by an Administrator and to also have an active and confirmed email account.

    We have a policy of fairness and a non harassment environment, with the staff quick to act on the rare occasion of when this policy is breached. Feel free to register and join our community.

Star Trek Armada Classic Modding

Chiletrek

Warriors from Fluidic Space
Staff member
Forum Moderator
Toaster
Joined
22 Oct 2006
Messages
3,477
Age
42
Hello:
So it is a counter then, awesome :thumbsup:
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
yessir! if anyone wants to reach out to me on discord, let me know.. ill be more than glad to chat. Im messing with K_Merse's Evolution mod right now... might integrate some of it into my Roots Mod
 

Jetfreak

Filipino Expat
Staff member
Forum Moderator
Seraphim Build Team
Master of Art
Joined
22 Mar 2008
Messages
2,564
One more question, there was this talk of build-limits on FO, can it be done in Classic as well?
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
Build limits being limiting how many ships you can build? Yep! Implemented in the 1.2 5 patch for classic A2, I believe. Check out the capital ships in Art of War or Future Wars for the code line, I don't remember it off the top of my head

EDIT: maxBuildableNumber = 1
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
Also if you are running off of the 3.2.7 version of FleeOps, you can implement build cap lists as well... so you can create custom lists as well
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
@CptBenSisko No biggie on the warp issue, its just a heads-up for the instant action warp disabled command. Everything else is super smooth. I can finally call some Descents and Odysseys during battles. :)

For the AI, its pretty much carry-on with your files Rifraf. I just added a few lines of code for my modded ships.
I wonder if warp is disabled in FO by means of the physics files rather than a game or map setting? That might be the issue (if that is indeed what's happening)
 

Jetfreak

Filipino Expat
Staff member
Forum Moderator
Seraphim Build Team
Master of Art
Joined
22 Mar 2008
Messages
2,564
Really is it just simply adding maxbuildablenumber = x to a ship odf?

And is the build cap lists a separate file as well?
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
Really is it just simply adding maxbuildablenumber = x to a ship odf?

And is the build cap lists a separate file as well?
In A2 patched to 1.2.5, yes. I don't know if that same code works in FO or how it would interact with the warp-in system.
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
Really is it just simply adding maxbuildablenumber = x to a ship odf?

And is the build cap lists a separate file as well?
maxbuildablenumber was from FO 3.0.5 i believe.. when they went to 3.1.0 or 3.2.7 came out, they went to actual buildcap lists
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
Anyone else tried using a scripting language to make modding more modular? I've been playing with it for a while and this is what my Romulans have so far. All I have to do now to add a ship to the game is get the files in the folder structure, add one line to a batch file, then add the file to a shipyard. Still trying to automate that last part but it's made progress on starting over on a mod so much easier
 

Attachments

  • FOScreenShot_200509_123830.png
    FOScreenShot_200509_123830.png
    898 KB · Views: 14

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
yeah, it can be painful having to start over.. but I usually have had decent luck.. although when I got back into modding a few months ago, the idea of starting over was daunting because my personal mod simply wouldnt load.. or some times it would.. and others it wouldnt.

Plus I found a really nice FO based mod called Roots that was simple, yet took advantage of all the FO assets at the same time.. So that made i a lot easier for me to get started again..
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
Has anyone had any luck adding a new race to FO Classic? I'm trying to figure out the absolute bare-bones minimum I need to get a new race into the game, and I'll branch out from there, but I'm not sure where to find tutorials on adding a new race
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
I would say, start with an existing race file... and copy all of their files, gui, configs, etc.. and use an existing ship to see if it loads into the game. if it does.. you have a start and can branch out from there..
 

Jetfreak

Filipino Expat
Staff member
Forum Moderator
Seraphim Build Team
Master of Art
Joined
22 Mar 2008
Messages
2,564
Has anyone had any luck adding a new race to FO Classic? I'm trying to figure out the absolute bare-bones minimum I need to get a new race into the game, and I'll branch out from there, but I'm not sure where to find tutorials on adding a new race

Yeah, I was able to add the Dominion as a race in FO Classic. Pretty much the same as Stock A2, except some of the old GUI mods won't work as intended. I used the Vulcan GUI as my Dominion interface, and there's a few boo-boos.

Otherwise, the race seems stable in Instant Action matches. AI runs normal, and no major crashes so far.

I used the old reliable Starbase 34 tutorials: https://sites.google.com/a/starbase34.net/tutorials/modding-your-odf-s/adding-a-race-to-the-game
 

Attachments

  • founderoops.png
    founderoops.png
    969.1 KB · Views: 11

Terra_Inc

MSFC's Cheshire Cat
Staff member
Site Manager
Necromancer/Troll hunter
Kitten Commander
Joined
16 Dec 2009
Messages
3,137
Age
34
I would say, start with an existing race file... and copy all of their files, gui, configs, etc.. and use an existing ship to see if it loads into the game. if it does.. you have a start and can branch out from there..

Yep, I would do it like that, too. Shouldn't be too hard. If you get a weird bug or crash at any point, the FO Guide on their website has a useful checklist to help determine the cause. Remember to also expand the A2 editor menu with your new content, it's easily done and helps with testing stuff.
 

Freyr

A2files Staff/ A2 Upgrade Project leader
Joined
30 Jan 2008
Messages
33
That was fun. I miss it and have been getting the itch to get back into modding again. Have you by chance figured out anything to make the AI play any better, like a big Ah Ha moment?

The biggest weakness of the AI is actually coded into the ODF's. The line "attackPower 0.5" needs changing to "attackPower = 1.0" on all turrets and starbases. It not having this means that the AI discounts the strength of bases by 50%, and therefore underestimates what's required to destroy them by this amount, leading to the AI always undercommitting forces to any starbase or turret assualt and pointlessly losing loads of ships.

Also, ensure that the "intrinsicValue" is appropriately set on strategic targets so the AI knows what's worth attacking strategically.

If this is sorted out then the AI can actually be capable of some near human tactics. My favourite moment was when an AI warped into a mass of turrets and starbases and then promptly realised, turned around and did a long loop around this line of defences to shoot up what they were defending.

I then sent a fleet to stop them, and the AI's fleet then promptly legged it when my fleet showed up, just as a human would do instead of doing a "let's pointlessly fight to the death" as the AI does out of the box.

AIP's only get you part of the way, ODF modding is just as important as a good AIP.
 

Rifraf

I know just enough to be a danger to myself
Joined
25 Aug 2013
Messages
1,236
Age
51
Holy Cow, Freyr is still around. Awesome. I think you pioneered the attackPower = 1.0 setting back in the day. You helped teach me all about the AI and I have printed out and utilized a ton of your old posts from over at FF over the years. Over the years I've played close to 100 games just in testing AI and all those personality parameters and making notes. I still have a long way to go as I find it fun and equally frustrating when the AI does something different than what you'd expect.
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
The biggest weakness of the AI is actually coded into the ODF's. The line "attackPower 0.5" needs changing to "attackPower = 1.0" on all turrets and starbases. It not having this means that the AI discounts the strength of bases by 50%, and therefore underestimates what's required to destroy them by this amount, leading to the AI always undercommitting forces to any starbase or turret assualt and pointlessly losing loads of ships.

Also, ensure that the "intrinsicValue" is appropriately set on strategic targets so the AI knows what's worth attacking strategically.

If this is sorted out then the AI can actually be capable of some near human tactics. My favourite moment was when an AI warped into a mass of turrets and starbases and then promptly realised, turned around and did a long loop around this line of defences to shoot up what they were defending.

I then sent a fleet to stop them, and the AI's fleet then promptly legged it when my fleet showed up, just as a human would do instead of doing a "let's pointlessly fight to the death" as the AI does out of the box.

AIP's only get you part of the way, ODF modding is just as important as a good AIP.


Freyr!!! Whats up man!!!!! Holy Cow everybody is coming back!! Its becoming like 2008 all over again!. Any who... what should we set intrinsicValue to for important targets like starbases and turrets?
 

Chiletrek

Warriors from Fluidic Space
Staff member
Forum Moderator
Toaster
Joined
22 Oct 2006
Messages
3,477
Age
42
Hello Freyr:
Those little lines of coding are very understimated, for what it seems, I should have known better :thumbsup:
 

Freyr

A2files Staff/ A2 Upgrade Project leader
Joined
30 Jan 2008
Messages
33
Holy Cow, Freyr is still around. Awesome. I think you pioneered the attackPower = 1.0 setting back in the day. You helped teach me all about the AI and I have printed out and utilized a ton of your old posts from over at FF over the years. Over the years I've played close to 100 games just in testing AI and all those personality parameters and making notes. I still have a long way to go as I find it fun and equally frustrating when the AI does something different than what you'd expect.

I'm happy that you've made good use of what I helped teach you, and via bits you've been able to find.

To be fair, I think that at this point it is quite likely that you know just as much as I do on the AI these days!

Freyr!!! Whats up man!!!!! Holy Cow everybody is coming back!! Its becoming like 2008 all over again!. Any who... what should we set intrinsicValue to for important targets like starbases and turrets?

I tend to pop my head in now and again just to see what's going on, but generally I don't have much reason to get involved. Discussing modding the AI though? I can't resist. ;)

The attack power is a modifier of the shield value. Basically, this needs changing to (at least!) 1.0 on stations, and if you've got modded in ships that are exceedingly powerful then they ought to have a large multiplier so the AI knows how dangerous the ships are.

My personal view with the intrinsicValue is that it should be set to zero for Starbases and turrets on the basis that neither starbases or turrets are important strategic targets. They are important tactical bits of defenses, but are of basically no strategic value if they are destroyed.

Remember that the only way an AI knows how important a target is comes via intrinsicValue. If this is set at 1 and you put an undefended dilithium mine in one area, and fill another with 20 turrets then scored at 1 each the dilithium mine has a strategic value of 1, and the 20 separate turrets have a combined value of 20. Hence, the AI would consider the turrets it's priority target if they have an intrinsicValue.

In my view resource mining operations are important targets. Tech buildings are important targets, and shipyards. Ideally, I prefer my AI's to avoid turret heavy areas and shoot up lightly defended areas that it can win in, so if you set the intrinsicValue to zero for defenses then the AI would (in my example above) shoot up the undefended mining stations instead of suiciding a fleet into a pile of turrets.


Hello Freyr:
Those little lines of coding are very understimated, for what it seems, I should have known better :thumbsup:

I think they are. It's surprising just how much difference changing them makes to the AI, although it's also worth reading the AIP comments from the original developers in example.aip (and random comments in other files) as their comments are pure gold when it comes to understanding the AI.
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
Hey, two questions:

1) Does anyone know if there is a setting that will reduce the cacophony of noises you get on loading a game in A2 Classic? Like is there a play distance setting or something for audio?

2) Got a new race slowly starting, but for some reason, the selection bubbles around all of my targets are square (or the default, busted/missing SOD). Anyone know what I need to change to fix this? Thanks!
 

Rifraf

I know just enough to be a danger to myself
Joined
25 Aug 2013
Messages
1,236
Age
51
Hey, two questions:

1) Does anyone know if there is a setting that will reduce the cacophony of noises you get on loading a game in A2 Classic? Like is there a play distance setting or something for audio?

2) Got a new race slowly starting, but for some reason, the selection bubbles around all of my targets are square (or the default, busted/missing SOD). Anyone know what I need to change to fix this? Thanks!
Is this for stock A2 or a mod in FO? As for 1) In the audio.odf you have to play with the values: Here's what I used in the 2014 Upgrade Project mod:

// Primary buffer sample play rate, should match wave files
// for optimal performance.
sampleRate = 22050 //44100
// Primary buffer bits per sample, should match wave files
// for optimal performance.
bitsPerSample = 16
// Meters per unit for 3D sound environment.
distanceFactor = 1.0 //0.01
// Doppler effect factor, 1.0 being real world doppler.
dopplerFactor = 0.01 //1.0
// Rolloff factor, 1.0 being real world rolloff.
rolloffFactor = 0.1 //0.15
// Distance settings for controlling attenuation.
minimumDistance3D = 100 //50.0
maximumDistance3D = 100000.0 //100000000 //2000.0
// Length (size) of the stream buffer, in seconds
streamBufferLength = 2.0
// How many sections to split it up into for streaming reads.
streamBufferSections = 2

You may also have to play with sound settings in the asteroid and nebula odf's. Here's a sample from my asteroid.odf's:

ambientMinimumFactor = .2
ambientMaximumFactor = .6

As for 2) it sounds like you're missing the texture for the selection reticle picture and related odf? I could be wrong, but I ran into that when I used the FO selection graphic in my mod.
 

dvatreknerd314

Lieutenant, Junior Grade
Clone Force 99
Joined
31 Jul 2012
Messages
1,373
Age
32
As for 2) it sounds like you're missing the texture for the selection reticle picture and related odf? I could be wrong, but I ran into that when I used the FO selection graphic in my mod.

It's for A2 Classic mod for FO, hence why it's in this thread.

And what is this texture you're referring to?
 

Jetfreak

Filipino Expat
Staff member
Forum Moderator
Seraphim Build Team
Master of Art
Joined
22 Mar 2008
Messages
2,564
Freyr!!! Whats up man!!!!! Holy Cow everybody is coming back!! Its becoming like 2008 all over again!. Any who... what should we set intrinsicValue to for important targets like starbases and turrets?

Yup, we're all starting to look like *The Expendables* up in here. :)

I've always wondered how this would turn out and maybe its been answered before. But about the AI, what happens if all the ships/stations have the same value.

attackPower = 0.5f
intrinsicValue = 0.5f


If I put the same value for all ships on a match, how would the AI react and which object would it shoot first since everyone is 0.5?


@dvatreknerd314
I know the feeling, my first impression of STA2C was a lot noisier than stock for some reason. For my case, I just straight up deleted the planet, nebula and asteroid sounds altogether. Just delete or move the following files:

mafield_am, mblkhole_am, msnebam, msnebl, msun_am
pb_clssd_am
(do the same for all planet sounds)

The missing cursor issue, I was able to fix by grabbing them from the FO SOD directory. I've attached my copies here.
 

Attachments

  • selectsods.rar
    3 KB · Views: 1

Freyr

A2files Staff/ A2 Upgrade Project leader
Joined
30 Jan 2008
Messages
33
Yup, we're all starting to look like *The Expendables* up in here. :)

I've always wondered how this would turn out and maybe its been answered before. But about the AI, what happens if all the ships/stations have the same value.

attackPower = 0.5f
intrinsicValue = 0.5f


If I put the same value for all ships on a match, how would the AI react and which object would it shoot first since everyone is 0.5?

You'd end up with an AI that was lobotomised.

Having an intrinsic value for every ship and station would mean the AI wouldn't know what was strategically important and what wasn't. As a result on a strategic basis so it wouldn't know what targets were important and which it could ignore so it'd always attack the largest concentration of things on the map and would ignore lone undefended mining stations etc.


As to attack power, this is a quote from example.aip, which is well worth a read through carefully.

"A goal will only be executed if ships with enough force have been committed to the goal. The amount of force committed to a goal is calculated by the total maximum shield strength of each craft multiplied by the attack_power of the craft. This force amount must exceed the same computation of enemy ships in the cell times the min_matching_force_ration set in the AIP. For example, if the ratio is set to 0.8, then only goals in which the AI can match 80% of the enemy threat will be executed."


Ie; the computer considers a Starbase to be 6000 * 0.5 attackPower = 3000.
A Borg cube is 1400 * 1 = 1400.

A 0.8 force matching ratio means that it considers that two cubes are overkill for taking a starbase.

ie; starbase at 6000 *0.5 = 3000 value * 0.8 = 2400. Two cubes at 1400 are 2800. I always used 6 battleship class ships with the expectation of losing 4, with no other support for the starbase.

If the ODF's have a attack power of 1, then the AI's attack rating would be 6000 * 1 = 6000, and if attacking with borg cubes at 1400 * 1 then with a force matching ratio of 1 then the AI wouldn't attack unless it thought it had sufficient strength to do so, which would be totting up 1400 until it exceeded 6000, which would result in an attack force of 5 borg cubes. This would be just enough to take the starbase. Losses would be messy, but it'd get it done.

In stark terms, putting the attackPower at 0.5 for everything results in an AI that is by design utterly incapable of tactical evaluation of any battle. It'd toss ships in more or less at random, and the only way of even making it somewhat challenging would be to make it build twice as fast at half the cost. Even then the AI would be happily throwing ships into turrets it considered to be half as powerful as they in fact were so it'd probably just be providing a bunch of targets for the player. It wouldn't stand any realistic possibility of winning unless it was so blatantly cheating that it was absurd.

For general reference, from memory my Merciless AI played with all of it's constraints set at the level of the human player with no speed or cost advantages. It was able to do this because it didn't suicide every ship it built at every opportunity and did only attack things worth attacking when it had a realistic prospect of winning a battle.

It was of course far from perfect, but while most people could do a 7v1 against an original "hard" AI with a reasonable prospect of winning I recall quite a few of my beta testers candidly admitting that the Merciless AI had killed them off in 1v1's, and even experienced players who knew every trick in the book struggled to do a 4v1 because as soon as you'd built an attack force capable of taking one of the AI's and you went for it, all of the other AI's would realise your base was undefended and attack your base, forcing the attack force to return to base.

In other words, it was good because it was playing like a human player. A stubbornly stupid human player perhaps, but that was radically better than the original AI. If your writing an AI and going down the path of making it play like a human then it needs the ODF's set to give fair evaluations of what it's fighting to stand a reasonable chance of playing well.
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
So basically, a mining station should have a decent intrinsic value (1.0 or 2.0).. while ships and defense stations should have higher overall attackpower.
 

Freyr

A2files Staff/ A2 Upgrade Project leader
Joined
30 Jan 2008
Messages
33
In my opinion, yes.

Though in my opinion the attackpower should always be 1.0 on anything that's armed unless it's got huge firepower and weak shields. (since the attackpower is just a modifier of the shield strength in this case it ought to be higher to let the AI know it's more dangerous)

Anything unarmed (mining stations, shipyards, freighters etc) could have the attack power set to zero to avoid the AI looking at a bunch of mining stations and shipyards and being scared off by the combined strength of the shields. (since the AI is utterly unaware of weapons power unless you tell it by setting the AttackPower)

If you put the attackpower at 2 on a starbase then the AI would think it needed 10 cubes to take the starbase instead of 5, and doing this on everything would generally lead to it being quite cowardly in picking fights.
 

CptBenSisko

The Emissary
Joined
2 Feb 2010
Messages
611
according to the FLOPS site.. attackpower also considers maxhealth as well so its maxshields+maxhealth = xxxxx / attackpower...

So for example.. I have my Galaxy Class in my mod... And I want it to be a primary target... so I gave it a higher attackpower so as to lower the shield strength modifer. That way it gets targeted first instead of some of the weaker ships... Is my thinking correct?

Galaxy 7962 total (shields+hull) / 6.1 = 1305.
Saber 1326 total (shields+hull)/1 = 1326

By this math.. if presented with two targets... the AI should attack the Galaxy Class first.. unless a random shot hits the Saber and its total health drops below the Galaxy.. then it will switch to the Galaxy
 

Freyr

A2files Staff/ A2 Upgrade Project leader
Joined
30 Jan 2008
Messages
33
according to the FLOPS site.. attackpower also considers maxhealth as well so its maxshields+maxhealth = xxxxx / attackpower...

It's not in the stock A2, but they may well have changed this from the A2 default in FleetOps.

So for example.. I have my Galaxy Class in my mod... And I want it to be a primary target... so I gave it a higher attackpower so as to lower the shield strength modifer. That way it gets targeted first instead of some of the weaker ships... Is my thinking correct?

Quite honestly, I don't know. I didn't bother worrying about the AI's precise tactical targeting criteria. My personal working assumption is that the AI just sends ships on maximum movement autonomy to the general area and then it's just down to more or less pot luck as to what they target.

Galaxy 7962 total (shields+hull) / 6.1 = 1305.
Saber 1326 total (shields+hull)/1 = 1326

By this math.. if presented with two targets... the AI should attack the Galaxy Class first.. unless a random shot hits the Saber and its total health drops below the Galaxy.. then it will switch to the Galaxy

The only place I know that math is used is in strategic analysis of where to send ships. I don't know what it does when they get there. All I can say for sure is that it's going to mean that the AI will send less ships than it should because it's been told a Galaxy has the same combat power as a Sabre does.
 
Top