Soft-coding the hard-coded features of AoD

  • We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Mr_B0narpte

Field Marshal
12 Badges
Mar 15, 2009
4.689
326
  • Arsenal of Democracy
  • Cities in Motion
  • Darkest Hour
  • For The Glory
  • Hearts of Iron III
  • Rome Gold
  • Victoria 2
  • Rome: Vae Victis
  • 500k Club
  • Pride of Nations
  • Rise of Prussia
  • Hearts of Iron IV Sign-up
What triggered me to create this thread was reading Pang Bingxun's comment:
I believe those few changes in trade i made in 1.08 are mostly ineffective. The increased desire to stockpile was implemented via exe, so you would have to thank gunman_.

Since there are still several people giving up their time to edit and modify this awesome game, I thought it would be great if AoD was more easily moddable so it could continually be (even more) improved upon by the community. AoD maintains many, IMO, superior features over DH, but it will eventually fall behind considering the extensive efforts made by developers for DH to improve that game. If more aspects of AoD were available for soft-coding then we could either delay or perhaps even prevent the 'inevitable'.

I know this is probably quite a hollow suggestion as it requires gunman_ or someone who knows C++ to be able to make it so, but I thought there was no harm in discussing it.

EDIT:
A possibly list of recommendations of currently hard-coded features that this would encompass (feel free to point out if any of these are actually soft-coded):
*AI un-escorting transport ships
*More detailed possibility of editing the AI's combat abilities/strategy (i.e. more then just "aggressiveness = 0-3")
*Editing the secret events for the AI
*Editing the availability and construction of advanced nuclear reactors for the AI
*the AI assorting its navy seemingly arbitrarily (or at least not effectively)
*the AI paying little regard to its' allies
*the AI creating massive stacks of units in one particular area and not moving them afterwards
*the UK and Japan AIs not adequately defending their coastline (although more locked units would probably be the best solution IMO)
*the AI's handling of ESE
*the AI being unable to reduce research and military spending, also unable to reduce synthetic plant usage
 
Last edited:

bosman

Major
17 Badges
Jan 30, 2009
750
52
  • Arsenal of Democracy
  • Semper Fi
  • Rome Gold
  • Victoria: Revolutions
  • Majesty 2
  • Magicka
  • Iron Cross
  • Hearts of Iron III
  • For the Motherland
  • Age of Wonders III
  • Hearts of Iron IV Sign-up
  • 500k Club
  • Victoria 2
  • For The Glory
  • Darkest Hour
  • Crusader Kings II
  • Victoria 2: A House Divided
Yeah, it's good, that You, Mr_B0narpte wrote this. IMO there is big advantage of DH and recently also IC, that refers to simple in-game mod support. Quite simple feature, that supports separate folder for some files, that are being modified and handles them properly. AoD lacks this simple but very important feature and it's one although not only reason.
I think, that AoD also focuses on being "independently" accurate with serving it's best for WWII period. I mean, it's somehow hardcodedly designed to be appropriate for its main purpose.

Anyway, modding support is one of the most important aspect, that keeps HoI games alive, so any improvement on this field should be welcomed.
 

Autolykos

First Lieutenant
71 Badges
Oct 21, 2010
206
8
  • Arsenal of Democracy
  • Sword of the Stars
  • Magicka
  • Heir to the Throne
  • Divine Wind
  • Europa Universalis III Complete
  • A Game of Dwarves
  • Darkest Hour
  • Cities: Skylines - Mass Transit
  • BATTLETECH
  • Victoria 2
  • War of the Roses
  • 500k Club
  • Cities: Skylines - Green Cities
  • Hearts of Iron IV: Death or Dishonor
  • Mount & Blade: With Fire and Sword
  • Pillars of Eternity
  • Prison Architect
  • Europa Universalis IV: Common Sense
  • Cities: Skylines - After Dark
  • Cities: Skylines - Snowfall
  • Stellaris
  • Hearts of Iron IV: Cadet
  • Europa Universalis IV: Rights of Man
  • Stellaris: Digital Anniversary Edition
  • Surviving Mars
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Leviathans Story Pack
  • Cities: Skylines - Natural Disasters
  • Stellaris: Humanoids Species Pack
  • Cities: Skylines Industries
  • Cities: Skylines - Parklife
  • Stellaris: Apocalypse
  • Surviving Mars: Digital Deluxe Edition
  • BATTLETECH: Season pass
  • Cities: Skylines - Parklife Pre-Order
  • Teleglitch: Die More Edition
  • BATTLETECH: Flashpoint
  • Surviving Mars: First Colony Edition
  • Europa Universalis III Complete
  • Hearts of Iron IV: Expansion Pass
  • BATTLETECH: Heavy Metal
  • Cities: Skylines - Campus
  • Europa Universalis III Complete
  • Surviving Mars: First Colony Edition
  • BATTLETECH - Digital Deluxe Edition
  • For the Motherland
  • Europa Universalis IV: Art of War
  • Europa Universalis IV
  • Semper Fi
