This is my BSc dissertation, completed in the summer of 1997. For no-one in particular's delectation and amusement, I implemented a framework for Intelligent Agents, evolved using Genetic Algorithms, to learn about the user's Usenet reading habits, and suggest new and interesting articles in places the user would never think to look. The idea was for this to eventually become either a full-blown AI newsreader (decentralised), or an NNTP proxy with agent extensions (centralised).
C++
RGA: The Roguelike Graphics Adapter
This is a branch of the X11 terminal emulator unicode-rxvt (itself a branch of the rxvt terminal) with several modifications to make it more useful for Roguelike development, as well as BBSing. It has 512 user-defined colours, uses Unicode fonts, can report all keyboard and mouse events (not just characters pressed), and is still a full-fledged terminal emulator.
DungeonSpawn
In the process of making the Python bindings for DungeonMaker, I came across various shortcomings of the original code. There were behaviours I wanted to limit or inhibit, and various features were missing. I went about implementing some of these, and code started accumulating. I eventually made the decision to fork the original source tree, and thus was born DungeonSpawn: a version of DungeonMaker with extensions.
DungeonMaker
DungeonMaker makes complex random dungeons according to the designer's specifications. They can be as random or as deterministic as you want. The complex, organic look of the generated dungeons comes from the use of Artificial Life techniques: tunnels and walls are built by a-life creatures moving around the map. This is a modernised build of the library, packaged for modern distributions of modern operating systems.
