[ABE.pm] Dear Leader hacking: the irc-inversion

Ricardo SIGNES perl.abe at rjbs.manxome.org
Sun May 18 19:18:31 PDT 2008


I've very very tentatively begun work on what I think is one of the most
important non-gameplay-related milestones in Dear Leader: the IRC inversion
project.  Right now, the DL::IRC component joins an existing IRC server (like
the hybrid-ircd running on the abe-pm virtual workstation) and joins a channel
and acts like any other bot.  It just happens to respond to things addressed to
"unit name, ..." and "city name, ..."

This is less than ideal for many, many reasons.

There's no really simple way for it to know what nick has logged in as what IRC
user, or to what nickserv identity one has authenticated.  Or, rather, that's
possibly only by hooking into existing IRC services or ircd stuff.

The addressable things like units and cities aren't really in the channel, so
they can't be tab-completed.

Figuring out who is connected at any given time is slightly less trivial than
it needs to be.

And so on.

For a long time, I've thought the solution was to make the game its own IRC
server.  When a user connects (with a username and password) he will be forced
to join a "lobby" channel where all the players and kibitzers will hang out.
If he's in the game, he will also be able to join (or will be force-joined?) a
channel where only he and his units and cities will appear.  I mean: if you
have a city called Montreal, then there will appear another nick in your
channel called Montreal.  It will be a virtual entity, with no associated
connection, but it will listen for commands and respond accordingly.  Other
virtual, locked channels may be created per faction, so all members of a
faction may speak freely.

There are plenty of benefits here, just to the existing mechanics.  Eventually,
I can imagine a unit that could infiltrate another faction's communications
network, meaning that you could read a transcript of #faction chatter without
showing up there.  The possibilities are vast.

Anyway, this means I'm trying to figure out more about
POE::Component::Server:IRC, which seems like a very cool ircd, but like it
needs some more documentation for futzing around with its concept of channels.

If anyone is interested in digging into this some more, let me know!

-- 
rjbs


More information about the ABE-pm mailing list