{"author_name":"AAGH Games","cat":"LD #35","comments":[],"epoch":1462068060,"likes":0,"metadata":{"p_key":"5688","p_author":"AAGH Games","p_authorkey":"504408","p_urlkey":"41138","p_title":"ShiftyBalls Postmortem","p_cat":"LD #35","p_event":"LD35","p_time":"1462068060","p_likes":"0","p_comments":"0","p_status":"UPD5","us_key":"504408","us_name":"AAGH Games","us_username":"AAGH Games","event_start":"1460678400","event_key":"33","event_name":"LD35"},"text":"<p>Here is our ShiftyBalls postmortem. It&#8217;s a little on the long side, but we hope that you enjoy it. If you want to try our game, ShiftyBalls, <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-35\/?action=preview&amp;uid=38918\">you can do so right here<\/a>. Thank you, by the way, to everyone who has rated ShiftyBalls and provided feedback!<\/p>\n <h2>Day One:<\/h2>\n <p>When the theme was announced at 9 PM Friday night, Floata (our musician\/level designer) immediately suggested an exploration\/treasure hunting game where the player had to shift elemental form to survive hazards. Sounded straight forward enough, so off we went. I (Budaniel) do the programming and art, and shortly after we got the movement in, I moved on to try and create a humanoid avatar. The issue is that I\u2019m primarily a 2D artist, and our game was going to be 3D. The resulting 3D model wasn\u2019t bad. The rigging and animation, on the other hand, became the stuff of nightmares.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561704\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-3dgonewrong-550x272.jpg\" alt=\"sb-3dgonewrong\" width=\"550\" height=\"272\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-3dgonewrong-300x148.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-3dgonewrong-768x380.jpg 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-3dgonewrong-550x272.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-3dgonewrong.jpg 1280w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>So, with that horror set aside, I made what was intended to be a temporary avatar \u2013 a smiling red ball. We liked it enough, though, to keep it and build the rest of the game around it. We added ice-, fire- and rock-based forms and tied them into the game play: ice freezes water, fire is fast but dies in water, and rock can survive trips through lava. At this point I forwarded Floata the game and he built our first level.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561705\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-level1-550x311.jpg\" alt=\"sb-level1\" width=\"550\" height=\"311\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-level1-300x170.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-level1-550x311.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-level1.jpg 761w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>The level, once completed worked well as a tutorial to introduce the basic mechanics to the player. The hardest part, surprisingly, was getting the block to rise out of the lava. For whatever reason, we fought that one piece for almost an hour. We could have worked around it, we could have removed it, we could have come back later, but nope \u2013 we had to finish it <em>right now<\/em>, darn it. We did eventually finish it so we could move on with a clear conscience.<\/p>\n <p>We eventually finished up laying out level one and half of level two before day one drew to a close Saturday night. Our vision was coming together, and we still had 48 hours before the deadline.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561706\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-unfinished-550x251.jpg\" alt=\"sb-unfinished\" width=\"550\" height=\"251\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-unfinished-300x137.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-unfinished-768x350.jpg 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-unfinished-550x251.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-unfinished.jpg 946w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <h2>Day Two:<\/h2>\n <p>I began day two by working on key graphics. Specifically, I made the key for unlocking the gate in the levels. For all my desire to learn 3D graphics, I\u2019m still not really there, so thankfully a key isn\u2019t too hard to make.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561707\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-key-550x276.jpg\" alt=\"sb-key\" width=\"550\" height=\"276\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-key-300x150.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-key.jpg 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-key-550x276.jpg 550w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>Once that was completed we moved to complete the design on level one (we\u2019d left the end point unfinished earlier). Floata wanted the level to finish on a sailing ship, but I failed at making a serviceable sailing ship, so that ship sailed and we went a simpler route. It was about this time that I noticed a bug in our player movement.<\/p>\n <p>Apparently I had set the player to detect as being on the ground if their vertical velocity was less than zero. What that meant was that as long as the player was falling they could jump again, resulting in the ability to bounce through the air. How on earth we got this far without noticing that is beyond me, but it was quickly fixed \u2013 fun as it was, it kind of ruined any challenge the game had.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561708\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-fly-550x302.jpg\" alt=\"sb-fly\" width=\"550\" height=\"302\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-fly-300x165.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-fly-768x421.jpg 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-fly-550x302.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-fly.jpg 769w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>Taking a break from level design, work began on the title screen, which meant we needed a name for the game. After some deliberation we settled on ShiftyBalls. It may be kind of juvenile, but we\u2019re ok with that. While I was posting a progress post on the Ludum Dare site, the tagline of the game came to me like an epiphany.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561709\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-logo-550x342.jpg\" alt=\"sb-logo\" width=\"550\" height=\"342\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-logo-300x187.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-logo-550x342.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-logo.jpg 632w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>With that out of the way we went to work on level three. Working as a team over Skype went well and the level came together in no time. We had originally intended for this to be a large, multi-path level but we pared it back down after a discussion as to its relationship in scale to the rest of the game.<\/p>\n <p>We had been discussing up this point adding indicators for the various forms and a timer of sorts, so when better than now to add them? I toyed with various styles and settled on an seriously boring \u201ccolored circle with a number in it\u201d look after failing at multiple flashier variations. Looking back, I wish I\u2019d used pics of the ball in its various forms for the buttons, but I am not a very smart person sometimes.<\/p>\n <p>The timer turned out to be the biggest headache so far, as tying it to the forms and their transformations turns out to be a little harder than I\u2019d expected. The problem was as simple as me misunderstanding how to use a single line of code (InvokeRepeating, to be exact), but it delayed progress for over an hour. That led into the evening, and the end of day two.<\/p>\n <h2>Day Three:<\/h2>\n <p>Most everything we\u2019d aimed for was in the game now. We had three levels (more is always better, but we liked the three we had) so day three was bug-fixing and graphics-polishing day. The first order of business was doing away with the gray boxes that had stood in for textures throughout the game. Originally intended to look like tiled flooring, the way it got stretched all over the place gave it a really chintzy, low-res look. We opted to go for a simple two-piece approach, with a darker body of the surfaces with a shiny, lighter top surface. While this meant I basically had to go back and double up every single surface in the game, the results (combined with a starfield skybox) were a positive step.<\/p>\n <p><img class=\"aligncenter size-large wp-image-561710\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-gettingbetter-550x458.jpg\" alt=\"sb-gettingbetter\" width=\"550\" height=\"458\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-gettingbetter-300x250.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-gettingbetter-768x639.jpg 768w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-gettingbetter-550x458.jpg 550w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/04\/sb-gettingbetter.jpg 902w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n <p>We tested the hell out of it in the morning, but one issue stuck out: the ice kept blinking back to water for a half second while you were freezing it. This began a small odyssey that nearly derailed the entire project.<\/p>\n <p>I told Floata I would fix the issue, and then sat down on my own to do just that. I figured it would take 30 minutes, tops, but in trying to isolate the problem, I broke the freezing mechanic entirely. We were only about 6 hours until deadline and I had just destroyed a core part of our game. I tried to put it back together, but in doing so, it didn\u2019t work anymore. Panic and stress began to set in, knowing that I had to find and fix the problem <em>right now<\/em>. Here\u2019s a small rundown of the events as it went all wrong.<\/p>\n <ol>\n <li>The water stopped freezing on contact<\/li>\n <li>The water froze on contact, but then immediately unfroze<\/li>\n <li>The water started as ice and became water instead of vice versa<\/li>\n <li>The water froze as soon as I turned to ice, even if I wasn\u2019t touching it<\/li>\n <li>The water froze but never unfroze<\/li>\n <li>The water turned to ice but didn\u2019t become solid<\/li>\n <li>The water rapidly blinked frozen\/unfrozen<\/li>\n <\/ol>\n <p>None of these were ideal. It took me probably two hours or so, but not only did I get it working again (the issued turned out to be three different, conflicting scripts all trying to do the same thing), I also fixed the original issue in the process. Hooray for success! I\u2019m glad that I fixed it and I didn\u2019t have to be guilty of ruining our game at the last minute.<\/p>\n <p>With deadline rapidly approaching, we ran the game through its paces a few more times and finally posted it, and now its fate is in the hands of <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-35\/?action=preview&amp;uid=38918\">you fine people for judgement<\/a>.<\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/3d-unity\/\" rel=\"tag\">3d unity<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/ld35\/\" rel=\"tag\">LD35<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a><\/p>","time":"April 30th, 2016 9:01 pm","title":"ShiftyBalls Postmortem"}