{"author_name":"netmute","cat":"LD #23","comments":[{"author_name":"netmute","time":"May 2, 2012 11:39 pm","epoch":1336019940,"text":"The &#8216;after compo&#8217; version has online leaderboards now, so you can compare your scores <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/>","spam":"N"}],"epoch":1335882600,"likes":2,"metadata":{"p_key":"55864","p_author":"netmute","p_authorkey":"11213","p_urlkey":"91582","p_title":"Dev diary \/ post mortem for Tiny Maze Speedrun.","p_cat":"LD #23","p_event":"LD23","p_time":"1335882600","p_likes":"2","p_comments":"1","p_status":"UPD5","us_key":"11213","us_name":"netmute","us_username":"netmute","event_start":"1334880000","event_key":"10","event_name":"LD23"},"text":"<p>Now that a week has passed, it think it&#8217;s a good time to summarize the experience that has been my first Ludum Dare.<\/p>\n <p>My very first attempt at making a game a year or so ago kind of failed. The text-only action RPG was basically just a fighting engine. It was playable, if you were able to install and run the thing. Ruby was the language I knew well, and so I made the game in it. But distributing Ruby games is a pain. Installing it was almost impossible without deeper knowledge of the Ruby ecosystem.<\/p>\n <p>Fast forward to one week before Ludum Dare 23.<\/p>\n <p>I somehow decided to give up my resistance against having anything to do with JavaScript, that I kept for so long. One of my colleagues at work is some kind of JavaScript genius, and he recommended a few learning resources to me.<br \/>\n After having read one of the books for a couple days, I felt I wasn&#8217;t really learning anything. I needed a project.<\/p>\n <p>Luckily the 10 year anniversary Ludum Dare was that very weekend. I always wanted to participate in Ludum Dare, but never had the guts. I finally came up with the crazy idea to jump head first into a 48 hour game making competition, using a programming language I&#8217;d been barely exposed to. Even if it would be a complete failure, I would still learn a ton.<\/p>\n <p>I live in Germany, so the theme announcement was on Saturday at 3am. I spend Friday evening googling for a usable JavaScript game framework. I found <a title=\"Crafty.js\" href=\"http:\/\/craftyjs.com\/\" target=\"_blank\">Crafty.js<\/a>, set it up, and made myself familiar with the absolute basics of how to use it. Crafty.js is great, much better than anything I found in the Ruby world.<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/01\/dev-diary-post-mortem-for-tiny-maze-speedrun\/framework-test-3\/\" rel=\"attachment wp-att-142556\"><img class=\"aligncenter size-large wp-image-142556\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/framework-test2-550x378.jpg\" alt=\"\" width=\"550\" height=\"378\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/framework-test2-300x206.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/framework-test2-550x378.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/framework-test2.jpg 860w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n <p>My girlfriend was visiting friends on that weekend, so I had plenty of time. My plan was getting a good nights sleep, get up around 9am on Saturday, read the theme announcement, and then think about it, while having a shower and breakfast.<br \/>\n Then I would start coding around lunchtime, be finished with the core mechanics when I go to sleep, and have the whole Sunday for sound, graphics and polishing.<\/p>\n <p>Overall that plan kind of worked. I started panicking when, after a couple hours, I still had no idea what to build. The time constraints put immense pressure on me and I felt way too stressed. I had to remind myself that I was doing this for fun and it wouldn&#8217;t matter if I failed.<\/p>\n <p>After calming down, I decided to just start coding without having a concept. Looking for level generation algorithms, I stumbled upon recursive backtracking, and started implementing that. Turns out implementing algorithms in a language you&#8217;re not familiar with is quite a challenge.<\/p>\n <p>By saturday evening I had a pretty good maze generator, a way to draw the maze on the screen, a blue rectangle that I could move with cursor keys, and collision detection. But still no idea what the player actually had to do.<br \/>\n The best I could come up with was an exit you had to reach in the shortest amount of time possible. Maybe a few powerups and obstacles along the way.<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/01\/dev-diary-post-mortem-for-tiny-maze-speedrun\/first-version\/\" rel=\"attachment wp-att-142559\"><img class=\"aligncenter size-large wp-image-142559\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/first-version-550x418.png\" alt=\"\" width=\"550\" height=\"418\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/first-version-300x228.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/first-version-550x418.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/first-version.png 1024w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n <p>When I stopped coding at around 11pm, there was a timer and an exit, which would stop the timer when reached. I looked on what I had and was quite happy with the output of one day. Before going to bed I spend an hour playing my game. And realized it was fun. I couldn&#8217;t have been more happy at that moment <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/p>\n <p>Unfortunately I overslept on Sunday. After breakfast and showering it was 12am.<\/p>\n <p>I opened <a title=\"Pixen\" href=\"http:\/\/pixenapp.com\/\" target=\"_blank\">Pixen<\/a> and started drawing animation sprites for the player and exit. I figured the reason the player needs to run around in a maze was that he desperately needed at toilet. I gave the walking animation some urgency, which I think turned out quite well. Especially since I had never drawn sprites before in my life.\u00a0I made the sprites 8x8px to pay at least some credit to the &#8216;Tiny World&#8217; theme.\u00a0Then I made the start and exit screen in <a title=\"Pixelmator\" href=\"http:\/\/www.pixelmator.com\/\" target=\"_blank\">Pixelmator<\/a> and built a very basic main menu.<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/01\/dev-diary-post-mortem-for-tiny-maze-speedrun\/drawing-sprites-2\/\" rel=\"attachment wp-att-142562\"><img class=\"aligncenter size-large wp-image-142562\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/drawing-sprites1-550x343.png\" alt=\"\" width=\"550\" height=\"343\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/drawing-sprites1-300x187.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/drawing-sprites1-550x343.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/drawing-sprites1.png 1024w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n <p>It was hard to focus after my girlfriend came home at 5pm. So I decided to ditch powerups and sound, and instead fix the remaining bugs, wrap the whole thing up, and submit it.<\/p>\n <p><strong>Play and rate my game here:<\/strong><\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-23\/?action=preview&amp;uid=11213\" target=\"_blank\">http:\/\/www.ludumdare.com\/compo\/ludum-dare-23\/?action=preview&amp;uid=11213<\/a><\/p>\n <p>&nbsp;<\/p>\n <p>What went well:<\/p>\n <ul>\n <li>I learned A LOT of JavaScript.<\/li>\n <li>I learned to actually like JavaScript.<\/li>\n <li>I drew a little pixel dude and love the outcome.<\/li>\n <li>After the first stressful hours, I enjoyed the weekend.<\/li>\n <li>I finished a game!<\/li>\n <li>The game is actually fun to play.<\/li>\n <li>Great result for first time Ludum Dare, first time JavaScript, first time Crafty.js, first selfmade graphics, and first finished game.<\/li>\n <\/ul>\n <p>What could have been better:<\/p>\n <ul>\n <li>There is no sound. (Turns out proper audio is incredibly hard to do in JavaScript, so it was the right decision afterall.)<\/li>\n <li>I couldn&#8217;t build all the ideas I had into the game.<\/li>\n <li>I wasn&#8217;t able to come up with a good game concept that matched the theme.<\/li>\n <li>Crafty.js has a few bugs\/limitations that took me a lot of time to work around due to lacking JavaScript experience.<\/li>\n <li>Concept and name of my game are the most uncreative anybody could come up with.<\/li>\n <\/ul>\n <p>Experience gained:<\/p>\n <ul>\n <li>I need to be alone to be able to really focus on something.<\/li>\n <li>Building games is awesome.<\/li>\n <li>JavaScript\/html5 have boatloads of limitations when it comes to building games.<\/li>\n <li>Have a basic idea what you want to build BEFORE the theme is announced.<\/li>\n <\/ul>\n <p><strong>After the compo<\/strong><\/p>\n <p>What really stuck with me is how awesome and friendly the Ludum Dare community is. Almost everyone had something nice to say about my game, even if it isn&#8217;t much compared to the other entries.<br \/>\n I will definitely participate again.<\/p>\n <p>I continued working on the game, to implement the missing powerups and sound. And I made sprites for the walls as well.<\/p>\n <p><strong>You can find the improved &#8216;after compo&#8217; version here:<\/strong><\/p>\n <p><a href=\"http:\/\/tinymaze.netmute.org\/\" target=\"_blank\">http:\/\/tinymaze.netmute.org\/<\/a><\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/2012\/05\/01\/dev-diary-post-mortem-for-tiny-maze-speedrun\/advanced\/\" rel=\"attachment wp-att-142563\"><img class=\"aligncenter size-full wp-image-142563\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/advanced.png\" alt=\"\" width=\"393\" height=\"402\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/advanced-293x300.png 293w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2012\/05\/advanced.png 393w\" sizes=\"(max-width: 393px) 100vw, 393px\" \/><\/a><\/p>\n <p>Thanks for the awesome experience everyone!<\/p>","time":"May 1st, 2012 9:30 am","title":"Dev diary \/ post mortem for Tiny Maze Speedrun."}