[UTILITY] Civ 4 Studio (Map properties editor)

bssth

Golang Developer
Joined
Apr 25, 2024
Messages
21
Location
Lviv (UA), Tbilisi (GE)
studio.jpg

Hi everyone, let me present you the development I'm doing now in my spare time. So far it's just a working demo, but hopefully someone will need it and I'll have someone to develop it for

Background
Like most of you, I play Civ 4 BTS from time to time (mostly with mods). I'm almost happy about everything, except for a known MFA issue that causes the game to crash late in the game.
Unfortunately there's nothing I can do about it, we have to keep begging the game authors and GameBryo to release the source code.
But there is a second problem, and this is something that can be done about.

It comes because the map editor is not able to edit everything (not counting the versions of some mods). Basic things (cities, units, technology, etc.) are done better than with any external program, but add a new country, change the leader and flag and other things cannot be done. That's why I decided to create a program that will probably ease similar agony for you!

Personally, I'm a senior Golang developer, doing various projects of my own. Unlike the others, this one is just for the soul, as it is obviously not going to turn into something big. But it is possible to help the community of favorite game

Depending on whether you like it or not and whether it's useful, I'll be releasing updates and expanding the features. I would ideally like to create a utility to quickly create and modify custom mods, but this is only possible if there is a real use for it,

Stage
The program is currently in the early stages of development. The following features are already available:
  • Configuring game directory (BTS only) with mods support, launching your map with mod fast with button
  • Parsing maps to internal structures and back (can be reused in your projects)
  • Changing game options, MP and victory conditions declared in game and mod XMLs
  • Changing era, speed, calendar and other map values. Editor parses all XML files when available so you don't need to find information by yourself
  • Saving and launching your map (if any data is lost after saving, please let me know)
Not available for now, but will be in next version:
  • Creating completely new maps without any base. Configure everything in program, then use WorldBuilder to set the rest.
  • Changing players and teams (it's in development right now)
Plans
What happens next depends purely on whether someone needs the program or not. In my dreams I see a full-value modding utility and a more powerful WorldBuilder alternative that isn't limited to the capabilities of a 32-bit game with a maximum of 4GB of RAM. But it's important to me that it actually helps someone. So I look forward to feedback and ideas from you

I invite you to test the program. The first release for different platforms is available here: https://github.com/bssth/civ4-studio/releases/tag/pre-alpha

Source code will be available soon after it looks less embarrassing, and there will be more features and extensibility. At the moment it's about a few weeks of work. Installer will be also available if anyone needs it.

Please feel free to download and comment. You can post any problems either in this thread or on a special page if you have an account on GitHub: https://github.com/bssth/civ4-studio/issues
 
Wow! A very promising and useful project.
I always wondered why such a tool wasn't developed before.

One suggestion:
Move / copy-paste map parts.
It's annoying when a city/unit is "just one tile away from where it should be".
Also could be useful for mapmakers to have the ability to copy-paste entire areas of the map.

Do you plan Colonization support? For some reason I think that WTP could make a good use of your tool. @raystuttgart ? :mischief:
 
For some reason I think that WTP could make a good use of your tool. @raystuttgart ? :mischief:
I have stopped actively modding beginning of this year.
(Currently no idea if or when I may return to modding.)

But there are still other team members working on WTP.
So maybe e.g. @Nightinggale is interested to take a look.
 
Wow! A very promising and useful project.
I always wondered why such a tool wasn't developed before.

One suggestion:
Move / copy-paste map parts.
It's annoying when a city/unit is "just one tile away from where it should be".
Also could be useful for mapmakers to have the ability to copy-paste entire areas of the map.

Do you plan Colonization support? For some reason I think that WTP could make a good use of your tool. @raystuttgart ? :mischief:
Really glad to see you, as I was testing the edit mode on your Chronicles of Mankind mod :)

1721653802635.png


Also surprised that this hasn't been done, I've mostly seen WorldBuilder analogs. I want to do one eventually too, but decided to start with something that WorldBuilder itself doesn't support. Then there's a better chance that someone will be interested in it right away, rather than sometime in the future when the project comes out of alpha (which is unfortunately rare for indie developers generally)

If I can get map builders interested in this utility, there will definitely be such features. At least, I'd be very interested in making them. WorldBuilder is still not so much a full-value map editor as it is an in-game tool, however powerful. That's why cutting and copying, for example, are absent there. In a real editor, of course, it should work no worse than some Microsoft Office.

