This thread aims to collate in a central place suggestions for additions or changes to the modding interface(s) that would make a big difference to what we could do (as opposed to little things like extra behaviour columns in the DB or extra Events/GameEvents). Some of them will hopefully be quite small changes for developers, but it's hard to predict what would or wouldn't be. I've got the list started with some ideas of my own or culled from elsewhere; I'll remove anything there's a much better argument against than for. I'll add anything that's suggested that there's a good argument for and no overwhelming argument against.
- Ability to (modularly) add FontIcons
- More extensible resource-scattering in AssignStartingPlots, so new resources can be added in modular fashion and still use the cleverness and balance features of the existing design
- Ability to add 3D graphics in modular fashion
- Working nexus, particularly enabling addition of terrain, resource and building/wonder graphics
- Ability to add sounds (of all sorts)
- Opportunity to modularly work with unit flag icons and strategic view graphics (for units and resources, at least, preferably to actually mod graphics used for everything)
- And related to SV graphics and 3D graphics, decouple them so you can create new units with existing 3D and new SV; why aren't SV graphics just the unit flag icon anyway?
- More flexibility with yields - and make Culture a Yield, and preferably happiness as well (for happiness only when worked, for example)
- Allow non-repeating techs to dead-end
- Allow actual creation of processes that can convert any yield to any other (reports indicate that you can't)
- Actual extensibility of terrain types. This may require sanitisation of the whole difference in how terrain and land and so on are handled between Lua and XML (and presumably C++), with clarity as to what is a feature and what is a base type and how to describe the overall combination, and so on. It seems inconsistent at the moment. Alternatively, explain how it isn't inconsistent, and how it could ever be extended so as to, for example, add another feature that works like forests and jungles, and separately to add one that works like hills.
- Allow for the map to be properly updated during the game - at present, if you change a plot's terrain, the graphics don't update until you save and reload
- Better ways to inform AI about things like promotions - make sure AI knows about value of promotions, and their effect on combats it might be considering. Of course, the degree to which the AI can already tell these things is unknown. Does it simulate combats before trying them, as the player can?
- Dependencies, load order and exclusions stuff to actually work. This would, for instance, allow for mods that alter the database schema in ways that other mods can then make use of - but such requires the schema-altering mod to be loaded first. It also requires it to be loaded at all. Neither is currently possible to enforce. Load order control is something important that would be very useful.
(One hope with these threads is that we might get some dialogue from devs, particularly FXSSSeckman, as he's already engaged in some here)
Addendum: some small but hopefully easy requests:
- A civilization reference in Unit_UniqueNames, so you can have civ-specific great person names (for example)
- Drop-downs for the actions/content tabs in ModBuddy, for the ones that will work without doing anything else to make them exist
- ModBuddy (or otherwise in modding tools) component that takes a 256x256 graphic and creates all relevant sizes
- For Lua game objects (Player, Unit, etc), add a getTypeName() (or whatever) that returns, for example, "Player" for a player, "Unit" for a unit, and so on. Or if that's effectively already possible, tell us how.
- Add method getOwner to all game objects that don't have it already, and if it doesn't make sense for that type, make it return nil.
and some things that are currently hard-coded Lua that could be DB-driven:
- Action icons
- Specialist icons (in the city UI)
And finally some extra specific columns that have been requested (but let's not fixate on this sort of request to much, please?)
(also, note that some of these can be done with what's there now, you just have to do the Lua to support it)
- Promotions - BarbarianAttack and BarbarianDefence modifiers, required tech reference
- Improvement column/table for mountains as per current hill ones - MountainMakesValid column and Improvement_MountainYields table
- Buildings - add requirements for national/world/any wonder in city, and for natural wonder nearby
- Policies and techs - allow each to require one of the other, so a policy enables a tech or a tech enables a policy.



Reply With Quote

