{"author_name":"ShadowBrain","cat":"LD #32","comments":[],"epoch":1429784040,"likes":3,"metadata":{"p_key":"17753","p_author":"ShadowBrain","p_authorkey":"15287","p_urlkey":"53059","p_title":"Zombies \u2018N\u2019 Marshmallows post-mortem type dealio?","p_cat":"LD #32","p_event":"LD32","p_time":"1429784040","p_likes":"3","p_comments":"0","p_status":"UPD5","us_key":"15287","us_name":"ShadowBrain","us_username":"shadowbrain","event_start":"1429228800","event_key":"27","event_name":"LD32"},"text":"<p>I had tons of fun this Ludum Dare, more so than previous ones.<\/p>\n <p>The reason for this is because I had the ability to make everything in 3D this time, as opposed to being stuck with Pixel Art because I didn&#8217;t have the 3D software I know and love.<\/p>\n <p>Guess I&#8217;ll do a quick good\/bad thing now.<\/p>\n <h1><strong>The good<\/strong><\/h1>\n <ul>\n <li>I did everything in 3D, this resulted in nice graphics and was, for me personally as I was taught 3D art in school, a much faster and easier process than if I&#8217;d done stuff in 2D\/Pixel Arted.<\/li>\n <li>I had the initial idea fairly quickly, just build a third person game and then throw unconventional weapons into it, this changed quickly into something more marshmallow focused when I decided to change the setting to an &#8220;in the woods&#8221; type deal and my dad suggested marshmallows. Thanks dad! (In previous Ludum Dares I had always wasted the first day trying to come with something good, not this time!)<\/li>\n <li>Using Vertex coloring instead of textures saved me a lot of hassle. Totally gonna stick with this again next time!<\/li>\n <li>Everything went so well I even had time to put in a small boss fight!<\/li>\n <\/ul>\n <hr \/>\n <p>&nbsp;<\/p>\n <h1><strong>The bad<\/strong><\/h1>\n <ul>\n <li>Performance wasn&#8217;t the best for some people and the game started stuttering after a while on lower-end machines or on the web player, this was mainly due to the large amount of objects I was spawning as you throw things and zombies spawn. (The zombie spawning vending machines initially didn&#8217;t have a spawn limit!) Aside from performance being low after a while, it started off as pretty terrible on Android, my reasonably high-end Nexus 5 couldn&#8217;t even run the game at 60fps! So next time I&#8217;ll try and minimize the amount of skinned meshes too I think.<\/li>\n <li>The camera was called &#8220;Horrible&#8221; multiple times. This is mainly because I was trying to go for a sort of Super Mario 64-type camera, but I realize a lot of people didn&#8217;t like that camera either, and in that game you still had SOME degree of control over it, I should&#8217;ve added something that gave you some level of control instead of just automating it all the way through. It does have controls on it but I for some reason chose to only let those work on an Xbox 360 controller.<\/li>\n <li>The sounds weren&#8217;t that great. They were cobbled together in the last hour or so I worked on it, I should make more time for proper audio next time.<\/li>\n <\/ul>\n <hr \/>\n <p>&nbsp;<\/p>\n <h1>The (art) process<\/h1>\n <p>This was the first Ludum Dare I did in 3D, I&#8217;ve made countless 3D prototypes and games in the past, just never for LD or public release of some kind (yet).<\/p>\n <p>It started off pretty simple, I needed a character so I made a basic character<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/ss-2015-04-18-at-09-56-38\/\" rel=\"attachment wp-att-461682\"><img class=\"alignnone size-full wp-image-461682\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-18-at-09.56.38.png\" alt=\"ss (2015-04-18 at 09.56.38)\" width=\"287\" height=\"362\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-18-at-09.56.38-238x300.png 238w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-18-at-09.56.38.png 287w\" sizes=\"(max-width: 287px) 100vw, 287px\" \/><\/a><\/p>\n <p>&nbsp;<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/ss-2015-04-18-at-09-57-39\/\" rel=\"attachment wp-att-461684\"><img class=\"alignnone size-full wp-image-461684\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-18-at-09.57.39.jpg\" alt=\"ss (2015-04-18 at 09.57.39)\" width=\"289\" height=\"295\" \/><\/a><\/p>\n <p>&nbsp;<\/p>\n <p><span id=\"more-461673\"><\/span><\/p>\n <p>I sort of liked the animal crossing-ness of him so I decided he was good enough for my game and made him move for a bit<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/feel-2\/\" rel=\"attachment wp-att-461685\"><img class=\"alignnone size-full wp-image-461685\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/Feel1.gif\" alt=\"Feel\" width=\"640\" height=\"360\" \/><\/a><\/p>\n <p>&nbsp;<\/p>\n <p>I liked the feel I had going, but wasn&#8217;t too sure about what to do with the camera, it had to follow him, right?<\/p>\n <div id=\"attachment_461686\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/feel2-2\/\" rel=\"attachment wp-att-461686\"><img class=\"wp-image-461686 size-full\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/Feel21.gif\" alt=\"Feel2\" width=\"640\" height=\"360\" \/><\/a><p class=\"wp-caption-text\">He&#8217;s still jumping here but I decided to scrap that as it&#8217;d make the animation system more complex and require an extra animation. :)<\/p><\/div>\n <p>&nbsp;<\/p>\n <p>However, later, I noticed some weird flippy-ness if you went too close to it so I made it follow the character loosely position-wise, also preventing from the character moving too far away and becoming too small on screen.<\/p>\n <p>When I had him moving I started on a static zombie, then got some bones in him and made a quick animation like so<\/p>\n <div id=\"attachment_461693\" style=\"width: 650px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/quickanimation2-2\/\" rel=\"attachment wp-att-461693\"><img class=\"wp-image-461693 size-full\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/QuickAnimation21.gif\" alt=\"QuickAnimation2\" width=\"640\" height=\"360\" \/><\/a><p class=\"wp-caption-text\">It&#8217;s blending between running and idle based on the magnitude of the input vector. Was super easy to set up!<\/p><\/div>\n <p>&nbsp;<\/p>\n <p>After I had that I started messing with\u00a0the zombie, giving it bones and animating it.<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/ss-2015-04-23-at-11-51-27\/\" rel=\"attachment wp-att-461690\"><img class=\"alignnone size-full wp-image-461690\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.51.27.png\" alt=\"ss (2015-04-23 at 11.51.27)\" width=\"293\" height=\"333\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.51.27-264x300.png 264w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.51.27.png 293w\" sizes=\"(max-width: 293px) 100vw, 293px\" \/><\/a><\/p>\n <p>&nbsp;<\/p>\n <p>That sorta worked well, all he had was a walking animation but it was nice. (Later I added getting-hit and dying animations.)<\/p>\n <p>I figured it&#8217;d be cooler if he had some mouth movement or something so I started messing with blendshapes<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/ss-2015-04-23-at-11-56-27\/\" rel=\"attachment wp-att-461696\"><img class=\"alignnone size-full wp-image-461696\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.56.27.png\" alt=\"ss (2015-04-23 at 11.56.27)\" width=\"467\" height=\"358\" srcset=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.56.27-300x230.png 300w, http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/ss-2015-04-23-at-11.56.27.png 467w\" sizes=\"(max-width: 467px) 100vw, 467px\" \/><\/a><\/p>\n <p>And then I figured, why not have the wolf blink? He is alive after all.<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/2015\/04\/23\/zombies-n-marshmallows-post-mortem-type-dealio\/blinkgif\/\" rel=\"attachment wp-att-461698\"><img class=\"alignnone size-full wp-image-461698\" src=\"http:\/\/ludumdare.com\/compo\/wp-content\/uploads\/2015\/04\/Blinkgif.gif\" alt=\"Blinkgif\" width=\"412\" height=\"360\" \/><\/a><\/p>\n <hr \/>\n <p>The basic workflow for me was this:<\/p>\n <ol>\n <li>Model thing<\/li>\n <li>Put thing in Unity<\/li>\n <li>If all is well, scale is right and everything, go back to Maya and start vertex coloring\u00a0it<\/li>\n <li>Back and forth with Unity to check if the colors look right with the lighting<\/li>\n <li>Colors right? If it&#8217;s not an animated object you can skip the rest and go straight to implementation, if not: Make his bones, but don&#8217;t skin him yet!<\/li>\n <li>Think of the blend shapes you want the thing to have, they need to be applied before the skinning so they don&#8217;t override each other.<\/li>\n <li>Skin the character to the bones and check if the weighting is correct, the auto skinning works pretty well usually but it always requires some small adjustments.<\/li>\n <li>Animate! Don&#8217;t worry about the speed of the animations too much as they&#8217;re usually not fast\u00a0enough looking for in a game, I almost always end up speeding the animation up to some degree in Unity\/Mecanim, then again that might just be my own incompetence in animation&#8230;<\/li>\n <li>Animate the blend shapes in unity! I usually find it easier to animate the values of the blend shapes in unity because it&#8217;s easier to get the timing right, here I do worry about the speed of the animation, but that might be because I can just set the fps of the animations individually. <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/><\/li>\n <li>Automate as much as you can, animation wise! Saves on coding. For the zombies&#8217;s mouth movements I just had a basic loop in mecanim between 2 animation states, running in a separate layer on top of the base layer, on override, because blend shapes don&#8217;t override animations if you&#8217;ve implemented them before skinning the character or thing. Automation-wise I had to code in a specific random blinking part for the blinking, I might&#8217;ve looked into adding a new mecanim animation node thing for randomness but I didn&#8217;t want to waste time on such a small detail.<\/li>\n <\/ol>\n <p>I won&#8217;t be going into any specifics of modelling and how to use programs because there&#8217;s plenty of tutorials for that on the web, this is just my workflow! <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>If you want to play Zombies &#8216;N&#8217; Marshmallows, here&#8217;s the link:<\/p>\n <p><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-32\/?action=preview&amp;uid=15287\">http:\/\/ludumdare.com\/compo\/ludum-dare-32\/?action=preview&amp;uid=15287<\/a><\/p>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/post-mortem\/\" rel=\"tag\">post-mortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a><\/p>","time":"April 23rd, 2015 5:14 am","title":"Zombies \u2018N\u2019 Marshmallows post-mortem type dealio?"}