Modding Speculation

Afforess

The White Wizard
Joined
Jul 31, 2007
Messages
12,239
Location
Austin, Texas
Now that Steam has Preloaded Civ5, we can see the folder structure, but not the contents of the files. The files seem to be cyphered, to be unlocked in roughly 1 week, but we can learn a lot from the setup.

XML.
There is a lot of recognizable xml files. In
"C:\Program Files (x86)\Steam\steamapps\common\sid meier's civilization v\Assets\Gameplay\XML"

XML Folders:
  • AI - New Appearance
    • CIV5AICityStrategies.xml
    • CIV5AIEconomicStrategies.xml
    • CIV5AIGrandStrategies.xml
    • CIV5AIMilitaryStrategies.xml
    • CIV5CitySpecializations.xml
    • CIV5TacticalMoves.xml
    • GlobalAIDefines.xml
    • GlobalDiplomacyAIDefines.xml

  • BasicInfos - Was in Civ4
    • CIV5Attitudes.xml
    • CIV5Calendars.xml
    • CIV5CitySizes.xml
    • CIV5Concepts.xml
    • CIV5Contacts.xml
    • CIV5DenialInfos.xml
    • CIV5Domains.xml
    • CIV5InvisibleInfos.xml
    • CIV5MajorCivApproachTypes.xml
    • CIV5MemoryInfos.xml
    • CIV5MinorCivApproachTypes.xml
    • CIV5MinorCivTraits.xml
    • CIV5Months.xml
    • CIV5Seasons.xml
    • CIV5UnitAIInfos.xml
    • CIV5UnitCombatInfos.xml

  • Buildings - Was in Civ4
    • CIV5BuildingClasses.xml
    • CIV5Buildings.xml

  • Civilizations - Was in Civ4
    • CIV5Civilizations.xml
    • CIV5MinorCivilizations.xml
    • CIV5Regions.xml
    • CIV5Traits.xml

  • Diplomacy - New Appearance
    • Civ5Diplomacy_Responses.xml

  • GameInfo - Was in Civ4
    • CIV5ArtStyleTypes.xml
    • CIV5Climates.xml
    • CIV5CultureLevels.xml
    • CIV5Cursors.xml
    • CIV5EmphasizeInfos.xml
    • CIV5Eras.xml
    • CIV5Flavors.xml
    • CIV5ForceControlInfos.xml
    • CIV5GameOptions.xml
    • CIV5GameSpeeds.xml
    • CIV5GoodyHuts.xml
    • CIV5HandicapInfos.xml
    • CIV5HurryInfos.xml
    • CIV5IconFontMapping.xml
    • CIV5IconTextureAtlases.xml
    • CIV5MultiplayerOptions.xml
    • CIV5PlayerOptions.xml
    • CIV5Policies.xml
    • CIV5PolicyBranchTypes.xml
    • CIV5Processes.xml
    • CIV5Projects.xml
    • CIV5SeaLevels.xml
    • CIV5SmallAwards.xml
    • CIV5Specialists.xml
    • CIV5Trades.xml
    • CIV5TurnTimers.xml
    • CIV5Victories.xml
    • CIV5Votes.xml
    • CIV5VoteSources.xml
    • CIV5Worlds.xml

  • Interface - Was in Civ4
    • CIV5Colors.xml
    • CIV5InterfaceModes.xml
    • CIV5PlayerColors.xml

  • Leaders - New Appearance
    • CIV5Leader_Alexander.xml
    • CIV5Leader_Askia.xml
    • CIV5Leader_Augustus.xml
    • CIV5Leader_Barbarian.xml
    • CIV5Leader_Bismark.xml
    • CIV5Leader_Catherine.xml
    • CIV5Leader_Darius.xml
    • CIV5Leader_Elizabeth.xml
    • CIV5Leader_Gandhi.xml
    • CIV5Leader_HarunAlRashid.xml
    • CIV5Leader_Hiawatha.xml
    • CIV5Leader_Montezuma.xml
    • CIV5Leader_Napoleon.xml
    • CIV5Leader_OdaNobunaga.xml
    • CIV5Leader_Ramesses.xml
    • CIV5Leader_Ramkhamhaeng.xml
    • CIV5Leader_Suleiman.xml
    • CIV5Leader_Washington.xml
    • CIV5Leader_WuZetian.xml
    • CIV5LeaderTables.xml

  • Misc - Was in Civ4
    • CIV5Routes.xml
    • Notifications.xml

  • NewText - Possible Renaming of Old Civ "Text" folder
    • English.xml
    • CIV5Credits_en_US.txt
    • EN_US
      • LeaderDialog
        • Civ5_Dialog__GENERIC.xml
        • Civ5_Dialog_Alexander.xml
        • Civ5_Dialog_Askia.xml
        • Civ5_Dialog_Augustus.xml
        • Civ5_Dialog_Bismarck.xml
        • Civ5_Dialog_Catherine.xml
        • Civ5_Dialog_Darius.xml
        • Civ5_Dialog_Elizabeth.xml
        • Civ5_Dialog_Gandhi.xml
        • Civ5_Dialog_Harun.xml
        • Civ5_Dialog_Hiawatha.xml
        • Civ5_Dialog_Montezuma.xml
        • Civ5_Dialog_Napoleon.xml
        • Civ5_Dialog_Oda.xml
        • Civ5_Dialog_Ramesses.xml
        • Civ5_Dialog_Ramkhamhaeng.xml
        • Civ5_Dialog_Suleiman.xml
        • Civ5_Dialog_Washington.xml
        • Civ5_Dialog_WuZetian.xml
      • Modding
        • CIV5ModdingText.xml
      • Victory
        • CIV5_Victory.xml
      • CIV5GameText_Cities.xml
      • CIV5GameTextInfos.xml
      • CIV5GameTextInfos_Advisors.xml
      • CIV5GameTextInfos_Buildings.xml
      • CIV5GameTextInfos_CityStates.xml
      • CIV5GameTextInfos_Civilizations.xml
      • CIV5GameTextInfos_Civilopedia.xml
      • CIV5GameTextInfos_Credits.xml
      • CIV5GameTextInfos_FrontEndScreens.xml
      • CIV5GameTextInfos_InGameScreens.xml
      • CIV5GameTextInfos_Jon.xml
      • CIV5GameTextInfos_Leaders.xml
      • CIV5GameTextInfos_MapAmer.xml
      • CIV5GameTextInfos_MapAsia.xml
      • CIV5GameTextInfos_MapMed.xml
      • CIV5GameTextInfos_MapMeso.xml
      • CIV5GameTextInfos_Objects.xml
      • CIV5GameTextInfos_Techs.xml
      • CIV5GameTextInfos_Units.xml
      • CIV5GameTextInfos_WorldView.xml
      • CIV5GameTextInfos2.xml
      • CIV5HintText.xml

  • Technologies - Was in Civ4
    • CIV5Technologies.xml

  • Terrain - Was in Civ4
    • CIV5Features.xml
    • CIV5Improvements.xml
    • CIV5ResourceClasses.xml
    • CIV5Resources.xml
    • CIV5Terrains.xml
    • CIV5Yields.xml

  • Units - Was in Civ4
    • Civ5AnimationCategories.xml
    • Civ5AnimationPaths.xml
    • CIV5Automates.xml
    • CIV5Builds.xml
    • CIV5Commands.xml
    • CIV5Controls.xml
    • Civ5EntityEvents.xml
    • CIV5Missions.xml
    • CIV5MultiUnitFormations.xml
    • CIV5SpecialUnits.xml
    • CIV5UnitClasses.xml
    • CIV5UnitMovementRates.xml
    • CIV5UnitPromotions.xml
    • CIV5Units.xml

