Making A Visual Dungeon Crawler In Twine: My SA Game Jam Objective
Earlier this year, as I went back to working on my Global Game Jam 2021 game The Mischievous Theivery Of Jessica The Cat, I had the passing thought as to whether it would be possible to use a starting point of the mechanic I was working on for the grid-based map in that game to build a dungeon crawler in Twine that would be procedurally generated and visual, rather than text.
I prototyped a 64x43 graphic (a 9x9 grid of blocks with a border) of a super low res pixel dungeon, with each block designed to be modular and adjustable, made a modified version of the graphic to indicate forward depth and side passages (mainly to see if I could actually draw it), tweaked the art of some of the blocks to see if the “modular” part would actually work, and then that was it. I put it aside. I had no code, no more art, and no story idea, just the idea of a mechanic to explore at some point.
The 2021 SA Game Jam came around and the theme – “The Urge To Discover” – threw me because, like last year’s “Returning From The Brink”, it was philosophical and not practical. I jotted down ideas for the kinds of stories that lend themselves to discovery but nothing really grabbed me for the jam; the best ideas would be impossible to do in 72 hours as they either required too much narrative work (if a text adventure) or too much coding (if a visual text adventure) for one person to do in that time. (Since we’re still in the pandemic and the whole jam is taking place online, due to various personal constraints I am working solo even though I find that much of the fun of the Global Game Jam and the SA Game Jam is forming a team – preferably with new people on the day – and somehow making magic happen [password: sagamejam; this game is hidden because we are working on a polish build].)
For me, game development itself is about exploration and discovery – solving problems – so I decided to dust off the procedurally generated dungeon idea and see if I could make it work. Could I build the mechanic? Could I build a compelling story around the mechanic? Could I do it in 72 hours?
First up was opening Twine and prototyping the movement as quickly as possible. If I couldn’t get it to work I would have to discard the idea and choose something else for the jam. It took a bit of time but I got it working, plus brainstormed the basics of a theoretical way to backtrack through the dungeon, which I ended up not implementing because it would be too much coding work for this jam game, and then I set to work on the rest of the game, notably the art, starting with the two dungeon designs I had already created.
During the jam I coloured all the dungeon art blocks (each three times using the game’s three palettes, then most again another three times using the washed-out palettes for the fight and treasure sequences), mirrored all the blocks that could be mirrored, and then exported the dozens of little art tiles (and converted them to base64). While incredibly Zen under the right circumstances, it is also incredibly time consuming. There are no shaders in Twine! A significant portion of my jam time, therefore, went to this “admin” task that is not creative and fun, like coding or art, but functional – but that’s game dev!
I don’t know if you can do palette switching using, perhaps, CSS or JavaScript – it only crossed my mind after the jam was over that it is something I should investigate because that would speed up the art process considerably. When I used to develop in Macromedia Director as a student I would run all the art through Equilibrium DeBabelizer and generate two palettes – one for Windows and one for Mac OS – because the systems were different (one displayed everything darker; I forget which) and then when an application ran it would check for the OS and apply the appropriate palette to all the art. This hasn’t been a necessity for decades and is therefore something I had forgotten about.
Anyway, I digress.
I drew all the enemy(/treasure) art in an art frenzy on the Saturday afternoon, exported animated gifs of the enemies, and then late in the jam weekend, sometime on the Monday, I actually created a few more simple blocks for the dungeons to add into the randomising-art pools but I didn’t have enough time to export them and import them into the game.
The rest of the time was spent working on coding problems – ensuring that the forward movement through the dungeons worked properly; building an entire combat system (that includes health potions), which I hadn’t thought about at all so when I got to it in the coding process and realised I needed code I had a moment where I went “...oh” and was figuratively stopped in my tracks for a short while; building a small shopping mechanic; building a randomised treasure system, which, in retrospect, should occasionally have popped out a health potion and not just gold nuggets or the artifacts; and building a death system. I also decided to add extra variables so that the game could generate a playthrough-statistics page just for fun.
Ideally I would have made more enemies so that I could have a few that were unique to each dungeon to add extra variety and surprise as the entire system (movement and fighting), which, ultimately, is an evolution of the system I built for The Mischievous Thievery Of Jessica The Cat, is modular so if I ever want to extend the game, or use the basics of it for a new game, I can immediately add an infinite number of new tiles and enemies.
I also had other ideas, of course, including, for the dungeon itself, adding a randomly appearing mystical field you could walk through that would regenerate a few health points and adding the option of different weapons you could buy and/or find that would have an effect on your hit strength, while, in the larger game, I wanted it to generate a random travel map featuring the three islands, just to make the travel process more visual, but there was no time. My philosophy for jam games is to try and reduce the scope whenever it seems as if it’s going to get out of hand in order to end with something that is playable from start to finish. I am happy to have done that with this game.
So, brave adventurer, on your wanderings through the three dungeons you may not discover The Fireweed Seed, The Gryphon MacGuffin, or The Blue Herring, but I certainly did discover I could achieve my goal: I built a visual dungeon crawler in Twine – and I did it in a weekend.
Files
Get You Will Not Live
You Will Not Live
A dungeon-crawling roguelike pixel-art text adventure made for SA Game Jam 2021 (in Twine).
Status | Released |
Author | Mandy J Watson |
Genre | Adventure |
Tags | Pixel Art, Short, text-adventure, Text based, Twine |
Languages | English |
Accessibility | Color-blind friendly |
Comments
Log in with itch.io to leave a comment.
Becoming a “fan” right here, haha. And damn, that making magic happen (literally) hidden gem made me excited for your future works. Also, I love the way you express yourself
Ha, yes! Midnight Auto Supply. We are so proud of it and we need to get that polish build finished. That project was the most fun I've ever had at a game jam. We were just the most amazing team that came together on the day - we didn't preplan it - and the result of our varied skillsets and enthusiasm was that game.
The programmer and I discussed it recently but I just wanted to get The Mischievous Thievery Of Jessica The Cat finished first before returning to it so my bits of what need to be done for Midnight Auto Supply are up next on my game dev to-do list.