Roguelike Development

Update 8/3/2020

Gogue has come a long ways since my last update. It’s a relatively full featured Go Roguelike framework. I also moved my tutorial writing over to the wiki on the Gogue project. There is a (work in progress) tutorial found here, as well as instructions on getting setup. You can also find the source for the tutorial Roguelike created in the above mentioned tutorial here.

I’m leaving this tutorial series up for posterity, but if you’re looking for more up to date information, I highly suggest you check out Gogue!

Update 5/6/2018


Obviously, I never finished this. Maybe at some point I will, but for now, its incomplete. I did however, take what I learned and created a simple Roguelike library in Go, which I call Gogue. It takes most of the concepts from my tutorials here, and puts them in an easy to use library.


I am currently participating in r/roguelikedev’s ‘RoguelikeDev Does the Complete Python Tutorial’. The goal of this is to, as a group, run through the entire ‘Complete Roguelike Tutorial in Python’, from RogueBasin, written by Jotaf. This tutorial is a classic, in my opinion (and a few years ago, I took the opportunity to run through it myself, you can find my code on github), and is very well suited to new coders, or those who are looking to get a good overview of how a Roguelike is constructed.

For this project, I decided, since I have already run through the tutorial in Python, that I would learn a new language in the process. I chose Go, as I’ve been meaning to dive into it for a while. From there, I chose the excellent BearLibTerminal for my terminal display needs, as there is a Go package ready to use. I’ll be posting my progress here, as well as a weekly blog post walking through the steps I’m taking to follow along (and any interesting Go tidbits I pick up along the way).

Part 1: Setup - code

Part 2: Movement - code

Part 3: Entities and the Map - code

Part 4: A more interesting Map - code

Part 5: Field of Vision - code

Part 6: Preparing for Combat - code

Part 7: ECS Refactor - code

[Part 8: Combat] - code

[Part 9: Basic UI] - code

======

Sidenotes:

Sidenote 1: Cameras - code

Sidenote 2: Vim Keys and Diagonal Movement