[Question] Civilizeditor Features

^^I want to see one.

Anyways great work!

Also, any luck on a update to the tech editor about the text entry boxes?
 
^^I want to see one.

Anyways great work!

Also, any luck on a update to the tech editor about the text entry boxes?


I will post an update for the tech tree after I am done with v0.1 of the Civilizeditor.

Here are the teaser images for the Civilizeditor:
Unit_Editor_Teasers.jpg

Unit_Editor_Teasers2.jpg

Unit_Editor_Teasers3.jpg



Please note, I haven't included all of the options the unit editor can change in the images.
 
Features to be included:
  • Unit Editor (including unit class and special unit editor)
  • Building Editor (including building class and special building editor)
  • Civics Editor
  • Religion Editor
  • Civilization Editor
  • Leaderhead Editor
  • Terrain and Feature Editor
  • Improvements Editor

I think you have just about all based covered here, Lopez. :goodjob:

For the Religion/Feature editor... will this also edit the GameFont files, or would that still be done manually?
 
question: is this going to be cpmpatable with vanilla or will I need to get warlords?
 
Is anyone working on an Events editor?

This tech tree editor is a great thing to have created, thanks. All the other ideas are much needed too.
 
very impressed , simply amazing work. Any idea about when it should be released. I was using XML spy which kept things pretty simple but my subscription ran out and I refuse to pay any money so Im stuck with the notepad which will take way to long. So right now im trying to hold off adding units to my mod.
 
question: is this going to be cpmpatable with vanilla or will I need to get warlords?
Yes, I will release both a vanilla and warlords version

Is anyone working on an Events editor?

This tech tree editor is a great thing to have created, thanks. All the other ideas are much needed too.
Thanks wotan, No I am not working on an events editor.

very impressed , simply amazing work. Any idea about when it should be released. I was using XML spy which kept things pretty simple but my subscription ran out and I refuse to pay any money so Im stuck with the notepad which will take way to long. So right now im trying to hold off adding units to my mod.

I will try to release Civilizeditor v0.1 by Christmas but no promises...
 
Lopez, I'm currently working on extending the Modular loading by Chinese American to to point ware it will allow easy drag and drop of content. I realized their could be synergy with your Civilizeditor.

The modular XML files are grabed from anyware in the XML directory based on file names, I've been using "*_CIV4File.xml" and "*CIV4File.xml" so you can import both the original file and any number of moduals. These then get merged togheter and the Info classes counts grow as needed and the game proceeds as if everything had originaly been on one file.

Based on my understanding of your current code the Civilizeditor could be started up after that point and with a single save action write XML files that would contain all of thouse modular bits in one file. This in itself is great because it will fix the slow loading of many little moduals, you just merge once and then play the resulting single file hierarchy. It also allows a quicker and easier way for someone to bring content into the editor other then by creating it from scratch in the editor.

But their could be more, if the Cilvilizeditor could be made to create modular saves of singlular game elements then things would go full circle. Moders could create, edit, combine and breakup content with a single tool. The process would be rather simple the player would select one or more elements such as units, buildings or techs or any combination of them (probably a new screen would be required). A modual name is entered and a Save modual button is pressed. A directory of the chossen name is created and a series of xml files are writen their. From what I gathered the code already has the ability to detect references to an element being saved on other elements and to write thouse changes as well. The only difference will be that the writer should write only the individual elements which have dependent reference on the saved elements rather then the whole document.

So for example when you create Ceremonial Burial and make other techs dependent on it and later lets say a building called Burial Ground as well. When Ceremonial Burial is saved under the name MYNEWMOD a mini-xml called MYNEWNOD_CIV4TechInfos.xml is writen containing only Ceremonial Burial and the altered techs. The Building wouldn't be saved because Techs dont depend on buildings, but if the Building were saved its pre-requisite techs would automaticaly be saved as well along with anything that depended on them. In that case you get a MYNEWMOD_CIV4BuildingInfos.xml as well and its all in a nice neat folder ready to zip and upload. Someone else can then merge it in to their Mod by simply droping in in their Custom Assets, loading the mod and activating the save you currently have implemented aka "Full Save".

