{"author_name":"Flopster","cat":"LD #29","comments":[],"epoch":1398740820,"likes":2,"metadata":{"p_key":"30281","p_author":"Flopster","p_authorkey":"34484","p_urlkey":"65753","p_title":"Planet Scan-it: Post-Mortem","p_cat":"LD #29","p_event":"LD29","p_time":"1398740820","p_likes":"2","p_comments":"0","p_status":"UPD5","us_key":"34484","us_name":"Flopster","us_username":"flopster","event_start":"1398384000","event_key":"22","event_name":"LD29"},"text":"<p>This was\u00a0my first Ludum Dare, and although I wasn&#8217;t sure what to expect it turned out pretty good! I&#8217;ve learned a lot about making games, not just in 48 hours but game development in general.\u00a0Thank you to those who&#8217;ve commented on\u00a0<a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-29\/?action=preview&amp;uid=34484\">Planet Scan-it<\/a>, I&#8217;ve gotten some good feedback on what I&#8217;ve been doing right and wrong.<\/p>\n <div style=\"width: 309px\" class=\"wp-caption alignnone\"><img src=\"http:\/\/i.imgur.com\/rOLBiNd.gif\" alt=\"\" width=\"299\" height=\"299\" \/><p class=\"wp-caption-text\">There is\u00a0a bit of a steep learning curve&#8230;<\/p><\/div>\n <p><span id=\"more-356333\"><\/span> <strong>The language<br \/>\n <\/strong>For a long time, Dart has been my favourite language. I love it&#8217;s optional typing system, useful for both rapid prototyping and creating solid, fail-proof code. It&#8217;s syntax is very familiar and easy to understand. It&#8217;s got syntax for things like closures and class constructors that make the code simple and concise. It can very easily be compiled\u00a0into Javascript that runs in any browser, and on my computer it&#8217;s faster than Flash or Unity. The main downside is the lack of libraries, but StageXL is a library that emulates ActionScript&#8217;s very good graphics library. I would definitely use it again next year, although I might have a go at Haxe.<\/p>\n <p><strong>The concept<br \/>\n <\/strong>Before the comp, I already had the idea of making a 2D Lunar lander type game, that scales in and out to allow for\u00a0multiple planets. I have a big interest in orbital mechanics (I&#8217;m a big fan of Kerbal Space Program), so the idea stuck. When the theme was announced, I\u00a0decided to go with what I&#8217;d already thought of, and spend more time programming the game. When I started making it, I honestly wasn&#8217;t sure I could finish it. Overall I managed my time better than I&#8217;d expected: In the first 24 hours I had a mostly playable game, and I spend the rest of the time adding better features and polishing up. Orbital mechanics is pretty tricky to program, on both the mechanics side and the usability side, but I was surprised at how quickly it came together.<\/p>\n <p><strong>The mechanics<br \/>\n <\/strong>There were a lot of challenges to making the game work. For example, as anyone who&#8217;s played Kerbal Space Program may know, the time scale is a lot different when on the ground and when orbiting a planet. It may take a few\u00a0minutes to get a ship on a realistically-sized planet into space (the planets is Planet Scan-it are much smaller), but it takes hours to reach the moon. I had to make the physics speed up the farther you get into space, and adjust the gravity accordingly so\u00a0the moons and planets stay in orbit.<\/p>\n <p>There were also extreme rounding errors: The ship doesn&#8217;t land exactly on the edge\u00a0of the planet, so I had to add a shadow to show where the ground is (and the shadow had it&#8217;s own rounding-related problems). I spend three\u00a0hours trying to code in a particle system, before accepting that it wasn&#8217;t going to work. Some of the physics code (like the friction) was taking off the internet, and thank god those\u00a0worked on the first try because I\u00a0had no idea how they worked. In the end the game ending up working very well, and I spent way too much time playing my game instead of programming it!\u00a0Overall, coding the mechanics was by far the biggest challenge, and\u00a0I learnt a lot from it.<\/p>\n <p><strong>The\u00a0playability<br \/>\n <\/strong>Unfortunately,\u00a0while I was coding in the moon orbits and friction, I overlooked one of the most important aspects of a game: The playability. As I realised when the comments rolled in, the most important\u00a0part of a game is at the very beginning, because that&#8217;s what players are going to experience first. I thought the in-game tutorial was a good idea, but instead the people who didn&#8217;t know how to play would keep crashing their ship, and have to refresh the page 10 times in order to read the whole instructions. It would have been better to\u00a0the instructions pause the game, or putting the player in orbit at the beginning so they won&#8217;t crash.<\/p>\n <p>If they manage to take it all in and\u00a0not crash, then they have to land on a planet. Having played Kerbal Space Program a lot, I know what landing a space ship is like; how the last few seconds are when the scale suddenly increases and you realise you&#8217;re going a lot faster than you thought. But even when the player manages to land their ship, it doesn&#8217;t matter because in my game, landing makes you take damage. On top of all that, my game is mostly made of land -&gt; press a button -&gt; quickly take off again -&gt; repeat about ten times. Landing the ship takes patience, and while it is one of the less fun parts of my game it&#8217;s also what you have to do most often. Because of the incredibly steep learning curve, most players haven&#8217;t played past flying around all of the planets.<\/p>\n <p><strong>What I&#8217;ve learned<\/strong><\/p>\n <ul>\n <li><strong>Get a good amount of sleep.<\/strong> I wasted several\u00a0hours feeling like a zombie.<\/li>\n <li><strong>Have some food that is easy to prepare.<\/strong> If you&#8217;re like me and obsess\u00a0over things when under pressure, if you have to spend time cooking\u00a0instead of programming you won&#8217;t eat, and that&#8217;ll drop your performance.<\/li>\n <li><b>Make your game interesting to play.<\/b>\u00a0Not just have interesting mechanics.<\/li>\n <li><strong>Have good instructions.\u00a0<\/strong>Either make the game intuitive enough that the instructions can be a single picture; Have a special &#8216;instructions&#8217; page accessible from the menu; or, if the instructions are more complex, introduce each concept one-by-one throughout the game.<\/li>\n <li><strong>Have a menu screen.<\/strong> You need a screenshot to show off your game, and everyone judges a book by it&#8217;s cover (more plays = more comments\/ratings). Make a menu, and make it look good.<\/li>\n <li><strong>Start by coding the bare essentials.\u00a0<\/strong>Make the game barely playable as soon as possible, then add all the other stuff.<\/li>\n <li><strong>Have a different aspect to work on each day.\u00a0<\/strong>Here in New Zealand the compo starts at noon, so it&#8217;s spread\u00a0over 3 days. I think I should make sure to have a basic prototype finished on the first day,\u00a0have the game close to finished on the second day, and do finishing touches on the third day.<\/li>\n <li><strong>Do a concept\u00a0you haven&#8217;t done before.<\/strong> I was going to say &#8216;don&#8217;t choose something that&#8217;s too complicated&#8217;, but on thinking about it I think a good learning experience is better than winning the competition. I learned a lot from making a game I half-thought was too complex for me to make at all, let alone in 30 hours.<\/li>\n <li><strong>If you want comments and\/or ratings, advertise.<\/strong> Most of the comments I got have been from people I talked to on IRC.<\/li>\n <\/ul>\n <p>Congratulations to everyone who submitted a game, I&#8217;m impressed with the games I&#8217;ve seen, and I already can&#8217;t wait until next time.<\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a><\/p>","time":"April 28th, 2014 10:07 pm","title":"Planet Scan-it: Post-Mortem"}