Posted September 19, 2025 by clayote
This release changes the format of exported games. .lisien files are still zip files, really, but instead of keeping the game's database in the zip file, as earlier releases did, .lisien files contain world.xml, which describes the whole history of the game in as close to chronological order as I can get, despite branching timelines. If you like, you can edit world.xml in some text editor, or another program.
.lisien files can be loaded into Lisien on desktop or mobile, regardless of the database backend the exporter used. Previously, if you made a Lisien game on desktop with the default database, and then zipped the game up to be imported on Android, it wouldn't work. Now it does.
To get the exports to be the same every time, I had to fix some long-standing non-deterministic behavior in Lisien's rules engine. Previously, when running a rule that applied to multiple entities, the ordering of the entities that the rule would be applied to was semi-random. Now, the rule is applied to the entities in the order of the entities' names.
And, while I was fixing determinism, I made it so that if your rule code does any iterating over sets, the iteration order will be the order of insertion. That makes it easier to write deterministic rules.
Since there happens to be a jam starting for open-source tabletop roleplaying resources, I'll focus the next release on features that would help game masters use Lisien to track their game's state. If you're a game master for any tabletop RPG, I welcome your feature requests. I'll try to include things that you'd expect of a virtual tabletop, but Lisien really has a chance to shine in between game sessions, when a little bit of Python code can simulate political intrigue to set up the plot for next session.