i've been roped into writing mods for europa unversalis 5. you might remember posting a thread about this game's engine a few days ago.
this game is really easy to mod! there's an incredible jetbrains plugin that -- no joke -- is better thought out and designed than plugins for some actual programming languages i've used before. for a video game about clicking on maps.
however, i've just discovered something a bit cursed: the game wants you to save all mod files in microsoft's awful UTF-8 with BOM encoding. if you don't, the game will complain about it, but load it anyway.
i'm gonna have to BOMify all the files, because i foresee a dark future where not doing so causes a subtle bug that i spend hours debugging.
#eu5
my wife is enamoured with an extremely complex politics/government/war simulator (a "grand strategy game" for those in the know) called europa universalis V (as the name suggests, it is the Vth game in the series). prior to this, she was obsessed with a rather similar game by the name of europa universalis IV.in these games, you play as a country or country-adjacent entity in the early 1300s and lead it to prosperity/ruin over the course of centuries. you play as, say, italy, and every other country on the planet is played by an AI.
the game simulates some events hourly (army movements, i think?), daily (i don't know, i've never played them before), and monthly. almost all events occur monthly, on the first day of the month.
no, the game does not account for leap years. no, there isn't a day/night cycle. no, there are no time zones in these games. no, a game set in 1337 should not have time zones.
anyway.
Lo, thar be cookies on this site to keep track of your login. By clicking 'okay', you are CONSENTING to this.
Lynnesbian
in reply to Lynnesbian • • •i'm helping someone make a mod that adds a "soldiers estate" to the game. i barely even know what that entails, and yet the mod syntax is so simple, and the jetbrains plugin is so good, that i'm making rapid progress despite having played the game for less than an hour.
every estate has an icon. it's a coloured triangle with a black background and some imagery depicting that estate's "vibe" (e.g. 🙏 for the clergy estate). here's my icon for the soldiers estate
Lynnesbian
in reply to Lynnesbian • • •fun little quirk with #eu5 modding.
so we're making an estate privilege (bonus power granted to a faction) that's bad, and it's automatically granted to certain nations at game start. because this is a bad privilege that's mean to simulate some historical accuracy stuff (not my wheelhouse, i'm just writing the code), we don't want the player to be able to manually grant the privilege. the only way to get it should be through the forced game start event.
i tried setting the privilege to always be ungrantable, but that caused the startup script to be unable to grant it. of course.
i looked into how the existing privileges in this style work. turns out, if you make a privilege require itself to be already granted in order to grant it, the script can grant it, but the player can't manually grant it.
why does it work like that? beats me
Lynnesbian
in reply to Lynnesbian • • •Sensitive content
not working on this mod currently, but still ambiently thinking about how #eu5 modding works.
the custom scripting language their games use dates back to Europa Universalis 2 (2001). a paradox dev explained that it was initially only used for defining objects (like "this building is named Bungus and its model file is
/models/wacky/bungus.mdl), but slowly expanded to have more logic features -- things like "there should be a way to change a building's name if certain conditions are met", etc., until it eventually grew text substitution and boolean logic and loops and so on.they tried using lua for one game but found it to be too slow, and since they already had so many team members who were familiar with their custom scripting language, they went back to it for all future games.
the langauge has a lot of weird quirks and idiosyncracies, but it works, and it's fast. i understand why it exists, and i don't think paradox should remove it, but it is a perfect example of greenspun's tenth rule.
Computing aphorism
Contributors to Wikimedia projects (Wikimedia Foundation, Inc.)