{"assets":[],"author_link":"author\/chrismcmath\/","author_name":"Chris M","cat":"LD #33","categories":["LD #33"],"comments":[],"epoch":1441256760,"event":"LD33","likes":10,"metadata":{"p_key":"83087","p_author":"Chris M","p_authorkey":"0","p_urlkey":"293819","p_title":"The Three Knows of GameDev \u2013 A LD33 Post-Mortem","p_cat":"LD #33","p_event":"LD33","p_time":"1441256760","p_likes":"10","p_comments":"0","p_status":"WAYBACK","us_key":null,"us_name":null,"us_username":null,"event_start":"1440115200","event_key":"29","event_name":"LD33"},"source_url":"2015\/09\/03\/the-three-knows-of-gamedev-a-ld33-post-mortem\/","text":"<p class=\"font_8\">I\u2019ve come to revere Ludum Dare as a tri-annual marathon of determination, time management and polymathy. Even so I was not prepared for the turbulence this particular jam would bring. Having just come off work on various side projects I\u2019d entered the weekend brimming with a great sense of energy and ability. How soon those two allies deserted me!<\/p>\n<div id=\"innerContainer_txtMedia1la9\">\n<div class=\"s12\" id=\"innercomp_txtMedia1la9\" title=\"\">\n<div class=\"s12img\" id=\"innercomp_txtMedia1la9img\"><img alt=\"\" class=\"s12imgimage aligncenter\" id=\"innercomp_txtMedia1la9imgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_b874a777ac764011b251fd255f03b437.gif\"\/><\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">Were I to invent a time machine before I die, I would want to waste no time planning what to do with the technology. So here\u2019s what I\u2019d say to my pre-LD33 self.<\/p>\n<p class=\"font_8\">I\u2019d say\u2026<\/p>\n<p class=\"font_8\">\u2018Know the Three Knows!\u2019<\/p>\n<hr\/>\n<p class=\"font_8\">\n<h2>Know One: Know What You\u2019re Making<\/h2>\n<p class=\"font_8\">Design is fun. Especially the bit without the design. Just saying stuff in a stream of \u2018What If\u2019-ism; one\u2019s creativity taking flight and pirouetting across the warm canvas of possibility. Down below is cool reality, a series of etched hills and smudgy troughs. Mountains of design so well detailed they seem to implement themselves, but the troughs\u2026<\/p>\n<p class=\"font_8\">Oh the troughs are all too easy to overlook. In the troughs are shadows, those areas of design the free flight of creativity is blind to. They seem so innocent now, but come the 12th hour, perhaps the 24th, or maybe even 36th and they\u2019ll prove to be your undoing.<\/p>\n<p class=\"font_8\" style=\"text-align: center\">\u2018Beware the design shadows, my son!<br\/>\nThe work unseen, the flaws that forsake!\u2019<\/p>\n<p class=\"font_8\">Here, courtesy of Robin D. Laws, is a shadow we\u2019d all do well to avoid.<\/p>\n<div id=\"innerContainer_txtMedianvb\">\n<div class=\"s12\" id=\"innercomp_txtMedianvb\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMedianvblink\">\n<div class=\"s12img\" id=\"innercomp_txtMedianvbimg\"><img alt=\"\" class=\"s12imgimage aligncenter\" id=\"innercomp_txtMedianvbimgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_faf36a007fa345d49deb95516bdb11dc.png_srb_p_502_186_75_22_0.50_1.20_0.00_png_srb\"\/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">So simple, yet it was only on Day II I realised I hadn\u2019t done this, having allowed myself to be transfixed by the procedural features of my game. Now you wouldn\u2019t know it, but there is a conceptually infinite number of planets in The Last Little Monster. Most people who play only see two or three of these. That leaves infinity minus three planets unexplored.<\/p>\n<div id=\"innerContainer_txtMedia17hx\">\n<div class=\"s12\" id=\"innercomp_txtMedia17hx\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMedia17hxlink\">\n<div class=\"s12img\" id=\"innercomp_txtMedia17hximg\">\n<div class=\"wp-caption aligncenter\" style=\"width: 330px\"><img alt=\"\" class=\"s12imgimage\" height=\"231\" id=\"innercomp_txtMedia17hximgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_06218ff7d1254dcca82633e0bad3fd4d.gif\" width=\"320\"\/><p class=\"wp-caption-text\">Like a window into another world<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">Did I need to spend the majority of the first day working on this? And if I did, the question of how to integrate it better into the core gameplay loop should have out-prioritised the implementation of it.<\/p>\n<div id=\"innerContainer_txtMediaiv6\">\n<div class=\"s12\" id=\"innercomp_txtMediaiv6\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMediaiv6link\">\n<div class=\"s12img\" id=\"innercomp_txtMediaiv6img\"><img alt=\"\" class=\"s12imgimage aligncenter\" id=\"innercomp_txtMediaiv6imgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_694903dd8f974f17a66fe5a595c23cd3.gif\"\/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><\/h2>\n<h2>Know Two: Know Your Tools<\/h2>\n<p class=\"font_8\">As a Unity developer of a few years I often assume capability in systems I have little working knowledge of. Complex systems such as the PhysX engine may be conceptually simple, but then so is cooking and I still get food poisoned on a monthly basis. I had a humbling half hour near the deadline with the Unity UI system; where was the box that took CSS?<\/p>\n<div id=\"innerContainer_txtMedial0h\">\n<div class=\"s12\" id=\"innercomp_txtMedial0h\" title=\"This one, not wait, er... that one.\">\n<div class=\"s12link\" id=\"innercomp_txtMedial0hlink\">\n<div class=\"s12img\" id=\"innercomp_txtMedial0himg\">\n<div class=\"wp-caption aligncenter\" style=\"width: 290px\"><img alt=\"\" class=\"s12imgimage\" height=\"385\" id=\"innercomp_txtMedial0himgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_b508490dce2742ec88cedb9c2f9a274c.png_srb_p_280_385_75_22_0.50_1.20_0.00_png_srb\" width=\"280\"\/><p class=\"wp-caption-text\">Er\u2026 this one. No wait, that one.<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">Music and art are notorious time sinks, and one should assume that anything one makes will end up in the final game. Had I truly grokked that notion earlier, perhaps I would have spend five more minutes on this guy.<\/p>\n<div id=\"innerContainer_txtMedia18x6\">\n<div class=\"s12\" id=\"innercomp_txtMedia18x6\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMedia18x6link\">\n<div class=\"s12img\" id=\"innercomp_txtMedia18x6img\"><img alt=\"\" class=\"s12imgimage aligncenter\" id=\"innercomp_txtMedia18x6imgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_2698c5cd782544ba837c036a0b2d99fe.gif\"\/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><\/h2>\n<h2>Know Three: Know Thyself<\/h2>\n<p class=\"font_8\">As a test of polymathy, LD jammers wear many hats over the course of a weekend, and knowing which hat you\u2019re wearing is crucial to fulfilling the related subtasks.<\/p>\n<p class=\"font_8\">Careful now, I\u2019m going to get all De Bono on you.<\/p>\n<h3>The Blue Sky Hat (What Could You Do?)<\/h3>\n<p class=\"font_8\">This is the hat that can get you in trouble, but can also light a fire that will keep you motivated through the weekend. This is the mindset that makes you want this feature, and that one, and how about this? And what if this does this, like in that game and that movie?<\/p>\n<p class=\"font_8\">This hat really doesn\u2019t care about what any of the other hats think. It\u2019s the T-Rex of the park; it pulls in the punters but can also eat them.<\/p>\n<h3>The Design Hat (What Should You Do?)<\/h3>\n<p class=\"font_8\">The design hat is the electric fence to the T-Rex. It is measured and analytical. It is cool and conservative. It is not what is popularly thought of as \u2018game design\u2019. It is about reducing complexity, not increasing it. Gawd it sounds like a drag doesn\u2019t it? Well it\u2019s the ying to the Blue Sky\u2019s yang, and without it you end up working on a procedural planet generation system for a day. So heed it well!<\/p>\n<h3>The Implementation Hat (What You Actually Do)<\/h3>\n<p class=\"font_8\">The Design Hat may be a downer, but at least it talks to you. The Implementation Hat doesn\u2019t want to be interrupted so no thank-you I wouldn\u2019t like to see whatever thing you were just laughing at. It\u2019s the hat that gives Software Engineers a bad name. It\u2019s the hat the reveals all and every flaw, and is the hat that bears the brunt of that disappointment. It is also the hat that requires the most concentration to wear, and will start to disintegrate as your brain gets tired.<\/p>\n<p class=\"font_8\">You may have noticed using all of these hats yourself, but perhaps without consciously thinking about it. They are used at both high and low levels; each subtask will contain their own cycle of the hats. Due to the short time limit of Ludum Dare it\u2019ll be difficult to get more than a couple of iterations in for any subtask, but making sure they happen in the correct order can save you from, well, this:<\/p>\n<div id=\"innerContainer_txtMedia16em\">\n<div class=\"s12\" id=\"innercomp_txtMedia16em\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMedia16emlink\">\n<div class=\"s12img\" id=\"innercomp_txtMedia16emimg\"><img alt=\"\" class=\"s12imgimage aligncenter\" id=\"innercomp_txtMedia16emimgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_2698c5cd782544ba837c036a0b2d99fe.gif\"\/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">Due to the repeating nature of this process, the implementation of any design needs to be flexible enough so that it can support as many iterations as possible. This could include, or example, exposing your variables so that they\u2019re modifiable in game, or encapsulating your behaviour in such a way so that it can be switched out without having to rewrite any other code.<\/p>\n<p class=\"font_8\">My greatest error in LD33 was not realising this, which gave birth to a monster. It\u2019s a monster which I\u2019ve heard mentioned and even praised in rapid game development. It is The Prototyping Mindset.<\/p>\n<p class=\"font_8\">The Prototyping Mindset says that there is no need to even try writing clean, maintainable code, because Hey this is just a prototype and we\u2019re going to throw it away anyway. It is an attempt to avoid ever wearing the Implementation Hat, instead just running with whatever the Design Hat wrote on a napkin.<\/p>\n<p class=\"font_8\">But design is an iterative process, no matter so irrelevant or hastily made the product. The Implementation Hat already has a rough deal; it doesn\u2019t need The Prototyping Mindset undermining it further. The symptoms of this will slap you when you\u2019re at your lowest. It must have been 2am when I found myself writing this piece of code, possible the worst I\u2019ve ever written.<\/p>\n<div id=\"innerContainer_txtMediaocm\">\n<div class=\"s12\" id=\"innercomp_txtMediaocm\" title=\"\">\n<div class=\"s12link\" id=\"innercomp_txtMediaocmlink\">\n<div class=\"s12img\" id=\"innercomp_txtMediaocmimg\">\n<div class=\"wp-caption aligncenter\" style=\"width: 640px\"><img alt=\"\" class=\"s12imgimage\" height=\"21\" id=\"innercomp_txtMediaocmimgimage\" src=\"http:\/\/static.wixstatic.com\/media\/06573c_abce1162f7414a668835a3be1dc90779.png_srb_p_630_22_75_22_0.50_1.20_0.00_png_srb\" width=\"630\"\/><p class=\"wp-caption-text\">NSFW<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"font_8\">Remember this is the symptom of a poor implementation, a symptom of The Prototyping Mindset. A greater reverence for the Implementation Hat creates a platform for iteration allowing the hats to be greater than the sum of their parts. It also paves the way for code reuse; no more fear of a repository stopping you from turning that Kitten Meow-generator into its own library.<\/p>\n<p class=\"font_8\">One last note- it\u2019s OK to go crazy. It\u2019s just one weekend. Better to go full throttle and reflect than to phone it in, or even worse quit, and have nothing to learn. It\u2019s a weekend to disregard your emotions and give it your all.<\/p>\n<p class=\"font_8\">After all, it\u2019s not like you have a time machine to do it again.<\/p>\n<p class=\"font_8\">If you\u2019d like to play the game that inspired this write-up,\u00a0click <a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-33\/?action=preview&amp;uid=35889\">here<\/a>!<\/p>\n<p class=\"font_8\">This article has been cross-posted on <a href=\"http:\/\/devpact.com\" target=\"_blank\">DevPact<\/a>.<\/p>\n<\/p>","time":"September 3rd, 2015 5:06 am","title":"The Three Knows of GameDev \u2013 A LD33 Post-Mortem","title_was_empty":false}