Lastly, the files that I'm working on are CvXMLloadUtilitySet.xml and CvXMLLoadUtility.h so which arn't modified in your current code so it will be a snap to drop into your editor when its done or upgraded. I'll keep you informed and possibly bug you for help, I'm hoping to have this ready before Christmas and that a body of modularized content can begin growing from that point on, CivGold in particular is eager to get it.
 
I've compiled the latest build of you Editor with Modular loading and confirmed the use of it to bring information into the editor either as a new Tech or as a modification to an existing one. A full modular tech needs to include a button within its modual folder and thus its buttonpathway end up being something along the lines of "xml/Custom Techs/New Tech/New Tech.dds", if we want to save the resulting edited tech tree that pathway should be altered to something along the lines of "art/Interface/Buttons/New Tech.dds" to reflect the fact the Tech is no longer realy modular. Python would then copy and save the button to that new path. I could start looking at creating the python nessary to do this if your receptive to the idea.

Modular loading is going very nicely, the only class of objects not currently working are buildings as their seems to be a data corruption when a modular building loads. I have the following files loading modularly. I haven't tested each individualy but most of the major ones are confirmed to work correctly, most go through a single ProcessClassInfo() function which first loads the default file then loads everything matching the regular expression "xml//*_NAME.xml"

CIV4GameSpeedInfo
CIV4TurnTimerInfo
CIV4WorldInfo
CIV4ClimateInfo
CIV4SeaLevelInfo
CIV4AdvisorInfos
CIV4TerrainInfos
CIV4EraInfos
CIV4UnitClassInfos
CIV4SpecialistInfos
CIV4TechInfos
CIV4FeatureInfos
CIV4TraitInfos
CIV4GoodyInfo
CIV4HandicapInfo
CIV4CivicOptionInfos
CIV4UpkeepInfo
CIV4HurryInfo
CIV4SpecialBuildingInfos
CIV4ReligionInfo
CIV4CultureLevelInfo
CIV4BonusClassInfos
CIV4VictoryInfo
CIV4BonusInfos
CIV4BuildingClassInfos
CIV4SpecialUnitInfos
CIV4ImprovementInfos
CIV4CivicInfos
CIV4LeaderHeadInfos
CIV4ColorVals
CIV4PlayerColorInfos
CIV4EffectInfos
CIV4BuildInfos
CIV4UnitInfos
CIV4CivilizationInfos


P.S. After using the TechEditor I started to think about how the user would go between the various kinds of Editors, as the next editor will be the Unit Editor I think it would be nice if clicking the unit portraits on the Tech Tree would bring up the Unit edit box rather then jump to the Pedia entry for the Unit. Also any plans to allow Text elements assosiated with Tech or Units to be edited such as Pedia entries, Quote text and strategy tip text?
 
Impaler[WrG];4887717 said:
I've compiled the latest build of you Editor with Modular loading and confirmed the use of it to bring information into the editor either as a new Tech or as a modification to an existing one. A full modular tech needs to include a button within its modual folder and thus its buttonpathway end up being something along the lines of "xml/Custom Techs/New Tech/New Tech.dds", if we want to save the resulting edited tech tree that pathway should be altered to something along the lines of "art/Interface/Buttons/New Tech.dds" to reflect the fact the Tech is no longer realy modular. Python would then copy and save the button to that new path. I could start looking at creating the python nessary to do this if your receptive to the idea.
No don't worry about it, I will take care of it when I add this feature into the Civilizeditor... What I am planning to do is add a configurable option allowing modders to indicate if they want to save all of the changes as individual modules.

Impaler[WrG];4887717 said:
Modular loading is going very nicely, the only class of objects not currently working are buildings as their seems to be a data corruption when a modular building loads. I have the following files loading modularly. I haven't tested each individualy but most of the major ones are confirmed to work correctly, most go through a single ProcessClassInfo() function which first loads the default file then loads everything matching the regular expression "xml//*_NAME.xml"