is your XML folder breakdown, just like Civ4. Many of the files are the same. Units, UnitClasses, Buildings, BuildingClasses are all there. Techs are there. Leaders seem to be split into a file for each one. There is a new AI Folder. BasicInfos is full of new and old files. GameInfo holds a lot of older files, but a lot of new ones too.

One thing modders should note is that leaders are broken down by file, instead of in one large file like in Civ4. Also, Barbarians seem to be a player, just like in Civ4 (albeit a hidden, unplayable player).

One mystery I have noticed is that there don't seem to be any Schema files anymore.

Lua.
Modders will also notice the absence of python, and the introduction of lua files. The lua is split into two folders,:
"C:\Program Files (x86)\Steam\steamapps\common\sid meier's civilization v\Assets\Gameplay\Lua"

and

"C:\Program Files (x86)\Steam\steamapps\common\sid meier's civilization v\Assets\UI"

SDK.
There is no apparent SDK folder, but the CvGameCoreDLLFinal Release.dll seems to be ~2.5mb, which is half the size of the BTS DLL. That makes me suspect that the Civ5 SDK is a lot smaller, and a lot of content was cut (Selectiongroups, I'm looking at you), and it is also possibly more compressed.

I'm curious about what more is revealed in the coming days. The goods news is that your Civ4 XML skills should directly translate over. ;)
 
Well, the SDK isn't included in the preload files, it'll be released post-launch like the Civ 4 SDK was. It was also confirmed on the live polycast that the Civ 5 SDK actually includes the Civ 4 SDK's code.
 
I hope they went for a database structure instead of the Civ4 element based XML. It's a much better system to use since if you want to change one of the elements (say Temple) you just refer to the row and field instead of having to re-write the entire element.
 
Thanks for posting this! :D

Civilizations - Was in Civ4

* CIV5Civilizations.xml
* CIV5MinorCivilizations.xml
* CIV5Regions.xml
* CIV5Traits.xml

I'm quite interested in what the Civ5Regions.xml is. Does anyone have any ideas?
 
Thanks for posting this! :D



I'm quite interested in what the Civ5Regions.xml is. Does anyone have any ideas?

LOL, for 5 seconds there, I thought it said Civ5Religions.xml :p. Had hoped that it meant something for future expansions ;). Guess I was just seeing what I wanted to see!

