Fork me on GitHub!
Alex Baines

Projects RSS Feed

Insobot - Modular C99 IRC bot

Insobot is an IRC bot I started creating a while back, originally insprired by other markov chain bots such as ChronalDragon’s (as far as I know unreleased) chronal_robot.

After writing the original simple version in C++, I was interested in trying a project in pure C, and decided to expand Insobot into a modular structure and rewrite the markov chain functionality as one module for the new architecture.

Today Insobot has many more modules, for creating alias/macro commands, retrieving info from the API, expanding youtube/twitter links, storing quotes in a gist on github, as well as letting people know the schedule for Handmade Hero.

The main Handmade Hero community bot, hmd_bot, is based on insobot’s code with a few additional modules added, and some removed.

The markov chain module still remains the most noteworthy part of insobot though, leading to quite a few humourous moments, some of which I pointed out in this update.

Basic SDL/OpenGL Game Engine

This is a game engine that I’ve been creating recently using SDL2 and modern OpenGL 3+ techniques.
(I’m also trying to keep it compatible with OpenGL 2.1 as long as you have the right extensions.)

I know everyone seems to say that you shouldn’t make your own engine, but I find making the engines and systems just as fun, if not more so, than actually making the games that they’re made for. I’m also doing it to learn about new-school OpenGL and the various things that go into making a game from scratch.

Some of its current features:

  • Configuration variables + functions.
  • In-game console / command-line interface to access them.
  • Fully rebindable controls (including all the CLI text-input related keys).
  • Unicode text handling / rendering (Not complete, combining characters will break it).
  • Can reload all OpenGL state at any time.
  • Uses VBOs, VAOs and ARB_vertex_attrib_binding for vertex specification.
  • Custom macro-based automatic GL extension loading.

Maybe one day I’ll actually make a game with it…

LibNRG - Networking for Real-time Games

LibNRG (Networking for Real-time Games) is a C++ library that I first started working on for my third-year project at university. It aims to provide an easy-to-use interface built on UDP sockets for use in fast-paced multi-player games.

The initial version that I finished at uni worked pretty well, but there was still lots of room for improvement, so I’ve continued to work on it occasionally since then.

The current version is a bit better, with more useful features like the Message RPC mechanism, but the library isn’t finished and I’m not sure it ever will be.

It’s open source under the zlib license though, so you can take a look / use it / make changes or improvements as you see fit. Patches, pull requests and suggestions are welcome.

I’ve also made the specification and final report that I produced at uni available below.

Messing with LMMS

I was messing around with Linux Multimedia Studio ages ago and made a remix of the Tetris theme. I found that I still had the project file lying around, so I’ve cleaned it up a bit and put it on soundcloud.


For anyone interested, I made this site using Jekyll, which is a static site generation tool, mainly intended for blogs. With a bit of hackery I’ve made it work for generating this set of posts in the “other” section, as well as the items in the games section from a set of markdown files.

Jekyll Logo

The site is also open source, you can find the pre-statically-generated version on github right here. The site is also currently hosted from github’s servers using their pages system that incorporates jekyll, so that the site is automatically regenerated whenever I make a commit - isn’t that nice!

Bomberman AI Bot

This is a really basic multi-player bomberman AI bot that I wrote for a competition held by the University of Warwick Computing Society (UWCS).

It’s written in Java and communicates with a server using the protocol documented in the UWCS github repo linked above.

It won the competition by quite a margin, but only because the other competitors never dropped any bombs and only did random walks. (Zed0’s bot didn’t even go that far iirc :p).