{"assets":[],"author_link":"author\/dorkster\/","author_name":"dorkster","cat":"LD #31","categories":["LD #31"],"comments":[],"epoch":1418095140,"event":"LD31","likes":4,"metadata":{"p_key":"83195","p_author":"dorkster","p_authorkey":"0","p_urlkey":"293926","p_title":"Noman\u2019s Dungeon postmortem","p_cat":"LD #31","p_event":"LD31","p_time":"1418095140","p_likes":"4","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1417737600","event_key":"26","event_name":"LD31"},"source_url":"2014\/12\/09\/nomans-dungeon-postmortem\/","text":"<p><a href=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/2014-12-07_135918.png\"><img alt=\"nomans_dungeon_screenshot\" class=\"alignnone wp-image-423133 size-large\" height=\"314\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/2014-12-07_135918-550x314.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/2014-12-07_135918-300x171.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/2014-12-07_135918-550x314.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/12\/2014-12-07_135918.png 896w\" width=\"550\"\/><\/a><\/p>\n<p>The game, entitled \u201cNoman\u2019s Dungeon\u201d, is up <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-31\/?action=preview&amp;uid=44489\">here<\/a>. I\u2019ve also put together a time-lapse video of the entire development process, which you can <a href=\"https:\/\/www.youtube.com\/watch?v=KXeY-RI3xIU\">watch here on Youtube<\/a>.<\/p>\n<p>In preparation, I had put together a simple framework of an engine using SDL 2. The framework provided simple things, like easily loading and using static images, animations, and sounds.<\/p>\n<p>I initially spent the first hour brainstorming ideas that fit with the \u201centire game on one screen\u201d theme. After tossing around some ideas like a 1v1 tank battle game and a puzzle\/platformer like Solomon\u2019s Key, I settled on a turn-based rogue-like. I had thought of such a game in the past, so this felt like a good opportunity to try it out. Here is the outline I ended up with:<\/p>\n<ul>\n<li>super-simple turn based rpg, srpg combat like Disgaea<\/li>\n<li>rogue-like; get \u201corb\u201d at the end and return to the surface; permadeath;<\/li>\n<li>some rooms have enemies, some have treasures; only 1 room at a time (keep it on one screen)<\/li>\n<li>make battles tough, but give the option to run. Running means that you\u2019ll need to fight a stronger version of the enemy on the way back<\/li>\n<li>Items: swords (high dmg, low range), bows (low dmg, high range), armor, health potions; start with basic sword and bow<\/li>\n<li>Enemies: slimes (low range, high damage), archer skeleton (high range, low damage), goblin boss (high range, high damage)<\/li>\n<li>some tiles are trapped. Can be both positive and negative (hp restore, spike trap that does damage)<\/li>\n<\/ul>\n<p>This outline felt doable in the 48 competition time frame. So how did it go?<\/p>\n<h3>What went right<\/h3>\n<ul>\n<li>The art style. The comments I have received so far have been very positive about the artwork. I had not decided on the art style until around the end of the first day. At that point, I was feeling ready to start replacing the placeholder art. I had remembered a bullet point from the great <a href=\"https:\/\/www.youtube.com\/watch?v=Fy0aCDmgnxg\">Juice it or lose it<\/a> talk: add eyes to things. I added some eyes to the slime monster, and everything snowballed from there.<\/li>\n<li>The turn-based system came out to be what I had originally envisioned.<\/li>\n<li>I succeeded in creating the win goal. The progression worked well: fight your way to the last floor, get the treasure, fight your way back to the top. The fight back to the top spawns more enemies than on the way down for increased challenge.<\/li>\n<li>I believe I stuck to the theme well enough. Even though the player is moving through randomly generated rooms, all of them are ultimately the same rectangular room.<\/li>\n<li>Something that almost didn\u2019t make it in time were the rocks and crates that litter each room. They add a much needed variety to each level.<\/li>\n<li>Using the framework I had already created saved a lot of potential headaches (with a few exceptions I\u2019ll explain later).<\/li>\n<li>My work pace throughout the weekend was pretty much on point. Where this was my first Ludum Dare, I was worried I wouldn\u2019t have a functional game by the end.<\/li>\n<li>The game\u2019s actually a little fun. Can\u2019t ask for much more than that.<\/li>\n<\/ul>\n<h3>What went wrong<\/h3>\n<ul>\n<li>While my framework saved me some time, there were a few bugs that popped up. Most notably was that my image reference counts were incorrect when used in animations. I actually needed to fix that one twice, since my initial fix wasn\u2019t complete. Fixing those bugs ate more time than I should have spent on such things.<\/li>\n<li>The game is too easy, so there\u2019s no benefit to running. The game was initially way too difficult, but I over-corrected in the opposite direction. I simply didn\u2019t have enough time to play with balancing the combat numbers. However, it\u2019s possible that making the game easy was the right choice, since it meant more people could see the whole game. To me, that\u2019s better than the players dying a bunch and getting frustrated.<\/li>\n<li>No enemy variety. Although they have slightly randomized stats, it is just slimes for the whole game. That\u2019s only 1\/3 of the enemy types I had originally planned.<\/li>\n<li>No bows. It would have been nice to have an alternative attack method, perhaps with finite ammunition.<\/li>\n<li>While not very important, there were no traps. That would have been something interesting for the player to encounter and would have added variety.<\/li>\n<li>I feel that having the player (and slimes) only move 1 tile per turn doesn\u2019t provide a lot of tactical options.<\/li>\n<li>I could only provide Linux and Windows builds. Although it should be relatively easy to build on Mac OS X, it would have been nice to be able to provide a pre-built package for those people. Something I\u2019d like to do in the future (not for a game jam) is create a web version of the game, so anyone with a modern web browser could play. I\u2019ve never done any HTML canvas and Javascript in the context of a game, so I\u2019ll probably be looking at Clint Bellanger\u2019s <a href=\"http:\/\/heroinedusk.com\/\">Heroine Dusk<\/a> as a way of learning.<\/li>\n<li>While not something that\u2019s important in the context of a game jam, some of my code\u2019s structure is a bit poor. I ended up putting a lot of the game\u2019s logic in the MapEngine class, where it didn\u2019t really belong. Sorting out that structure is something I want to do before working on a port to another language.<\/li>\n<li>During the process, I wanted to make it so that entities \u201ctweened\u201d when moving between positions, but my movement system made that too difficult to implement in a reasonable amount of time.<\/li>\n<\/ul>\n<p>So where do I go from here? I have a fun little game that\u2019s begging for some balancing and some more content. A lot of the things myself and others found to be problems with the game are simply results of having a limited amount of time. I think it\u2019s something that I want to continue working on, even though the jam is over. Maybe it will turn into something really cool one day.<\/p>","time":"December 9th, 2014 3:19 am","title":"Noman\u2019s Dungeon postmortem","title_was_empty":false}