Friday, March 12, 2021

Build and Delve: A Deckbuilding Rogulike for the 7DRL Challenge

I just put the finishing touches on Build and Delve, my entry to the 2021 7DRL Challenge. This is an annual event that challenges participants to build a roguelike video game in one week. I had never built a roguelike before, although I did tinker with parts of one in last November's NaGaDeMon. I was inspired to try my hand at combining deck-building with traditional roguelike systems, and that formed the core premise for Build and Delve

I heard about 7DRL shortly after last year's event, when I came across Bob Nystrom's presentation on ECS for the 2018 Roguelike Celebration. His talk inspired me to add the 7DRL to my calendar. I did not touch ECS at all in my submission, but I would like to return to my explorations of that architecture one of these days.

I started Build and Delve on Saturday, March 6 and just wrapped up today. Here is a funny story about the timing. The main 7DRL page lists the dates as March 6 to March 14, and so on my calendar, that's what I reserved. When I started my entry on the Saturday the 6th, and for most of the week, I had it in my head that I would be able to finish it on Saturday the 13th. It was Wednesday or Thursday that it struck me: it's the seven day roguelike challenge, and if I work again on the 13th, then I will be working for eight days. I double-checked the Website and discovered that the critical constraint is 168 hours. That is not a number that fits in my head, but if you divide 168 by 24, you do get seven. This struck me as an interesting cognitive phenomenon: if you say 24, 48, or 72 hours, I can immediately understand that in days, but once you go beyond that, it's no longer obvious to me. In any case, after the initial surprise and chuckle, I welcomed the shorter deadline, since it meant I could cut back on some features and plan on spending more time on Saturday unwinding. With the jam starting last Saturday, I've been going pretty nonstop since the previous weekend. It's definitely time for a break.

Part of my inspiration for Build and Delve comes from playing Dune: Imperium. It is a deck-building board game in which each card has two abilities: one that activates when you play the card and one that activates when you do not. My original 7DRL prototype used the idea that cards you do not play give you action points, and these action points are turns in the dungeon. Once you are out of action points, the enemies trigger, and you draw a new hand. The gameplay was a bit unsatisfying, however, so I went back to a different interpretation: that the cards you do not play to build the dungeon can be used to boost your abilities in the dungeon. This is what ended up in the final build. Another source of inspiration has been playing Loop Hero, which combines tile-placement with something like an idle game and a roguelike.

Build and Delve is relatively primitive, but it still took a lot of work to bring these systems together. Some of the points for expansion that ended up on the cutting room floor include: ranged weapons; different focus powers for different character classes; random quality of items based on room characteristics, such as trap cards that increase danger while also increasing item quality; better enemy AI across more diverse enemy types; and cards that modify other cards, such as allowing the trashing of cards, which is a staple in deck-building.

One of the best moves I made was to use Kenney's 1-bit sprites. I wrote a simple tool that would let me extract the frame number via mouse click, and this made it very easy to add monsters, armor, and weapons once I had the engine working. I had intended to add different tints to the sprites, allowing for more variation as in Nethack, but this feature also didn't make it. I spent an hour or two earlier in the week starting to replace Kenney's sprites with Dawnlike, but this was a lot of resource-wrangling for relatively little payoff. I reverted to Kenney's 1-bit and never looked back.

Incidentally, the name and logo for the game were clearly developed after I had already been burning the candle at both ends. I am not proud of them. Looking at the other promo images for entries to the jam on itch.io puts my mine to shame. 

I am glad I had the chance to participate. This week was a convenient lull in the semester since my students are all up and running with their final projects. Come Monday, I will have a pile of project increments to evaluate, but for now, it's the calm before the storm. Well, except that I filled the calm with the alternative storm of game development, but at least I got to choose my storm.

No comments:

Post a Comment