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.

_why #

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.

Next #

Part 1: Setup and First Pass

Table of Contents #

Table of Contents


Now read this

Rails Routing Internals

Lately I’ve been trying to figure out D (the programming language). I grew up on PHP and Ruby, so I’m not used to compiled languages. I decided I’d make an API (for use with an Ember app) and learn D in the process. First thing I did was... Continue →