When last we met, we had a working GUI with the player’s @
walking about. Today, we’re going to add somewhere for the player to wander about1.
When last we met, we had a working GUI with the player’s @
walking about. Today, we’re going to add somewhere for the player to wander about1.
Last time, we started with writing the ascii canvas we’ll use as our GUI. Now we get to start the tutorial itself. Toady we have a four part goal:
So let’s get to it!
(If you’d like to follow along, you can can see the full source code here: just day 1, everything so far)
Back when I finished my 7DRL, I said that I was going to try to write a full tutorial series on writing a Roguelike in Racket, modeled somewhat on Trystan’s excellent series in Java: roguelike tutorial 01: Java, Eclipse, AsciiPanel, application, applet.
It turns out that I won’t have any time this weekend after all. So technically, I have another day, but I’m not going to be able to finish this in 7 days. This actually works out, since in hindsight I don’t think that Betrayal at House on the Hill’s mechanics actually translate quite as directly to a Roguelike as at first I thought.
Not much in the way of screenshots today, but I did manage to add quite a lot of framework for content (which I’m going to spend tomorrow fleshing out). Now, the player has four stats (Might, Vigor, Intellect, and Sanity; I don’t think those were the original stats but I don’t have a copy at the moment to check). Each of them starts at a random value from 2 to 5. If any reaches 0, game over.
Also, to actually make use of said stats, there are two new kinds of definitions that you can stick in the data folder to automatically be used by the game: events and items.
Today was fairly productive, although even with that I managed to fall a bit behind. So it goes.
Today I’ve made it to where I optimally would have been back on Monday, had I actually planned what I was going to do (and not changed ideas and frameworks literally as I was starting to work).
The problem with starting with a (far) less common language is that you have to develop your own tools. That’s what I ended up spending most of the day doing in the case of Racket, although I think it ended up being a rather worthwhile endeavor.
This week marks 2013’s 7-day Roguelike (7DRL) challenge, a contest where entrants attempt to write an entire Roguelike in 7 days. Since I haven’t started my #1GAM a month for March (and since my successfully completed January game was a Roguelike as well), it seems like the perfect opportunity to kill two birds with one stone.
Well there you have it. Three days to a feature complete game.
I ended cutting one of the kinds of levels, but other than that I got everything that I wanted in the game. It’s got 10 different kinds of pieces, 8 different kinds of levels (most procedurally generated), and statistics galore. It actually turned out to be kind of fun, although it’s a bit slower than I’d like. Not much I can do about that though without implementing a mouse interface (which I’ll probably do some day).