The Making of SpelunkyRL – the 7DRL – Part 2

This is the second part of the story of the development of my 19th 7DRL: SpelunkyRL, a roguelike inspired by Spelunky. You can play it online at https://slash.itch.io/spelunkyrl

It has been some weeks already since I wrote the first part, and I’ve even done a release with improvements, but I feel like I should complete the tale.

The last time we left at the end of Day 5 of the 7DRL Challenge; there was a playable game being tested by friends already, what happened next?

Day 6

As testing intensified and I was addressing feedback as it came, I also decided to start working on traps because what is Spelunky without the traps? I should have started with that before, but it had to be in so I jumped into it. Initially, I added some basic “arrow” traps, hoping to be able to put in some variety afterward. This also justified the passive ability/advantage of the Spelunker to find and evade traps.

The idea, of course, was to make interesting deaths possible. It’s always challenging to prevent traps from feeling frustrating in a turn-based game because good reflexes and dexterity are out of the equation to dodge them, so you gotta replace them with careful planning and being prepared for the worst, and yes there will still be luck involved.

Another important thing happened on Day 6: Simernio, the artist for many of Slashware projects including NovaMundi and FormulaProc, sent out the cover art for the game which was lovely and made my eyes teary. It was spot-on. Some days before I had discussed my idea with him: To bring together the box art from Epyx Rogue and the essence of Spelunky as a fantasy archeologist’s adventure game, and throw in a couple of non-sense things in an 80’s videogames cover fashion. And he did it perfectly.

Perfection

Day 7

In spite of a generally positive 7DRL process (i.e. having a playable ready early in the week, and keeping it playable all along) it was impossible to avoid the final push on day 7.

I decided to extend the data to 8 levels. However, I stuck to my own advice from 2021 and left it as ONLY 8 levels, to keep the focus on an interesting smaller set of content. Still, it was a lot of work to juggle with data and make each enemy feel unique.

Of course, for things to feel unique and not just orthogonal, I had to implement some changes in the engine, including the ability for enemies to “hurl” you (and vice versa!) not a simple change at all! but then I decided to take advantage of it and include another type of trap: the deadly spring floor which will shoot you forward with frequently fatal results.

I mentioned before the challenge of traps feeling frustrating in this kind of game, in the case of spring traps, for instance, they can be fatal if you walk in one of them some steps before a chasm. Permadeath. Pain. BUT, if you are an experienced player, you will walk cautiously when there are chasms around; well aware that you may be propelled forward on your next step. And if you HAVE to, you’ll know you waged against fate.

QuietGecko also did a big push for audio work on the final day since he couldn’t invest work on the project during the week; I naturally left some time to work on audio integration.

I spent the final hours playtesting and resisting the urge to add more; the biggest thing I missed including in the original submission was a tutorial level; but it was just too much to remain sane.

Post Jam

Some days after the challenge’s deadline, and having recovered some of the energy, I decided to go back to the project to fix some rough edges that had been reported.

The most important addition was adding a tutorial level with tips to learn how to play, and doing some tweaks on the help screen. All of this was to make the game more accessible to players.

Other than that, this version contained a critical crash fix and some minor bugs with sounds and game flow.

Reaction

The initial reaction to the game was positive; people really liked our little idea and it was polished, stylish, and fun. As usual, people loved the sound effects and the music.

We even got noticed by Derek Yu, who mentioned “It’s come full circle”, just the reaction I was looking for 🙂

Another version was produced afterward, with even more usability and accessibility improvements.

And that’s where we are with SpelunkyRL! if you like it and/or have any ideas for improvement, please let me know! 🙂

The Making of SpelunkyRL – the 7DRL – Part 1

This is a story of the development of my 19th 7DRL: SpelunkyRL, a roguelike inspired by Spelunky. You can play it online at https://slash.itch.io/spelunkyrl

Unlike previous years, this time I had complete clarity on what I was going to do and how I was going to do it, weeks before the challenge, and managed to stick to it until the end. That was very helpful to avoid wasting time going back and forth with ideas!

The Mine of Spelunky, a new sidescrolling adventure every time

My plan was to create a traditional roguelike version of Spelunky Classic, using my entry from last year (Rainy Day) as a foundation, including most importantly its procedural level generator, and its visual design overall.

This idea had been on my mind for a long time, probably since I happened to meet Derek Yu in the “Day of the Devs” event in November 2017. We discussed the idea of Spelunky as a traditional roguelike, and even though it seemed unlikely for it to work, I thought it was worth giving it a shot to experiment with how it would feel.

Roaming the dark roads of San Francisco on my way to the event

I even considered doing it amidst the many options explored during my crazy last year’s 7DRL entry, but I didn’t feel ready to tackle it as it deserved until now. For some reason, I think jumping into this project carries something of a responsibility to make it right, but I also thought I had the tools and knowledge to make it a reality this year, and most importantly that it was something that could be done in 7 days of development.

An important choice for the project that was solid and clear from the beginning was to go for a strictly monochrome, 80×25 amber terminal look; the reasons for this were I wanted to imagine this as a game I could be playing on one of the first computers I had a chance to use in school, back around 1993 or 1994 (old computers that had been donated by someone, most probably); a game that never was.

The other reason is I wanted to reinforce the traditionalness of the game, going back to the very first roguelikes that ran on terminals in the 80’s. Since the Roguelike Arcade, organized as part of the roguelike celebration 2018 in San Francisco, I knew I had to make a game that resembled these. (And I’m not alone on this, I know of at least one another roguelike developer that was enamored by how they played and looked).

There will never be an event like this any more.

I talked with my friend and development partner QuietGecko the weeks prior and he was on board, ensuring that even if I failed, his catchy audio would be there to save the project.

As the 7DRL challenge started,
I squinted into the darkness,
and thought of her one last time.

Day 1

The 2 hours I managed to put in were spent dumping the first batch of tasks that had been on infinite repeat on my head for the past couple of weeks:

... > clone Rainy Day > change color to amber > add entrance level > hook with random cave generator > clone Rainy Day > change color to amber > add entrance level > hook with random cave generator > clone Rainy Day > change color to amber > add entrance level > hook with random cave generator > ... 
Liberating!

With that out of the way, I proceeded with something I’ve always wanted to do: start with designing and defining the data of the enemies and items from the beginning, instead of a mad rush at the end after coding the engine.

In the meantime, QuietGecko worked on the foundations of the main music track we were going to use for the game. One possible idea I had discussed with him (but left him the liberty of deciding on it) was taking Spelunky Classic’s “Cave” track, as a strong influence for a “darker”/ more serious track, removing all chiptunes and making it feel a bit more Indiana Jones.

Day 2

Invested time in developing what would make the game different from Rainy Day (and give it its own identity, inspired by Spelunky Classic). Added bombs, destructible terrain, and the foundations for its combat system based on double movement speed, so you could, with careful planning, avoid melee combat for most situations to make better use of your ranged attacks or simply to run away towards the exit.

With a first revision of the audio track done, QuietGecko moved into implementing some audio effects for the game.

Day 3

More fun Spelunky-inspired engine stuff! I added chests with bobby traps, pots you can throw (including possible critters inside!), shops, and angry shopkeepers.

I also started considering accessibility, especially because the idea was to have an alpha test running pretty early, so I added a help screen I would continue building during the week.

Finally, I made an important decision about the display; in contrast to “Rainy Day” I decided to use a lot of codepage 437 special characters, making a great difference, especially for the walls (using full blocks instead of characters such as #).

QuiteGecko continued working on the sound effects.

Day 4

More fun engine features: the possibility to perform sacrifices to the goddess Kali, as well as allowing the player to stun, grab and throw enemies. Also continued improving the UI, and added separate “states” for the game prologue, the title screen.

Following up with the plan to have early feedback and QA, I created a first alpha version and shared it with the team for initial tests.

Day 5

With tests underway by a close group of friends, I was able to implement the variations between the 3 character classes/backstories, as well as ranged attacks, the tourist’s flashing camera, and combat-less conduct.

Next up: The final two days and the events that happened afterward!