Aussie.
 
I'm guessing that GameInfos will contain files for Social Policies? I certainly hope so!

Aussie.
 
Thanks for posting this! :D



I'm quite interested in what the Civ5Regions.xml is. Does anyone have any ideas?

Regions probably refers to the 4 different visual styles continents will get in the game.
 
Since it's in the Civs directory, I'd guess that it dictates what region a civ will start in. I wouldn't be surprised if this is, at least in part, what sets start bias.

I'd say that would be part of the civs file, though? Could go either way, though I'd be surprised if there wasn't just a STARTFLAVOR= tag.
 
It would seem odd for the Civ5 SDK to contain all of the Civ4 SDK, CvSelectionGroup that Afforess mentioned being a prime example that makes no sense in the 1UPT system of Civ5. And I would expect a lot of other things have totally changed. While, yes, it's good to reuse code when you can, and a lot is still the same (cities, units, players, teams, etc), it's often easier when making large changes to start from scratch.

XML schemas are not necessary. They are used for validating the XML and helpful with XML tools like XMLSpy. If you're working with Notepad++, they aren't much good to you. That is as long as we have good full examples from which to build, and we do.

So it looks like there is an embedded SQL (database) engine in Civ5 as I see several SQL files where they would be very useful:

  • Civ5EngineDatabaseSchema.sql
  • Civ5HallofFameDatabaseSchema.sql
  • Civ5LocalizationDatabaseSchema.sql
There are also SQL files in the Tutorials / Rules folder. SQL is a language for accessing databases, and the tables and columns that store the data in a database are collectively called its schema. Yes, the same meaning that schema has in XML. SQL is much easier to query and search than XML. However, my guess is that the databases are used for only a few elements and not all of the normal modding elements we're used to. I'm intrigued for sure.

