The Journey awaits

V

Dev Diary #28 – Flags

2021-12-16

Dev Diary #28 - Flags

Hi folks, welcome to another dev diary, and get hyped for what I know you’re longing for: flags. I’m Ofaloaf, one of the designers on the game, and somehow they let me write a dev diary. Let’s go!

Let’s start at the beginning. What is a flag?

 

A flag is a thing of beauty.A flag

 

A flag is a decorative design on a bit of fabric, often used to communicate something, such as a message or identity, to the viewer. In Victoria 3, all flags are flags associated with countries. They’re neat designs that serve as visual shorthand for a state, and they just look pretty too, most of the time.

Orange Free State

In the Victorian era, what counts as the flag of a country was a bit… vague, depending on who you were asking. Some countries, like the United States and France, very clearly had a single flag that served as the national flag that everybody knew them by, but others weren’t so clear. 

Look – here’s some period examples of what people considered Russia’s flag to be:

 

Selection from ‘The maritime flags of all nations’, 1832, as seen on Wikimedia Commons

The Maritime Flags of All Nations

Selection from ‘Pavillons et cocardes des principales puissances du globe d’apres des documens officials’, 1850, as seen in the David Rumsey Map Collection.
Russie

 

First thing that’s noticeable is that it’s not just one flag. The tricolor that is used as the Russian Federation’s flag now was just one of several in use in the 19th century up through to the 1850s, as a merchant flag or civil ensign used to identify civilian ships in foreign ports. The Romanov dynasty’s emblem is also used as a Russian flag, and then there’s two naval jacks – the flags with the blue saltires or diagonal crosses stretching across them- which are also widely recognized. Eventually, the Russian government started trying to consolidate everything and issued a decree on June 23rd, 1858, proclaiming a single “state flag”, a black-gold-white tricolor. In 1883, the white-blue-red “merchant” flag was officially accepted as a national flag to be used on special occasions, and in 1896 it wholly replaced the black-gold-white tricolor as Russia’s state flag.

Man, ain’t that a doozy of flags to pick from! How are we supposed to pick which one to use in Victoria 3? Well, good news there – we can use more than one flag! We got dynamic flags triggered by script!

Russian flags

Any trigger which is valid for a country, like checking if a specific state is owned by the player or if a war is happening, can be used to trigger a different flag in the game. We’ve used that to spice up flag varieties in different situations – for example, a united Scandinavian monarchy has a different flag depending on whether the Danes are in charge or not:

Scandinavia

Spicy! And that’s on top of just using the usual checks like governments, the number of states in a country, and so forth – right, yes, you probably want to see the stars in the American flag, don’t you? I know I do. They do change based on the number of states in the Union.

 

I can taste the freedom.

Freedom

There’s even some unique flags for when one country becomes the puppet of another. In some cases, a generic “oh no I am a puppet now” design is used for the puppeted country’s flag with the “master” country’s flag inserted as a canton in the upper-left corner of the puppeted country’s flag, while in other cases a wholly unique flag is made for a particular combination of puppeteer and puppet.

puppeteer and puppet

There’s also a sort of fallback system, to provide flags for every polity even if we can’t really settle on one particular design, or if they’re feisty dynamic rebels, or what-have-you. Flags can be randomly generated, with particular triggers set so some flag elements only appear if a tag is of a particular culture, religion, or ideology, among other things.

And, for the modders out there, it shouldn’t be difficult for you folks to put together more flags if you want (and of course you want to make more flags, right?) – we use a system similar to the one Crusader King 3 uses for its coats of arms. France’s default flag is a simple example of how the system works:



[CODE]FRA = {

pattern = “pattern_solid.tga”

color1 = “blue”

 

colored_emblem = {

texture = “ce_tricolor_vertical.dds”

color1 = “white”

color2 = “red”

}

}[/CODE]

 

All that’s going on there is that a plain blue field is set as the background, and then a single graphical element with the central third and right third of the tricolor as colorable sections is slapped on top, with white and red respectively added in there to make a nice and tidy blue-white-red tricolore. Magnifique!

And to plug that bad boy into the game, all you need is a little scripting in another file that goes a little something like this:

 

[CODE]FRA = { # France

flag_definition = {

coa = FRA

subject_canton = FRA

allow_overlord_canton = yes

coa_with_overlord_canton = FRA_subject

priority = 1

}

flag_definition = {

coa = FRA

subject_canton = FRA

allow_overlord_canton = yes

overlord_canton_scale = { 0.337 0.337 }

priority = 10

trigger = { 

coa_def_republic_flag_trigger = yes

}

}

[And so forth. Find more flags by playing the game!]

}[/CODE]

 

You can create as many flag definitions as you like, and you can plug the same flag design into multiple definitions or make a unique one for every definition if you want to go insane scripting it all up. Triggers are straightforward to plug in (and you can script generic triggers if you don’t want to write the same combination of checks over and over again). If you want to mod flags, there’s a delightful amount of flexibility with this system.

So there you have it! We got flags. We got lots of flags! We got randomized combinations of flags that go on for days! You could script more flags if you really want to poke at the game’s innards! Flags.

Now, as we march towards the Holiday season, the dev diaries are taking a bit of a break. We will be back in January with a brand new topic in our first dev diary for 2022. Happy Holidays and a Happy New Year!