Support Colonization and even vanilla is probably not difficult, the format of the maps did not change much. It may already be working now, I've only tested it on BTS.

I have stopped actively modding beginning of this year.
(Currently no idea if or when I may return to modding.)

But there are still other team members working on WTP.
So maybe e.g. @Nightinggale is interested to take a look.
Seems like I've been late with this util, a lot of people have already left. But maybe you'll come back one day.

I would welcome any attention and suggestions, especially from active modders. Unfortunately, I don't know local forum members well, because I am from Ukraine and have discovered the English-speaking Civ community just recently
 
Working on the next version which is coming soon. It will be possible to edit teams and players. At first it will be a simple system with selection from a list taken from XML files, but in the future I will add more visual interface. Actually some developments on it already exist, I just want to make them prettier.

If you know modders who might be interested in the project, feel free to show them this project. The modding community is not that big, so any interest is important :)
 
I've given up trying to get the UI in an inappropriate language, so I'm quickly converting the editor to web technologies. The backend, parsing and other things will remain in Go.

Expected updates in the near future:
- Editing of teams, players and a number of other things (only UI left)
- Display of all plots (no editing for now). What exactly will be this time, I haven't decided yet, I'll see what I can do.

I welcome you to check back here as soon as everything is posted. And I suppose that in future such an editor with 64 bit architecture and multithreading will be much more pleasant than WorldBuilder :)
 
Uh, this would be a very nice program. I've given up modding since a long time now because I simply don't have enough free time. Glad to see someone still keeping civ4 alive in modding terms too (and that goes to @<Nexus> too. I would be happy to see this editor working too!
 
Also, I've tried your program with a Realism Invictus savegame, but it didn't work (see screenshot)

1723914879133.png


I also tried an old Rise Of Mankind - A New Dawn save, but it didn't work either. Thanks in advance for any advice.
 
Also, I've tried your program with a Realism Invictus savegame, but it didn't work (see screenshot)

View attachment 699524

I also tried an old Rise Of Mankind - A New Dawn save, but it didn't work either. Thanks in advance for any advice.

Uh, sure. I'm really glad you gave it a try, because it's hard to do anything well without testing with different people.

Can you please send me the map files you used? I'll determine the problem
 
Uh, sure. I'm really glad you gave it a try, because it's hard to do anything well without testing with different people.

Can you please send me the map files you used? I'll determine the problem

Uh, wait, I think I misunderstood. Does your program allow to modify CivBeyondSwordWBSave (worldbuilder files)? I thought you could modify regular saves too. Either way, I could not do it with wbsaves either; but I get a different error (see screenshot)

1724152990417.png


I attached here a test WBSave that I used for Realism Invictus. Thanks for looking into it.
 

Attachments

Last edited:
Uh, wait, I think I misunderstood. Does your program allow to modify CivBeyondSwordWBSave (worldbuilder files)? I thought you could modify regular saves too. Either way, I could not do it with wbsaves either; but I get a different error (see screenshot)

View attachment 699709

I attached here a test WBSave that I used for Realism Invictus. Thanks for looking into it.
Yes, the tool works exactly with CivBeyondSwordWBSave files. So far it is assumed that it is used together with WorldBuilder and therefore works with its files

I understood your problem: in the maps created through Platy Builder (an extended version of WorldBuilder) the format is slightly different, e.g. a line “Platy Builder” is added at the very beginning of the map file.

1724154737639.png


The parser does not know about this expression yet and thinks that the format is incorrect. I will take it in next version to support Realism Invictus.

Those who use Platy Builder probably do not need this program yet because it's powerful itself
:)
 
Last edited:
Uh, very nice to know! But there's a feature in your program which I find very interesting and that is changing MP options(Victories, which is not possible with platy's WB. If you can include RI support in your next version, that would be great! Thanks in advance!
 
Uh, very nice to know! But there's a feature in your program which I find very interesting and that is changing MP options(Victories, which is not possible with platy's WB. If you can include RI support in your next version, that would be great! Thanks in advance!
The program was developed with the WorldBuilder format documentation as a cheat sheet, so all possible parameters are used. Nice to hear it got you interested :)
 
Back
Top Bottom