Cross-Platform Civ3 Editor

Cross-Platform Editor for Conquests now available! 1.48

howdy Quintillus,

i hadn't thot of the idea of visible growth. old code versus new[er] code and the very visible changes in style. interesting ...

i worked for a CAD consulting company for a few years. one of the side jobs was to review code and user interfaces - and then document them. it was fascinating to see how a coder would change his style over time. autoCAD autoLISP was also a bit wild west in nature so it allowed some very twisty logic.

that was a nifty job!

although i suspect you have put your coder badge at risk by admitting to the worth of documented code! [*grin*]

take care,
lee
 
Congratulations to version 1.00 of your editor and a big thank you very much for all your outstanding work! :hatsoff::clap::thanx:
 
Congratulations to version 1.00 of your editor and a big thank you very much for all your outstanding work! :hatsoff::clap::thanx:

Thank you kindly! A fair amount of your work is on my queue, including SOE (from the old SOC download link) and a full game of CCM.

howdy Quintillus,

i hadn't thot of the idea of visible growth. old code versus new[er] code and the very visible changes in style. interesting ...

i worked for a CAD consulting company for a few years. one of the side jobs was to review code and user interfaces - and then document them. it was fascinating to see how a coder would change his style over time. autoCAD autoLISP was also a bit wild west in nature so it allowed some very twisty logic.

that was a nifty job!

although i suspect you have put your coder badge at risk by admitting to the worth of documented code! [*grin*]

take care,
lee

Haha! Yes, there are some coders who dismiss code documentation, and I think you're referring to the "if you know your code well enough, you don't need no stinkin' comments or documentation" type - that is the "I'm too good to need documentation" mindset - rather than the (probably more common) "I'm lazy and like coding but writing documentation is boring" type. My favorite anecdote regarding that is a conversation between Linus Torvalds and Eric S. Raymond about that in 2000, at which time Torvalds was in the position of undervaluing several best practices, much as some coders undervalue documentation. You can read the full reply from Raymond here (and browse the rest of the thread); my favorite two paragraphs are:

But you make some of your more senior colleagues nervous. See, we've
seen the curse of the gifted before. Some of us were those kids in
college. We learned the hard way that the bill always comes due --
the scale of the problems always increases to a point where your
native talent alone doesn't cut it any more. The smarter you are, the
longer it takes to hit that crunch point -- and the harder the
adjustment when you finally do...

As Linux grows, there will come a time when your raw talent is not
enough. What happens then will depend on how much discipline about
coding and release practices and fastidiousness about clean design you
developed *before* you needed it, back when your talent was sufficient
to let you get away without.

I like to think that I pay enough attention to sustainable coding practices to avoid being stuck in a place where I'm relying on native talent alone and it's not sufficient, although every so often I do enjoy diving into a problem where native talent is all there is, just as a challenge... but I would not enjoy doing that often, or being obliged to due to my own previous poor practices on a job.

It amazes me in retrospect that Linux didn't use source control for so many years. Admittedly, the options available in the '90s were a lot less sophisticated than what's available today, and I don't disagree with Torvald's dislike of the main options then, it just seems incredible to have had such a large-scale project that didn't have source control for so long (and apparently used Torvalds' inbox as a patch queue). I've used source control on the editor since 2010 (aka, before the first release), and probably would've before that if I'd had any significant experience with it.

I do enjoy reading the old hacker lore. In some ways I think I missed the most interesting time to be a developer by 15-25 years, back when things were still fairly powerful, but also fundamentally changing a lot. Not that things don't change now, but so much of it is centered on the web now.

Did reviewing the code and user interface ever lead to changing them? I remember back when I was an intern at a large company, and one of my tasks was reviewing and documenting code... that also led to fixing the bugs that I found while reviewing the code. I've yet to stick around long enough at any one position to really see other coders' style change (within the same language/framework, at least), but I can see how it would be fascinating.
 
howdy Quintillus,

thanks for the link to the linux discussion. it's interesting reading. [*grin*]

reviewing code and UI stuff showed fairly quick responses. we were doing work for CAD shops that wanted to automate certain processes. like doing a detail viewport with a specific style used by the particular industry. so my feedback to the coders was likely to get a quick response.

besides, the code was rarely more than a few hundred lines. the only real problem i had was getting new coders to use the coding style the customer had requested [or even required]. usually i could talk to one of the other coders and they would get the "but why?" guy to follow the requirements.

we didn't get paid until delivery and the customer didn't pay until the code met the contract requirements. made for rather detailed specs [and fairly hairy times with sales folks who wanted their commission right NOW]. sales folks who oversell to the customer and underspec to the coders ... aieee!

i'm off for a nap! [*grin*]

take care,
lee
 
Congratulations to version 1.00 of your editor and a big thank you very much for all your outstanding work! :hatsoff::clap::thanx:
I 100% agree with Civinator. ;)

