DCJame 2022
Here’s a quick summary of my experience programming “Strange Slime Sewers” for the 2022 dungeoncrawlers.org jam.
Tools Used
- DragonRuby for the Game Engine
- GIMP for image work.
- Kate text editor, a terminal, and Fedora 35 linux for the development environment.
Process
I started weeks ago by gathering screenshots, making a timeline, and outlining the manuals of the greats. Wizardry 6 (1990), EOTB 1 and 2 (1991), Might and Magiv IV (1992), Ultima Underworld (1992), Wizardry 8 (2001). I also explored some of the newer entries, just looking at screenshots to jog the memory on Legend of Grimrock, and discovering some games I didn’t know existed like the crawlers on Nintendo 3DS.
I then just took the gif on the jam homepage, the first level in Eye of the Beholder, and traced the perspective lines. I then generated a flat wall texture and built up a large gimp file with a different layer for each wall section. I should point out that zooperdan has “AtlasMaker” that will generate a lot of files for you: https://github.com/zooperdan/AtlasMaker-for-2D-Dungeon-Crawlers
I hope to use his tool next time, or to write my own tool!
Outlining a map
SSS loads a map.txt file into memory and then rotates it like a sheet of paper when you hit Q or E so that your field of view is always ‘up’.
I had originally designed a bigger map with treasures and different monsters, but had to remove those to make the deadline.
I was having trouble implementing a counter-clockwise “Q” rotation, so to save time I just re-used my clockwise function.
def rotate_map_counter_clockwise(m) return rotate_map_clockwise(rotate_map_clockwise(rotate_map_clockwise(m))) end
Each frame, at DragonRuby’s set 60 FPS, I grab the potentially visible chunk of the map. The potentially visible section of the map is then used to render walls and monsters.
I found this description and diagram very helpful – and I didn’t find it until about halfway through the Jam.
https://web.archive.org/web/20180313235716/https://eob.wikispaces.com/eob.vmp
A|B|C|D|E|F|G ¯ ¯ ¯ ¯ ¯ H|I|J|K|L ¯ ¯ ¯ M|N|O ¯ ¯ ¯ P|^|Q ^ in the picture is the party position, facing north. | and - in the above picture resembled walls. There are a total of 25 different wall positions. To render all the walls correctly 17 maze positions must be read (A-Q).
UI and Gameplay
After I had the dungeon walls and monsters rendering, I would take a screenshot of the current game state, scour the internet for game art, and then try laying it out in GIMP before loading it into the game.
I wasn’t set on turn-based, real-time, or something else going into the jam. I just iterated over what I thought I could do quickly, and what art I could find that would work.
I think the jam’s guidelines, that it has to have grid-based movement, that it had to have ways to affect player(s) stats, that it had to have a win and lose state, really helped guide me and create something that met these minimums.
Future Work
I think it would be great to:
- setup some better tooling to ease the creation of dungeons,
- create outside areas,
- an optional mini-map,
- inventory items,
- dungeon interactions with doors, buttons, and puzzles,
- movable or removable walls,
- spells,
- ranged attacks,
- monsters that chase you,
- sound effects for actions,
- story dialog, and
- character creation or at least party composition.
Other thoughts
I’ve been wanting to create a game like Eye of the Beholder for a while. I am really grateful that this jam exists; the deadline and constraints are what helped me actually make something.
During the jam, I realized that the first-person-view dungeon crawlers are an evolution of the rogue-like game genre. Maybe this was obvious if you think about it, but creating a map and having an avatar “a” like the traditional “@” made the connection for me.
Assets used
- Walls and miscellaneous UI assets created in GIMP during the jam.
- The slime monsters: https://seraphcircle.itch.io/sc-monster-pack-2-deluxe-edition/
- Background music from https://opengameart.org/content/shades-of-a-borg
- Character portraits from https://opengameart.org/content/flare-portrait-pack-female-edition
- Attribution Instructions: Please attribute Justin Nichol and the Flare Project.
- Game cross-bones icon made from https://opengameart.org/content/pixel-art-femur
- Action buttons adapted from: https://deburger.itch.io/fantasy-rpg-cursors-copper
- Font: https://somepx.itch.io/humble-fonts-gold-ii
Get Strange Slime Sewers
Strange Slime Sewers
Status | In development |
Author | dcsw |
Tags | dcjam, dragonruby, Dungeon Crawler |
Leave a comment
Log in with itch.io to leave a comment.