For quite some time now I’ve been working on an IRC gamebot called iDM. Just thought I’d detail some of the project info for archival purposes.
Quite often on IRC you will find large swathes of channels with very little actually going on. iDM’s purpose is to add a simple ‘verses’ game to these chat channels as a diversion, something to do to fill the lull in conversation or to pose as a standalone distraction that needs no further resources for anyone already on the IRC network.
iDM is mainly aimed at people who are already on a certain chat network. The network mostly caters for teenagers and young adults playing online RPG’s who are also sitting on the network as a means of communicating with other players. Quite often gameplay can get repetitive or slow and further distractions would be useful. The game is designed with a specific game as inspiration in the hope that it means players wont actually need to learn anything to play.
As of today the game exists in a few components. Firstly there is the original chat client platform. The first version of the game was designed as a mIRC script, that is a script running on a chat client scripting platform. mIRC scripts are designed to automate processes for people using it as their chat platform. In this situation it means the bot has a fully working GUI which can be used to monitor spam and perform manual tasks which would otherwise need coded. I would prefer to move away from this platform due to overhead.
The next layer is sBNC. This BNC software allows the owner to load TCL scripts upon the BNC and upon BNC connections. In this case the BNC is used to handle many issues, mostly to do with multiple heads. The IRC network has certain limits which for example prevent users from producing large amounts of text. Using the BNC I can script a load balancer and extra heads which divide the traffic over multiple connections.
The next visible layer is the website. The more complex user management tasks, for both admins and users have been moved to a PHP website. The website allows staff to pull up all sorts of user and channel information, and also contains management tasks such as ban appeals. Other tasks of the website include displaying highscore tables and help docs.
The final layer of the project is the database. Almost everything relating to iDM has now been moved to the database. This is true to the point that even attacks and functions can be maintained from the database without having to edit a line of code.