And I have a question: If you select a unit as upgrade in the Firaxis editor, the editor will only list units of the same type as possible upgrade (aircraft to aircraft, ships to ships usw.).

In your editor (at least version 0.97 :blush: ) is every unit listed as possible upgrade (so aircraft to ship is theoretical possible).

Is there a way to to list in your editor only possible upgrades of the same type?

Thanks!
 
Been starting to use this editor a bit more. When starting to edit more settings than just a few things and then saving, I have been getting this sometimes depending what entry I am on. It is something to do with my governments, but not sure what. They all appear fine, since they are basically the same as what I had in the firaxis editor. It also saves fine if I am on the default type government regardless if I change anything https://gyazo.com/c02aea719fefbcc985b33f46803b8f9b.



It could be the unit support, but I had 0 unit support numbers before, though only if all the numbers were 0, or 1, 2 etc. A recent change I did (when using this editor) was the ones that have per metropolis, and made the per town and city 0 (0,0,1). Before this, the ones that had per town city metro values were all the same (1,1,1), and the ones that didnt had all 0 for each one (0,0,0).

Only thing that stands out to me is the Unknown section values are rather large numbers. Eromility the default gov has just single number values.

The ruler titles did have a bunch of weird characters when I opened the .BIQ in this editor, but I cleared all those out.
 
I 100% agree with Civinator. ;)

And I have a question: If you select a unit as upgrade in the Firaxis editor, the editor will only list units of the same type as possible upgrade (aircraft to aircraft, ships to ships usw.).

In your editor (at least version 0.97 :blush: ) is every unit listed as possible upgrade (so aircraft to ship is theoretical possible).

Is there a way to to list in your editor only possible upgrades of the same type?

Thanks!

Good question, but there currently isn't a way to limit it to the same type. That would be a logical default, so I've added it to the list of future enhancements. I might also look at limiting it to units that are technologically in the future.

Been starting to use this editor a bit more. When starting to edit more settings than just a few things and then saving, I have been getting this sometimes depending what entry I am on. It is something to do with my governments, but not sure what. They all appear fine, since they are basically the same as what I had in the firaxis editor. It also saves fine if I am on the default type government regardless if I change anything https://gyazo.com/c02aea719fefbcc985b33f46803b8f9b.



It could be the unit support, but I had 0 unit support numbers before, though only if all the numbers were 0, or 1, 2 etc. A recent change I did (when using this editor) was the ones that have per metropolis, and made the per town and city 0 (0,0,1). Before this, the ones that had per town city metro values were all the same (1,1,1), and the ones that didnt had all 0 for each one (0,0,0).

Only thing that stands out to me is the Unknown section values are rather large numbers. Eromility the default gov has just single number values.

The ruler titles did have a bunch of weird characters when I opened the .BIQ in this editor, but I cleared all those out.

That does look okay in the screenshot. I'm looking into improving that dialog to tell the user what values it thinks are not valid, and although it will be gradual across tabs, I'm starting with the GOVT tab so in 1.01 it might tell us what it's unhappy about here. The checks can be disabled via Settings --> Adjust Safety Levels, and per-tab (I'm also looking at having that dialog remember your settings cross-session in the future, similar to how Recent Files and BMP colors are remembered currently).
 
Quintillus- I just started modding again last week and am using Ver. 1.00 of your editor for the first time. With previous versions I haven't had a problem, but for some reason when I try to run a BIQ that I've saved in 1.00, I get a "Civ has stopped working" error. Same thing happens if I try to open the BIQ in the Firaxis Editor. I can open it fine in Steph's editor though, save it there, and then the BIQ will run fine in the game and Firaxis Editor. I've attached the log in case it might show something and help fix this issue. Thanks.
 

Attachments

  • log.txt
    226 KB · Views: 88
Laurana Kanan is correct that there is an issue in 1.00, relating to the new code for handling spaceship parts. This is fixed in version 1.01, and version 1.01 will automatically repair all BIQ files affected by the issue when they are saved in 1.01.

Version 1.01 changes:

  • Fix the bug in the spaceship part code that caused the BIQs to not be handled properly in-game
  • The GOVT tab will now report which specific values it believes do not meet safety levels.
  • All labels on the GOVT tab can now be localized.

