IdleRPG accessory scripts for map generation without PHP

on blog at

IdleRPG is a game for internet relay chat where people join a channel and depending on how long they "idle" there without talking their "character" gets experience and levels. I've played the EsperNet idlerpg for 20+ years but this spring an esper staff member went missing and the network almost died. The chaos caused the idlerpg bot owner to stop running it but they did offer the database and config so others could run it. I now have it going on a VPS, hopefully for another decade or two.

IdleRPG has a feature where the player characters have specific locations on a 500x500 map. These maps are normally generated with .php scripts invoked by people visiting the .php web page. I re-wrote the quest map and world map generation scripts in perl and now run them once per minute and once per 15 minutes respectively via cron. There is no webserver tie in. All that is required is the perl, imagemagick's "convert", and the basemap.png. These two scripts are very simple but it did take me a bit to work out how to parse the irpg.db and translate the php'isms from the examples.

The maps below are the actual maps updating in real time.

Download [running requires imagemagick and setting file paths at top]: questmap.pl and worldmap2.pl (or the simpler and 20x slower worldmap.pl) and basemap png

crontab -e entries on the idlerpg server for once per minute and once per 5 minutes,

* * * * *      perl /home/superkuh/app_installs/idlerpg/questmap.pl
*/5 * * * *    perl /home/superkuh/app_installs/idlerpg/worldmap2.pl

*edit/update*: I also wrote a better questmap.pl that auto-generates a movie of quest progress too: [requires ffmpeg and imagemagick] questmap-ani.pl. It uses ffmpeg and adds a new directory achiving all quests as .mp4 files in addition to generating questmap.png like the original. Because I'm lazy the script doesn't actually know when a quest ends so it generates duplicates every hour. They're only ~300kB each but to keep things under control I run fdupes once an hour via cron which keeps only the first of any set of dupes.

* * * * *      perl /home/superkuh/app_installs/idlerpg/questmap-ani.pl
13 * * * *     fdupes -dN /home/superkuh/www/idlequests/mp4/

I'm working on making a more in-depth idlerpg status board at: http://idle.superkuh.com/.

[comment on this post] Append "/@say/your message here" to the URL in the location bar and hit enter.

[webmention/pingback] Did you respond to this post? What's the URL?