CIV4GameSpeedInfo
CIV4TurnTimerInfo
CIV4WorldInfo
CIV4ClimateInfo
CIV4SeaLevelInfo
CIV4AdvisorInfos
CIV4TerrainInfos
CIV4EraInfos
CIV4UnitClassInfos
CIV4SpecialistInfos
CIV4TechInfos
CIV4FeatureInfos
CIV4TraitInfos
CIV4GoodyInfo
CIV4HandicapInfo
CIV4CivicOptionInfos
CIV4UpkeepInfo
CIV4HurryInfo
CIV4SpecialBuildingInfos
CIV4ReligionInfo
CIV4CultureLevelInfo
CIV4BonusClassInfos
CIV4VictoryInfo
CIV4BonusInfos
CIV4BuildingClassInfos
CIV4SpecialUnitInfos
CIV4ImprovementInfos
CIV4CivicInfos
CIV4LeaderHeadInfos
CIV4ColorVals
CIV4PlayerColorInfos
CIV4EffectInfos
CIV4BuildInfos
CIV4UnitInfos
CIV4CivilizationInfos
That is a very impressive list...

Impaler[WrG];4887717 said:
P.S. After using the TechEditor I started to think about how the user would go between the various kinds of Editors, as the next editor will be the Unit Editor I think it would be nice if clicking the unit portraits on the Tech Tree would bring up the Unit edit box rather then jump to the Pedia entry for the Unit.
Will you stop reading my mind :p. I am working on the Unit Editor and it is almost done... as for clicking on unit images in the tech tree editor to bring them up in the unit editor, that is already done.

Impaler[WrG];4887717 said:
Also any plans to allow Text elements assosiated with Tech or Units to be edited such as Pedia entries, Quote text and strategy tip text?

I am trying to come up with a way to do this but have not come up with a good answer since since there is no concept of a text area in the game as far as I can see.
 
No don't worry about it, I will take care of it when I add this feature into the Civilizeditor... What I am planning to do is add a configurable option allowing modders to indicate if they want to save all of the changes as individual modules.

I'm invisoning a system in which the moder can explicity choose what goes into the save. Saving all changes as individual moduals is a good option to have but in some cases this could create too much clutter as hundreds of individual element moduals are created. A "Modual" would be minimum set of files adding or modifying a single game element such as a tech, unit, Civ ect ect. A "Package" would consist of one or more moduals bundled together on the same XML files. So rather then a dozen folders each with a single element file you have one folder and one file with 12 elements. This will also solve dependency problems as people add multiple new elements dependent on each other. Lastly it should present less of a burden at load time as their are fewer files to search and load.

Given this paradigm the user could have severl save methods, on the edit window their could be a "Save Modual" which saves just the raw element data without performing any cross dependency checks, this would serve mainly as a method of extracting smaller portions of larger mods. On the main Screen the "Save Modual" option would open a window with two large panels, on the left is Savable Elements underwhich every type of savable data is listed, tabs along the top would organize the types. On the right is the In Package list and ofcorse their are two big Buttons "+" and "-" for adding and removing. Once the user likes the list and enters a package name the save writes all the nessary files taking dependencies into account and grouping together the proper elements and making things neat and tidy. This would serve as the primary means of destributing content and making patches to existing mods.

Another issue, their currently isn't any way to destinquish data loaded from a modual from data loaded from the games base files. It might be possible to tag data with the file pathway it originated from at the time of loading and to then expose it to python. This would allow the Editor to recognize Packages and moduals so they could explicity be manipulated as groups of element and saved as such. Once we have a differentiation between base and package it should be possible to incresse the inteligence of the save features so that dependent information is automaticaly included in a modual.

P.S. When editing the number of bonus trade routes that a tech provides I found the slider goes all the way up to 90+, this made the difference between 1 trade route and 2 about a pixel and I was unable to move it delicatly enough to get it too 2, Can the range on that slider be reduced to say 16 at most.
 
May I suggest you to add the ability to comment out temporarily techs belonging to others era ( displayed in grey on screen ) that I don't want to work on at the moment. When era completed, a button can disable comment for an era or the whole tech tree.
Aniways, this editor will be great !
 
Impaler[WrG];4888109 said:
I'm invisoning a system in which the moder can explicity choose what goes into the save. Saving all changes as individual moduals is a good option to have but in some cases this could create too much clutter as hundreds of individual element moduals are created. A "Modual" would be minimum set of files adding or modifying a single game element such as a tech, unit, Civ ect ect. A "Package" would consist of one or more moduals bundled together on the same XML files. So rather then a dozen folders each with a single element file you have one folder and one file with 12 elements. This will also solve dependency problems as people add multiple new elements dependent on each other. Lastly it should present less of a burden at load time as their are fewer files to search and load.