The UI seems to be built using both XML and Lua--hopefully the XML describes the layout of the screen much like XUL and the Lua defines the behavior. It also appears that all of the UI is in there, but obviously we'll need to wait until launch day to be sure.

I'm preloaded and very excited! :D BTW, you can decrypt all the files and play now using the secret code "chipotle". :lol:
 
Thanks for the thread Afforess. Some of us don't have this sucker preloaded so it's nice to see the info on the forum. :)
 
Indeed, any information anyone can pull from the preload is nice.

I've got my copy though d2d and thus won't have a preload.
 
The files seem to be cyphered

[....]

One mystery I have noticed is that there don't seem to be any Schema files anymore.

Ah, first i wondered why you did not see it, but first i didn't see the first comment: The schemas are directly at the beginnings of every file.


Oh, and what i didn't mention, i think: It seems they made nearly every tag optional, e.g. the trait file is very slim.
 
Ah, first i wondered why you did not see it, but first i didn't see the first comment: The schemas are directly at the beginnings of every file.
Huh, that's interesting...

Oh, and what i didn't mention, i think: It seems they made nearly every tag optional, e.g. the trait file is very slim.
Good... that makes complete sense to me. All of the tags I ever added were made optional. I never understood why they didn't do this is Civ4 or at least in Warlords or BtS...
 
What do CIV5Months.xml and CIV5Seasons.xml do?
 
XML schemas are not necessary. They are used for validating the XML and helpful with XML tools like XMLSpy. If you're working with Notepad++, they aren't much good to you. That is as long as we have good full examples from which to build, and we do.
[/QUOTE] I respectfully disagree with you EmperorFool. Schemas in the XML world are what define the content of an XML file and are used to communicate a contract between the producer of the XML and the consumer of the XML. Even if you are using Notepad++ it is vital to know what the structure for units is (for example) especially now since most of the XML elements are going to be considered optional.
 
It would seem odd for the Civ5 SDK to contain all of the Civ4 SDK, CvSelectionGroup that Afforess mentioned being a prime example that makes no sense in the 1UPT system of Civ5. And I would expect a lot of other things have totally changed. While, yes, it's good to reuse code when you can, and a lot is still the same (cities, units, players, teams, etc), it's often easier when making large changes to start from scratch.

XML schemas are not necessary. They are used for validating the XML and helpful with XML tools like XMLSpy. If you're working with Notepad++, they aren't much good to you. That is as long as we have good full examples from which to build, and we do.

So it looks like there is an embedded SQL (database) engine in Civ5 as I see several SQL files where they would be very useful:

  • Civ5EngineDatabaseSchema.sql
  • Civ5HallofFameDatabaseSchema.sql
  • Civ5LocalizationDatabaseSchema.sql
There are also SQL files in the Tutorials / Rules folder. SQL is a language for accessing databases, and the tables and columns that store the data in a database are collectively called its schema. Yes, the same meaning that schema has in XML. SQL is much easier to query and search than XML. However, my guess is that the databases are used for only a few elements and not all of the normal modding elements we're used to. I'm intrigued for sure.

The UI seems to be built using both XML and Lua--hopefully the XML describes the layout of the screen much like XUL and the Lua defines the behavior. It also appears that all of the UI is in there, but obviously we'll need to wait until launch day to be sure.

I'm preloaded and very excited! :D BTW, you can decrypt all the files and play now using the secret code "chipotle". :lol:

Lol, I wonder if Jon Shafer kept that the code. Greg did mention a "Tuner" that would allow modders to "cheat" (debug) mods, but would turn off achievements. Conceivably, the code could be chiptole again. However, I bet Jon Shafer wanted to make his own mark on Civ5, and changed the name. ;)

Thanks for the thread Afforess. Some of us don't have this sucker preloaded so it's nice to see the info on the forum. :)

Yep, NP. I had to go to bed, but I'm updating it again.

What do CIV5Months.xml and CIV5Seasons.xml do?

No idea. The files are encrypted.
 
Back
Top Bottom