{"assets":[],"author_link":"author\/excaliburjs\/","author_name":"excaliburjs","cat":"LD #35","categories":["LD #35"],"comments":[],"epoch":1462748520,"event":"LD35","likes":7,"metadata":{"p_key":"85176","p_author":"excaliburjs","p_authorkey":"0","p_urlkey":"295937","p_title":"Hexshaper Postmortem","p_cat":"LD #35","p_event":"LD35","p_time":"1462748520","p_likes":"7","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1460678400","event_key":"33","event_name":"LD35"},"source_url":"2016\/05\/08\/hexshaper-postmortem\/","text":"<p><img alt=\"Hexshaper gif\" class=\"aligncenter\" height=\"393\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/compo2\/542293\/38404-shot1-1461028971.gif\" width=\"494\"\/><\/p>\n<p style=\"text-align: center\"><a href=\"http:\/\/excaliburjs.com\/ludum-35\/\" target=\"_blank\">Play the LD version of Hexshaper<\/a><\/p>\n<p>Ludum Dare 35 is the fourth in the series for the <a href=\"http:\/\/excaliburjs.com\/\" target=\"_blank\">ExcaliburJS<\/a> team. We piled five to seven people into one room for four days to make another game.<\/p>\n<p><em><strong>What went well<\/strong><\/em><\/p>\n<p><strong>Workflow and Toolset<\/strong><\/p>\n<p>We\u2019ve continued to refine and improve the way we build games for jams. It\u2019s important that everything \u201cjust works\u201d as much as possible. We maintained the same continuous deployment process that we\u2019ve used before to push to a live site, so it could be tested and played within a minute of being checked in. We also used a watch-and-compile task in Visual Studio Code to gain the same benefit while developing locally.<\/p>\n<p><strong>Art &amp; Sound<\/strong><\/p>\n<p><img alt=\"Hexshaper art asset samples\" class=\"aligncenter wp-image-563558 size-medium\" height=\"160\" sizes=\"(max-width: 300px) 100vw, 300px\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/9hbumrE-300x160.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/9hbumrE-300x160.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/9hbumrE.png 334w\" width=\"300\"\/><\/p>\n<p>We had four people putting together art assets on and off throughout the weekend, and it turned out great. We used <a href=\"http:\/\/www.bfxr.net\/\" target=\"_blank\">bfxr<\/a> to create the sound effects, and a set of <a href=\"http:\/\/littlebits.cc\/\" target=\"_blank\">littleBits<\/a> components to compose the background music. Once we had settled on the theming for the game, everything fell into place.<\/p>\n<p><img alt=\"littleBit setup\" class=\"aligncenter wp-image-563557 size-medium\" height=\"260\" sizes=\"(max-width: 300px) 100vw, 300px\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/2RopWSW-300x260.jpg\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/2RopWSW-300x260.jpg 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/2RopWSW.jpg 500w\" width=\"300\"\/><\/p>\n<p><strong>Event Scripting<\/strong><\/p>\n<p>We initially had a grand plan for introducing elements of Hexshaper, and as usual we had to set that aside and come up with a more practical solution that could be completed in the time remaining. We ended up pausing the game and moving the camera over to each portal as it opened and as the player successfully closed it, which ended up providing most of what we wanted.<\/p>\n<p><strong>Bugs<\/strong><\/p>\n<p>We only encountered a few bugs in Excalibur this time around, and they were all relatively straightforward to test and fix. It feels better to use the engine each time we do a game jam.<\/p>\n<p><strong><em>What didn\u2019t go so well<\/em><\/strong><\/p>\n<p><strong>Minimum Viable Game<\/strong><\/p>\n<div class=\"wp-caption aligncenter\" id=\"attachment_563559\" style=\"width: 310px\"><img alt=\"ship\" class=\"wp-image-563559 size-medium\" height=\"202\" sizes=\"(max-width: 300px) 100vw, 300px\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/WsQSChD-300x202.png\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/WsQSChD-300x202.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2016\/05\/WsQSChD.png 445w\" width=\"300\"\/><p class=\"wp-caption-text\">The game on Saturday<\/p><\/div>\n<p>\u00a0<\/p>\n<p>We didn\u2019t have a very clear vision of what we wanted the game to be this time around. Uncertainty translated into not really having a playable game until Monday. This delay was a stark departure from the last couple of games we\u2019ve made, where we made a point to have something relatively complete by Saturday evening so we could iterate on it through the rest of the weekend.<\/p>\n<p><strong>Animations<\/strong><\/p>\n<p>There were a number of things that made interacting with the Excalibur animations API painful. Luckily, we didn\u2019t lose too much time to them, and we now have an opportunity to improve that experience for future users.<\/p>\n<p><em><strong>Conclusions<\/strong><\/em><\/p>\n<ul>\n<li>Build a playable game as soon as possible<\/li>\n<li>Look for alternative solutions that create most of what you want for much less work<\/li>\n<\/ul>\n<p>Special thanks to all of the <a href=\"http:\/\/excaliburjs.com\/ludum-35\/credits.html\" target=\"_blank\">people<\/a> who worked hard to make this game possible!<\/p>\n<blockquote class=\"imgur-embed-pub\" data-id=\"eoVBcw5\" lang=\"en\"><p><a href=\"http:\/\/imgur.com\/eoVBcw5\">View post on imgur.com<\/a><\/p><\/blockquote>\n<p><script async=\"\" charset=\"utf-8\" src=\"\/\/s.imgur.com\/min\/embed.js\"><\/script><\/p>\n<p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/excaliburjs\/\" rel=\"tag\">excaliburjs<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/html5\/\" rel=\"tag\">html5<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/jam\/\" rel=\"tag\">jam<\/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":"May 8th, 2016 11:02 pm","title":"Hexshaper Postmortem","title_was_empty":false}