{"assets":[{"original":"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/09\/gif.gif.gif","local":"\/data\/posts\/2014\/09\/b80e623e7a45fca780ac1ff6fd54baeb.gif"}],"author_link":"author\/literal_games\/","author_name":"Literal Games","cat":"LD #30","categories":["LD #30"],"comments":[],"epoch":1409923320,"event":"LD30","likes":9,"metadata":{"p_key":"81985","p_author":"Literal Games","p_authorkey":"0","p_urlkey":"292717","p_title":"Ports Ahoy! The Age of Trade \u2013 Postmortem","p_cat":"LD #30","p_event":"LD30","p_time":"1409923320","p_likes":"9","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\/09\/05\/ports-ahoy-the-age-of-trade-postmoterm\/","text":"<p><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=26056\"><img alt=\"\" class=\"aligncenter\" height=\"338\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/compo2\/thumb\/e0f4b2ae6513a42136a8b79243624118.jpg\" width=\"450\"\/><\/a><\/p>\n<h2 style=\"text-align: center\"><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=26056\">PLAY HERE<\/a><\/h2>\n<p>Ports Ahoy! The Age of Trade is best described as a tycoon game. Buy ships, draw out trade routes, and build up your empire! The game was made by the 5 of us here at Literal Games: 2 programmers, 1 artist and 2 music\/SFX. This was our second Ludum Dare as a group, and I think we came on leaps and bounds since last year!<\/p>\n<p>I was the main programming force behind the game, and I think now is a good time to reflect on what did and didn\u2019t go well.<\/p>\n<h2>WHAT WENT WELL:<\/h2>\n<p><strong>Doing an hour\u2019s planning before bed<\/strong><\/p>\n<p>Being in the UK, the theme was released at 2am. We stayed up until the theme was released and spent an hour throwing down ideas and words that came into our heads. Then, with all those ideas and concepts buzzing around our heads, we went to bed and slept on it. The result was, in the morning, a group of people well rested, ready to make a game, and with lots of good ideas.<\/p>\n<div class=\"wp-caption alignright\" id=\"attachment_391379\" style=\"width: 336px\"><img alt=\"gif.gif\" class=\"wp-image-391379\" height=\"183\" src=\"\/data\/posts\/2014\/09\/b80e623e7a45fca780ac1ff6fd54baeb.gif\" width=\"326\"\/><p class=\"wp-caption-text\">Concept Art!<\/p><\/div>\n<p><strong>Settling on an theme early<\/strong><\/p>\n<p>After breakfast, we managed to decide fairly quickly on a trading game. At first we were going for space \u2013 then someone suggested boats and we were all quickly on board. That meant that, even without a solid game concept, most people could get to work. Our artist made some boat concepts and our sound guys started working on some naval music.<\/p>\n<p><strong>Setting a schedule<\/strong><\/p>\n<p>Before we even started we had decided on a rough schedule \u2013 Day 1 was basic gameplay, Day 2 was extra features and Day 3 was polish and bug fixes. I\u2019m not going to say that we rigorously stuck to that schedule but it allowed us to know when things were taking too long.<\/p>\n<div class=\"wp-caption alignleft\" style=\"width: 323px\"><img alt=\"\" height=\"235\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/connected-550x412.png\" width=\"313\"\/><p class=\"wp-caption-text\">Debug mode showing connections<\/p><\/div>\n<p><strong>Writing decent code and knowing my base code<\/strong><\/p>\n<p>If I do say so myself. Even though I\u2019d never done a game like this before (I\u2019d never implemented zooming in a game before!) because I\u2019d written the engine myself and knew it inside out, and had been working with AS3 so long, I knew exactly how I wanted to attack this game. I had a few problems with maths of zooming and positioning, but it all worked out on the end. The code I wrote the first two days was surprisingly clean and clear and allowed me to add features and functionality quickly and efficiently \u2013 like the debug mode we used to remove connections that went over land!<\/p>\n<p><strong>Having a GREAT BIG whiteboard<\/strong><\/p>\n<p>We took the whiteboard that usually resides on my wall down and used it for everything \u2013 planning, concept art, feature list, bug list, doing maths, listing out ports, and more. It was so useful being able to explain something to others by quickly drawing a sketch, or feeling the satisfaction of (literally) wiping off a bug. It kept us organised and on task.<\/p>\n<div class=\"wp-caption alignright\" style=\"width: 367px\"><img alt=\"\" height=\"199\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Untitled-1-550x307.png\" width=\"357\"\/><p class=\"wp-caption-text\">Planning on the whiteboard!<\/p><\/div>\n<p><strong>Deciding who was cooking what when<\/strong><\/p>\n<p>If you\u2019re working solo, you probably don\u2019t realise that working in a team has some disadvantages \u2013 we had to feed 7 (the 5 of us, my girlfriend and my brother) people in my house for 4 days! But we had meal plans set out and dinner ended up being a stress free welcome break for everyone. Another good idea was having a takeaway on the last day \u2013 everyone managed to keep working and got a nice meal!<\/p>\n<p><strong>Streaming\/Blog posts<\/strong><\/p>\n<p>We had a stream up last year, but it didn\u2019t really take off. We had a couple of regulars last year, but this year we had loads of people who stayed and some who even came back again! We had two followers on Twitch at the start of the Jam \u2013 and now we have 23. Having people talk to us in the chat and interacting with them was so much fun, and hearing people compliment the art and the concept in the blog posts we did kept us on task and excited about working. Our artist made loads of graphics for the stream like borders for the webcams, splashes, and a countdown that I made, which I think contributed greatly to the look and feel of the stream. Making GIFs and writing blog posts gave us a quick break and broke up the monotony of doing the same thing for many hours a day, and having new people come and watch the stream after reading the posts was always nice.<\/p>\n<div class=\"wp-caption alignleft\" style=\"width: 347px\"><img alt=\"\" height=\"247\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/LD30-GIF.gif\" width=\"337\"\/><p class=\"wp-caption-text\">GUI and the upgrades screen!<\/p><\/div>\n<p><strong>Polish<\/strong><\/p>\n<p>Our motto for the weekend was \u201cSimple and Polished\u201d. Looking at previous games, the ones that did well were the ones that kept to that idea. We\u2019ve had so many comments about how polished the game is, so we definitely managed at least half of our goal! Simple\u2026 maybe not. Simple things like tweens, things fading in and out, drop shadows on EVERYTHING, and well designed GUI meant that the game feels very polished. I think something that really shows this is the upgrades screen. Clicking the shipyard button doesn\u2019t just pop up the upgrades screen \u2013 it slides out, and not just that \u2013 it also bounces. That took an extra minute to add in, but adds so much.<\/p>\n<p><b>Music and SFX<\/b><\/p>\n<p>Our two sound guys did such a great job. The music has received so many great compliments. It fits the game perfectly, with seafearing\u00a0riffs and maritime instruments giving the game the perfect feel. The vast array of sound effects they created from nothing but their mouths and what was lying around my house, I think, is extremely impressive. <a href=\"http:\/\/soundcloud.com\/literalGames\">If you want to hear the finished tracks and some in progress tracks, check out our SoundCloud.<\/a><\/p>\n<h2>WHAT DIDN\u2019T GO WELL<\/h2>\n<p><strong>The concept<\/strong><\/p>\n<p>We said last time we entered Ludum Dare that we would never again do anything that needed balancing. Somehow, we forgot that. The game is not balanced at all \u2013 a few good trade routes in Europe and you can buy all the upgrades \u2013 you don\u2019t even have to cross the Atlantic, which was supposed to be the main point of the game! The type of game also meant that there was lots of GUI involved, which hampered progress for both me and the artist.<\/p>\n<div class=\"wp-caption alignright\" style=\"width: 304px\"><img alt=\"\" height=\"233\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/Xplode.gif.gif\" width=\"294\"\/><p class=\"wp-caption-text\">This is what pirates do.<\/p><\/div>\n<p><b>Endgame<\/b><\/p>\n<p>On the last day, with about 6 hours left, we realised \u2013 there\u2019s no way for you to lose or win the game. We quickly decided that you could win by discovering every port and lose if you lost all your money, but neither of those things are really feasible. There are too many ports to make it fun or viable to catch \u2019em all, and with the balancing issues we had you never really have to deal with ever getting close to losing.<\/p>\n<p><strong>PIRATES<\/strong><\/p>\n<p>We struggled a lot with how to do pirates. We decided at the beginning that they shouldn\u2019t be visible so you had to watch where your ships disappeared to find out where they were. However, whilst we were playtesting on the last day, we realised it didn\u2019t really work \u2013 but what to do about it? We left it, but we have had comments about how annoying and nonsensical pirates are. Yarr\u2026. we know. Pirates invading ports was added in quickly as a last minute thing, but doesn\u2019t occur often enough to have an impact or for most people to even see it!<\/p>\n<div class=\"wp-caption alignleft\" style=\"width: 278px\"><img alt=\"\" height=\"240\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/DROPSHADOWS.gif\" width=\"268\"\/><p class=\"wp-caption-text\">Drawing trade routes!<\/p><\/div>\n<p><strong>Interface<\/strong><\/p>\n<p>As we all knew how to control the game, we never realised this was a problem. People didn\u2019t understand how to make trade routes! All we said in the help was click and drag. I watched a livestream of someone playing our game, and they tried to make a trade route to Rotterdam to start with. They dragged straight from Bristol to Rotterdam, which I\u2019ll admit, makes sense, then were very confused when it didn\u2019t work. Maybe the waypoints aren\u2019t visible enough or we need to explain it more, but it is definitely a problem. In a similar vein, Privateers needed more explaining too. No-one realised you could move privateers once they were in the ocean, and the idea that you can\u2019t move then into ports unless there are pirates attacking is very unintuitive.<\/p>\n<p><strong>\u201cVector\u201d graphics<\/strong><\/p>\n<p>The amount of scaling and zooming in the game means that vector, rather than bitmaps would be preferred \u2013 even the art style, mainly block colours and straight lines are perfect for vectors. Except\u2026 neither me nor the artist knew how to make or use them. So we ended up having to deal with huge bitmaps and spritesheets, which was less than desirable. It also means that the game takes up almost 300MB in RAM! I also didn\u2019t realise it doesn\u2019t run at a steady 60fps on any low spec computers. Work could definitely be done on that!<\/p>\n<div class=\"wp-caption alignright\" style=\"width: 304px\"><img alt=\"\" height=\"233\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/SAIL.gif\" width=\"294\"\/><p class=\"wp-caption-text\">The game at the end of Day 1!<\/p><\/div>\n<p><strong>Time management\/Feature Creep<\/strong><\/p>\n<p>I said earlier that we didn\u2019t stick to the schedule. At the end of the first day we were on schedule \u2013 just. The core concept of the game was finished (just). The second day, however, was a bit of a shambles. Lots of polish that could have been saved for the final day was done, when really I should have been focusing on making the gameplay engaging and other basic things. Hell, I didn\u2019t even make ships turn around until almost the end of the last day. And feature creep was definitely an issue \u2013 with about 3 hours left on the last day we decided we should add wealth to ports. It turned out okay, and was definitely a huge improvement, but it so should have been done a lot earlier.<\/p>\n<p><strong>Multiple Programmers<\/strong><\/p>\n<p>I\u2019ve never had another programmer help me in any game before. We set up git and did use it, but finding things for our other programmer to do was hard, and transferring assets and keeping folder structure means we lost time when he did start to work on things. We should have been working on everything together from the start, and comments were few and far between in my code which was definitely a problem. This is definitely something that went very wrong and could have fixed many of the problems caused by not having enough time.<\/p>\n<h2>CONCLUSION<\/h2>\n<p>Wow. This has turned into a mammoth post. All in all however, I think we\u2019ve all improved hugely since our last Ludum Dare. We\u2019ve learnt new lessons, and reinforced what we learnt last time (DON\u2019T DO ANYTHING THAT NEEDS BALANCING!). Thanks for reading if you\u2019ve got this far, and I\u2019d love it if you gave the game a try if you haven\u2019t already.<\/p>\n<div class=\"wp-caption aligncenter\" style=\"width: 532px\"><a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-30\/?action=preview&amp;uid=26056\"><img alt=\"\" height=\"389\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2014\/08\/testtest.gif.gif.gif\" width=\"522\"\/><\/a><p class=\"wp-caption-text\">The finished product! Click to play the game.<\/p><\/div>","time":"September 5th, 2014 1:22 pm","title":"Ports Ahoy! The Age of Trade \u2013 Postmortem","title_was_empty":false}