
Then I added some more tiles (different kinds of walls, stairs…) and iterated on the design a few times:Īs you can see, the concept moved away quite a bit from ASCII.

I fired up Inkscape, a vector graphics editor, to draw a few different tiles, then used Tiled to create a map out of them. I wanted the interface to be more-or-less ASCII but maybe with some additions. I thought it would help me motivate myself if I could already see the game in some shape. Instead spending a lot of time on backend, and getting to the graphics and UI afterwards, I decided to first draw what my game would look like. So I set the idea aside and tried to start from the other end. My ideas for architecture didn't feel solid enough. I wrote some very early prototypes, but couldn't bring myself to follow through on any of them.
#Angband borg how to#
I thought a lot about architecture for such a game, about how to make it turn-based but in real time, what should be the communication protocol, and even had some initial ideas of using event sourcing to store the game state as series of updates.
#Angband borg install#
Because if you connect one bot, why not connect ten? And why not allow people to play on the server as well? Also, making the game in-browser seemed natural: not only it's a reatively friction-less platform because you don't have to install anything, but also there is already a scripting engine (JavaScript) included, if you want to run your bots. The server could be even on another computer.įrom there, it kind of naturally evolved into a multiplayer game. So I thought, maybe I could write a "sandbox" roguelike for bots like that? Then I thought that a client-server architecture would be perfect for this: your bot would be a custom-written client that can talk with the server over a specific protocol. I think the concept is really interesting: you have a bot trying to play a game that is pretty difficult for humans, and involves imperfect information and a lot of risk assessment. There are also many projects for NetHack. Famously, Angband has its Angband Borg, which also serves as an automated test of sorts, and can be even used as a screensaver. I can't find the source for that, but I remember reading that in every new version, the Rogue authors tried to include a feature that broke Rog-O-Matic – and then Rog-O-Matic authors tried to keep up. There is a fascinating story of Rog-O-Matic, a bot written to play (and win!) Rogue. Making Grass, part 3: Scene graph and performance.Part of a series about Grass, a real-time roguelike engine with pretty graphics.
