Roguelike Tutorial in Rust

 Part 0: Why

In mid-April of 2014 I was stuck in a hotel room in Manhattan with the stomach flu. In a fever induced stupor, I started reading Steve Klabnik’s Rust for Rubyists. It’s a great primer for the language, and if you haven’t read it, you should stop here and go check it out. It took me about a half-day in my bed-ridden state to get through it.


In it, Steve talks about _why’s Dwemthy’s Array. His book doesn’t have a complete implementation of the array (and because progress has been diverted to the official Rust Guide, I don’t think it ever will), but I decided I wanted to make a full version I could actually fight. I wanted my rabbit to get lucky, damnit. It was pretty ugly.

I got bored playing my little game pretty quickly. So I started thinking of ways I could make it more interesting and learn more about Rust along the way.

 Game Programming Patterns

Awhile ago I heard about this project, Game Programming Patterns that seemed really cool. I’ve always wanted to make a game.

So. In my fever-induced stupor, I decided I’d finally learn how to make a game. And learn Rust. And write about everything along the way. Wtf was I thinking.

 The Game

The end goal for this is a multi-level dungeon crawler. Each level will have a boss, which is one of the monsters from Dwemthy’s Array. The PC is a warrior rabbit armed with a little boomerang, a hero’s sword, some lettuce and three bombs.

 GitHub Tag 0.0

In the GitHub repo is a tag, 0.0, which represents where the code was before I decided to start working on this as a tutorial. I’ll be pulling bits and pieces of it into the final project/tutorial, but I’m sure a lot of things will change. If you just want a hot mess of Rust to lean on to get your project bootstrapped, take a look there.


Part 1: Setup and First Pass

 Table of Contents

Table of Contents


Now read this

Sprockets with Rails 2.3

At FutureAdvisor our main app is still in Rails 2.3 because upgrading to Rails 3 is kind of a pain. I like to keep a few side projects around, like MyRoommate, to play around with new technologies. I’ve upgraded MyRoommate to use Rails... Continue →