Roots Mod 2.0 is out, including single player!

I want my 15 rapid-fire quantum torpedo launchers Uber-Defiant now! - Get help from modders. Share your work. Discuss modifications.
1, 2, 3
posted on April 12th, 2022, 12:15 pm
Last edited by JanB on May 9th, 2022, 5:43 pm, edited 1 time in total.
It's been a labor of love, but it's finally done: version 2.1 of the Roots Mod can be downloaded here: https://www.moddb.com/mods/fleet-ops-ro ... s-roots-21

This version of the mod brings many fixes and improvements, including 3 original single player campaigns with a total of 16 missions.

To play you do need a valid Armada2.exe, which you can get by buy buying Armada II on GOG.com, but using a dic version copy will also still work, same as with stock Fleet Ops.

Enjoy!
posted on April 12th, 2022, 9:15 pm
Sweet! I'll definitely be checking this out. Is it alright if I post the link in the Discord mod download channel?
posted on April 13th, 2022, 7:55 am
Tryptic wrote:Sweet! I'll definitely be checking this out. Is it alright if I post the link in the Discord mod download channel?


Oh yes, of course!
posted on April 13th, 2022, 1:54 pm
Awesome, been looking forward to this. Thanks for the hard work!
posted on April 14th, 2022, 9:58 am
I've been playing through the missions (a bit slowly since I'm also studying the code XD)) and it looks really great. The cinematics in particular add a great feel to the game.

I did find a pair of bugs, I think. The mission "The Raptor's Wrath" gives me the objective for destroying the northern base when I destroy the southern base, and never seems to give me the southern base objective even when every enemy is destroyed. Also, the Sartan's hangar is missing its tooltip when you mouse over the icon.

As for gameplay, I do have one big concern and that's that the difference between scout vision/artillery ship range and station weapon range is so incredibly small, that artillery ships constantly fly into station range and die. This makes it so the ships that in theory counters stations, don't actually do so in practice. In Fleet Ops, stations only fire on the closest target and scouts have reduced target priority, which allows players to maneuver them a little but in Roots, both ships and stations automatically snipe scouts and artillery ships first. (note that the attackpower command controls targeting priority, while intrinsicvalue only affects where the AI considers you to have stuff on the map). Also note that in the case of starbases, the real range is 50-150 units "higher" than it is on paper because enemies must have to be in range of the center of the starbase to shoot at it, but the starbase can shoot when enemies are in range of its closest weapon hardpoint.

In TM I put a band-aid on this problem by making all stations unable to target scouts and artillery ships, although I'm considering just increasing artillery range again in the future and reverting this change.
posted on April 14th, 2022, 10:45 am
Tryptic wrote:I did find a pair of bugs, I think. The mission "The Raptor's Wrath" gives me the objective for destroying the northern base when I destroy the southern base, and never seems to give me the southern base objective even when every enemy is destroyed. Also, the Sartan's hangar is missing its tooltip when you mouse over the icon.


You're right about the hangar bay tooltip! I had that bug in the Raptor's Wrath once myself, in over a dozen playthroughs but I can't systematically reproduce it and the code in the mission script checks out, still, it's suspicious it happened to you on your first playthrough, so I'll check it again (I do remember this sometimes happening in stock A2 as well, so I can't promise it's fixable). The one time I had this happen I could save the game and then it gave me the victory as soon as I loaded that save game (mission scripts don't "remember" their state upon loading a save game, they run through all the code again, which is annoying when making these missions, but it comes in handy with bugs like these). I fI find a fix for this bug I'll upload a new version, it won't affect multiplayer compatibility anyway.

Tryptic wrote:As for gameplay, I do have one big concern and that's that the difference between scout vision/artillery ship range and station weapon range is so incredibly small, that artillery ships constantly fly into station range and die. This makes it so the ships that in theory counters stations, don't actually do so in practice. In Fleet Ops, stations only fire on the closest target and scouts have reduced target priority, which allows players to maneuver them a little but in Roots, both ships and stations automatically snipe scouts and artillery ships first. (note that the attackpower command controls targeting priority, while intrinsicvalue only affects where the AI considers you to have stuff on the map). Also note that in the case of starbases, the real range is 50-150 units "higher" than it is on paper because enemies must have to be in range of the center of the starbase to shoot at it, but the starbase can shoot when enemies are in range of its closest weapon hardpoint.


