{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/12\/ballkeeper.gif","local":"\/data\/posts\/2013\/12\/49809fe49d28cb06f71b219d469bee57.gif"}],"author_link":"author\/cappelnord\/","author_name":"cappelnord","cat":"LD #28","categories":["LD #28"],"comments":[],"epoch":1387430940,"event":"LD28","likes":10,"metadata":{"p_key":"81017","p_author":"cappelnord","p_authorkey":"0","p_urlkey":"290134","p_title":"Ballkeeper Post Mortem","p_cat":"LD #28","p_event":"LD28","p_time":"1387430940","p_likes":"10","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1386892800","event_key":"20","event_name":"LD28"},"source_url":"2013\/12\/19\/ballkeeper-post-mortem\/","text":"<p>In good old Ludum Dare fashion, here\u2019s my Ballkeeper Post Mortem.\u00a0In general everything went pretty smooth and I\u2019m also quite happy with the result, even though I also see much room for improvements which were out of scope for the 48h compo.<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=7575\"><img alt=\"Ballkeeper\" class=\"aligncenter size-full wp-image-324384\" height=\"200\" src=\"\/data\/posts\/2013\/12\/49809fe49d28cb06f71b219d469bee57.gif\" width=\"320\"\/><\/a><\/p>\n<p><strong>The good:<\/strong><\/p>\n<ul>\n<li>No Feature creep! I stayed focus on my core idea and didn\u2019t bother adding much more extras. In the end a <strong>slick and elegant design<\/strong> often works better than piling up features.<\/li>\n<li>It\u2019s a <strong>fun toy<\/strong> turned into a game.<\/li>\n<li>I was pretty <strong>confident that I can finish it<\/strong> the whole time, so it was a very relaxed Ludum Dare for me.<\/li>\n<li><strong>Dart + WebGL + WebAudio<\/strong> is an <strong>awesome<\/strong> platform for game development. I also made use of the PointerLock API which worked great for me and is also great for other type of games.<\/li>\n<li><strong>Simple but stylish<\/strong> geometrical graphics instead of pixel art. I only used one graphic asset, which is a blurry white dot, everything else is WebGL wizardry. Let\u2019s face it, I\u2019m very bad at painting. I hope I sometimes will get better but until then I stick to what I\u2019m best at.<\/li>\n<li><strong>Don\u2019t develop in isolation<\/strong>. I was very lucky to share the room by 4 other Ludum Dare participants the whole time, so there was never a lack of testers and you could always bounce of an idea to a peer. I made some very important changes which I probably wouldn\u2019t have done without their feedback. Big shout out to <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=4232\">headchant<\/a>, <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=7211\">jeremias<\/a>, <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=3805\">vrld<\/a> and <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=10726\">fysx<\/a>. Play their games!<\/li>\n<li><a href=\"http:\/\/supercollider.sourceforge.net\">SuperCollider<\/a> is awesome for sounds. You can look in my source file to see how all the sounds were created with source code. (sounds.scd)<\/li>\n<\/ul>\n<p><strong>The bad:<\/strong><\/p>\n<ul>\n<li>I was pretty hung over from a party the first day and I didn\u2019t get as much done as I wanted. On the other hand it might have been helpful for the game design itself, to loosen up. Who knows?<\/li>\n<li><strong>Unfinished base code<\/strong>. The first half of the first day I still had to finish WebGL base code I wanted to have finished by the start. So the first hours were used to implement low level WebGL stuff, which you probably don\u2019t want to do in a game jam.<\/li>\n<li>I had enough time to implement more features, but I didn\u2019t. Instead I played the game a lot. I \u00a0don\u2019t know if this is a good or bad thing.<\/li>\n<li>I should have invested more time in the collision model, as it\u2019s very important for the game and has its flaws in the current state.<\/li>\n<li>Dart is great to write structured web apps. In the end I started to adopt <strong>bad coding habits<\/strong>, my code could have been cleaner. But well, it\u2019s Ludum Dare, isn\u2019t it?<\/li>\n<li>Due to a issue in Dart it doesn\u2019t work in Firefox. I already filed a <a href=\"https:\/\/code.google.com\/p\/dart\/issues\/detail?id=15701&amp;q=pointerlock&amp;colspec=ID%20Type%20Status%20Priority%20Area%20Milestone%20Owner%20Summary\">bug report<\/a>, so hopefully this won\u2019t happen again in the future.<\/li>\n<\/ul>\n<p>So, if you haven\u2019t played Ballkeeper yet <strong><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-28\/?action=preview&amp;uid=7575\">do it now<\/a><\/strong>! There\u2019s also a <a href=\"http:\/\/www.youtube.com\/watch?v=uLDm8DDCmuM\">gameplay video<\/a>.<\/p>","time":"December 19th, 2013 5:29 am","title":"Ballkeeper Post Mortem","title_was_empty":false}