BrentRitchie
Chieftain
- Joined
- Oct 30, 2005
- Messages
- 25
Creating a new Civilization
First we need to find where the Civilization Entries are entered. Under the Civ 4 folder you will see an assests folder and inside there is where all of the game definitions and logic are held. We are interested in the XML folder. In the XML directory you see a few more folders. The Civilizations folder is where all the different civilizations are defined. Now to add a new civ we need to open the CIV4CivilizationInfos.xml file. This is where all Civilizations in civ 4 are defined.
Looking through the file, you will see alot of tags. Here is the basic layout of each civ definition with comments inlied. Also the actual data inbetween the tags is the data needed for my own Canadian Civ mod.
[EDIT] This tut is ment for those with little XML experience and find the civ 4 files too unwieldly [/EDIT]
Pay careful attention to the tags, you can't define <CivilizationInfos> like <CiviliZAtionINFos> The schema forbids it.
<!-- Declareing the root node and namespace -->
<Civ4CivilizationInfos xmlns="x-schema:CIV4CivilizationsSchema.xml">
<!-- Just for organization Saying that there is more then one Civilization definition coning up. -->
<CivilizationInfos>
<!-- This is the starting of a new Civ definition. -->
<CivilizationInfo>
<!-- This tag allows you to create a refrence name for your new Civ -->
<!-- This is a definition tag it allows refrence to your new civ
please keep to the naming standards -->
<Type>CIVILIZATION_CANADA</Type>
<!-- The next six tags are part of the Type tag but are all refrences -->
<!-- A refrence means that these things are defined in another XML file -->
<!-- This tag allows us to give our civ a name that is then displayed by the game -->
<!-- Example of a description is "Canadian Empire" -->
<Description>TXT_KEY_CIV_CANADA_DESC</Description>
<!-- This is a shorter description -->
<!-- Anexample is "Canada", not that much shorter eh? -->
<ShortDescription>TXT_KEY_CIV_CANADA_SHORT_DESC</ShortDescription>
<!-- This is the adjective of the new civ -->
<!-- Example "Canadian" -->
<Adjective>TXT_KEY_CIV_CANADA_ADJECTIVE</Adjective>
<!-- This is interesting, This tag allows us to create a new civilopedia entry for our new civ -->
<Civilopedia>TXT_KEY_CIV_CANADA_PEDIA</Civilopedia>
<!-- This is what the standard player color is -->
<DefaultPlayerColor>PLAYERCOLOR_BLUE</DefaultPlayerColor>
<!-- This tag makes refrence to your Civs Flag -->
<!-- Just set this to america because I don't have the tools to create a new flag ->
<!-- Later in the tutorial I will show you how to edit this however -->
<ArtDefineTag>ART_DEF_CIVILIZATION_AMERICA</ArtDefineTag>
<!-- Tis next tag allows you to set how your buildings look -->
<!-- Since canadians are actually european settlers we'll set it to european style -->
<ArtStyleType>ARTSTYLE_EUROPEAN</ArtStyleType>
<!-- This tag tells the game if humans can play as this civ -->
<!-- Just a note 1 = true, 0 = false -->
<bPlayable>1</bPlayable>
<!-- If the AI can play as the new Civ -->
<bAIPlayable>1</bAIPlayable>
<!-- Now this is where alot of the work is -->
<!-- This tag allows you to list a bunch of city names that your new civ will build -->
<Cities>
<!-- This is actually a refrence to a city that was defined in another file -->
<!-- The more of these there are the more Definitions you need to create -->
<!-- for now I will only use one city - St. Johns, because it is the oldest city in north america -->
<City>TXT_KEY_CITY_NAME_ST_JOHNS</City>
<!-- This means that there are no more city definitions -->
</Cities>
<!-- This tag defines all of this civ's unique units -->
<Units>
<-- This is the new unique unit definition -->
<Unit>
<!-- This is the unit to be replaced -->
<!-- Again these are refrences to graphics and what not so I will set them to the american equiv -->
<UnitClassType>UNITCLASS_MARINE</UnitClassType>
<!-- This is the unit that will do the replacing -->
<!-- This is still the american equivilant -->
<UnitType>UNIT_AMERICAN_NAVY_SEAL</UnitType>
<!-- Finished Defining this UU -->
</Unit>
<!-- Finished defining all UU's for this Civ -->
</Units>
<!-- This portion defines which units a civ starts the game with -->
<FreeUnitClasses>
<!-- Defines each free unit individually -->
<FreeUnitClass>
<!-- The actual free unit that you get -->
<UnitClassType>UNITCLASS_SETTLER</UnitClassType>
<!-- How many of this type of unit? -->
<iFreeUnits>1</iFreeUnits>
<!-- finished defining this free unit -->
</FreeUnitClass>
<!-- Finished defining all free units -->
</FreeUnitClasses>
<!-- This Defines a list of which free buildings your first city will have -->
<FreeBuildingClasses>
<!-- this is the actual building definition -->
<FreeBuildingClass>
<!-- This tag tells us exactly which building is free -->
<BuildingClassType>BUILDING_CLASS_PALACE</BuildingClassType>
<!-- This tag sets if the free building is prebuilt or not -->
<!-- If you set this tag to 0 then the building will have to be built normally -->
<bFreeBuildingClass>1</bFreeBuildingClass>
<!-- Finished defining this free building -->
</FreeBuildingClass>
<!-- Finished defining all free buildings -->
</FreeBuildingClasses>
<!-- This sectio defines all the free techs that you start with -->
<FreeTechs>
<!-- This tag starts the free tech definition -->
<FreeTech>
<!-- This tag allows you to define which tech is free -->
<TechType>TECH_FISHING</TechType>
<!-- This tag specifies if you start with this tech researched -->
<!-- remember 1 = True, 0 = False -->
<bFreeTech>1</bFreeTech>
<!-- Ends the free tech definition -->
</FreeTech>
<!-- No more free tech's to define -->
</FreeTechs>
<!-- This tag I haven't played with but I assume it's to list techs that this civ can't use -->
<!-- I'll look into the schema later -->
<DisableTechs />
<!-- This section deals with starting civics -->
<!-- You can define which civics a civilization can start with here -->
<InitialCivics>
<!-- This line can be used to define the first initial civic -->
<!-- It is important to keep the following pattern so you don't miss any -->
<!-- if you do miss one then none of the civics from that on one will be selected -->
<!-- Define the initial government civic -->
<CivicType>CIVIC_DESPOTISM</CivicType>
<!-- Define the initial legal civic -->
<CivicType>CIVIC_BARBARISM</CivicType>
<!-- Define the initial Labor civic -->
<CivicType>CIVIC_TRIBALISM</CivicType>
<!-- Define the initial economy civic -->
<CivicType>CIVIC_DECENTRALIZATION</CivicType>
<!-- Define the initial religion civic -->
<CivicType>CIVIC_PAGANISM</CivicType>
<!-- No more initial civics to define -->
</InitialCivics>
<!-- These tell the game which civics to use during anarchy -->
<!-- These should be the same as the initial civics but don't have to be-->
<!-- Just to note that if you mess this up then some of the anarchy civics will default to nothing -->
<AnarchyCivics>
<!-- Define the anarchy government civic -->
<CivicType>CIVIC_DESPOTISM</CivicType>
<!-- Define the anarchy legal civic -->
<CivicType>CIVIC_BARBARISM</CivicType>
<!-- Define the anarchy Labor civic -->
<CivicType>CIVIC_TRIBALISM</CivicType>
<!-- Define the anarchy economy civic -->
<CivicType>CIVIC_DECENTRALIZATION</CivicType>
<!-- Define the anarchy religion civic -->
<CivicType>CIVIC_PAGANISM</CivicType>
<!-- nomore anarchy civics to define -->
</AnarchyCivics>
<!-- This defines which leaders are available for this civilization -->
<Leaders>
<!-- This section defines one leader that is available -->
<Leader>
<!-- This defines the leaders name -->
<LeaderName>LEADER_JOHN_MACDONALD</LeaderName>
<!-- Is the leader available to olay as? -->
<!-- you can set this to 0 if you want to hide this leader -->
<bLeaderAvailability>1</bLeaderAvailability>
<!-- finished with this leader -->
</Leader>
<!-- finished defining all leaders -->
</Leaders>
<!-- This tag tells the game which sound schemes to use for when something is selected -->
<CivilizationSelectionSound>AS3D_AMERICA_SELECT</CivilizationSelectionSound>
<!-- This tag tells the game which sounds to play when units are taking actions -->
<CivilizationActionSound>AS3D_AMERICA_ORDER</CivilizationActionSound>
<!-- Finished defining our new civilization -->
</CivilizationInfo>
<!-- Finished defining all civilizations -->
</CivilizationInfos>
<!-- Tell the game our XML file is done -->
</Civ4CivilizationInfos>
Ok now that we made all those changes we have a brand new civ to play right? Wrong, There are still more files to go through just to make it work. I'll cover that in part 2 though.
First we need to find where the Civilization Entries are entered. Under the Civ 4 folder you will see an assests folder and inside there is where all of the game definitions and logic are held. We are interested in the XML folder. In the XML directory you see a few more folders. The Civilizations folder is where all the different civilizations are defined. Now to add a new civ we need to open the CIV4CivilizationInfos.xml file. This is where all Civilizations in civ 4 are defined.
Looking through the file, you will see alot of tags. Here is the basic layout of each civ definition with comments inlied. Also the actual data inbetween the tags is the data needed for my own Canadian Civ mod.
[EDIT] This tut is ment for those with little XML experience and find the civ 4 files too unwieldly [/EDIT]
Pay careful attention to the tags, you can't define <CivilizationInfos> like <CiviliZAtionINFos> The schema forbids it.
<!-- Declareing the root node and namespace -->
<Civ4CivilizationInfos xmlns="x-schema:CIV4CivilizationsSchema.xml">
<!-- Just for organization Saying that there is more then one Civilization definition coning up. -->
<CivilizationInfos>
<!-- This is the starting of a new Civ definition. -->
<CivilizationInfo>
<!-- This tag allows you to create a refrence name for your new Civ -->
<!-- This is a definition tag it allows refrence to your new civ
please keep to the naming standards -->
<Type>CIVILIZATION_CANADA</Type>
<!-- The next six tags are part of the Type tag but are all refrences -->
<!-- A refrence means that these things are defined in another XML file -->
<!-- This tag allows us to give our civ a name that is then displayed by the game -->
<!-- Example of a description is "Canadian Empire" -->
<Description>TXT_KEY_CIV_CANADA_DESC</Description>
<!-- This is a shorter description -->
<!-- Anexample is "Canada", not that much shorter eh? -->
<ShortDescription>TXT_KEY_CIV_CANADA_SHORT_DESC</ShortDescription>
<!-- This is the adjective of the new civ -->
<!-- Example "Canadian" -->
<Adjective>TXT_KEY_CIV_CANADA_ADJECTIVE</Adjective>
<!-- This is interesting, This tag allows us to create a new civilopedia entry for our new civ -->
<Civilopedia>TXT_KEY_CIV_CANADA_PEDIA</Civilopedia>
<!-- This is what the standard player color is -->
<DefaultPlayerColor>PLAYERCOLOR_BLUE</DefaultPlayerColor>
<!-- This tag makes refrence to your Civs Flag -->
<!-- Just set this to america because I don't have the tools to create a new flag ->
<!-- Later in the tutorial I will show you how to edit this however -->
<ArtDefineTag>ART_DEF_CIVILIZATION_AMERICA</ArtDefineTag>
<!-- Tis next tag allows you to set how your buildings look -->
<!-- Since canadians are actually european settlers we'll set it to european style -->
<ArtStyleType>ARTSTYLE_EUROPEAN</ArtStyleType>
<!-- This tag tells the game if humans can play as this civ -->
<!-- Just a note 1 = true, 0 = false -->
<bPlayable>1</bPlayable>
<!-- If the AI can play as the new Civ -->
<bAIPlayable>1</bAIPlayable>
<!-- Now this is where alot of the work is -->
<!-- This tag allows you to list a bunch of city names that your new civ will build -->
<Cities>
<!-- This is actually a refrence to a city that was defined in another file -->
<!-- The more of these there are the more Definitions you need to create -->
<!-- for now I will only use one city - St. Johns, because it is the oldest city in north america -->
<City>TXT_KEY_CITY_NAME_ST_JOHNS</City>
<!-- This means that there are no more city definitions -->
</Cities>
<!-- This tag defines all of this civ's unique units -->
<Units>
<-- This is the new unique unit definition -->
<Unit>
<!-- This is the unit to be replaced -->
<!-- Again these are refrences to graphics and what not so I will set them to the american equiv -->
<UnitClassType>UNITCLASS_MARINE</UnitClassType>
<!-- This is the unit that will do the replacing -->
<!-- This is still the american equivilant -->
<UnitType>UNIT_AMERICAN_NAVY_SEAL</UnitType>
<!-- Finished Defining this UU -->
</Unit>
<!-- Finished defining all UU's for this Civ -->
</Units>
<!-- This portion defines which units a civ starts the game with -->
<FreeUnitClasses>
<!-- Defines each free unit individually -->
<FreeUnitClass>
<!-- The actual free unit that you get -->
<UnitClassType>UNITCLASS_SETTLER</UnitClassType>
<!-- How many of this type of unit? -->
<iFreeUnits>1</iFreeUnits>
<!-- finished defining this free unit -->
</FreeUnitClass>
<!-- Finished defining all free units -->
</FreeUnitClasses>
<!-- This Defines a list of which free buildings your first city will have -->
<FreeBuildingClasses>
<!-- this is the actual building definition -->
<FreeBuildingClass>
<!-- This tag tells us exactly which building is free -->
<BuildingClassType>BUILDING_CLASS_PALACE</BuildingClassType>
<!-- This tag sets if the free building is prebuilt or not -->
<!-- If you set this tag to 0 then the building will have to be built normally -->
<bFreeBuildingClass>1</bFreeBuildingClass>
<!-- Finished defining this free building -->
</FreeBuildingClass>
<!-- Finished defining all free buildings -->
</FreeBuildingClasses>
<!-- This sectio defines all the free techs that you start with -->
<FreeTechs>
<!-- This tag starts the free tech definition -->
<FreeTech>
<!-- This tag allows you to define which tech is free -->
<TechType>TECH_FISHING</TechType>
<!-- This tag specifies if you start with this tech researched -->
<!-- remember 1 = True, 0 = False -->
<bFreeTech>1</bFreeTech>
<!-- Ends the free tech definition -->
</FreeTech>
<!-- No more free tech's to define -->
</FreeTechs>
<!-- This tag I haven't played with but I assume it's to list techs that this civ can't use -->
<!-- I'll look into the schema later -->
<DisableTechs />
<!-- This section deals with starting civics -->
<!-- You can define which civics a civilization can start with here -->
<InitialCivics>
<!-- This line can be used to define the first initial civic -->
<!-- It is important to keep the following pattern so you don't miss any -->
<!-- if you do miss one then none of the civics from that on one will be selected -->
<!-- Define the initial government civic -->
<CivicType>CIVIC_DESPOTISM</CivicType>
<!-- Define the initial legal civic -->
<CivicType>CIVIC_BARBARISM</CivicType>
<!-- Define the initial Labor civic -->
<CivicType>CIVIC_TRIBALISM</CivicType>
<!-- Define the initial economy civic -->
<CivicType>CIVIC_DECENTRALIZATION</CivicType>
<!-- Define the initial religion civic -->
<CivicType>CIVIC_PAGANISM</CivicType>
<!-- No more initial civics to define -->
</InitialCivics>
<!-- These tell the game which civics to use during anarchy -->
<!-- These should be the same as the initial civics but don't have to be-->
<!-- Just to note that if you mess this up then some of the anarchy civics will default to nothing -->
<AnarchyCivics>
<!-- Define the anarchy government civic -->
<CivicType>CIVIC_DESPOTISM</CivicType>
<!-- Define the anarchy legal civic -->
<CivicType>CIVIC_BARBARISM</CivicType>
<!-- Define the anarchy Labor civic -->
<CivicType>CIVIC_TRIBALISM</CivicType>
<!-- Define the anarchy economy civic -->
<CivicType>CIVIC_DECENTRALIZATION</CivicType>
<!-- Define the anarchy religion civic -->
<CivicType>CIVIC_PAGANISM</CivicType>
<!-- nomore anarchy civics to define -->
</AnarchyCivics>
<!-- This defines which leaders are available for this civilization -->
<Leaders>
<!-- This section defines one leader that is available -->
<Leader>
<!-- This defines the leaders name -->
<LeaderName>LEADER_JOHN_MACDONALD</LeaderName>
<!-- Is the leader available to olay as? -->
<!-- you can set this to 0 if you want to hide this leader -->
<bLeaderAvailability>1</bLeaderAvailability>
<!-- finished with this leader -->
</Leader>
<!-- finished defining all leaders -->
</Leaders>
<!-- This tag tells the game which sound schemes to use for when something is selected -->
<CivilizationSelectionSound>AS3D_AMERICA_SELECT</CivilizationSelectionSound>
<!-- This tag tells the game which sounds to play when units are taking actions -->
<CivilizationActionSound>AS3D_AMERICA_ORDER</CivilizationActionSound>
<!-- Finished defining our new civilization -->
</CivilizationInfo>
<!-- Finished defining all civilizations -->
</CivilizationInfos>
<!-- Tell the game our XML file is done -->
</Civ4CivilizationInfos>
Ok now that we made all those changes we have a brand new civ to play right? Wrong, There are still more files to go through just to make it work. I'll cover that in part 2 though.