The bug fixed related to the dreaded section length variables in the BIQ. Although it's possible to read the BIQ without those headers - which is why this editor and Steph's editor were able to read Laurana's file without an issue - Firaxis's editor uses those values to decide how much to read, resulting in an error if one of those values is incorrect. The bug has now been fixed, and I've also added an automatic check that will verify the editor can open a file, save it, and not change a single byte in it. This check now runs every time a new version of the editor is created (as well as when I make changes between versions), so it should put a stop to that sort of error going forward.

The new unsafe values warning looks like this (depending on the invalid fields):



This should provide more information on why it thinks something is invalid. I plan to gradually role this out to other tabs as well.
 
:clap: Thank you!

One thing I noticed which was kind of a pain was on the Civilization tab. You're only able to add and delete one city or leader at a time. Would it be possible to change it to where you could select all entries and delete them and also select many names from a list (in Excel for example), and then copy + paste them into the fields?

I also know I asked you once before about being able to rearrange entries in the unit list to keep it more organized for those of us who continually add and subtract from it (e.g. keeping all the flavor units for a unit type, like swordsmen together). At the time you said, "no", but I wonder if you might reconsider this as an option. It would especially help in tracking down broken upgrade chains.

Thanks again!
 
For deleting more than one city/leader at a time... yes, it looks like that would be possible. It would require reworking a bit of old code in the process, and checking that changing it doesn't break anything that depends on the way it's written (and it's old enough that I don't have notes on the particular reason I wrote it that way, though I have an idea). But it does look doable with reasonable effort.

Pasting in multiple ones may be a little trickier, since there isn't any built-in support for it. However, I'm sure it is possible to add support for it. Initial support for it is most likely to be from a plain-text list such as:

Chicago
Los Angeles
Tallinn

rather than Excel, since Excel may have special formatting. But from a technical standpoint, I think it likely is doable, if with a bit more effort than enhanced deletion. I see the benefit though - I know there are city lists that CFC members such as georgestow have created, and being able to simply paste those in would be nice.

Re-ordering is likely the most complex of the three, since the format of the BIQ is such that there's a lot of pointers to numerical IDs (i.e. PRTO 13 requires goods 7 and 12, map tile 3723 contains good 9, etc.) and making sure all of those get updated is unfortunately somewhat error-prone. I'd thought about updating how the editor works so that it could would not have to care about numerical IDs and thus reordering would be easier (thus, Knights require Iron and Horses, and we don't care if Iron is good 7 or 6, except for the order we display the list in and thus the game shows it in). But given the amount of existing code, that's also a much larger change than if I'd thought of doing it that way back in the late 2000's. I did create a list of everything that needs updated when a BLDG/PRTO/etc. is added/deleted (or reordered), so I have a cross-check to make sure I cross my t's and dot my i's if I decide to try it as-is.

Thus, as usual, what it all comes down to is time. I'd like to do all three, and playing scenarios, I can definitely see where being able to reorder would be nice from a player perspective too (so rather than a random order of units/buildings to build based on when they were added to the scenario, it would be by type of unit, or alphabetical... a few scenarios have this, but a lot don't since reordering historically has been time-consuming and very manual).

In the meantime, I've added them to the list of things to do, and checked on the feasibility of the delete improvement. I hope to do at least one of those three + Kirejara's suggestion of being able to limit unit upgrades to the same type of unit for 1.02, but am not sure which it will be... it likely depends on which sounds most interesting/feasible the next time I start a longer session of editor-coding.
 
One thing I noticed which was kind of a pain was on the Civilization tab. You're only able to add and delete one city or leader at a time. Would it be possible to change it to where you could select all entries and delete them and also select many names from a list (in Excel for example), and then copy + paste them into the fields?

For cities, this is going to be in version 1.02. Just finished adding it, and verified that it works from Excel as well as Notepad (without even needing any extra code!). Probably will go ahead and add it to leaders too, since the most difficult one is always the first one.
 
For cities, this is going to be in version 1.02. Just finished adding it, and verified that it works from Excel as well as Notepad (without even needing any extra code!). Probably will go ahead and add it to leaders too, since the most difficult one is always the first one.
:clap: That's fantastic!! Thank you!
 
Version 1.02 is now available. This version focuses on improving a few workflows.

  • You can now add lists of cities/military leaders/scientific leaders all at once
  • You can now delete multiple cities/military leaders/scientific leaders at once
  • The editor now restricts the upgrade to/enslave to options to units of the same type (Land/Air/Sea)
  • Fix a bug that could cause units to upgrade to/enslave to an incorrect unit after deleting units.
  • The GOOD tab now supports internationalization.

