l29ah / sewatcher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Parser and notifier for Shadow Empire save files

Shadow Empire is an interesting, but poorly written game. Only multiplayer it supports is Play By EMail, and it does not feature any real security in it.

So, one can play improvised play-by-cloud games using sync tools like syncthing, but how to notify other players to make their turn?

One solution would be to watch for file changes, but 1. SE overwrites file on load for no reason at all1, thus making sync noise, 2. What if there are more than two players?

How to use

1. Set up synchronization of saves (savedgames in SE folder, or a subfolder) across all players
2. Set up a new PBEM game and save+quit. Last player will be the one processing AI, so it’s better to make sure they have a beefy machine.
3. Run sewatcher like this: ruby sewatcher.rb config.yml. Example of config: example.yml
4. You will be notified when it’s your turn, just load game, make your turn and save to the same file.

How it works

This Linux tool watches a directory given as first argument for changes to .se1 files, parses save files when they arrive for turn number, and notifies you using notify-send and/or STDOUT when your turn is up.

Requirements

apt install ruby-rb-inotify libnotify-bin

Also you need some notification daemon running. Your DE likely includes one, if not, I suggest dunst

Known Issues

The parser is kludgey and relies on you using the default random planet scenario.

What is the password to Shadow Empire save files?

Shadow Empire saves are ZIP archives with single serialized file. Password is “GarfieldJonesCat”.

1 Well, it does update the save file to mark you as a POSSIBLE CHEATER for loading save multiple times, but this is very easy to circumvent and mostly annoys player by further extending the loading process.

About

License:MIT License


Languages

Language:Ruby 100.0%