Hmmm... I'm definitely fine with starbases aggressively targeting artillery ships, after all, they are the biggest threat and I'm not sure there's much I can do about that anyway as in my testing the AI will simply fire first at the target with the least hull hitpoints (in my testing that dominated over shield hitpoints and attackpower), which an artillery ship often is. Artillery ships can definitely fire from outside a starbase's weapons range and in many missions I give the enemy line of sight on your starbase (using the custom visionbeacon.odf object I added) and their artillerty ships will still often get too close anyway, though not always, so it's not only about vision range.

In my testing I found that starbases could be fired at by regular 800 weapon range ships and not fire back. It seems the AI counts from the starbase's center, not from the weapon hardpoints, the long weapon range I set for base defenses is actually necessary to guarantee they will fire back at regular 800 weapon range ships. Curiously enough when another ship would get slightly closer they would sometimes start firing on both ships, also when you manually tell them to fire at the far target, but this is not feasible for base defense if you're not a Korean Starcraft player, let alone for the AI. Regular ships attacking base defenses is far more common, and on average comes with more firepower, than artillery ships firing from 800+ range, so I decided that was more important and a skilled human player can still use artillery ships properly anyway, though they have to be careful. Giving artillery ships 100 more range (as well as to the vision of scouts and sensor platforms), might be a slight fix to this. But it's a delicate balance and artillery ships will often rush in anyway, the AI is just dumb like that (my theory is the range at which a ship settles in for an attack is partially random and an artillery ship sometimes is assigned to a goal behind the perimeter defense line of a base).
posted on April 14th, 2022, 11:15 am
That's interesting about the starbase weapon hardpoints, I've never seen a long range station not fire on a long range ship, but I've never tested it either.

I do know a bit about the problem of stations not firing on things. It has to do with the ship's primary target, which is chosen based on rangescan.

If something is set to useprimarytarget = 0, it can target anything within range, but if it does use the primary target, it will not fire when that target is out of range. I think this behavior had something to do with ships told to attack an enemy, needing to chase after that enemy when it flees.

So theoretically, a station with useprimarytarget = 1 (the default) and rangescan 1100 can choose a primary target 1100 units away as its primary target, causing its 1000 range weapons to not fire on anything, even if other enemies move closer. This gun paralysis will be broken if the primary target moves closer or something causes it to retarget.

I know that the devs had very deliberately set most ships' rangescans to match their weapon ranges in 4.0 in order to hopefully improve some behavior, but I don't know if they made any underlying changes to the 4.0 targeting system along with this. I just remember it from a dev blog a decade ago XD

I've encountered this problem as I'm coding new Cubes with short, medium, and long range: if it primary targets an enemy outside of short range then the short range weapons stop firing, but the ship also won't move closer to that target since its other weapons are firing properly. It needs some babying as a result.

