Forged Alliance is a stand-alone expansion to the critically acclaimed RTS game Supreme Commander. The game adds a brand new alien race, the Seraphims, who have come back from outer space to wreak havoc on humanity. One campaign had been added, and the gameplay of the three existing factions has been significantly reworked.

Post news Report RSS LOUD AI - July 2017 Notes from Sprouto

Notes concerning the AI development, from Sprouto - July 2017 Screenshot of upcoming 8 factory base layout for AI

Posted by on

July 2017

While involved in doing the cleanup last month, on transports, it took me back to an old 'friend', the Return To Base AI function, which, over time, has reared it's ugly head as the cause of a lot of lost time for the AI. So, I decided, once again, to tear it apart and rebuild it. That's a good thing - since I slimmed it down a good bit, revised a few support functions as well, and overall, I think I have a better product in the end. For now, it's expanded the AI ability to RTB to all types of bases for certain unit classes (read: Air), and perform operations from those bases. So, now, we'll begin expanding the role of air units at the naval base -- initially with guard platoons and such, but eventually, in combination with a PRIMARY NAVAL BASE, combined air/naval operations. It's all good. The first trick will be to find a way to distribute air units to the naval yards.

Picked up a flaw in the water map definitions that was having Cybran and UEF factions building unlimited T2 mobile flak (which for them is NOT amphibious). Corrected - and more useful, reduced 2 conditions down to a single one.

OK - it's been funny for a long time, watching the AI nuke himself, or his partners, when it looks like a good shot. Well - it's going to come to an end. Eventually.

I'm chasing an elusive 'crash' bug that, at the moment appears to revolve around the Aeon AI. I've focused on death events, creation events, engineering tasks, platoon formation and so far, no luck. This leaves it pretty much down to a unit 'movement event', a platoon behavior, intel management, or a static process (like DeadBaseMonitor).

This continues to be a regal 'pain in the butt' -- but we carry on. Along the way, I've gotten a few things done - in preparation for PRIMARY NAVAL BASE, such as getting air and amphibious platoons to RTB to naval positions - and those positions being able to form platoons with them. The Naval DP is just about ready to become an active NAVAL, AIR and AMPHIBIOUS operations point. That will be VERY good.
Now, other good news - along the way I found a couple of other optimizations -- one in particular GetCurrentLayer, was replaced entirely by self.CacheLayer, almost entirely eliminating that very numerous function call with already local data ! In many cases, I not only eliminated the function call, but the malloc() for the temporary local the was being used -- and thus the GC later. All good.

As mentioned before, I'll want to find some way to get air and amphib units to decide which PRIMARY to RTB to, and of course, reinforcement changes too.

I included a screenshot with this article, previewing a new 8 factory base layout designed to be used on smaller maps, or in secondary bases, where space may be an issue.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: