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!
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.
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).
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.
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 > ...
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.
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.
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.
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.
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!