{"id":919,"date":"2014-08-10T10:35:34","date_gmt":"2014-08-10T02:35:34","guid":{"rendered":"http:\/\/www.gridsagegames.com\/blog\/?p=919"},"modified":"2018-12-02T11:15:18","modified_gmt":"2018-12-02T03:15:18","slug":"cogmind-roadmap-year-1","status":"publish","type":"post","link":"https:\/\/www.gridsagegames.com\/blog\/2014\/08\/cogmind-roadmap-year-1\/","title":{"rendered":"Cogmind Roadmap: Year 1 and Beyond"},"content":{"rendered":"<p>About one year ago I launched this new blog to provide updates on Cogmind&#8217;s development. 1,533 hours later development is still chugging along. Yes, I keep detailed stats about where time is allocated and plan to share those figures and more in a (much) later post, but today I want to write about the first year with regard to the planning that goes into a long-term indie project, as a way of reviewing both where we&#8217;ve come from and where we&#8217;re headed (1.0 of course!).<\/p>\n<p>First, take a moment to <em>look<\/em> at the past year, in the form of all the images that have appeared on this blog so far:<\/p>\n<div id=\"attachment_920\" style=\"width: 3851px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_one_year_collage.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-920\" class=\"wp-image-920  \" title=\"Cogmind Development in a Year of Images\" alt=\"cogmind_one_year_collage\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_one_year_collage.jpg\" width=\"3841\" height=\"5120\" \/><\/a><p id=\"caption-attachment-920\" class=\"wp-caption-text\">Images from the past year of Cogmind development as shown on this blog (click for mega size).<\/p><\/div>\n<h1 style=\"text-align: left;\">First Roadmap<\/h1>\n<p>Development (re)started in July 2013 when I wrote an expanded design doc (1,320 words for the 7DRL became 18,000 words). After some time spent cleaning up the mess that was a hastily coded 7DRL, the next few months were spent adding support for basic mechanics that were missing from gameplay: <a title=\"Guided Weapons, Salvos &amp; Overloading\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/09\/guided-weapons-salvos-overloading\/\">guided weapons, salvos, overloading<\/a>, <a title=\"Multi-tile Robots\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/10\/multi-tile-robots\/\">multi-tile robots<\/a>,\u00a0<a title=\"Melee Combat\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/10\/melee-combat\/\">melee combat<\/a>, <a title=\"Large Parts &amp; Non-Parts\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/10\/large-parts-non-parts\/\">large parts<\/a>, <a title=\"Allies &amp; Factions\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/11\/allies\/\">factions<\/a>, <a title=\"Burnout, Momentum &amp; EM Disruption\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/12\/burnout-momentum-em-disruption\/\">burnout, momentum, EM disruption<\/a>, <a title=\"Hacking, the Concept\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/12\/hacking-concept\/\">hacking<\/a>, and <a title=\"Machines\" href=\"http:\/\/www.gridsagegames.com\/blog\/2013\/10\/machines\/\">machines<\/a>. These were new systems fundamental to the updated game that could be implemented in any order I felt like, thus this period was mostly spent coding down a long list of mechanics--overall a pretty free-form phase of development.<\/p>\n<p>Development time for individual items like those listed above can be measured in days, but the next phase would move into major components and require an ordered approach. You don&#8217;t want to start work on the world generation before a good chunk of the content is ready, or build robots before most of the parts are designed. At this point I also needed to know about how much longer development might take. Enter the first roadmap:<\/p>\n<div id=\"attachment_927\" style=\"width: 498px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_131214.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-927\" class=\"size-full wp-image-927 \" title=\"Cogmind Roadmap: 13\/12\/14\" alt=\"cogmind_roadmap_131214\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_131214.png\" width=\"488\" height=\"213\" \/><\/a><p id=\"caption-attachment-927\" class=\"wp-caption-text\">Cogmind&#8217;s very first roadmap, which didn&#8217;t appear until after about six months of development.<\/p><\/div>\n<p>Estimated time required for each component is measured in <em>months<\/em>, with the total expected time for completion at the bottom. The date the roadmap was written appears at the top.<\/p>\n<h2>The Cycle<\/h1>\n<p style=\"text-align: left;\">Every couple weeks or so I revisit the roadmap to check that development is proceeding on schedule. Rather than update the roadmap over time, I update a new copy of it in order to keep old states for comparison, making it possible to track when and where the pace of development differs greatly from estimates, if at all.<\/p>\n<p>Looking back at the first half year of roadmaps, I&#8217;m pleased to see that my estimates were fairly accurate:<\/p>\n<div id=\"attachment_928\" style=\"width: 498px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_131230-130426.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-928\" class=\"size-full wp-image-928 \" title=\"Cogmind Roadmaps: 13\/12\/30-14\/04\/26\" alt=\"cogmind_roadmap_131230-130426\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_131230-130426.png\" width=\"488\" height=\"1196\" \/><\/a><p id=\"caption-attachment-928\" class=\"wp-caption-text\">The first half year of Cogmind roadmaps.<\/p><\/div>\n<p style=\"text-align: left;\">Keep in mind that this is only a high-level general roadmap. Most of the intermittent planning stages are spent writing and organizing extensive medium- and short-term to-do lists which are referenced daily\/hourly.<\/p>\n<p>Because frequently pausing development of a major feature is an inefficient use of time, newly discovered bugs and necessary little improvements are collected on to-do lists for later and handled in between major features. These lists tend to grow significantly and while this phenomenon is not explicitly shown in the roadmap, it is taken into consideration for the time estimates--always pad your estimates!<\/p>\n<h1 style=\"text-align: left;\">Four Phases<\/h1>\n<p style=\"text-align: left;\">Looking at the process so far, and what still lies ahead, three phases of development emerge from the data:<\/p>\n<ol>\n<li>Mechanics: The initial roadmapless phase where basic functionality is designed and coded. A period of very code-heavy development.<\/li>\n<li>Content: Create objects based on all available mechanics. A data-heavy phase without much coding.<\/li>\n<li>World: Build the game world using content from the previous phase. A mix of equal parts data manipulation and coding. Lots of iteration is necessary to reach the intended experience, and algorithms are tweaked to fix inadequacies in the results. (Development has recently been shifting into this phase.)<\/li>\n<\/ol>\n<p style=\"text-align: left;\">So what happened to the fourth phase?<\/p>\n<p style=\"text-align: left;\">It actually belongs at the front--phase 0. Ideally development of a new game begins with a so-called &#8220;<a title=\"Wikipedia: Vertical Slice\" href=\"http:\/\/en.wikipedia.org\/wiki\/Vertical_slice\">vertical slice<\/a>&#8221; of the game experience to make sure the long period of development will be worth it. At the simplest level this is a prototype that proves the core mechanic, and I already had this in 2012 with the 7DRL and therefore didn&#8217;t revisit it. This is actually a small cause for worry because the new hacking mechanic, a pretty major element, has never been tested as part of the whole! (The ability to have allies is another game changer, but I&#8217;m less worried about that.)<\/p>\n<h1 style=\"text-align: left;\">The Last 10%<\/h1>\n<p style=\"text-align: left;\">Most developers have heard the saying that the last 10% of a game is 90% of the work. Now I haven&#8217;t by any means reached the last 10% just yet, but the principle is nonetheless already taking some effect.<\/p>\n<p>After a year of work there&#8217;s already a mechanically sound, mostly bug-free experience with dozens of robots, many hundreds of items, hundreds of pieces of ASCII art, a thousand sound effects, a fully-animated interface, blah, blah, blah&#8230; but no game! Every day I literally remind myself &#8220;still so much to do&#8230;&#8221;<\/p>\n<p>Looking back at the first roadmap, nine months from December is&#8230; <em>now<\/em>! There are several reasons for this.<\/p>\n<p>Firstly, because there are many variables in development and I don&#8217;t want to waste time planning too far into the future, the last 25% of my original roadmap was either oversimplified or missing important features.<\/p>\n<p>My roadmaps also don&#8217;t take into account real life delays, things like vacations, family issues, the occasional freelance job&#8230; You&#8217;ll notice that the provided selection of roadmaps ended just before May. The string of good examples ends there, as that&#8217;s when I put development on hold for five weeks to deal with some other obligations. Another week in July was reserved for family, and several weeks will be eaten up come October, and probably December, too.<\/p>\n<p>I&#8217;m luckier than most full-time devs in that I have relatively low operating costs and don&#8217;t need to set an absolute release date, but having a roadmap is still essential for staying on track, and of course helping answer questions like &#8220;WHEN CAN WE PLAY IT?!&#8221;<\/p>\n<p>So when <em>can<\/em> we play it&#8230;?<\/p>\n<p class=\"wp-image-934 \" title=\"Cogmind Roadmap: 14\/08\/10\">Now that we&#8217;ve definitely moved into the latter half of development, it&#8217;s time to revisit the roadmap and make sure it&#8217;s accurate based on what we know now.<\/p>\n<div id=\"attachment_937\" style=\"width: 282px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_140810.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-937\" class=\"size-full wp-image-937 \" title=\"Cogmind Roadmap: 14\/08\/10\" alt=\"cogmind_roadmap_140810\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_roadmap_140810.png\" width=\"272\" height=\"373\" \/><\/a><p id=\"caption-attachment-937\" class=\"wp-caption-text\">The latest development roadmap (ordered).<\/p><\/div>\n<p>As you can see I&#8217;ve switched from months to weeks as we break larger features into smaller chunks for the final run. While using days as the unit of measure would enable more accurate individual items (some may take less than one week, some more), there&#8217;s no reason to bother with that level of detail since it&#8217;s difficult to predict--might as well fudge it and let the values average out in the end.<\/p>\n<p>Adding in some previously missing elements also increases the total time required. Based on the roadmap, and knowing that at least four weeks later this year will see no development, the absolute earliest we&#8217;ll see a pretty complete game is March 2015. Game development sure does take a long time!<\/p>\n<h2>Current Progress<\/h1>\n<p class=\"size-full wp-image-939 \" title=\"Cogmind Development Progress (140810)\">I&#8217;ve been wanting to make a prettier and more detailed public progress graph available on a new Cogmind site, but haven&#8217;t gotten around to building the site yet (hopefully soon). Instead I&#8217;ll just post the chart here for now.<\/p>\n<div id=\"attachment_943\" style=\"width: 394px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_progress_140810.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-943\" class=\"size-full wp-image-943 \" title=\"Cogmind Development Progress (140810)\" alt=\"cogmind_progress_140810\" src=\"https:\/\/www.gridsagegames.com\/blog\/gsg-content\/uploads\/2014\/08\/cogmind_progress_140810.png\" width=\"384\" height=\"468\" \/><\/a><p id=\"caption-attachment-943\" class=\"wp-caption-text\">Current development progress, rendered of course in Cogmind&#8217;s UI style :)<\/p><\/div>\n<p style=\"text-align: left;\">Yeah, it looks full of big holes, a result of the disproportionate amount of time required by individual items (some of those bars represent week-long projects, while others took an entire month), and also because the mechanics and much internal work are underrepresented.<\/p>\n<p>Also note that some remaining components will be outsourced: Sprites and ambient map sound\/music. Those don&#8217;t even appear on the roadmap, as much of the work would be done in parallel anyway.<\/p>\n<h1 style=\"text-align: left;\">Release Schedule<\/h1>\n<p style=\"text-align: left;\">So March 2015 it is? Not exactly. In fact, I&#8217;m still aiming for a first release this year. Still debating how to handle the whole release issue&#8230;<\/p>\n<h2 style=\"text-align: left;\">When<\/h2>\n<p style=\"text-align: left;\">What state should a game be released in?<\/p>\n<p style=\"text-align: left;\">I believe a <em>free<\/em> game should be released as soon as it&#8217;s playable. This gives the developer immediate feedback from interested players and the game can grow around them. Heck, if Cogmind were free I&#8217;d release it right now since it&#8217;s already playable and fun even without a complete game world.<\/p>\n<p style=\"text-align: left;\">The issue becomes a little trickier with a commercial product, especially when you want to reach the largest possible audience in a market flooded by more and more games--many obscure games don&#8217;t get a second look so the first impression is pretty important, be it by media or by players themselves. Releasing too early is putting a greater portion of the results in the hands of chance.<\/p>\n<p style=\"text-align: left;\">Cogmind is more than just a roguelike dungeon romp, but you won&#8217;t see that in the game&#8217;s current state. By the time it&#8217;s done there will be a story, lore, NPCs&#8230; While it&#8217;s currently very &#8220;playable&#8221; in the game sense, the intended experience is simply not anywhere near complete. I hope that when people see, or play, the game they can see a greater range of what it has to offer.<\/p>\n<p style=\"text-align: left;\">So I can at least say that it won&#8217;t be released <em>now<\/em>.<\/p>\n<h2 style=\"text-align: left;\">How<\/h2>\n<p style=\"text-align: left;\">There are two options I&#8217;m considering for how to start releasing.<\/p>\n<p>One is as a demo for a Kickstarter campaign. Still not sure if I should bother with that route since it would postpone 1.0 even further, though it <em>would <\/em>give the game greater exposure (while implying that &#8220;it&#8217;s not done yet&#8221;) and bring in more money that could be spent on better audio-visual components. I almost want to do this simply as an elaborate excuse to get myself a Cogmind T-shirt =p<\/p>\n<p>The other is simple alpha funding, which itself could go one of two ways. Either initially sell only through my own site without trying to reach out to a larger audience, gradually getting into the market and expanding exposure as necessary, or wait a little longer and go for a bigger early access release on multiple platforms.<\/p>\n<h2 style=\"text-align: left;\">Dammit, WHEN?!<\/h2>\n<p style=\"text-align: left;\">&#8220;When it&#8217;s done.&#8221;<\/p>\n<p style=\"text-align: left;\">Haha, just kidding. Little roguelike dev joke there.<\/p>\n<p style=\"text-align: left;\">Each of the &#8220;hows&#8221; might have its own slight affect on the first release date. KS would be earliest, small-scale alpha would be later, and full-scale early access would be latest. I&#8217;d like to think that any of these options would see the game out there somewhere in a November-December time frame.*<\/p>\n<p style=\"text-align: left;\">*Fake fine print: No promises.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>About one year ago I launched this new blog to provide updates on Cogmind&#8217;s development. 1,533 hours later development is still chugging along. Yes, I keep detailed stats about where time is allocated and plan to share those figures and more in a (much) later post, but today I want to write about the first [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":943,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[150],"tags":[4,170,87,86],"class_list":["post-919","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-annual-review","tag-cogmind","tag-gamedev","tag-progress","tag-roadmap"],"_links":{"self":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/comments?post=919"}],"version-history":[{"count":16,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/919\/revisions"}],"predecessor-version":[{"id":945,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/posts\/919\/revisions\/945"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/media\/943"}],"wp:attachment":[{"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/media?parent=919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/categories?post=919"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gridsagegames.com\/blog\/wp-json\/wp\/v2\/tags?post=919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}