{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/NoddyPlanets-550x299.png","local":"\/data\/posts\/2014\/08\/d5efa059a7aaa3de2fac3595bf6b00e8.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot14.png","local":"\/data\/posts\/2014\/08\/ac556969866b3b8baaaa6dc4c865cf0d.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot1-550x413.png","local":"\/data\/posts\/2014\/08\/71305b3d2b8954ba9aa4c164bac7f627.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot2-550x414.png","local":"\/data\/posts\/2014\/08\/a11c95d94a4398cfcb8560627bba0fd1.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot3-550x414.png","local":"\/data\/posts\/2014\/08\/31db55b710287aa3488e0c551ddd2cd5.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot41-550x414.png","local":"\/data\/posts\/2014\/08\/d2cdf0e3be622d747fbb1b1e293ab1fb.png"},{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot14.png","local":"\/data\/posts\/2014\/08\/ac556969866b3b8baaaa6dc4c865cf0d.png"}],"author_link":"author\/dragonxvi\/","author_name":"DragonXVI","cat":"LD #30","categories":["LD #30"],"comments":[],"epoch":1408964580,"event":"LD30","likes":5,"metadata":{"p_key":"82589","p_author":"DragonXVI","p_authorkey":"0","p_urlkey":"293321","p_title":"Good News Delivery Co. : How it was made + Retrospective","p_cat":"LD #30","p_event":"LD30","p_time":"1408964580","p_likes":"5","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1408665600","event_key":"24","event_name":"LD30"},"source_url":"2014\/08\/25\/good-news-delivery-co-how-it-was-made-retrospective\/","text":"<p><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=35553\"><img alt=\"\" class=\"aligncenter\" src=\"https:\/\/dl.dropboxusercontent.com\/u\/40648888\/Ludum\/BloodyPirates.gif\"\/><\/a><\/p>\n<p>48 Hours &amp; lots of swearing later, Good News Delivery Co. was finished. This post\u2019ll cover in vague details how it was made, the problems that nearly killed it, and thoughts going forward. Lots of in progress shots &amp; code\/art discussion inside!<\/p>\n<p>\u00a0<\/p>\n<p><strong>The Theme<\/strong><\/p>\n<p>\u201cConnected Worlds\u201d wasn\u2019t my favorite choice of the themes this time. \u00a0There were a few near ideas I had for others (one involved jam-based weaponry) but come Saturday Morning I was kinda left curious what to do. \u00a0The obvious choice was a dual world mechanic of some sort, or something where you warp between different worlds Stargate-style. \u00a0In the end, quickly decided on something involving Space.<\/p>\n<p><strong>The Art<\/strong><\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385615\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/NoddyPlanets.png\"><img alt=\"NoddyPlanets\" class=\"wp-image-385615 size-large\" height=\"299\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2014\/08\/d5efa059a7aaa3de2fac3595bf6b00e8.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/NoddyPlanets-300x163.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/NoddyPlanets-550x299.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/NoddyPlanets.png 750w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">DragonXVI\u2019s noddy guide to basic planet graphics in Paint.net<\/p><\/div>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385670\" style=\"width: 170px\"><a href=\"\/data\/posts\/2014\/08\/ac556969866b3b8baaaa6dc4c865cf0d.png\"><img alt=\"Shot14\" class=\"wp-image-385670 size-full\" height=\"160\" sizes=\"(max-width: 160px) 100vw, 160px\" src=\"\/data\/posts\/2014\/08\/ac556969866b3b8baaaa6dc4c865cf0d.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot14-150x150.png 150w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot14.png 160w\" width=\"160\"\/><\/a><p class=\"wp-caption-text\">All my spaceships look like they were designed by a 5 year old.<\/p><\/div>\n<p>Luckily, Space is one of those popular settings in games where\u00a0it\u2019s fairly easy to generate something quite nice looking with minimal effort. \u00a0Above is my standard process for making simple planets. \u00a0A starfield can just be black + noise + contrast + clouds for nebula too. \u00a0The planets in GNDC actually split the lighting &amp; atmosphere layers above so I can \u2018dynamically\u2019 light them so they\u2019re lit from the sun.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385625\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot1.png\"><img alt=\"Shot1\" class=\"wp-image-385625 size-large\" height=\"413\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2014\/08\/71305b3d2b8954ba9aa4c164bac7f627.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot1-300x225.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot1-550x413.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot1.png 1013w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">First day early progress: Basic space graphics &amp; ship movement<\/p><\/div>\n<p><strong>The Development<\/strong><\/p>\n<p><span id=\"more-385598\"><\/span><\/p>\n<p>Originally I\u2019d set it up so the planets orbit the sun or each other (for moons), and they\u2019re dynamically \u2018lit\u2019 according to their position. \u00a0This was abandoned early on (anyone checking the source will not the \u2018Orbiter\u2019 script still exists but is disabled for most planets) as I didn\u2019t want the game \u2018level\u2019 moving about too much. \u00a0Keeping everything still makes it easier to navigate and balance for gameplay.<\/p>\n<p>With a ship flying about it needed something to do, and then came the idea of ferrying cargo back and forth between planets \u2013 ala Connected Worlds. \u00a0The obvious inspiration was Futurama\u2019s \u201cPlanet Express\u201d. \u00a0So I whipped up some cargo graphics, dropped \u2019em into the game and coded up a way for the ship to collect them and attach them to the last point in a chain, connected using Unity\u2019s 2D Hinge joints.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385630\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot2.png\"><img alt=\"Shot2\" class=\"wp-image-385630 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2014\/08\/a11c95d94a4398cfcb8560627bba0fd1.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot2-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot2.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">And at this point it was unplayable<\/p><\/div>\n<p>Difficult to control snake of cargo wobbling your ship about? Sure might be some game in that, let\u2019s go for it.<\/p>\n<p>Spent much of the 2 days arguing with Unity\u2019s physics engine, tweaking masses &amp; torques &amp; the effect of\u00a0the planets gravity fields to try and get something reasonably fair (jury\u2019s out if I actually managed that :p). \u00a0The next big problem was getting around \u2013 The solar system was quite sizable and I wanted quite a few planets, so I decided to implement a minimap.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385633\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot3.png\"><img alt=\"Shot3\" class=\"wp-image-385633 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2014\/08\/31db55b710287aa3488e0c551ddd2cd5.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot3-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot3.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">No idea what the thing in the middle was supposed to show. I only used the top bit.<\/p><\/div>\n<p>Minimaps are quite simple once you get the deal. \u00a0Basically it takes a central point (The player\u2019s ship on the left, the sun on the right), and calculates each important game object\u2019s position relative to that. \u00a0Then we divide that by a \u2018range\u2019 (the left minimap\u2019s range is shorter than the right) and multiply that final offset by the size of the minimap graphic and hey presto! \u00a0I also multiply the \u2018blips\u2019 alpha by the distance-from-focus \/ minimap-range so things fade out as they reach the edges of the minimap. \u00a0Didn\u2019t mean to have two minimaps, but didn\u2019t know what else to put on the right hand side and quite liked the symmetry of it. \u00a0I figured a full solar-system map might be quite useful?<\/p>\n<p>Still in a GUI mood, I decided to whip up a quite text log to print out current objectives and keep the player notified on what\u2019s going on.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385637\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot41.png\"><img alt=\"Shot4\" class=\"wp-image-385637 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"\/data\/posts\/2014\/08\/d2cdf0e3be622d747fbb1b1e293ab1fb.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot41-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot41.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">The randomly generated cargo names were quite fun. Essentially {Storage-type} of {adjective} {nouns}<\/p><\/div>\n<p>Nothing special there, just a list of 4 strings that scroll as they\u2019re added and work a bit like a queue.<\/p>\n<p>Last thing on Day 1 was a bit more navigation aid. \u00a0The Minimaps weren\u2019t brilliantly useful stuffed down in the bottom corners of the screen, so I decided to do a good ol\u2019 guide arrow. \u00a0I wanted to make it quite flashy, so it points in the direction of your current goal when far away, then switches so it hovers over the target when close by (This is fairly old. \u00a0I think even the first GTA\u2019s objective arrow did this) and animates nicely between the two states. \u00a0This wasn\u2019t the last of the blatant TELL THE PLAYER WHAT THEY NEED TO DO visual feedback I ended up including, as later on I also made the destination planet pulse\u00a0bright green too.<\/p>\n<p>Day two began with morning sound &amp; music creation. \u00a0The music was quickly whipped together in FL Studio after figuring out the Chorus on the first night. \u00a0It\u2019s a fairly simple \u2018catchy\u2019 dance-track thing.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385646\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot6.png\"><img alt=\"Shot6\" class=\"wp-image-385646 size-large\" height=\"171\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot6-550x171.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot6-300x93.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot6-550x171.png 550w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">What FLStudio looks like when you don\u2019t name anything ever or use proper automation or anything.<\/p><\/div>\n<p>Since this was on the clock, the whole thing was made in 1 hour and uses a fair few default drum loops shipped with FL Studio (Which is the audio equivalent of Photoshop lens flares, but DON\u2019T CARE NO TIME! :p)<\/p>\n<p>With music &amp; sound out the way I still hadn\u2019t actually got a working game. \u00a0You couldn\u2019t lose and you couldn\u2019t make any money, so I quickly shoved in a score &amp; a timer.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385648\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot7.png\"><img alt=\"Shot7\" class=\"wp-image-385648 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot7-550x414.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot7-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot7.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">I *really* like Unity\u2019s new particle system. If it wasn\u2019t obvious.<\/p><\/div>\n<p>Also added some better feedback into what cargo is within pickup range, since before this you just had to mash the pickup button and hope you were close enough. \u00a0This\u00a0bit of UI alone improved the game about 3 times over at this point.<\/p>\n<p>At some point I also wanted to add a Black Hole. \u00a0Did the visuals for it, but in the end these ended up as harmless \u2018gravity wells\u2019 that just pull your ship in a bit. \u00a0Didn\u2019t have time to implement any special way of throwing stuff into it, but for a brief time they were a valid destination for delivering cargo to.<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385653\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot10.png\"><img alt=\"Shot10\" class=\"wp-image-385653 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot10-550x414.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot10-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot10.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">A big purple swirly thing in space.<\/p><\/div>\n<p>Before tweaking the various physics parameters, these guys could actually pull you in with such force that ships carrying more than 4 cargo couldn\u2019t escape at all and you had to eject cargo and pretty much leave it.<\/p>\n<p>At this point, most f the game was in &amp; functional, but I had two other things I wanted to get in since flying between planets and dropping stuff off was fairly simple. \u00a0I wanted obstacles &amp; enemies! I wanted asteroids &amp; PIRATES!<\/p>\n<p>I didn\u2019t end up getting to do the asteroids.<\/p>\n<p>But the pirates?<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385655\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot11.png\"><img alt=\"Shot11\" class=\"wp-image-385655 size-large\" height=\"414\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot11-550x414.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot11-550x414.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot11.png 1005w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">Yar har, fiddle-de-dee.<\/p><\/div>\n<p>The pirate ship graphics is pretty much just the player\u2019s ship with some bits added &amp; painted blue. \u00a0The turret tracks independently in a similar way to Hot Diggity\u2019s laser turrets. \u00a0The pirate AI is pretty simple:<\/p>\n<ul>\n<li>Pick a random patrol point.<\/li>\n<li>Fly towards the point. If you reach it, pick another one.<\/li>\n<li>If the player gets too close, start chasing them.<\/li>\n<li>If the player gets too close to the guns, start shooting the turret.<\/li>\n<\/ul>\n<p>I tried plugging in some planet-avoidance AI, but after 5 minutes of that I just thought \u201cBUGGER IT\u201d and let them plow into planets and immediately respawn elsewhere. \u00a0The pirates represented a massive step up in difficult, as they can completely ruin a massive haul of cargo with a well placed shot. \u00a0Ideally I\u2019d have made them warp in after 1 minute of gameplay and maybe increase the number as time runs down, but I didn\u2019t think of that soon enough\u2026<\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_385666\" style=\"width: 560px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot13.png\"><img alt=\"Shot13\" class=\"wp-image-385666 size-large\" height=\"279\" sizes=\"(max-width: 550px) 100vw, 550px\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot13-550x279.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot13-300x152.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot13-550x279.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Shot13.png 885w\" width=\"550\"\/><\/a><p class=\"wp-caption-text\">A view of the scene in Unity\u2019s editor, showing planet locations &amp; gravity fields &amp; patrol points for pirates. Note this visual was actually used in the games logo too, behind the main text.<\/p><\/div>\n<p><strong>The Horrible Bugs<\/strong><\/p>\n<p>So finally I built the thing and ran it in the Unity Webplayer.<\/p>\n<p><strong>DISASTER!<\/strong> The controls were utterly broken \u2013 The ship spun around uncontrollably. What the hell?<\/p>\n<p>A quick Unity Editor update highlighted the problem \u2013 Sometime between Untiy 4.5.1 and 4.5.3 the 2D physics has had a hefty change to how it calculates torque &amp; angular velocity. \u00a0Even after fixing the ship\u2019s steering, carrying lots of cargo made the ship utterly uncontrollable \u2013 with 3 hours to go!<\/p>\n<p>Not having enough time to deal with it, I quickly hacked in a few things \u2013 reduced the power of the gravitational pull of planets, and reduced the mass of cargo while it\u2019s being carried so it doesn\u2019t toss your ship about like a leaf when you\u2019re carrying it. \u00a0The final result isn\u2019t perfect, but it\u2019s reasonably playable.<\/p>\n<p>So y\u2019know. \u00a0Make sure you\u2019re using the latest version of something before you start. :p<\/p>\n<p>\u00a0<\/p>\n<p><strong>The Takeaway<\/strong><\/p>\n<p>This is my second Ludum Dare after the (absurdly successful seriously thanks guys!) Hot Diggity earlier this year. \u00a0This is another physics based frantic arcade-y thing and I think I might take a break from \u2019em next time. \u00a0Fiddling around with physics engines is only so much fun when y\u2019could be doing a nice simple platformer or something a bit easier to control. \u00a0Things I need to try for next time:<\/p>\n<ul>\n<li>Stop making your games so ridiculously difficult. \u00a0Not asking for a tutorial or anything, just a decent difficulty curve.<\/li>\n<li>Try something a bit more friendly and less machinery\/metallic. \u00a0Drillers &amp; Spaceships\u2019re a bit too \u201cboys-toys\u201d-ey, so might go for something a bit different next time.<\/li>\n<li>Put more effort into the GUI, Intro &amp; Outro scenes: Seriously the outro is horrible. Like plain (ARIAL!) text on a black background. \u00a0And the GUI\u2019s got obvious aliasing all over it.<\/li>\n<li>Maybe try Flash again?\u00a0I\u2019ve alternated between Flash\/Flixel and Unity for games jams before. \u00a0Might try it again? Will see.<\/li>\n<li>Maybe try 3D? I\u2019ve done 1 3D game for a games jam. Mostly avoid this because my modelling skills are a bit pants, but can manage some decent results with basic geometry.<\/li>\n<\/ul>\n<p>Anyway, that\u2019s it for me. \u00a0Time to play some other games!<\/p>\n<p><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=35553\">As always you can find my game HERE!<\/a>\u00a0Don\u2019t forget to rate it! \ud83d\ude00<\/p>\n<p>\u00a0<\/p>","time":"August 25th, 2014 11:03 am","title":"Good News Delivery Co. : How it was made + Retrospective","title_was_empty":false}