Search

Last Downloaded

zip-0Bumble-Bee Class
zip-1Minbari Sharlin

Login

New Mod: Build-A-Battle

UbiquitousMendaciousPolyglottal's Avatar Topic Author

New Mod: Build-A-Battle

1 hour 11 minutes ago - 50 minutes ago
#21174
TL;DR summary: I've built a simple mod called "Build-A-Battle" that adds a UniGUI menu which allows spawning ships into the single-player campaign, with options for the type of ship, number of ships, alignment/hostility status, and spawn distance-from-player.

Earlier this year, driven largely out of disappointment that upcoming Expanse "Osiris Reborn" game is going to be a generic squad-based third-person shooter instead of a space sim (which I totally get the economic/market reasons for, but still...) -- and having a new-to-me Steamdeck, along with discovering that there was a fairly complete custom input profile for the game on that device, I decided to revisit I-War2. I had fond memories of the first game, actually bought a Logitech flight stick back in the day primarily for that game, though only ever played the demo of IW2 and my main recollections were that I found it less-engaging than the first game, couldn't figure out what to do/where to go, and visually everything seemed overly "green." Though revisiting it a quarter century later, it's rapidly become one of my fav. games of all time -- a fully-Newtonian space sim, that is also effectively an open world "Belter-piracy simulator," with action-RPG elements, and with a noticeable lack of handholding/guard-rails? Yes please! (also on the lack of guard-rails, I know I've seen it cited as a flaw in the game, but I actually like the "beautiful chaos" aspect of the game, and the way you can E.g. finish 90% of a mission, but still die/fail because a random pirate attack takes out the ship you need to meet up with for mission completion).

All that said, after a few months of obsessively playing the game, and adding some mods like Future Trader, iFleet, etc, I started to come up with a few ideas for mods of my own. This particular mod was originally conceived of as a testing/companion tool for another mod that I have in mind -- without going into too much detail, I'm thinking that IW2 would be a very good fit for a mod that adds gameplay mechanics that (*ahem*) resemble but are legally distinct from certain patent-protected gameplay systems in the Monolith Studios Middle Earth games. But it ended up turning into a bit of a rabbit hole, once I realized that a mod for arbitrarily spawning different types of ships could be useful/fun in general.

And that lead to the mod that I'm tentatively calling "Build-A-Battle" (BaB for short). I have a few additions planned, and want to polish it up a bit before posting to the mods library here, but just wanted to post at this point in case anyone has any feedback/suggestions/pointers for a noob to POG, etc. A copy of the latest build is attached here.

A quick summary:

Mod Features/USP
  • UniGUI menu that allows spawning ships in single-player campaign mode
  • Lefthand column contains options for selecting ship types, corresponding with the way ships are classified in the in-game encyclopedia (mostly -- I fudged in a few places, E.g. including the Capital carrier with Cruisers)
  • Nearly all of the main combat ship classes in the game can be selected/spawned currently (tugs, fighters, interceptors, patcoms, corvettes, destroyers, cruisers, carriers) -- though I don't yet have a solid handle on the 230-odd internal ship types/variations that the game has, so that part definitely needs some refining.
  • There are also functional options for: the number of ships to spawn, their alignment/hostility status, and the distance they spawn from the player.
What can it be used for currently?
  • Testing/playing around. Want to try out different weapons/loadouts against a ship(s) that won't fight back? Pick "Passive (target dummy)" under the "Alignment" options.
  • Fun with other mods: using the iFleet mod, and want to spawn a bunch of ships so you can quickly build up your fleet? The "Passive" alignment works well for that too.
  • Want to have a quick fight against a group of hostile ships, while being able to choose the type of ship & how many of them there are (and use your custom loadout, unlike in Instant Action)? Pick the "Hostile (marauders)" option under alignment.
  • Or used FutureTrader to buy a whole bunch of gunstars to defend your base, but want to give them an actual attack to defend against? Use "Marauders (hostile)" option under alignment -- and bump up the number of ships to 10-15.
Future Roadmap
The main feature that I'd like to add is a "horde mode" function -- so making it a complete replacement for Instant Action, but within single player mode; so basically an on-demand Instant Action mode within single-player, with support for custom loadouts.

In practical terms, I'm thinking I can keep most of the existing UI as-is -- and add a separate option in the left pane for "Freeform Mode" and "Horde Mode" (with "Freeform Mode" being the existing, "spawn-arbitrary-ship with custom distance/alignment"-mode -- and keeping that as the default). And if "Horde Mode" is selected on the left, I see the right-hand UI changing slightly -- removing the "Ship Class" and "Quantity" options, and showing a set of "Wave Escalation" options (with options for controlling how much each wave's strength will increase compared to the previous wave -- with options for 25%/the default, 50%, and 75%). And also changing/replacing the "Spawn" button with a "Start/Stop" button, since typically horde modes == "infinite waves until the player dies."

Tooling/Dev Process
One of the biggest hurdles I expected thankfully didn't exist. While initially getting started, knowing the age of the game, I was essentially holding my breath waiting for an unpleasant discovery along the lines of "dev/modding for this game requires software that won't run in anything newer than Windows 2000 SP1, so get ready to fire up VirtualBox." But surprisingly, in a good way, getting the SDK installed and working on Win10 was one of the easiest parts -- IIRC, the only quirk I ran into was that I had to copy over flux.dll from the game's install folder. That, and making some tweaks to the compile.bat script, so that it would also create a zip file copy of the mod & copy it to the game's mods folder.

And yes, I used AI -- Gemini specifically -- to write the actual code. While I do know how to code, I haven't worked with POG or done game modding before, and it's been decades since I've touched C.

If that's an issue/sticking point for anyone, I'll just say that I hear you -- I'm as averse to low-effort 'AI slop' as the next person... probably more so, working in a technical/creative field. I do software/web application development for a living, and from that context I can say that this was definitely not 'low-effort' (not in the literal sense at least, it's taken about 15-20 hours so far); it was more like dev projects I've worked on that involved managing junior developers. And in many ways more hands-on, since I was basically doing every part of the dev process except for the coding -- compiling each updated version of the POG code, testing, providing feedback on the results/documenting what worked & what needed to be fixed, "feeding" Gemini samples of POG and header files from other mods for reference/guidance, tracking down the list of internal names that the game uses for ship types (after getting stuck for an hour or two with a mostly finished UI, except that it couldn't actually spawn anything other than the "old_destroyer"/Bastille-class destroyer).

Conversely, if your reaction is "that sounds like a good idea, I've had a mod concept rattling around my brain for a while but don't know how to implement it, where do I start?" Now that I have Gemini fairly well-trained in the ins-and-outs of POG, I could probably get it to spit out a "quick start" prompt for anyone looking to do something similar, along with a list of source files from the reference & existing mods that would be useful to provide for reference.

Speaking of which, and as a post-script -- I'm HUGELY appreciative of how many mods for IW2 include full POG source and header files. That's been absolutely invaluable; and 9 times out of 10 when I hit a roadblock where Gemini seemed to be chasing its own tail, the way out ended up being "here are the .pog and .h files for another mod that works in a similar way to what I have in mind, figure things out from that."

Please Log in or Create an account to join the conversation.