One thing I did observe, was that when an enemy station was revealed through what seemed to be a map trigger (at one point in Raptor's Wrath a big swathe in the bottom middle was revealed along with the two starbases of the southern dominion base), it did NOT allow my artillery ships to fire even when they were in range and given an attack command. When I moved my scout closer, they began firing, so there is something about rangescan that does not get provided from the scripted map vision effect.

EDIT: Regarding attackpower, it's really wonky. My understanding is that the game autotargets the enemy with the lowest (hull hitpoints / attackpower stat). So the Fleet Ops attackpower = 0.2 on scouts means that their hull hitpoints counts for 5x normal, causing them to not get targeted first, but not last either. A value of 0 causes something to never get auto-targeted unless there's nothing else around, but also equally with other attackpower = 0 targets, so civilian stations aren't targeted based on their hitpoints.
posted on April 14th, 2022, 11:44 am
Last edited by JanB on April 14th, 2022, 12:52 pm, edited 2 times in total.
Tryptic wrote:The mission "The Raptor's Wrath" gives me the objective for destroying the northern base when I destroy the southern base, and never seems to give me the southern base objective even when every enemy is destroyed.


I may have fixed this now. If I'm right it had something do with checking if all freighters are dead, which the script did in some circumstances but not all and then even if you eventually killed those freighters after killing everything else the "trigger" (in Megadroid's MMM it's called a "monitor") wouldn't fire again and complete the mission unless you saved and loaded the game. The fix makes it so the script doesn't count freighters as enemy ships at any point so you'll get the victory immediately even if there are freighters left.

Can you take the attached file, change the extension from .txt to .lua (otherwise this website doesn't let me send it) and put it in the \Data\missions folder of your installation and see if the mission ending then triggers correctly for a new game (of course feel free to make liberal use of the map editor to speed things up, like give yourself 10 Borg Cubes or something like that)?

EDIT: I've updated the 2.0 file on moddb to include this fix and a fix for the missing tooltip.

Attachments

TRW_DominionMonitor.txt
(14.38 KiB) Downloaded 49 times
posted on April 14th, 2022, 12:09 pm
Tryptic wrote:I do know a bit about the problem of stations not firing on things. It has to do with the ship's primary target, which is chosen based on rangescan.

If something is set to useprimarytarget = 0, it can target anything within range, but if it does use the primary target, it will not fire when that target is out of range. I think this behavior had something to do with ships told to attack an enemy, needing to chase after that enemy when it flees.

So theoretically, a station with useprimarytarget = 1 (the default) and rangescan 1100 can choose a primary target 1100 units away as its primary target, causing its 1000 range weapons to not fire on anything, even if other enemies move closer. This gun paralysis will be broken if the primary target moves closer or something causes it to retarget.


Hmmm, that's very interesting. All starbases do use cannonimp weapons, so they could be set to useprimarytarget = 0...

Tryptic wrote:One thing I did observe, was that when an enemy station was revealed through what seemed to be a map trigger (at one point in Raptor's Wrath a big swathe in the bottom middle was revealed along with the two starbases of the southern dominion base), it did NOT allow my artillery ships to fire even when they were in range and given an attack command. When I moved my scout closer, they began firing, so there is something about rangescan that does not get provided from the scripted map vision effect.


I just tested this, there seems to be no difference between using a vision beacon or a scout. I don't have scripted events in my missions where part of the map is revealed, except when a team becomes your ally, so I'm curious what happened that that part of the map was suddenly revealed to you, it never happened to me. Only the starbases should be visible, but shrouded, since I create and then remove vision beacons on top of them.

Tryptic wrote:EDIT: Regarding attackpower, it's really wonky. My understanding is that the game autotargets the enemy with the lowest (hull hitpoints / attackpower stat). So the Fleet Ops attackpower = 0.2 on scouts means that their hull hitpoints counts for 5x normal, causing them to not get targeted first, but not last either. A value of 0 causes something to never get auto-targeted unless there's nothing else around, but also equally with other attackpower = 0 targets, so civilian stations aren't targeted based on their hitpoints.


Yeah, it is definitely wonky, though in my experience the AI will often target attackpower = 0 freighters over attackpower = 1 battleships, the only common denominator I found is the number of hull hitpoints. I always see attackpower = 0 stations being attacked, except when an AI ship is in some kind of special mode (usually scouting), but then it won't fire on attackpower = 1 ships either.

Ideally you would want some calculation to make sure a fleet doesn't waste shots on a weak target, but even modern sophisticated RTS games have trouble with that because it's inherently difficult to assign fire groups like that. The next best thing would be to prioritize on total hitpoints divided by DPS (lowest value has highest priority), that makes the most military sense since it removes enemy DPS from the field as quickly as possible and at the same time ensures you target units with fewer hitpoints first (these are less likely to successfully retreat and live to fight another day).
posted on April 14th, 2022, 3:53 pm
Congrats on the big new release mate. Oooh I like the sound of there being custom cutscene videos heh! :)
posted on April 14th, 2022, 4:03 pm
BlakesSanctum wrote:Congrats on the big new release mate. Oooh I like the sound of there being custom cutscene videos heh! :)


Thanks. They're not actual videos though, but similar to the intros of stock A2 with in-game sequences and voice overs. I tried to not make it too cheesy, but all the Trek cliches are in there: naturally the Klingon voice over is a wise old warrior with a deep voice, the Romulan one is sardonic with a posh British accent, the Dominion one is a groveling, scheming Vorta, etc... :lol:
posted on April 14th, 2022, 4:59 pm
JanB wrote:Yeah, it is definitely wonky, though in my experience the AI will often target attackpower = 0 freighters over attackpower = 1 battleships, the only common denominator I found is the number of hull hitpoints. I always see attackpower = 0 stations being attacked, except when an AI ship is in some kind of special mode (usually scouting), but then it won't fire on attackpower = 1 ships either.


Ah, yes, these things don't count when dealing with the AI. The AI is able to "manually" target ships so it will sometimes ignore the rules of autotargeting entirely. AI ships will also sometimes fly past ships and not fire their weapons at all, presumably because they've got an attack command on another ship the AI sees.
posted on April 14th, 2022, 5:27 pm
Not to be a pain, but are you two sure that the AI uses current hitpoints divided by attackpower and not current hitpoints multiplied by attackpower? I thought I previously recall it being determined many years ago that it was multiplied by so everyone was using 1.0 at the AP setting on all ships with weapons or is that more stock and not with the changed in Fleet Ops?

Regardless of the AP setting is the following from the FO guide a reason why it doesn't choose it's targets as expected all the time?

"Note that the choice of target can be influenced by which target appeared within sensor range first (add ~1 attack value) and distance to the target (closer targets are preferred)"
posted on April 14th, 2022, 5:53 pm
Last edited by JanB on April 14th, 2022, 6:25 pm, edited 4 times in total.
rifraf wrote:Not to be a pain, but are you two sure that the AI uses current hitpoints divided by attackpower and not current hitpoints multiplied by attackpower? I thought I previously recall it being determined many years ago that it was multiplied by so everyone was using 1.0 at the AP setting on all ships with weapons or is that more stock and not with the changed in Fleet Ops?

Regardless of the AP setting is the following from the FO guide a reason why it doesn't choose it's targets as expected all the time?

"Note that the choice of target can be influenced by which target appeared within sensor range first (add ~1 attack value) and distance to the target (closer targets are preferred)"


Targets with fewer hitpoints are preferred and targets with higher attackpower are preferred, though with attackpower = 0.0 a ship is still targeted, so there's an extra term or an "OR" statement somewhere. At least, that's what consistent test results in the map editor showed me, at least in FO 4.0. There is some randomness to it, and order of encounter/discovery matters, but you can filter out that noise by running your tests with groups of ships, and multiple times, and you'll see clear patterns.
posted on April 14th, 2022, 6:00 pm
Tryptic wrote:
JanB wrote:Yeah, it is definitely wonky, though in my experience the AI will often target attackpower = 0 freighters over attackpower = 1 battleships, the only common denominator I found is the number of hull hitpoints. I always see attackpower = 0 stations being attacked, except when an AI ship is in some kind of special mode (usually scouting), but then it won't fire on attackpower = 1 ships either.


Ah, yes, these things don't count when dealing with the AI. The AI is able to "manually" target ships so it will sometimes ignore the rules of autotargeting entirely. AI ships will also sometimes fly past ships and not fire their weapons at all, presumably because they've got an attack command on another ship the AI sees.


Oh yes, certainly, but I also meant the "AI" controlling your ships and stations when you're not giving them orders. They'll sometimes attack a freighter over a cruiser if you're not babysitting them.

Btw, did you play the mission (A Good Day to Die) after The Raptor's Wrath yet? Is it sufficiently beatable? It's meant to be hard (definitely one of the hardest in the game), but it's not supposed to be completely frustrating and that's hard to judge for me because I can't play it through the eyes of someone who didn't design the mission.
1, 2, 3
Reply

Who is online

Users browsing this forum: No registered users and 2 guests