Skip to content

Implement culture groups for civilizations#917

Open
stavrosfa wants to merge 2 commits intoC7-Game:Developmentfrom
stavrosfa:feature/civ-culture-groups
Open

Implement culture groups for civilizations#917
stavrosfa wants to merge 2 commits intoC7-Game:Developmentfrom
stavrosfa:feature/civ-culture-groups

Conversation

@stavrosfa
Copy link
Contributor

As the title says.

All .biq and .sav files seem to have hardcoded the 6 culture group values, but on our end should be fairly easily expandable.

Right now these don't really have any effect in the game, but when we start loading culture specific building textures for example, we will start seeing some meaningfull changes.

public Gender leaderGender;

[JsonIgnore]
public CultureGroup cultureGroup { get; private set; }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What uses are there for the culture group? Is it just potential trade/reputation schemes and culturally linked start?

Just wondering if the extra de/serialization machinery is worth it vs just using cultureGroupKey in game logic, together with the game knowing what culture groups there are.

Copy link
Contributor Author

@stavrosfa stavrosfa Mar 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The short answer is textures. Check the PediaIcons.txt, there are building textures that are generic (mostly Great Wonders), but also culture and era specific.

The cultureGroupKey is used because we might want to add more fields/info in the CultureGroup iteself, and we wouldn't want to be copy pasting the same information across many civs. It simply a reference, we do the same with experienceLevel on the (EDIT) MapUnit or uniqueUnit currently in Civilization.

I hope that covers your question

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants