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

Creating a PHP extension in Rust

UPDATE: A few hours after posting the initial draft of this I realized my PHP benchmark was broken. I’ve since updated the PHP and Rust versions to be more fair. You can see the changes in the GitHub repo (link at the bottom). Last... Continue →