Skip to content

Making a Release

Antti Halme edited this page Jun 14, 2026 · 1 revision

Guidance for the core project team on how to publish an official OpenCiv3 release.

OpenCiv3 Release Process

  1. Gain consensus that it's the right time for a release.
  2. Update the title screen if need be, see below for separate guidance. If there's a new image, make sure to upload and link the Krita template to that page.
  3. Go to the Export C7 Action Page. Fill it in similar to the following:

image

The branch should either be Development, or an agreed-upon branch for the release; uncheck the check box below that to make it a "release" release (which is significantly smaller, and doesn't include a command prompt window when launched); use a format similar to what is screenshotted for the name, and uncheck the last two check boxes. Then click Run Workflow.

  1. Wait until the workflow completes; this takes about two minutes. Download the artifacts for all platforms locally.
  2. Run the artifact for your platform to make sure it works as expected. For Babylon, I found an packaging problem at this step, so don't skip it!
  3. Go to the releases page and click "Draft Release".
  4. Click "Choose a tag", and enter a tag name in the format v0.2-carthage. Make sure it matches up to the appropriate branch for the release.
  5. Add title/description. You can open the edit screen from the prior release to copy its contents.
  6. Upload the artifacts for all platforms. Leave the check boxes below that area unchecked.
  7. Create a thread at CFC announcing the release, with [Release] at the start of the title. There should have already been some discussion about the contents ahead of the release. Ask Quintillus to make it a sticky in the forum so it stays visible, or if he's not available, one of the other Civ3 mods (Lanzelot, Laurana Kanan, or Blake00).
  8. Update https://github.com/C7-Game/c7-game.github.io to note the latest release, probably using the same format as on the Releases page in step 7.
  9. Share the update news on the Discord server. Going forward, we may also expand our number of places where we share the news.
  10. Go to the projects page and close the project corresponding to the just-completed release.

That's it! Not quite as easy as 1-2-3, but it shouldn't be too tricky.

 

 

Creating a Title Screen

How to create a title screen and notes on working with the title screen creation file, which is a bit sizeable for checking in to Git repeatedly.

Choosing an image

The image should, of course, be related to the theme of the release. It should also be freely licensable. A couple good options for that are Wikimedia Commons, and Bing Image Search, which allows filtering both by license and by size of the image. Preferably, it should also be high resolution, at least 1920x1080, and the higher the better. It should also be as close to 16:9 as possible, but at least 4:3. We can crop it if necessary, but portrait orientation images are going to be challenging to use on the main screen.

This is a task that can be done by a non-technical person. If there are multiple good candidates and enough time before the release, choose a couple top contenders and put them in a poll at CFC to choose the winning candidate.

Generating the title screen

The background screen lives at https://github.com/C7-Game/Prototype/blob/Development/C7/Title_Screen.jpg . But we haven't just been creating it from scratch each time.

Instead, we have a Krita template file. Krita is an image editing program that supports layers, runs on Linux/Windows/Mac, is free, and has a friendlier user interface than GIMP. The large-scale template (which includes the Babylon image) can be downloaded here (57 MB), and a smaller-scale template (which includes the Carthage Preview image) is located within the repo, at https://github.com/C7-Game/Prototype/blob/Development/C7/Title_Screen.kra. The Babylon one uses a high-rest (close to 4K image), whereas the Carthage one uses a roughly 720p image. Choose the one that more closely matches the resolution for your release's image to have less scaling work.

Updating Text (only)

If you only need to update the text, e.g. changing Preview 2 to Preview 3, you can simply open the Krita template, double-click on where it says Preview 2, and change the text. Then go to File -> Export to create the JPG; choose JPG from the long list of exportable formats. The default 80% quality has been a decent compromise between file size and quality.

Saving and re-uploading the Krita template is not necessary in this case as it won't save anyone any time in the future, but make sure to commit the new JPG.

Updating the Background Image

Once you've got Krita installed and the template downloaded, you'll see two layers on the right side, middle of the screen:

image

"Title" contains the text and should always be the topmost layer. The other layer is the background image.

If you open a new background image in another program, such as Microsoft Paint, and copy the whole thing, and paste it in Krita, it will automatically create a new layer for it. It will ask about color mode; select Web. Give it a sensible name, such as "[Milestone] Background".

Next, hide the existing background image. Then click on the "Title" layer, make sure the arrow tool (upper-leftmost on the left side panel) is selected, which it should be by default, drag a very large selection area around all the text, and drag it so it overlaps the upper-left area of the background. It will probably be too big or too small, but that's okay, that can be fixed.

If the new background is smaller than the old one, now select that "[Milestone] Background" layer, and then go to the "Image" menu and select "Trim to Current Layer".

Now, select the text tool ("T", to the right of the arrow tool), and start adjusting the text by double-clicking on each element. You'll likely need to tweak the size. One gotcha is that if you just change the size in the dropdown, it won't apply - you have to select the font first.

image

Each release should also have a font color, and a different font for the release name. If we plan to have multiple releases for a milestone (which we will), also include an indicator of which release this is, so it's easy for users to report which version they are using in bug reports.

Once it's done, you can select the old background layer and delete it with the trash can in the lower-right of the layer area.

Then do a File -> Save to save the Krita file locally, and then File -> Export to create the JPG; choose JPG from the long list of exportable formats. The default 80% quality has been a decent compromise between file size and quality.

Right-sizing the image

C7 will automatically resize the image. So as long as it's approximately the right aspect ratio, it will be fine.

However, you may need to tweak where the main menu buttons appear. This can be done by opening MainMenu.cs, and tweaking the MENU_OFFSET_FROM_TOP and MENU_OFFSET_FROM_LEFT values, and then restarting C7 to see how it looks.

As of this point (April 2022), there will still be some unavoidable issues due to the menu button position being absolute, and the image text dimensions being relative to the screen size. When in doubt, optimize for the default main menu size. At some point in the future we will likely enhance either the button positioning or the text positioning to adjust more intelligently, and fix that scaling issue.

Clone this wiki locally