{"author_name":"AnomalousUnderdog","cat":"MiniLD","comments":[],"epoch":1375141140,"likes":1,"metadata":{"p_key":"42187","p_author":"AnomalousUnderdog","p_authorkey":"0","p_urlkey":"77810","p_title":"Strat Souls #7dRTS Postmortem","p_cat":"MiniLD","p_event":"LD27","p_time":"1375141140","p_likes":"1","p_comments":"0","p_status":"UPD5","us_key":null,"us_name":null,"us_username":null,"event_start":"1377216000","event_key":"18","event_name":"LD27"},"text":"<p>I&#8217;m not going to bombard you with paragraphs so here are quick points for a postmortem:<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\"><img class=\"alignnone size-full wp-image-264518\" alt=\"SOSO\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\" width=\"106\" height=\"146\" \/><\/a><\/p>\n <p style=\"text-align: left;padding-left: 30px\"><strong>SO SO<\/strong>: I used old base code from my turn-based strategy game experiments. It was not the best fit. There were some few unused pieces of code that I had to clean up (&#8220;I don&#8217;t think I&#8217;m using this function, I should delete it, it&#8217;s distracting me&#8230; but is this part really not used? I have to check&#8230;&#8221;).<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\"><img class=\"alignnone size-full wp-image-264517\" alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Clearly define the scope of what you&#8217;ll do. That goes without saying, and yet some people don&#8217;t get this. When I see others saying &#8220;I&#8217;m gonna add this and this and this, I think it&#8217;s ambitious for the time-alloted, but I think I can pull it off LOL&#8221; that&#8217;s already a red flag right there. Do you even have a concrete plan to do all that?<\/p>\n <p style=\"padding-left: 30px\">I put it out there that I can create either a singleplayer game or a multiplayer game, but not both. At least, not within the 7 days. So I asked in the Ludum Dare website which they want first. Of course I want to add both eventually, but I have to choose what to finish within the 7 days.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\"><img class=\"alignnone size-full wp-image-264517\" alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Create a &#8220;testbed&#8221; level to quickly prototype ideas. A sort of playground level without victory\/defeat conditions so you can test things quickly. I do this all the time. Shigeru Miyamoto does this, so why wouldn&#8217;t you? Don&#8217;t you love Miyamoto-san?<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\"><img class=\"alignnone size-full wp-image-264517\" alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Sound software engineering practices. Abstract low-level details with high-level convenience functions! Reduces clutter, makes it easier for you to think! I&#8217;m going to write a separate article about this.<\/p>\n <p>\u00a0<span id=\"more-264515\"><\/span><\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\"><img class=\"alignnone size-full wp-image-264517\" alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Used NGUI! Worth the $45 (got it on sale)! NGUI&#8217;s WYSIWYG workflow allows you to design GUI layouts fast!<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\"><img class=\"alignnone size-full wp-image-264517\" alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Used free art assets from the Internet! Some editing was required but still lessened amount of work!<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Made my own 3d animations! Better control on how I want attacks to move.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Used primitive shapes for my 3d models on purpose. Didn&#8217;t add legs to lessen work! No need to animate legs! Looks cute according to some people! (?)<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Made use of free 3d models from blendswap.com (i.e. the skulls of the units) to lessen amount of work.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\"><img alt=\"SOSO\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\" width=\"106\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>SO SO<\/strong>: I probably should have made use of a state machine to facilitate low-level behaviour of units. But with the behaviour tree plugin I integrated, I think I can make use of that instead. I did not choose to do this though, as I concentrated on multiplayer instead as requested.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: The good thing is all the ugly code is hidden behind a clean interface &amp; facade class. So eventually I can clean up my ugly code without adversely affecting the rest of my code.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/BAD.png\"><img class=\"alignnone size-full wp-image-264516\" alt=\"BAD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/BAD.png\" width=\"112\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>KIND-OF BAD<\/strong>: Should I name my function FaceUnit() or TurnToUnit()? Can&#8217;t decide! Drives me crazy!<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: The network code I made includes a lobby and match-making service, which I could use later on for other games.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Although I use the built-in Unity network library, I modularized my code so I can swap it for a different network library instead (Photon or uLink, maybe?). This is probably likely as I&#8217;ve heard many complaints that Unity&#8217;s built-in network library is buggy in real-world use (when there are dozens of connecting clients).<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\"><img alt=\"SOSO\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/SOSO.png\" width=\"106\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>SO SO<\/strong>: This game jam forced me to learn git subtrees. I lost sleep wrestling with the damn thing, but now I can use it.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/BAD.png\"><img alt=\"BAD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/BAD.png\" width=\"112\" height=\"146\" \/><\/a><\/p>\n <p style=\"padding-left: 30px\"><strong>BAD<\/strong>: Live streaming? With the quality of <a href=\"http:\/\/forum.lol.garena.ph\/showthread.php?50649-ISPs-in-Philippines-the-real-facts-and-why-you-should-care\">Internet connection in this country<\/a>, forget it. Tried it. 90% of my streaming video&#8217;s frames were getting dropped.<\/p>\n <p>&nbsp;<\/p>\n <p>&nbsp;<\/p>\n <p><img alt=\"GOOD\" src=\"http:\/\/www.ludumdare.com\/compo\/wp-content\/uploads\/2013\/07\/GOOD.png\" width=\"107\" height=\"146\" \/><\/p>\n <p style=\"padding-left: 30px\"><strong>GOOD<\/strong>: Keep two versions of your builds: one for the clean, playable, version, and another for your experimental version where you are adding new stuff. In case what you&#8217;re adding won&#8217;t make it to the deadline, simply use your last clean, playable version.<\/p>\n <p style=\"padding-left: 30px\">I usually release my Unity web builds on Dropbox. But I realized I should have put two versions on Dropbox, i.e. the two versions I mention. There would be a StratSoulsRelease folder and a StratSoulsExperimental folder. Once I&#8217;m sure of my experimental version&#8217;s stability, I simply copy the necessary files over to the release folder.<\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/strat-souls\/\" rel=\"tag\">Strat Souls<\/a><\/p>","time":"July 29th, 2013 6:39 pm","title":"Strat Souls #7dRTS Postmortem"}