Simulatio Humanitatis: Developing a Civ-Style 4X Game

BlakeIsHere

Chieftain
Joined
Nov 11, 2025
Messages
7
Hi! I've recently been playing Civ 6 and 3, and I decided to make a Civ-like 4X game in Godot. I originally was going to use Unity for this, but I decided to use Godot instead, because why not? Things you can expect it to have are some kind of pixelated art style, a fudgton of civs and leaders, a religion system (but idk how I will implement it) and no one unit per tile (expect the crazy unit stacking from Civ 3).
 
Sounds cool. Seeing a number of Godot based games in development now days. Keep us updated!

Also Blake was already here. ;)

1763119353380.png
 
I have made some progress since my last post. Firstly, I created a basic movement system (as shown in the GIF below). The player cannot move diagonally yet, but diagonal movement will be added soon.
Recording 2025-11-15 235602.gif


Secondly, I now have a title of sorts for it: "Simulatio Humanitatis", which means "simulation of humanity" in Latin. I don't think this will be the final title, but it'll do for now.

Thirdly and finally, I now have a website for it running on GitHub Pages. There isn't much on it at the moment, but I will add more soon. The site will house the game's devlogs and, once a complete build has been compiled, the official download links for the game.

The website is here if you want to visit it: https://blakeisherestudios.github.io/Simulatio-Humanitatis-website/
 
Here's a look at what the top left of the in-game HUD will look like (I haven't applied a theme to it yet, but I did change the font).
Screenshot 2025-11-16 201653.png

  • The Tech Tree is exactly what you think it is. I'm planning on making it as flexible as possible.
  • In Simulatio Humanitatis, we call civics "policies". There are multiple types of policy, such as economic policies, and they can be stacked as long as they are of the same type and do not contradict each other. For example, you cannot have both capitalism and socialism as current policies.
  • The encyclopaedia (shown in the British spelling) opens the in-game encyclopaedia, containing information about everything in the game.
  • Pause just opens the pause screen; it's temporary as of now.
I also got support for multiple languages in the game. Here is the top menu in German:
Screenshot 2025-11-16 202844.png

As the typeface I am using does not support any other alphabet, it uses a different typeface when the game is set to a language that does not use the Latin alphabet, such as Russian or Japanese, as shown below.
Screenshot 2025-11-16 202951.png

Screenshot 2025-11-16 203012.png

I'm not sure if Godot can let me have a different typeface if it is in a specific alphabet, to fix this issue, but I'll leave it for now.
 
As you mentioned Civ 3 and Godot, you should have a look here: https://forums.civfanatics.com/threads/welcome-to-c7-new-players-start-here.674451/

C7 is a new game in development, based on Civ 3 and Godot and the team is working on that project since a longer time and the link I gave above is only the entrance to that project.
Yes, I am indeed aware of C7; it was actually the inspiration behind this project. But while C7 is mostly building off the foundations of Civ3, SH is a blend of elements from different Civ games and other games in the 4X genre.
 
I'm not sure if Godot can let me have a different typeface if it is in a specific alphabet, to fix this issue, but I'll leave it for now.
In the _ready function of your scenes, call:

Code:
add_theme_font_override("font", Game.get_font_for_language())

get_font_for_language() should be in a global script to access it from anywhere. In get_font_for_language() just query the translation server and return the right font.

Code:
var english_font = preload("res://fonts/MyEnglishFont.tres")
var japanese_font = preload("res://fonts/MyJapaneseFont.tres")

func get_font_for_language():
    var current_locale = TranslationServer.get_locale()
    if current_locale == "en":
        return english_font
    elif current_locale == "ja":
        return japanese_font
 
Back
Top Bottom