Given this paradigm the user could have severl save methods, on the edit window their could be a "Save Modual" which saves just the raw element data without performing any cross dependency checks, this would serve mainly as a method of extracting smaller portions of larger mods. On the main Screen the "Save Modual" option would open a window with two large panels, on the left is Savable Elements underwhich every type of savable data is listed, tabs along the top would organize the types. On the right is the In Package list and ofcorse their are two big Buttons "+" and "-" for adding and removing. Once the user likes the list and enters a package name the save writes all the nessary files taking dependencies into account and grouping together the proper elements and making things neat and tidy. This would serve as the primary means of destributing content and making patches to existing mods.

Another issue, their currently isn't any way to destinquish data loaded from a modual from data loaded from the games base files. It might be possible to tag data with the file pathway it originated from at the time of loading and to then expose it to python. This would allow the Editor to recognize Packages and moduals so they could explicity be manipulated as groups of element and saved as such. Once we have a differentiation between base and package it should be possible to incresse the inteligence of the save features so that dependent information is automaticaly included in a modual.

Ok, that sounds good to me.

Impaler[WrG];4888109 said:
P.S. When editing the number of bonus trade routes that a tech provides I found the slider goes all the way up to 90+, this made the difference between 1 trade route and 2 about a pixel and I was unable to move it delicatly enough to get it too 2, Can the range on that slider be reduced to say 16 at most.
Ok, I'll add that to the todo list for the next version of the mod and for the Civilizeditor. Let me know if there are any other sliders that need to have their max value changed.
 
Well some bad news, it turns out that there are some references to UnitInfos in the Civilization4.exe executable. I am working on a workaround but the resulting code will mostlikely mean that to test new units added through the Civilizeditor you will need to restart the civilizeditor or load up the new mod created through the civilizeditor... unless anyone else has another idea.
 
Is the problem related to loading the Information into the Info Classes? If so I think adapting some of the modular loading code could do the trick as thats its main function, adding another index on to the end of the existing array and incrementing the Class count varable.

I'm not familiar with how the Editor stores its data, are all the newly created elements and alterations held in Python or are they actualy injected into and held in the C layer and then extracted for writing? I suspect the former. If so adapting some portions of the Modular Loading code and exposing them to python might alow the later solution which would allow for imediate play testing of Edits without re-loading. The player would almost certanly have to quit the current game and re-start it due to all the already alocated arrays in various objects like cities and units. Infact I think the best solution would be having the Civilizeditor accessible from the main menu rather then in game at a time when no game is in existence, ofcorse this would require modification of .exe so Firaxis would need to do it, we can hope though.
 
Impaler[WrG];4920098 said:
Is the problem related to loading the Information into the Info Classes? If so I think adapting some of the modular loading code could do the trick as thats its main function, adding another index on to the end of the existing array and incrementing the Class count varable.

I'm not familiar with how the Editor stores its data, are all the newly created elements and alterations held in Python or are they actualy injected into and held in the C layer and then extracted for writing? I suspect the former. If so adapting some portions of the Modular Loading code and exposing them to python might alow the later solution which would allow for imediate play testing of Edits without re-loading. The player would almost certanly have to quit the current game and re-start it due to all the already alocated arrays in various objects like cities and units. Infact I think the best solution would be having the Civilizeditor accessible from the main menu rather then in game at a time when no game is in existence, ofcorse this would require modification of .exe so Firaxis would need to do it, we can hope though.

Well, I have now created a parallel m_paUnitInfos array called m_paEditedUnitInfos in the CvGlobals class and it is still crashing... very wierd. I think I will have to now turn on all of my debugging skills to see what in the heck is going on.
 
Well, I have now created a parallel m_paUnitInfos array called m_paEditedUnitInfos in the CvGlobals class and it is still crashing... very wierd. I think I will have to now turn on all of my debugging skills to see what in the heck is going on.


Great news, I think I figured out the problem and are now using a completely different methodology which will allow you to test out new units immediate in the game without having to reload the civilizeditor... :D
 
Back
Top Bottom