For adding lists of cities/military leaders/scientific leaders all at once, have them in a format such as the following:

Missoula
Helena
Butte

And then copy the list from your favorite text editor (or Excel/Libre Office Calc), and paste them in the appropriate area of the CIV tab. Pasting something without a newline will add it to the regular text entry area rather than the list, so you can still paste partial names, such as accented characters.

These fields also now support selecting more than one entry at a time for easily deleting more than one of them.

For the upgrade/enslave actions, I tested what happened when upgrading across class. In short, you cannot do it, and I was not able to successfully enslave a unit across classes either. The only potentially interesting use of it might be due to the fact that once, for example, a land unit's upgrade to a sea/air unit becomes technologically available, you can no longer build that land unit. So this could theoretically be used to obsolete earlier units in a scenario - perhaps we could obsolete Cavalry one Bombers become available, in the standard ruleset. Thus there's a chance I might re-enable it for that in the future, especially if someone comes up with a scenario that would like to do that, but for the time being the utility of class-specific upgrades seemed to be more beneficial.

The bug fixed specifically happened when deleting a unit prior in the list to another unit's upgrade to/enslave results in. This should decrease the index of the latter unit's upgrade to/enslave results in, but that was not happening. This has now been fixed.

There currently are no translations of the GOOD tab, but as a fairly small one, it would be a good starting place for anyone interested in having a Civ editor in their native language.
 
I have the slightly unexpected problem, that 1.02 does not start. :confused:

First I just put it in the existing folder of 0.97, overwriting the older version.

Then I tried a fresh folder.

I have rebooted the PC several times, but the version 1.02 does not start then selecting "launcher". I received no error message either.

I just reastablished 0.97 again, and its starts without problem.

PC is running on Windows XP. Oracle Java is on its latest version 7 upgrade 55.

I am somewhat clueless about whats wrong. :confused:
 
I have the slightly unexpected problem, that 1.02 does not start. :confused:

First I just put it in the existing folder of 0.97, overwriting the older version.

Then I tried a fresh folder.

I have rebooted the PC several times, but the version 1.02 does not start then selecting "launcher". I received no error message either.

I just reastablished 0.97 again, and its starts without problem.

PC is running on Windows XP. Oracle Java is on its latest version 7 upgrade 55.

I am somewhat clueless about whats wrong. :confused:

That would be because the latest updates require Java 8. The last I checked, Java 8 still does support Windows XP (although unofficially - it will give a warning on installing, but will complete and as far as I've been able to tell, will work just as well as on Vista+). I haven't tried the latest releases of Java 8 on XP, but unless compatibility broke recently, you can go to download it here, choose Windows x86 (or x64 if you are on 64-bit XP, which is rare), install it to get to Java 8, and then the editor should start either with or without the launcher (which with recent versions of Java isn't actually required).

--> Note that you'll want either the Online or Offline .exe, not the .tar.gz. I don't think the 101 vs 102 releases make any difference, and if the number increases by the time you check, just pick one of the two on that page.

I'm starting up my XP 32-bit laptop currently to test that the latest Java 8 release works on it, but I did some of the development for 1.02 on (64-bit) Windows XP, with a slightly older release of Java 8, so I know it can still work on XP. I just switched to Windows 8 as my main release last month, so I wouldn't have increased the requirements if I didn't know it would still work on XP.

If all else fails, 0.99 Legacy in the Old Versions section in the first post still works on Java 5+ (0.99 was the first version to require Java 8). I haven't updated the Legacy in awhile since it didn't seem like anyone was using it, but do eventually plan to update it to at least 1.00 (minus the few features that actively require Java 8, mainly CFC Downloads Database integration), particularly if it turns out the newer ones don't work for some people who are actively using the editor.

Update: Just verified that Java 8 Update 102 works with the editor on my Windows XP 32-bit laptop.

Great Work Quintillus! Thank You :goodjob:

Hope you have had some time to work on your Map and Play some Scenarios :)

Thank you! Haven't worked on the map recently, but have played some of RFRE this summer. This year's mainly featured broadening my gaming horizons, though, which was probably overdue after so many years of focusing on Civ and then Europa Universalis.

Quintillus - The new add/delete feature works beautifully! I was just getting ready to change some Civ's, so the new version came at the perfect time. Thank you! :thumbsup:

Glad it's working and that the timing worked out!
 
Thanks Quintillus!

The editor 1.02 is now working with Java 8, version 102.

I did not install it until now, because of the warning it gave during the installation.
 
Top Bottom