{"id":468,"date":"2009-03-13T19:45:22","date_gmt":"2009-03-13T09:45:22","guid":{"rendered":"http:\/\/www.vectorstorm.org\/?p=468"},"modified":"2009-03-13T19:48:17","modified_gmt":"2009-03-13T09:48:17","slug":"a-long-awaited-post-mortem","status":"publish","type":"post","link":"https:\/\/www.vectorstorm.com.au\/2009\/03\/13\/a-long-awaited-post-mortem\/","title":{"rendered":"A Long-Awaited Post-Mortem"},"content":{"rendered":"
First, I would like to say that I’m not entirely happy with Lord’s state. \u00a0It has a lot of things wrong with it that are immediately visible to anyone who plays it; \u00a0the pacing is the biggest offender here, I think I totally failed to convey the feeling that I was striving for. \u00a0But that’s not such a bad thing; \u00a0the point, after all, of trying to make a game in a week is to finish a game in a week, not necessarily to have a fantastic game at the end of it.<\/p>\n
No, the chief failure of Lord was that it took me more than 7 days to complete. \u00a0In fact, it took me 77 days to complete (that number wasn’t planned). \u00a0This is the story of what happened, in the hopes that telling the story will help me keep it from happening again.<\/span><\/p>\n It was the day after Christmas, 2008. \u00a0Picture a younger me, more hale and hardy, his cheeks still flush and aglow, strong in limb and body, his hair not yet gone grey. \u00a0Flush with his youthful vigour, he thought, “Why, it’s been a long time since I’ve done a Game in a Week.. and I have a full week of vacation left before I must return to work! \u00a0And work will be quite busy, so I should have fun now while I can, for I will not be able to consider a Game in a Week for a long time into the New Year!”<\/p>\n More beneath the fold.<\/p>\n <\/p>\n This young me was full of thoughts about revising MMORPG Tycoon, or perhaps even a reworking of Nicholas Spratt for the iPhone. \u00a0But such things would be large undertakings; \u00a0there was no time to achieve them within the week available, and so he decided to throw caution to the wind, and do another Game in a Week.<\/p>\n And when the theme phrase turned out to include the word “Land”, he thought it was providence. \u00a0MMORPG Tycoon was going to need some sort of land rendering, and it seemed like fate; \u00a0like a sign that he should make a game to implement and test terrain rendering which later could be used for MMORPG Tycoon..<\/p>\n The game concept came easily, and quickly. \u00a0The idea was to have a 3D terrain which wrapped around a sphere. \u00a0There were villages on the terrain, and meteors would fall down, hit the terrain, and unleash an infection which would slowly spread over the map; \u00a0you had to place walls, to fence in the infection. \u00a0It was an epic tale, to be told in about six chapters. \u00a0In the first chapter, meteors would strike the planet, and you had to use some sort of fences to keep a resulting infection from reaching your towns. \u00a0The idea was that your villages would provide different shaped walls; \u00a0they would display a little thought-bubble above themselves, showing what they’d provide, and if you clicked on one, you’d be able to place its shape. \u00a0At the start, villages would give you very simple shapes; \u00a0straight lines, or with a single bend in them. \u00a0The idea was that a certain number of meteors would hit the planet and need to be contained with your walls. \u00a0Perhaps about four or five. \u00a0Once you had contained them all, you would progress to Chapter Two.<\/p>\n Chapter Two would take place several generations later; \u00a0your surviving towns would grow, and you’d earn one new one. \u00a0Your energy walls would be gone and the infection would no longer be spreading, but now entities would emerge from the old infections, and begin advancing toward your towns, and you’d have to stop them using the same wall-placement system. \u00a0Do that, and you’d advance to Chapter Three.<\/p>\n And this continued, with each chapter taking place a few generations later, introducing a different variant on the “placing walls” play mechanic, and advancing the story toward the eventual destruction of the planet (which would cause the ejection of meteors toward the next planet, thus taking the story full-circle so that it ended exactly where it began, but at a different planet).<\/p>\n Really, it was far too epic a concept to have been feasible within a week. \u00a0But that was okay; \u00a0after all, Younger-Me had a full week without work to do it in, whereas usually he had to fully implement a “Game in a Week” on the weekend. \u00a0He had buckets of coding time for this one!<\/p>\n But it got worse; \u00a0it turned out that the 3D code which Younger-Me had added to VectorStorm over the previous week turned out to be extremely buggy and difficult to work with, in ways which hadn’t been noticed in his simple testbed applications. \u00a0The first few days were taken just trying to make a camera move the way that the game told it to, and to make terrain actually visible. \u00a0But this was no problem, he thought. \u00a0“Surely, with a full week on vacation, I can fix the bugs and<\/em> write a game at the same time,” he reasoned. \u00a0And perhaps, just perhaps, he might have. \u00a0That is, if it were not for…<\/p>\n On the Wednesday, I visited with an old friend, who talked to me about World of Warcraft, and how a few mutual friends had joined up a while back. \u00a0I had played World of Warcraft during its first year or so, and gave it up because I found it to be rather dull (my only character managed to reach level 36 before I quit, a short while after The Burning Crusade was released.. which may give you an idea of how little time I actually spent playing it). \u00a0But apparently these mutual friends had just reached the mid-30s, and would I be interested in reactivating my account to go quest with them. \u00a0We could, in my friend’s words, “actually do 5-man raids together!”<\/p>\n To make a long story very short (because the ending is awfully predictable).. that character is now level 69. \u00a0And while I’m relieved to note that others seem much more obsessed with and spend more time on WoW than I do, it doesn’t change that I’ve spent far too much time with it over the past three months. \u00a0It’s not all bad, of course; \u00a0I’ve been looking rather closely at how the WoW level zones are constructed, and have been devising plans to create similar things procedurally in MMORPG Tycoon.. \u00a0but that really wasn’t what I was supposed to be doing during that week.<\/p>\n So WoW chewed up a lot of that first week. \u00a0But it wasn’t anything to worry about, I told myself; \u00a0I had written a full GiaW entirely over the weekend many times before, after all. \u00a0But in practice, it didn’t happen; \u00a0the bugs in the engine made writing code annoying and painful, instead of fun. \u00a0And in the end, I wound up spending more time reading about WoW and chatting with friends than actually coding. \u00a0I did briefly consider on the Saturday evening that I could throw it all away and just quickly write a 2D implementation of the initial Chapter One game concept (spreading infection, 2D lines to block its progress toward your villages) on Sunday and still make the deadline.. but I was so wedded to the idea of proving out a terrain rendering solution for MMORPG Tycoon, that I decided to let the game slip, rather than release something smaller on time. \u00a0Especially since I’d been posting screenshots of 3D terrain to the site.<\/p>\n Once that first week was over, that was the beginning of the end; \u00a0work became so busy that I was generally working 60-80 hour weeks, and never had more than one day off in the weekend (and often worked straight through them).. and since I’m paid to write code, the last thing I wanted to do upon getting home in the evening was to sit down in front of a compiler and struggle with buggy rendering code. \u00a0Even when I bought myself a copy of the Wall-E<\/a> DVD, which I left unopened on my coffee table to bribe myself to finish, I still couldn’t bring myself to actually work on Lord.<\/p>\n Fast-forward to this past weekend, which was the first weekend when I’ve had two days off in a row in an awfully long time, as things have begun to slow back to a more sane pace. \u00a0On the Sunday, I was thinking more rationally and began considering cancelling Lord entirely; \u00a0just giving it up and moving on with something else. \u00a0And then I decided that no, it’d be better to put something out, even if it wasn’t something I was proud of. \u00a0Just to have closure. \u00a0After all, I’d put up “Nicholas Spratt”, even though that game concept hadn’t worked, and I’d put up “Thunderstorm”, even though I didn’t like it.. \u00a0and so I started the “what would I have to do in order to release this now, basically as is?” thinking.<\/p>\n I had only ever implemented the basics of the “Chapter One” design, so I threw away all the other chapters. \u00a0I had never been able to make the thought bubbles appear at the right places, so I threw those away too; \u00a0instead of having cities “grow”, I just linked the more complicated and larger wall shapes to having more surviving towns, instead of to “levels of city development”. \u00a0 And I quickly plugged in a HUD element that showed number of remaining towns and infection level, set the game to jump to the credits scroll if either number got too bad, and it was basically done.<\/p>\n Oh. \u00a0And at the very last moment I added the timer, and linked the rate of meteor spawning to the current time, just to give it a little bit of variation and increased difficulty as you played longer.<\/p>\n So here’s the bottom line:<\/p>\n First, I would like to say that I’m not entirely happy with Lord’s state. \u00a0It has a lot of things wrong with it that are immediately visible to anyone who plays it; \u00a0the pacing is the biggest offender here, I think I totally failed to convey the feeling that I was striving for. \u00a0But that’s…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[30,17],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/po9WK-7y","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/468"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=468"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/468\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}What went wrong<\/h3>\n
\n
What went right<\/h3>\n
\n