{"author_name":"peterthehe","cat":"LD #33","comments":[],"epoch":1440439080,"likes":3,"metadata":{"p_key":"13865","p_author":"peterthehe","p_authorkey":"46596","p_urlkey":"49127","p_title":"Lovers on a Park Bench: Post-Mortem","p_cat":"LD #33","p_event":"LD33","p_time":"1440439080","p_likes":"3","p_comments":"0","p_status":"UPD5","us_key":"46596","us_name":"peterthehe","us_username":"\/author\/peterthehe\/","event_start":"1440115200","event_key":"29","event_name":"LD33"},"text":"<p><em>&#8220;&#8216;<a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-33\/?action=preview&amp;uid=46596\">Lovers on a Park Bench<\/a>&#8216; is essentially a typing game following the story of a square, his ex-girlfriend and a series of intense and very-confusing-at-times metaphors and allusions (they&#8217;re pretty obvious). All of this is topped with narration by award-winning robot voice, Stephen Hawking (or whatever Audacity can do to emulate it). &#8220;<\/em><\/p>\n <p><img class=\"size-large wp-image-491079 aligncenter\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Screenshot51-550x256.png\" alt=\"Screenshot5\" width=\"550\" height=\"256\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Screenshot51-300x140.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Screenshot51-550x256.png 550w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>At about this time yesterday, I had just gotten home, having spent an hour stuck in the rainy gridlocked labyrinth Londoners know as the M25, Junction 14, staying lucid on Classic FM. I hit the power button on my computer and opened up Unity &#8211; my game was in an alarming state. I had implemented core gameplay and music the previous afternoon: moving, parsing and all; however, the game that I had envisaged seemed unfeasible. Now, a mere 24 hours later, I&#8217;m sitting here; the game\u00a0finished with an load of overwhelmingly positive comments (thanks goes to everyone who played it <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>So, here&#8217;s a slightly truncated insight into the hours spent throwing this game together.<\/p>\n <p><strong>Scheduling<\/strong><\/p>\n <p>For any game-jammer, timing\u00a0is key.\u00a0The bulk of development was done from 5pm through till 12pm, with regular tea and basketball breaks throughout. Now for some street smarts:<\/p>\n <ol>\n <li>Cola works better than tea which works better than coffee.<\/li>\n <li>Doing exercise helps clear your mind.<\/li>\n <li>Vague schedules work best. With such a short development cycle, it&#8217;s really hard to stick\u00a0to a meticulously planned schedule, trust me &#8211; I&#8217;ve tried it. My plan was literally: &#8220;SATURDAY: Music and art in the morning, Code in the afternoon. SUNDAY: Finish it off&#8221;. And of course, even that was thrown off following a surprise trip to London.<\/li>\n <\/ol>\n <p><strong>The Camera Stack<\/strong><\/p>\n <p>Unity comes with a handy layer system which allows specific objects to be \u00a0rendered with specific cameras. Each frame in LOAPB consists of three layers: Sky, Mountains and Background and Main Camera. The Sky is rendered first with orthographic projection, then the Mountains are rendered with a perspective camera (this allows a parallaxing effect), and finally the foreground is rendered with the level and players.<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/CameraPreviews.png\"><img class=\"size-full wp-image-491173 aligncenter\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/CameraPreviews.png\" alt=\"CameraPreviews\" width=\"204\" height=\"383\" \/><\/a><\/p>\n <p>&nbsp;<\/p>\n <p><strong>The Whole Typing Thing<\/strong><\/p>\n <p>So this took <em>wayyyyyy<\/em> more maths than I had ever anticipated but all the code is accessible (DisplayStory.cs and Parser.cs) so I won&#8217;t go into too much detail. Here&#8217;s a quick topological overview of the system:<\/p>\n <ol>\n <li>A lowly text file is parsed, containing a series of sentence fragments, instructions and function calls.<img class=\"size-large wp-image-491188 aligncenter\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/LowlyTxt-550x165.png\" alt=\"LowlyTxt\" width=\"550\" height=\"165\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/LowlyTxt-300x90.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/LowlyTxt-550x165.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/LowlyTxt.png 623w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/li>\n <li>This is passed to the DisplayStory script which processes each sentence fragment and waits for the respective key to be hit.<\/li>\n <li>When the right key is hit, a text object is instantiated, having \u00a0calculated the position of the text beforehand.<\/li>\n <\/ol>\n <p>&nbsp;<\/p>\n <p><b>Sky<\/b><\/p>\n <p>The more observant of you may have noticed the sky transitioning to dawn at the beginning of the game. This was a glitch &#8211; it was supposed to slowly transition throughout the game. Regardless, it was achieved by changing the y position of\u00a0a long long long sky strip (made with Photoshop gradients and a dissolve layer).<\/p>\n <p style=\"text-align: center\"><a href=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Sky.gif\"><img class=\"size-large wp-image-491207 aligncenter\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Sky-550x237.gif\" alt=\"Sky\" width=\"550\" height=\"237\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Sky-300x129.gif 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Sky-550x237.gif 550w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><em>(this is supposed to be a gif)<\/em><\/p>\n <p>&nbsp;<\/p>\n <p><b>Other &#8216;Interesting&#8217; Points<\/b><\/p>\n <ul>\n <li>Splitting up the voice recordings took much longer than I had expected &#8211; I missed out so many breaks &#8211; the last emergency recording-fix was made at around 12:40 MIDNIGHT.<\/li>\n <li>The level is procedurally generated. I expected this to be the most code-intensive part of the game but it literally took a mere 10 minutes to implement.<\/li>\n <li>This is how I spent 7 hours of development time. (Left: Overall usage of time; Right: Productivity &#8211; the amount of time actually being spent on the game\u00a0&#8211; over time).<a href=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Charts.png\"><img class=\"size-large wp-image-491275 aligncenter\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Charts-550x182.png\" alt=\"Charts\" width=\"550\" height=\"182\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Charts-300x99.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Charts-550x182.png 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/08\/Charts.png 980w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/a><\/li>\n <li>My official LD33 &#8216;thinking music&#8217; playlist is Spotify&#8217;s &#8217;88 Keys&#8217;, featuring Chopin, Einaudi and Cyrin.<\/li>\n <li>This post is exactly 600 words long.<\/li>\n <\/ul>","time":"August 24th, 2015 12:58 pm","title":"Lovers on a Park Bench: Post-Mortem"}