Quite simple feature, that supports separate folder for some files, that are being modified and handles them properly.
Can confirm that. Supporting mods in a separate directory ("moddir") is pretty much the gold standard nowadays, but AoD makes this harder than it should be. Main problem is AI files only being loaded from the base directory, and a lot of dummy files required to get the modified ones to load properly (usually, you need to copy and redistribute a whole directory of images if you change just one). JSGME can be used to work around these problems (and I didn't run into any trouble with it yet), but it makes testing your mod more work and is an additional program one needs to distribute and explain to the user.

OT: More stuff outsourced to config files is always a good thing, and I support the move. I find that even more important than new content (but I like to mod, so I'm kinda biased there...). Maybe think about putting any parameter you change in the .exe into an external config file while you're at it, so you'll gradually move the whole game to "softcoded".

EDIT: I'd also like to add that a lot of stuff that looks softcoded actually isn't, or at least not for the AI. One example I just encountered: If I move the requirements for building more advanced nuclear reactors (lvl 6+) from the nuke techs to the power plant techs, the AI just doesn't care. It will happily build advanced reactors (and get nukes) after researching the nuke techs, even if it shouldn't be able to, because it doesn't have the power plant techs. If I take control of the AI player and cancel the reactor builds in the queue, I can't put them back in - so I'm pretty sure I made the right changes.
Secret Weapons in general don't work quite right for the AI. It doesn't wait for invention events (I suspect it doesn't even have them) but researches them right away if the prerequisites are met. So you'd better make sure they are the same for Tech and Event (or you forbid the tech manually in the AI files).
 
Last edited:

Mr_B0narpte

Field Marshal
12 Badges
Mar 15, 2009
4.689
326
  • Arsenal of Democracy
  • Cities in Motion
  • Darkest Hour
  • For The Glory
  • Hearts of Iron III
  • Rome Gold
  • Victoria 2
  • Rome: Vae Victis
  • 500k Club
  • Pride of Nations
  • Rise of Prussia
  • Hearts of Iron IV Sign-up
I agree. Making it more moddable would keep it alive for longer :)
That's the plan!
Yeah, it's good, that You, Mr_B0narpte wrote this. IMO there is big advantage of DH and recently also IC, that refers to simple in-game mod support. Quite simple feature, that supports separate folder for some files, that are being modified and handles them properly. AoD lacks this simple but very important feature and it's one although not only reason.
Very true.
I think, that AoD also focuses on being "independently" accurate with serving it's best for WWII period. I mean, it's somehow hardcodedly designed to be appropriate for its main purpose.
I guess so, but parts of the hard-coding don't seem appropriate for any purpose! (such as the AI un-escorting transports).

Anyway, modding support is one of the most important aspect, that keeps HoI games alive, so any improvement on this field should be welcomed.
I completely agree.

Can confirm that. Supporting mods in a separate directory ("moddir") is pretty much the gold standard nowadays, but AoD makes this harder than it should be. Main problem is AI files only being loaded from the base directory, and a lot of dummy files required to get the modified ones to load properly (usually, you need to copy and redistribute a whole directory of images if you change just one). JSGME can be used to work around these problems (and I didn't run into any trouble with it yet), but it makes testing your mod more work and is an additional program one needs to distribute and explain to the user.

OT: More stuff outsourced to config files is always a good thing, and I support the move. I find that even more important than new content (but I like to mod, so I'm kinda biased there...). Maybe think about putting any parameter you change in the .exe into an external config file while you're at it, so you'll gradually move the whole game to "softcoded".
You certainly know your stuff on this situation! Please feel free to bring anymore advice or pointers on the matter.

EDIT: I'd also like to add that a lot of stuff that looks softcoded actually isn't, or at least not for the AI. One example I just encountered: If I move the requirements for building more advanced nuclear reactors (lvl 6+) from the nuke techs to the power plant techs, the AI just doesn't care. It will happily build advanced reactors (and get nukes) after researching the nuke techs, even if it shouldn't be able to, because it doesn't have the power plant techs. If I take control of the AI player and cancel the reactor builds in the queue, I can't put them back in - so I'm pretty sure I made the right changes.
Secret Weapons in general don't work quite right for the AI. It doesn't wait for invention events (I suspect it doesn't even have them) but researches them right away if the prerequisites are met. So you'd better make sure they are the same for Tech and Event (or you forbid the tech manually in the AI files).
Hmm, that gives me the idea of making a list of recommendations, I'll edit my first post.