Official development blog

Cogmind Released on Steam

It’s finally happened. After over four years and more than 8,000 hours of work, Cogmind has just been released on Steam :D

“Released” but Early Access. Some say that as soon as you release on Steam, EA or not, that’s it--you only really get one launch and the “full release” won’t make as big a splash later. That’s fine, since Cogmind is a very complete experience and it’s time for anyone who’s been waiting for this opportunity to jump in.

There are of course a lot of people who don’t have much faith in Early Access games, but as long as they’re interested in the concept of Cogmind I don’t think it’ll be too hard to win them over while we spend the coming months adding optional features and content, especially considering the amount of development already allocated to ensuring maximum polish.

cogmind_fireworks_steam_ea

Break out the fireworks! (Or missiles, depending on how you look at them :P)

Thanks to everyone who’s helped make this possible! Cogmind has come way beyond what it would have been without as much support as everyone’s provided over the years, be it financial, spreading the word, or offering feedback and suggestions. A few months back I shared a lengthy rundown of features that didn’t have to happen but have certainly made Cogmind better for it, features that you all made possible.

cogmind_steam_capsule_main_final

A logo image recently put together while preparing for Steam.

Cogmind feature highlights, as it launches into the wild on Steam:

  • Build and modify a unique robot from nearly 1,000 parts, whether found or salvaged from other bots
  • Highly dynamic character development without XP/grinding
  • Dozens of robot classes, each with unique behavior within the ecosystem
  • Mechanics and environments that enable one of the most compelling stealth experiences in a roguelike
  • Extensive hacking systems--nearly 100 machine hacks so far
  • Procedurally generated world, including dozens of map types into which hundreds of hand-made areas are mixed
  • Hundreds of NPC encounters and thousands of lines of dialogue form a rich story
  • Seven different animated endings to discover
  • Fully destructible environment
  • Nearly 1,000 pieces of ASCII art
  • Huge range of particle effects like never seen in a terminal (except my other project :P)
  • Everything has sounds--more SFX than any roguelike, ever
  • Advanced terminal interface, with numerous built-in input options and tons of information at your fingertips
cogmind_branding_composite_optimized

Composite demo of various Cogmind features.

Other interesting points regarding design and development:

  • Cogmind is all about atmosphere--there isn’t even a main menu, the player is dropped right into the game world
  • Cogmind was designed entirely in CP437, with aesthetics conforming to limitations imposed by a two-colors-per-cell grid-based display (nothing breaks that rule)
  • There is a tileset available by default (since approximately 75% of players prefer to use it!), but even that was designed to mimic the ASCII aesthetic so as to not ruin the style
  • Despite the limitations, Cogmind’s UI explores many features never before seen in traditional roguelikes
  • A niche game like Cogmind managed to raise more than $100,000 from players to fund alpha development, which was how it could keep expanding for over four years :)
  • To help build Cogmind I created REXPaint, a free editor now in use by a large number of artists and gamedevs
cogmind_composite_inventory_management_destruction_ascii

Cogmind inventory management demo with bonus ASCII destruction and repair :)

Alpha Supporters

I’ve sent out emails to alpha supporters who bought back when a Steam key was promised as part of those tiers. So check your inboxes (and spam, just in case) and email me at gridsagegames@gmail.com if you were supposed to receive a key but did not. Note that my response time might be a little slower than usual due to a much higher volume of activity around release time.

Those of you migrating from DRM-free to Steam can import your settings and metadata as usual. After installing via Steam, open the Steam-installed local files and copy over your old Cogmind /user/ directory into the new one. That’s it. It will automatically update from then on for subsequent versions.

A little Beta 3 was put out last week to coincide with this Steam launch, so anyone not on Steam will want to update manually. See the announcement for notes on that.

For those of you who bought ages ago just to support development and are only now being reminded you own the game but never registered your copy, therefore your name doesn’t appear in the supporters list (or more importantly the art gallery if you bought that early), go back to your original download email and use the linked form to register. There are still quite a few unclaimed items in the gallery, mostly because a lot of you probably didn’t notice the form link (just a couple quick fields to fill out, otherwise I don’t know what name you want to use!). After some time on Steam I’m going to have to reallocate remaining unclaimed items to other players!

Purchase Options

Although Cogmind is now available on Steam, it will also always be available for sale from my website as well, and the DRM-free version will continue to receive the same updates (though technically the two versions are slightly different packages).

In the near term, however, as has been indicated on the buy page for a little while now, direct purchases will NOT include a Steam key.

A big part of the reason is to encourage purchases from Steam to help push up the overall review score. Everyone playing Cogmind on Steam please take some time to leave reviews! They’re vital for encouraging more sales, and more sales is how we’re going to get more features!

Further down the line this key policy could change, but it depends on a lot of factors and we’ll have to see how things play out. So if you haven’t bought Cogmind yet and are interested in doing so to play on Steam, buy from Steam. For a DRM-free non-Steam version instead buy direct here.

GOG I’m not sure about, because despite proactively expressing interest in Cogmind they haven’t responded to my later emails, so for now I’ve decided to shelve that route.

Coverage

There hasn’t yet been a whole lot of advance press coverage about Cogmind’s Steam release, partially because I requested that most influencers hold off on their coverage until on or after the actual release date, though I’m still not sure what kind of reception we’ll see since Cogmind is pretty niche, after all. Some pre-release happenings:

  • Purely coincidentally, leading up to this release PC Gamer published an article full of praise for Cogmind, and despite his short time with it the author did a great job of understanding and conveying the essence of the game.
  • Well-known roguelike let’s player Aavak has started a Cogmind series which has been pretty popular.
  • Two Credits has a quick summary of the launch news, but otherwise there’s not much out there just yet.

Gonna have to rely on word of mouth and continued updates to get attention! :D

If you have any favorite LPers/streamers you’d like to see try Cogmind, or a reviewer who’s opinion you’d like to read, let them know! I’ve already written to several, but I can’t possibly find them all (and I imagine lots probably won’t notice my email anyway, but if some of their fans let them know that can be even more powerful than me self-promoting my way into their inbox).

cogmind_composite_destruction_tiles

Cogmind combat demo with particle effects.

Reminder: This blog is for occasional topical articles, not general development progress updates. The latter are posted to other locations such as the forum announcements and (in the future) on Steam.

Posted in Uncategorized | Tagged , , | Leave a comment

Prepping for Steam

Cogmind is coming to Steam this month! This was inevitable, of course, if a little later than planned as I waited to at least partially get over the serious injury which has been keeping me from making progress for months now. Anyway, here we are, with contracts signed, a store page already in the open, and a Steam build more or less done and waiting for October 16th.

It’s certainly been an interesting process filled with new challenges, plus internal preparations for Steam doesn’t seem to be the kind of thing people write much about, so I’ve decided to share my experience here.

Signing Up

Valve has “Steam Direct” now, whereby any developer can simply pay to release their game via Steam, but having already gone through Greenlight earlier this year… I didn’t have to worry about that. I thought they’d merged us into the new program and would require that I also wait 30 days from sign-up before launching, as per the Direct rules (there are other new rules as well), but that doesn’t seem to be the case. I could just click the Greenlight submit button and as soon as everything’s ready and approved it’s good to go.

cogmind_steam_submission_button

The button that kicked it all off.

But before even starting this phase or touching that button, I had to worry about taxes--being outside the US made this a lot more complicated on all sides (both there and here).

This bit is more personal so I won’t go into details, but I spent a lot of time talking to the government about how to handle all this, as well as searching around on the web for other solutions. Yeah an accountant could’ve made things easier, but I don’t know any I feel I could really trust with this, not to mention accountants cost money and I’m out of that :P

Anyway, I must admit it was actually kinda fun to be reading and analyzing a bunch of tax laws. For a little while I felt like I should’ve been an accountant, haha. Basically, I’ll be taxed and fee’d to death, only getting to keep a small portion of Steam revenue, but whatever, I suppose it’s better than not having it at all.

So with that decided I clicked on the button.

Forms

Inside you can’t do anything until you sign the NDA and a developer contract that details what you must, and cannot, do. No surprises there.

Then you still can’t go much further because of course they want to first confirm your banking info and identify for tax purposes. That takes at least a day or two, though my situation being a little… different, it took them an extra few days for all that go through.

Around this time I’d already decided I was going to release Beta 2.2 before the Steam release anyway, just to kinda get back into the swing of things and also to provide something new for players who’d been waiting all summer without any significant updates.

So I worked on that while I waited. No rush. Even after being granted full access I waited a couple days before evening logging in because I wanted to get 2.2 stuff out of the way and start the next big task with a clean slate.

Store Page

Once properly signed up there are essentially two parts to publishing on Steam, the store page and the downloadable game itself. These are independent parts of the review and approval process, each with their own checklists outlined in the Steamworks UI. While there are a ton of buttons and menus everywhere, overall they’ve done a pretty good job of letting you know what needs to be done and how to get it done. This includes basic context help for most things, as well as access to helpful documentation.

It’s a good idea to start with the store page, because it can be approved and published before there’s even a build ready, allowing visitors to wishlist the game in order to be notified on release (and beyond, if they don’t buy immediately). So the longer that page is up the better.

Description

The store page is made up of more or less two components, the description and accompanying visual media.

For the description I started with more or less the same content that’s been on my website and other locations featuring Cogmind.

cogmind_store_page_description_shrunk

Cogmind original Steam description (full size here).

The second section is a summary of more specific highlights of the game, assuming visitors bother to read that far down. (That said, I strategically positioned an animated gif that initially appears only half visible on the page, which will somewhat tempt visitors to expand the description area to its full height.)

And below that, the last full section that takes up nearly a third of Cogmind’s description space, I dedicated to explaining why people may not like the game. Managing expectations is important :)

Of course I also use it as an opportunity to say some good things, as there are often two sides to everything, but the main point was to let people know about parts of the game which may end up being a turnoff--things that over the past years I’ve identified as areas certain types of players really won’t enjoy, and therefore it’s probably not a game they should buy.

Early Access games must also answer a number of EA-specific questions, again to set proper expectations using a consistent format defined by Valve for use across the platform. Answering these was quite easy for Cogmind, considering that it’s already fun and pretty much complete--the rest is just more icing.

cogmind_store_page_early_access_questions_shrunk

Cogmind original Steam Early Access Q&A (full size here).

(Note: The above content can of course be read more conveniently direct on the site now, but I wanted to save them here as images for posterity since they could change.)

Game Media

But of course almost no one likes to read these days… What they really want are screenshots and videos!

Fortunately I already have my own site with a lot of this stuff, so I just copied it all over. However the trailer is… still the same one from 2015 :P. I decided to leave it unchanged (“alpha” references and all), because

  1. doing so sure saved a lot of prep time--properly updating it would take up to a week, and would only improve it by a small amount, so it didn’t really seem worth it
  2. I’m honestly in no condition to go full blast for weeks leading up to a launch, so anywhere time can be saved is great
  3. I feel it’s a pretty good trailer as is, and still even mostly representative of the game; the only real visual differences would be the change in default font and how FOV is updated. Sure there have been a ton more interesting developments over the past couple years, but it’s not like I’m going to put spoiler content in my trailer anyway! (an updated trailer would feature more or less the same footage it does now)

I did make a few new screenshots, one created as a side effect of the “capsule images” I’ll talk about later, and a couple others because I saw some on the website that could stand to be better or replaced. (After making these for the steam page I retroactively changed them in all other places, too, e.g. official website, press kit…)

cogmind_factory_battle

Battle in the Factory.

Most screenshots were simply copied over, though.

Capsule Images

Technically it’s not just the store page but “store presence,” as there are a few other images involved that don’t necessarily appear on the page itself but are tied to the game as found elsewhere on Steam’s website.

On Steam you’ll see that every game has a number of what are called “capsule images,” various representative images that at least bear the game’s title logo. You have to supply four of these for various locations on the website, and Steam uses them to automatically create smaller versions of each as necessary--this is important to remember while designing them, as throughout the process you have to ensure that a downsized version will also look good enough!

It was pretty easy to come up with the style for the “header capsule image,” meant first for the top of the store page itself.

cogmind_steam_header_final

Cogmind’s header capsule image on Steam (460 x 215).

Then there’s a “small capsule image,” used in all kinds of lists. For this one I just shrank the header image, but the true logo uses double CP437 lines, which look terrible when shrunk down really small, so for this version I decided to completely fill the lines. This helps it stand out pretty well at most sizes (at the tiniest possible 120×45 it doesn’t look so great, but that’s just because ASCII and not because of those lines in particular).

cogmind_steam_capsule_sm_final

Cogmind’s small capsule image on Steam (231 x 87).

By far the biggest production was the “main capsule image,” which appears on Steam’s front page whenever your game happens to be there. I spent an entire day iterating on this one before coming to a decision. In this Imgur album you can see the full array of 15 iterations I was posting and discussing on Twitter as I went through this process, but I’ll cover some of the highlights here.

Technically Valve recommends including some gameplay-reflecting aspects into your main capsule, so I started with that, creating a screenshot to go behind the title:

cogmind_steam_concept_capsule_main_1

Cogmind main capsule image concept #1: Title-on-screenshot.

Then I wanted to see if I could embed some of the ASCII aspects into the background, and also perhaps make the title pop a little more in the process (by darkening some or everything behind it):

cogmind_steam_concept_capsule_main_2

Cogmind main capsule image concept #2: Title-on-screenshot, with ASCII.

I went through several other darker alternatives you can see in the album, including a pure ASCII background (note that this isn’t the actual ASCII in game, though--it’s the result of a signal interpreter animation, because in static form it looks a lot cooler than the standard ASCII, which is meant for readability over flair):

cogmind_steam_concept_capsule_main_4

Cogmind main capsule image concept #4: Title-on-ASCII.

In my research I noticed other games not really doing the “reflect gameplay” thing in their main capsule image, instead going for whatever stylized art would be most interesting. That makes sense, since the player will see plenty of content on the store page itself, while this image is purely to get viewers to click there in the first place. Preferably it should attract the kind of person who might enjoy the game. Since the previous attempts were all a little too busy and had one or more non-ideal aspects about them, this new line of thinking got me exploring more stylized concepts. Well… this is Cogmind. When in doubt go green:

cogmind_steam_concept_capsule_main_4c

Cogmind main capsule image concept #12: Title-on-ASCII, GREEN.

After that I continued trying to add more features, for example a faint green bar behind the title, but once again it seemed too easy to go too far with it, and maybe simpler is best. So the final image is what you see above.

It sure was a long route to reach the inevitable simple green Cogmind style :P

Despite making a “final” decision, though, I’m still tempted to swap it out and see if a more colorful version has a better impact, but there are too many variables at play to draw any conclusions if I did that anyway (A/B testing would be more effective here, if it were possible :/). I think several of the other options look good and would appeal to some people (well, that much is confirmed because preferences were all over the place when I asked around), but it’s hard to say any are outright better than staying simple, in terms of getting people to be curious enough to click on the image to learn more.

At least the screenshot I initially put together as a background was worth adding to the main collection, and this process also reminded me that Cogmind’s downloadable wallpapers are over two years old and there are some cool new styles I should put together for new ones in the near term!

The final required capsule image is kinda funny. It’s a “large capsule,” and I couldn’t find any uses such as those described in the help text. Here I should note that before making each of these capsule images I’d naturally first search around to research how they’re used on Steam to make the best choices possible. (And during the creation process I even superimposed my own concepts over Steam website screenshots to get a clearer idea of how they’ll look in action.) Well it turns out that this particular image is no longer used anywhere on Steam, but they require you to submit one “just in case they want to use it one day.” At least it was easy to do--just a smaller version of the main capsule would work here:

cogmind_steam_capsule_lg_final

Cogmind’s small capsule image on Steam (467 x 181).

Miscellaneous

Of course you also need an icon, but every game will already have its own in the first place. That and logo images to go in the “community hub” area, but those are essentially the same or similar to the capsule images from above.

The store page needs a price set before it can be approved, although interestingly this is purely for internal confirmation because said price is hidden until launch. I imagine because more people will wishlist something if it doesn’t even have a cost associated with it yet, and wishlisting is an opportunity for Steam to remind them about it later (repeatedly…). This approach also at least delays inevitable comments about price from dominating or derailing discussions prior to release.

Cogmind’s price will be the same on Steam, albeit with a 1-week 10% launch discount (another option to set). Steam recommends this approach, it’s what most devs do, and Cogmind has already been out for a while at its current price, so I went with the recommendation. There are also international pricing options by currency, but there are a ton of them Steam has a convenient button whereby you can simply use their recommended prices in all markets based on the USD price. I like the idea of regional pricing since not everyone has the same purchasing power, although in the end Cogmind is an English-only game so it’s primarily purchased in only a handful of countries anyway.

The very last thing I did was set a release date! This was rather sudden, since I hadn’t thought about it closely before and wasn’t really sure how the next few weeks would play out, being unfamiliar with some tasks still remaining in the process (I had no idea how to do a Steam build, for example).

Technically you can change it, but I wanted to announce it everywhere and changing the date on people seems like bad form. So I pulled up a list of all major game releases for the month of October to see what I should try to avoid. It’s funny because scanning down the list almost all games for the month were scheduled for just a handful of days, and looking at those days they were all Tuesdays. I’ve always tried to release things on Tuesdays myself, as it’s a pretty good day, but apparently everyone knows that :P

I chose October 17th, but by Steam time (and a majority of Cogmind players) that happens to be the 16th, so while it’s Tuesday for me here I’m actually releasing on Monday evening in the US (as I usually do).

Approval

With the entire checklist showing green I hit the button to mark for review, which they say takes 2~3 days. Two days later I got the email:

cogmind_steam_release_approval_email

Cogmind Steam release approval email.

The only comment was that they recommend 16:9 screenshot and most of mine are 4:3. I already knew about this from the docs but chose to keep them as they were, if only because it would take a while to do new screenshots. But it’s true most people will be playing Cogmind in 16:9. I’ll consider switching the format for the full release, though I don’t consider it a huge deal.

In the time between submitting and receiving approval, I had already written up all the announcements in advance so that those could go out ASAP when the time came. (I always do this before any kind of big news, because writing them all takes a while!)

Not long after the page went live, there was already some activity on the new Steam discussion boards for Cogmind :D

cogmind_new_steam_discussion_xcom2

Take that Take-Two.

The Build

Next up was to actually upload the game to Steam and get it installable and working.

I’d planned to have started this at the beginning of the week, but was behind schedule and it ended up being the end of the week before I got to it. The good thing is that this step is super easy (and by skipping the trailer update I saved a week, putting me right back on schedule!).

So technically you don’t even need to use the Steam API--after a few simple settings on the back end (again, good documentation), you can just take your game and upload it to Steam, which players can then download and install. Even in this capacity the Steam client is already pretty useful because of its auto-update feature, which compares new versions with what the player already has installed on a bytewise basis, then downloads as little as 1~2 MB of data within larger individual files that have changed. Pretty nifty, and although size doesn’t matter so much with Cogmind’s extremely lightweight download by today’s standards, it’s quite nice for players to have automated updates to begin with.

While for developers it’s not as simple as a direct upload (there are a pair of small scripts to edit and a command to run), the process is still quick and easy. There’s even a GUI version but I didn’t try that one because it doesn’t get much simpler than the command line tool they have. I followed a 10-minute step-by-step walkthrough video and *bam*, just like that Cogmind is on Steam and I could download and install it!

cogmind_steam_first_build_upload

Cogmind’s first Steam build away!

After that I quickly tried a couple more builds, changing random things in the files to see how that would affect things on the user end. Everything worked as expected. (I wouldn’t want to break player data!)

cogmind_install_on_steam

Cogmind’s first install on Steam.

Keys and Testing

Shortly after uploading the first build I also ordered my first batches of keys, which were approved really quickly (like 10 minutes? probably automatically). Not the full amount I need, just some for testing, and to hand out to press soon enough.

Keys essentially come in two varieties, regular keys that can’t be activated until after release, and “beta testing” keys for immediate access regardless of release state--with these the user can essentially install and play as if a game were already released.

I handed out a few keys to Cogmind’s usual pre-release testing crowd, and one of the first observations was that the Steam Overlay doesn’t work. (Note: I’ve never really used Steam so I’m not too familiar with how it’s normally used--this is where outside help comes in real handy!)

I figured this would have something to do with Cogmind being a purely software rasterized app, and sure enough, right there in the Steamworks docs it says the Overlay is only compatible with games using Direct X, OpenGL, etc. So of course my first instinct is to see if I can get Cogmind running with OpenGL. Technically I did at one point code support for it in the engine, but at the time ran into roadblocks that were beyond me and gave up since I didn’t really need it anyway. Well, flipping that switch didn’t work out so well :P

cogmind_opengl_broken

I suck at graphics coding. Really.

Not only does it still not look right, the FPS on my dev laptop dropped from 200 to 20, haha. Me of several years ago apparently tried to get the engine to do little operations on a bunch of textures to mimic the software approach. Bad idea.

My latest idea was to just copy the composite software layer into OpenGL and that’s it, and I’m sure someone else with real skills could manage this in no time… According to porting guru Ethan Lee, that’s precisely what I could do. But I really don’t want to mess with OpenGL, and I’m also stuck in a decade past and use SDL 1.2, whereas something like this is reportedly easier in SDL2.

But without the Overlay, it wouldn’t be as easy for players to create and share screenshots, which are an important part of community building. Fortunately it’s possible to manually upload screenshot without the Overlay, and Cogmind does already have its own screenshot feature to begin with…

But enabling this feature requires integrating the Steam API.

Steam API

Valve has its own “Steamworks API” that developers can integrate into their own games to access additional features. This part I was a bit more worried about, just because I tend to have problems when it comes to fiddling with libraries and whatnot.

But sheesh, the API really couldn’t be any easier to integrate and use. Plus the docs are of course top notch, too, so the answers to most questions are right there. I just followed the short step-by-step guide and had access to all the regular Steam functionality.

Well, I did have one hitch, something most other devs probably won’t run across but I’ll mention anyway. I don’t use an English OS, and it turns out someone saved a portion of the Steamworks C++ headers in a type of Unicode incompatible with my system’s code page. It wasn’t too hard to fix, though--just import them into Notepad++ and re-encode to another compatible Unicode format. (Note: I was originally going to ignore it since it only produces a compiler warning, but it’s the highest level warning so I looked into it and discovered it has the potential to mess with Visual Studio breakpoint behavior in the debugger, thus it should probably be addressed :P)

With the API I could have Cogmind’s screenshot key (PrtScn) not only take the local screenshot as usual, but also automatically upload it to the player’s screenshot library. While at it I also added F12 as a key to take screenshots in Cogmind, to match the corresponding Steam Overlay default. It was overall very easy to do.

cogmind_steam_screenshot_integration_first

Cogmind’s first in-game screenshot uploaded directly to Steam.

While digging around in the API docs I also noticed that apparently Steam screenshots can be “tagged” with the location they are taken, so I figured I may as well add that feature while I’m at it.

cogmind_steam_screenshot_integration_location_tag

Cogmind screenshot tagging on Steam.

And while doing that, I realized that Cogmind’s native screenshot file names could stand to be more useful, so I updated them at the same time :). Now instead of just screenshot001, screenshot002… etc., their file names include both a time stamp and location:

cogmind_screenshot_location_tags

Cogmind screenshot filename details: time stamp and location tags.

I must say that after days of doing research, filling out forms, messing with screenshots and marketing material, and basically doing anything except looking at my IDE, it felt really good to get to do a bit of coding again! I didn’t think I was going to have an opportunity to do that for weeks more, after all the upcoming launch stuff is behind us…

Miscellaneous

There are a few other tasks related to providing a downloadable game.

Like Microsoft redistributables, which Steam makes really easy by literally providing boxes you can check for what you need (in my case MSVC 2010 x86).

It’s not required but there’s a spot to upload the game manual as a PDF so players can access it from their Steam UI. The manual is already both in game, provided as a text file, and found online linked from a number of places, but hey why not add one more :)

With the Steam API enabled I also looked at the full feature list for possibilities down the line. Achievements I was already planning to include (and they’ll be built into the game without Steam as well). Cloud saves should be pretty easy to implement, too, as long as people request it which I imagine they will. But neither of these will be in there for the first release. It’s “Early Access” anyway, and part of the reason for that was to give more time to work on Steam-related features with a new Steam-based community.

Approval

With the build basically tested and ready, I marked it for review. They say approval takes 3~5 days, and I’m only on day 2 right now. The requirements are pretty simple, though--they just want to check that it actually runs, and that it matches the description and claims on the store page. I claim Cogmind has seven different animated endings… whoever tests this had better be really good at roguelikes ;)

Update: This came by email on day 4 :D

cogmind_steam_build_final_approval_email

Cogmind Steam build approval email.

After this point one had better be careful around the Steamworks UI, because there’s a new big button that allows you to release your game at any time!

Marketing

Just now I’m beginning the final release prep phase, spending much of the remaining time on the community and marketing side of things--talking to people, preparing website changes, writing more announcements, seeking out and contacting the right streamers/LPers, handling key stuff, etc. Basically everything except adding cool new stuff to the game, but I’ll get to that :P

There’s certainly a lot more to this phase, but I guess I can’t give an account here of details that haven’t transpired yet, so instead I’ll just use this space to remind you to wishlist Cogmind if you’re interested and haven’t already bought it, and help spread the word if you can! Thanks :D

Posted in Gamedev | Tagged , , | 14 Responses

Beyond the Design Doc: Unplanned Cogmind Features

Building a solid game calls for a good design doc. Laying out at least the core vision, along with preferably additional details about how features and their implementation work together as a coherent whole, is a much safer way to develop rather than repeatedly wandering down the wrong path and having to backtrack.

Even back in 2012 the Cogmind 7DRL had a design doc, honestly even more important in that case because you need some real direction and focus to ensure completion of a game like that in a week! Not the best example, being my first ever attempt despite years of prior dev experience (during which I never finished a game, go figure!), but it served its purpose, and I’ve since written many more for other potential roguelikes.

The most relevant among those would be Cogmind’s own, which when the project was resurrected the next year (2013) grew from 1,119 to 18,000 words. That doc was updated and expanded throughout two years of pre-alpha development, natural during such a phase while the world and systems are still being molded into a concrete shape, and had grown to 30,000 words by the time Cogmind’s first version was released in May 2015. At that point the core of the game was complete, and the rest of the features necessary for the full experience had been mapped out, thus the plan was to more or less stick to the doc while finishing up the game.

But… things didn’t quite go down that way :P

With decent support for the alpha release, I immediately started instead looking at all the untapped potential that could be unleashed by filling gaps in the design, adding to the density of the experience rather than emphasizing its breadth. (The design doc was honestly more interested in the latter.) So I ended up setting aside the doc and working on other features--in fact, I didn’t even get back to working on stuff from the design doc proper until six months after the first release! (in December 2015 with Alpha 5)

So today I wanted to show what this means for a post-Alpha Cogmind. Essentially, how much of what has been implemented throughout two years of alpha development wasn’t actually planned to be part of the game to begin with? Sure the original game as described by the doc would’ve been good, but the extended “early access” development period has been a great success in terms of improving it further.

Each section below will also come with a mention of what else might be in store, because, well, we could be in Beta for a while as I continue adding stuff :D

Systems

Larger systems that hook into multiple aspects of the game are my favorite thing to add, where possible, since they allow strategic options to grow exponentially, forming the backbone of what players generally consider to be “depth” when it comes to gameplay.

Post-release Alpha development started out with a number of unplanned systems, features that made a lot of sense to add before expanding the breadth of the world (the layout of which was otherwise fairly linear when Cogmind was first released). Naturally the design behind new maps would be better off if they could take into account all the same systems at inception, rather than having to retroactively adjust all those maps later!

Traps

Traps are common enough in roguelikes, but honestly I’d never really considered them. Even the 7DRL design doc made no mention. The spark was a random comment on r/gamedev‘s Screenshot Saturday, one that apparently happened to come at just the right time. (Score another point for sharing info about your game with as many people as possible, as early as possible, and engaging them in conversation!)

cogmind_explosive_trap_step

Intentionally triggering an explosive trap to damage nearby bots (since they’re much weaker than Cogmind!).

Inclusion of traps in roguelikes is often controversial these days, though it’s easy to see where the faults lie and within Cogmind’s design it wasn’t too hard to circumvent those issues. The main reason it suddenly felt right to add traps at the time was that one of the more common requests from early Alpha players was that they wanted more environmental interactions. I didn’t want to go as far as full area-based environmental features like water, lava, smoke and whatnot because Cogmind’s design focus is on robots, plus such features would need to be built in from the ground up as a central consideration of many mechanics, the AI, overall map design, and more. (You either go all the way with it or don’t include it at all, otherwise it’ll feel out of place.)

But traps were a relatively simple way to provide more environmental interactions in the form of isolated objects. I’ve written a lot more about the subject here, and after that traps even became extractable so they could be carried around and relocated.

cogmind_using_gamma_bomb_trap

Luring a Sentry outside a garrison after placing EMPs.

 

cogmind_trap_art

Art for some of the trap items.

Fully implementing a new system also tends to suggest multiple related features, thus with traps came a new type of map area: Waste. Unlike shaft or chasm behavior found in other roguelikes, Chute Traps taking the player to a lower/earlier floor in Cogmind wouldn’t work very well. Instead, it brings them to a special “map between maps” that eventually leads them to another part of the same general floor they were on (after surviving whatever happens to be down there :D). Waste maps ended up having other implications for both lore and strategy as well.

Garrisons

The earliest versions of Cogmind had no garrisons or Garrison Access points. This presented a couple design problems, most importantly that it was a lot easier to find exits by simply searching in the direction from which newly dispatched pursuers were approaching. It also meant that since you might be quite far from any exits, enemy responses to your activity could seem fairly sluggish.

Adding Garrison Access, or a new type of “special entrance” for combat bots, both increased enemy response times and made escaping less trivial. The system also links into many other aspects of the world, such as affecting localized difficulty by dispatching reinforcements to fights in their vicinity (dangerous!) and offering a new avenue for hacking interactions (the access point itself). Because it wouldn’t do to have these robots coming from some unreachable place, it’s possible to enter the garrison itself, adding yet another type of “map between maps.” Opting to enter could be for the good combat loot, to take out relays and improve robot hacking potential, weaken enemy resistance capabilities in nearby maps, possibly tunnel to another map, or maybe just a last ditch effort to escape other problems?

cogmind_unlocking_garrison_access

Unlocking a Garrison Access point.

 

cogmind_garrison_layout_labeled

Sample garrison interior layout (labeled).

More detailed info about Garrisons was written back when they were first introduced.

Unauthorized Hacks

Also in early Alpha, with players of course still calling for more ways to interact with the environment, I decided that machine hacking could provide more variety there while remaining within the confines of Cogmind’s general design principles. Sure there were already a lot of regular commands/targets for players to hack, but what about all the possibilities that become available if we start allowing Cogmind to use interactive machines in ways that weren’t intended by their creators? :)

cogmind_trojan_detonate_effect

Nuclear Reactors previously infected with a Trojan that detonates them if an enemy passes by.

The system was first described in this post, covering the beginnings of both Trojans and brute force hacks that add strategic and/or tactical elements, depending on the hack. It’s great because with such a system already in place, there’s plenty of room to expand it, so I’ve been doing that bit by bit over the years with new hacks, and will continue to do so. (As of now there are 22 different unauthorized hacks, double the number introduced with Alpha 4.)

\\ZION

Beyond early Alpha there was a long lull in non-design-doc systems being added to the game, mainly because as mentioned earlier it becomes harder to insert them as the world grows (plus there was still a lot of meat to get on to anyway!). But as development reached into the end-game, enough time had passed to get a feel for the strategic value of mid-game areas, some of which were still clearly lacking. I want every area of the world to have its own reasonably useful purpose that not only fits into the lore, but also makes it a worthwhile visit for at least some play styles.

So during a second pass over some of those areas, a new form of (sort of) hacking was born. It’s rather spoilery so I won’t go into the details here, but it significantly impacts how a run plays out once Cogmind gains this ability. The idea was to give anyone, not just those with a good hackware setup, access to limited capabilities along the same lines that hackers have. This feature spans a wide range of benefits including information warfare, build assistance, combat support, and more, essentially tying it into the mechanics on multiple levels. With its minor drawbacks I’ll admit it’s somewhat OP in its current state, but I plan to address that later. For now it’s a nice crutch for those who want to take advantage of it :D

Derelict Logs

Data logs found lying around in various outlying cave areas were added for Alpha 7, which was the first release to finally include caves at all. Caves were planned from the beginning, but like many map designs bringing them to life and giving them strategic value required adding new mechanics and unique content. I didn’t always know what form that would take beforehand, but with caves it made a lot of sense to have them contain data collected by Derelicts, the area’s primary inhabitants, many of whom are also interested in keeping tabs on activity in the main complex.

These logs are essentially free information that improves the player’s chances of survival at a later point in the game, providing an extra benefit for going into the caves, which are otherwise somewhat dangerous and not always worth a trip (especially for those players who turn back before reaching the best rewards at the end).

cogmind_derelict_log_info

Derelict Log item.

This turned into a fairly big system on its own, as it was integrated into the terminal hacking and dialogue systems as well (meaning talking to certain NPCs could provide similar benefits), and the amounts and types of information logs reveal can vary greatly. Logs can locate stockpiles, traps, exits, hidden doors, sentry positions, key locations on the world map, and more.

More?

I’m the least certain about future possibilities for this particular feature category, since expansive new systems can be hard to edge in without without having too large a destabilizing effect on the rest of the experience, requiring a wave of rebalancing and in turn yet more unexpected ripple effects. Not to mention the later in development, the more work required to fully integrate each new system.

One of the larger Alpha changes back in mid-2016 was a revised Fabrication system, though that was more of a simplification than a complete rework so the subsequent negative impact was limited.

Robot hacking, on the other hand, is definitely slated to be replaced by a new system. I wrote about its first implementation before release, and made adjustments later in Alpha, but it was always an incomplete placeholder system that has repeatedly shown its weaknesses. (It was hard to settle on a good design in the abstract pre-release days during which there was extremely little full-run testing, so the plan was to wait and see. Actually machine hacking was handled similarly, but ended up easier to improve via incremental patching.) It’s taken a while to come up with an alternative robot hacking system, and building it will be quite a project, but will be worth it for the range of new play style possibilities.

World and Lore

As Alpha came to a close Cogmind had 31 map types, 5 of which were not mentioned in the design doc. Waste and Garrisons I covered earlier as part of their relevant systems--those were added more for mechanical reasons, but several other maps were created primarily to flesh out the story.

cogmind_world_map

World map interface with a sample route.

Although fairly easy to ignore for those players not interested, the story and its background are meant to be epic. But with that “epic story” only about three-quarters composed at the start of development, along the way I had to keep an eye out for the best opportunities to fill gaps as naturally as possible. (This approach worked out rather well, leaving a little bit of flexibility at the fringes.) That’s how we got the Deep Caves and Lab, and is also the reason Alpha 13 expanded Zion beyond its original scope. In fact, the major NPC now found there was not even part of the story to begin with!

Technically most maps grew beyond their initial scope as described in the design doc, as each needed enough content to make it a special experience of its own rather than just more of the same in a different flavor. This meant that adding a single new map could require up to two weeks: I ended up writing “mini design docs” for every single map, each of which became an avenue to introduce new items, robots, and even entire mechanics. The biggest deviation from the world plan involved one of the final maps. This most secret map of all was originally going to be not all that secret, nor all that hidden, but its nature changed significantly when it came time to actually create it, initially for lore purposes but then also to provide an even more difficult challenge.

With the world growing over time, and plot with it, the intended 3-4 different endings also weren’t quite enough. By the time development reached the end of all plot lines, it seemed that 7 endings was a more appropriate number :). Although many of the circumstances leading to each ending were achievable in earlier versions, proper endings weren’t added until Beta 1. Adding them intermittently, one at a time, would have been much less efficient, whereas implementing them all at once kept the quality consistent and made it possible to build a comprehensive system capable of satisfying the different needs of every ending at once.

cogmind_ending_animation_tracking

Tracking who what where why now?

(There are still other elements that fall into this category, but it’s hard to talk about them without posting too many spoilers. Examples include the map shortcuts and “DM conduit,” where the latter is a result of a pretty strong driving force throughout development: repeatedly asking the question “what should happen if the player decides to do… this?”)

More?

While it’s not a good idea to reveal absolutely every detail about the story (leaving just enough room for speculation and imagination helps draw players deeper into the world!), there is definitely more space to explore along the edges, even if only tangential to everything else that’s going on. In that vein I’ve been considering several more maps and even a couple new subfactions which might one day be added. And of course each map will in turn need more unique features to flesh it out…

Balance

As a roguelike grows along with its community, and the theory behind much of the design doc becomes the reality of watching players interact with systems and content, it’s inevitable there will be plenty of balance changes. While these changes don’t normally spawn entirely new systems (balance is more often about tweaking what’s already there), as part of efforts to cut down on experts using cheesy tactics to farm points I did introduce a “high security” mechanic. It’s a pretty heavy-handed reaction from the world that essentially tells players to “get out now while you still can” :P

Scrap was another unplanned feature added for balance purposes, piles of junk containing potentially useful parts. They can be a lifesaver in the caves where spare parts are otherwise scarce, and like traps they offer a new point of interaction with the environment (here the equivalent of treasure chests). Of course, that scarcity was created by another unplanned mechanic, self-destructing parts, which made it harder to salvage bots there in the first place! (And that bit was added to balance the caves in the larger picture.)

cogmind_scrap_info

Scrap item info.

Overall, though, Cogmind has reached a fairly balanced state. There are still a small number of exploits to address, strategies that have emerged organically from the mix of so many mechanics and systems, though by not dealing with them right away, directly, final solutions can be integrated into other features yet to come, holding the design together more tightly. For example it’s likely that a new type of clock will emerge as part of another non-design-doc feature that I’d like to add at some point, and that can be built in such a way that it closes off some exploits as well.

Quality of Life

“QoL” would have to be the largest single category of unplanned features, getting significant new additions with every Alpha release. While Cogmind has always been relatively accessible among traditional roguelikes, there are so many different ways players might want to approach the game’s information and UI, and not all of these will be apparent until lots of different players are actually playing!

Honestly there was almost no playtesting during pre-Alpha (the public 7DRL before had already proven the core mechanic was fun, and that was enough for me at the time!), but once everyone (including myself :P) started tackling full runs there were very obvious areas with room to streamline the experience. The first release was fun, but it would be annoying at best for the UI of today to go back to that state after getting so many extra features. Some of the bigger ones, for example…

cogmind_automated_inventory_management

Smart inventory management (Alpha 5c). Cogmind is full of inventory management decisions, but a number of them are no-brainers so why not have the game just take care of those automatically!

 

cogmind_part_sorting_animated_final

Automated part sorting (Alpha 9). Long parts lists are harder to parse when they’re not organized, and repeatedly doing it manually is probably a waste of time when the game can just group like parts for the player. (Note: The visual design process for this particular feature I’ve written about before.)

 

cogmind_evasion_UI

Evasion breakdown (Alpha 10). There was originally no way to easily check just how effective your evasive capabilities were at any given point, since it’s the sum of many factors, but now there’s a single number and summary available right on the HUD.

 

cogmind_manual_hacking_codes_machines

Manual hacking code recall menu (Alpha 10). Before this feature it was generally necessary to write down the 4-character codes you discovered and might want to use later, but they’re only valid during that run, and you may not even get a chance to use them anyway, so it was a pretty wasteful requirement.

 

cogmind_slot_based_part_swapping

Slot-based part swapping (Alpha 11). For a while those players using a large inventory as part of their strategy might have to spend too much time searching for the right item. Inventory sorting has always been a thing, which helped somewhat, but why not make it possible to quickly pull up a list of valid items to choose from? :D

 

cogmind_manual_hacking_autocomplete

Manual hack autocompletion (Alpha 12). While a command buffer was added early on to simplify the process of repeating manual hacks, there are also somewhat lesser used hacks that would end up far back in the buffer, not to mention the continually growing number of hacking possibilities (91 as of today…).

 

cogmind_part_info_visualization_with_values

Additional data visualization modes--only four were planned, but we now have eight, as well as accompanying number values. This feature was initially designed for bar graphs only, since the point was to show relative values, but it turns out that having specific numbers is useful as well.

Difficulty Modes

At first I was reluctant to add separate difficulty modes (discussed in detail here), but they do make a lot of sense for accessibility. So far they seem to be serving their purpose, but the true results won’t be in until available on Steam, where Cogmind will be exposed to a greater ratio of players not already familiar with the genre.

cogmind_easier_mode_option

Setting Cogmind’s difficulty in the options menu.

I did later adjust them such that some areas are inaccessible to easier modes, partially because those areas are quite difficult by their nature (regardless of mode), and also to give players who can consistently reach them in easier modes some impetus to up the challenge. (It’s still possible to win in any mode--these are just outlying special/lore areas.)

More?

With any sufficiently expansive game there is nearly endless potential for QoL improvements, much less a roguelike that continues to get new content updates over a long period. Most of the existing features are taken care of pretty well, but I’m sure this category is incomplete even now--it will grow in response to playtesting and feedback on new features (and to a lesser extent as a result of new types of players joining).

Meta

There are many ways to add value to a game beyond the core experience, though naturally these kinds of things should wait until later in development so there’s actually something to build off (also so it’s more apparent where the greatest value for effort can be found). While I’ve always had some “meta” ideas floating around, none of those considered early on have been implemented. Instead, as alpha development neared completion I worked in newer ideas that seemed best at the time.

Lore Collection

The world of Cogmind contains quite a bit of useful (or just interesting) information among its lore. The way that lore is acquired, however, across many runs and from numerous different sources, doesn’t really lend itself to forming a coherent picture of what’s going on. This would be less of an issue if there were a single plot line, but the story is more a web of factions and NPCs with their own agendas and take on things. That and the lore includes quite a few tips regarding how the world works. So it eventually became obvious that we needed a central repository for all this lore, some way to conveniently reference it all.

cogmind_lore_UI

Testing the lore collection UI (Alpha 10).

Of course meta features are often also suitable for application outside a game (e.g. integration with external programs). For example players with a growing lore collection would like to be able to read it when not in game, or even in interact with it in some other format…

cogmind_lore_export_html

Sample HTML lore export, including links (Beta 2). (Also supports exporting to TXT and CSV.)

(More on the lore and story-related features here.)

Challenge Modes

As the world approached completion in late Alpha and a handful of players had seen much of what it had to offer at the time, special modes that add new rules or enforce certain restrictions on play seemed like a fun and easy way to increase replayability. There are currently eight such modes (ideas are sourced from the relevant forum thread), with many more to come. They’ll also need their own options menu UI, as opposed to the current method of control purely via the config file.

As with difficulty settings, early in development I’d never really thought about a need for extra challenges, aiming to create a world in which certain optional areas and approaches would naturally be more challenging. The ease of tacking on new challenges makes it really tempting at this point, though, considering there’s such a high reward-to-effort ratio!

Gallery Item Stats

Players had been asking for a while if they could have access to item information via their art gallery, essentially turning it into a makeshift stat compendium. During the Alpha design process I realized this is not the ideal way to present such information, and came up with an alternative, but that alternative would also require a rather long time to implement… In any case, enough players had been asking long enough that it was time to do something :)

cogmind_item_gallery_info_access

Item art gallery with stat access (Beta 2.1).

Sure enough, after adding this feature there were a few comments about how they’d now like it to be able to do XYZ. At least I can say that if it ever comes to be, the alternative could do that and more. That’s the thing about adding features as per player request--fulfilled requests often become the new launching ground for more requests xD

More?

Other meta features are generally of secondary concern, so it’s hard to say much about the future of this category other than that it’s far from exhausted. I’ve always wanted to redo the score sheet, though, a project waiting on the sidelines since it’s best done as late in development as possible where all the different needs it has to accommodate can be taken into account. (The only thing worse than redoing a feature is redoing it multiple times! Really though a first “redo” of the score sheet is warranted since it hasn’t been redesigned at all since the 2012 7DRL, just expanded again and again :P)

Miscellaneous

The broadest category of unplanned features is composed of numerous smaller bits used to fill cracks in the design, either for balance or sometimes just for fun.

One of the more frequent goals here has been to make combat more viable and varied, since the environment and overall mechanics otherwise tend to give the strategic advantage to those who prefer (and are capable of) avoiding confrontation. While that tendency will never be fully reversed, combat became a lot more interesting, and reliably winnable, as Alpha progressed.

Some examples involving differentiation of combat styles:

cogmind_secondary_targeting

“Gunslinging” was only added in Beta 1, allowing a single volley composed purely of guns to be redirected across multiple consecutive targets. Before this it was easy to waste shots on a target that was already destroyed. I originally considered that part of the tactical considerations necessary for turn-based volley combat--fire many weapons and risk overkill, or fire fewer and risk the target surviving to continue the fight? But the volley timing adjustments later in Alpha made that consideration less and less of a factor anyway because firing extra weapons required almost negligible additional time, just additional resources.

Cannons also got their day in the sun, with an overflow mechanic allowing surplus damage after destroying a single part to transfer to another part. This had the greatest effect on powerful late-game cannons that might otherwise blast a weak part but then have no other effect, making them randomly ineffective and unreliable. (There is still some room here to further differentiate cannons and guns, for which I have some ideas.)

Melee combat wasn’t part of the 7DRL version, and while I added it to the commercial version because it’s cool (and players would expect it!), it was meant to be relatively niche, had to be balanced against ranged combat, and ended up being underutilized for a while. By late Alpha the core combat styles were pretty clearly defined, so it was time to revisit melee and do something to make it more desirable. Many somethings were done :P

Actuators and other utilities were added to help builds with a melee focus (Alpha 11), sneak attacks provided another tactical edge (Alpha 12), multiple targets could be hit with a single swing (Alpha 14), and most importantly, melee-specific multiwielding became a thing.

cogmind_multiwielding_melee_parts

Attaching multiple melee weapons at once (Alpha 14). Players designate a primary weapon, and other weapons might contribute to attacks.

Additional damage types were also created (secret, so I won’t mention them here), and some of the existing types were given new effects:

Thermal weapons were given a dedicated heat transfer stat, rather than being a simple side effect of damage (Alpha 12). By decoupling the two, heat transfer could become a goal of its own, either to cause meltdowns or for its other negative modifiers. Before that the thermal weapon design space was quite limited because heat transfer always had to play a secondary role to damage, and a weapon with better damage would also be better at transferring heat, so it could only make good weapons even better rather than serving as a point of differentiation.

cogind_overheating_robot_highlight

Overheating a robot with lasers.

Electromagnetic weapons were given a “spectrum” (Alpha 4). Their attacks sometimes causing chain reactions in robot power sources made the EM tactics game somewhat more interesting, especially earlier in a run where it happens more often (due to the types of weapons).

cogmind_power_source_EM_spectrum_chain_reaction

Triggering a chain reaction in Grunt’s power source via EM Shotguns’ spectrum.

Impact weapons were always something to be avoided, in both senses :P. Essentially they were quite dangerous in enemy hands since they could smash your processors and weaker parts, but useless to the player who would rather outright destroy targets than cripple them. Once given the ability to inflict significant system corruption by smashing parts (Alpha 14) they became pretty decent.

cogind_impact_damage_corruption_effect

Corrupting bots with a Shock Maul.

Once the main game was completed earlier this year, it became easier to explore extra features that might work out, rather than focusing mostly on what absolutely had to be done at each phase of progress.

One result of this experimentation was “visible sound effects.” For a while I’d been thinking of closed-captioning sound effects for accessibility reasons, but simply showing color-coded sound effects would already be a big step in that direction, and far easier to implement. Plus it’s a tactically interesting new way for everyone to view the map, rather than just those who might benefit from captioning. It’s worked out pretty well!

cogmind_visible_sfx_combat

Visible sound effects for combat occurring nearby but out of view (Beta 1).

I also came up with an optional way for players who really want every single combat detail to get that rundown on the map rather than squished into a small secondary log not really made for that much info.

cogmind_map_combat_log_mirroring

On-map detailed combat log (shown here closer to the action than it really is) (Beta 1.2).

But the miscellaneous features I’m most interested in exploring, beyond the design doc, beyond even strict balance considerations, are unique parts with either excellent stats or sometimes completely new mechanics. Content like this won’t have to take into account balance in the same way as previous developments, because these parts are not at all guaranteed (unlike pretty much everything else in the world--an intentional design decision enabling players to somewhat plan their build/strategy ahead of time). I’ve relied on this principle in a few places in the world already, but prior to Beta it was more important to keep the core game balanced for proper testing. So there’s still a lot more that can be done here, and it should make Cogmind even more fun--after all, there’s nothing wrong with getting to feel OP for a while if it’s not something you can do every time!

Imagine…

Now, obviously a massive collection of features were planned from the beginning, but not nearly everything we have now! Technically none of the features discussed above would’ve happened had I strictly gone by the docs and worked straight through Alpha to 1.0. Imagine how different Cogmind would be without garrisons, trojans, imprinting, automated UI features… and all that other stuff!

The point is, design docs are really important, especially in clarifying the vision for the experience and setting down basic principles to build a world based on that vision, but in the best of cases it can also be treated as a flexible framework on which the development process can expand. Pre-Alpha and Alpha finished the design doc over four years and even let a lot of other features leak in at the same time, while with Beta it’s clear sailing with more ideas to explore on the horizon :D

Posted in Design | Tagged , , , , | 5 Responses

Cogmind Alpha Year 2 Sales Data (Pre-Steam)

Cogmind recently made it through a second whole year of its pre-Steam early access program, and as this period comes to an end I’d like to take the opportunity to, like the first year, share some data and pretty graphs :)

This is an interesting milestone because it more or less coincides with the completion of Cogmind’s primary content, represented by the Beta release just last month, meaning it took around two years of work to bring the game from Alpha 1 to Beta 1. And it’s still amazing that support has been sufficient to maintain full-time development for this long--Cogmind’s lifetime revenue passed the $100k mark in April :D. So a big thanks to everyone who has helped it reach this stage!

cogmind_fireworks_story_complete

@’s celebrate the Beta :)

For a more general summary of late-alpha progress you can check out the data in my 2016 annual review, whereas this article will instead be mostly looking at revenue and pricing. And while the first year of sales data was neat simply because it was seemingly the first time anyone in this genre has provided so much open data, the second year is much more interesting due to tier and pricing changes.

Revenue

Let’s jump right in: Cogmind made US$ 40,325 in its second year. Looking purely at the numbers, that’s only two-thirds of what it made the year before, but it’s important to note that a $25k chunk of year 1 revenue was earned in the first month of alpha alone, the result of pent up interest from two years of open pre-alpha development prior to that. In that light, the second year has technically been a little better than the first in terms of revenue, an 8% increase from $37k to $40k.

cogmind_revenue_year_2

Cogmind Year 2 daily gross revenue, annotated (Year 1 graph here). (Click on any image in this article to see at full size.)

Year 2 started with a minimum price drop, from $30 to $24.99 (albeit by adding a new lower tier without any perks, and keeping the old price as an option). This naturally sparked a good number of sales in the short term, which eventually died off as player growth returned to normal once those who’d been waiting for that to happen got their hands on it. At this point the price change didn’t seem to have any long-term impact, but we’ll get to data on that later.

The next noticeable bump coincides with the Roguelike Celebration, an awesome event at which I gave a talk and news about Cogmind subsequently made the rounds. The effects of that alone lasted for a good couple weeks.

Then the obvious spike is obvious :P. RPS has been following Cogmind since pre-alpha and I hadn’t expected to see anything more until after alpha, but it was a nice surprise to have a sudden article about my work arrive the following month.

Starting mid-November, buyers in the EU could finally get Cogmind “VAT-free,” which basically boils down to a loss for me though it’s technically the industry norm to include VAT in the list price. Considering I was still losing money throughout development it took me a year and a half to reach a point where I was willing to eat a 20% cut in revenue from those regions. Since I made that change, between November 15 and June 6th $5,085 of actual revenue received originated from EU countries, meaning $1,271 went to extra taxes (a low estimate). That’s all money I could’ve kept for development if Cogmind was available before 2015 when the EU introduced VAT for online purchases!

For New Year’s day I made an ASCII fireworks gif (actually the first iteration of the one shown at the top of this post) and that garnered some attention, which pretty much always translates to more sales. That’s not why I made it--it was just a fun side project to see if it was possible with the engine, but it’s nice that it had that side effect :)

Valve pre-announced the end of Greenlight in February, and since I 1) wasn’t sure whether I’d like what would replace it, 2) know that having a little Greenlight campaign is itself at least worth some exposure, and 3) already had all the required media on my own website anyway, I decided to put Cogmind up for voting. There was literally only two days between the time of this decision and hitting Publish :P. It was greenlit not long afterward, but that wasn’t really the point--notice that nice little spike in the graph… it’s nice to have some free exposure from Steam when people who’d rather not wait can already buy from my site! Putting Cogmind on Greenlight clearly contributed an instant $750 or so to revenue :D

In April I again lowered the price, to its current and final base price and the level at which I’ve always planned to sell Cogmind once the main game reached completion. In that sense the price change came a little earlier than expected, since the Beta release wasn’t to happen until early the following month, but sales had been flagging over the previous six weeks and I couldn’t let revenue fall too much since I’m relying on it to get by before bringing a mostly complete Cogmind to Steam. (Other reasons: It was also a good excuse/opportunity to do a little advertising that didn’t overlap with the upcoming Beta release, and I also wanted a longer buffer between the price change and Cogmind’s upcoming Steam debut.) I actually silently lowered the price a week before even announcing the change, just to see what kind of impact it would have on random visitors. It seems to have been beneficial, though one week is too short a period and there are too many other factors at play to really draw any conclusions. (I’ll share more data below to shed light on conversion rates.)

The most recent mini-surge surrounded the Beta release, a pretty big milestone considering it allowed me to declare Cogmind essentially complete by multiple metrics. A number of people were waiting to hear that, and the price had already been lowered the previous month, factors that combined to generate a decent amount of revenue for May.

Another factor that I find valuable in examining daily revenue graphs, but that you might not immediately notice above, are “zero days.” Any day during which there are no sales at all is a zero day, and too many of these, especially in a row, can honestly start to get demotivating. On the other hand, ongoing streaks of anything-but-zero days are quite motivational--even if just one or two sales. I always keep an eye on that sales number (it’s easy to follow because I receive an email for every purchase, and I don’t look at them but each one increments a label-based counter in my inbox :P), and if I start to see zeroes it means I’m not quite doing enough outward-facing development, like sharing my progress across social media. I always work harder when there are continued sales every day, so getting into a routine of posting updates is a nice long-term self-reinforcing cycle--especially when I wake up in the morning and get to see how many there were overnight! That’s been a ritual wake-up habit for the past two years now…

gridsagegames_email_inbox_order_counter

The all-important Order counter :P

Throughout Year 2 I made a more concerted effort to ensure there was always something to show at least once every week, and I believe this is reflected in the relative number of zero days: Year 1 was 9.8% (36) zero days, compared to 4.9% (18) in Year 2. In fact, the improvement is technically even better than that: notice a third of Year 2′s zero days occurred close together over summer 2016--that was during my one-month vacation. No work, no pay xD

cogmind_revenue_year_2_zero_days

Cogmind Year 2 revenue zero days.

Looking at revenue on a monthly basis, there’s been a clear positive trend over the past year. (May passed $3k with its Beta release, though isn’t shown here as it technically extends into the third year.)

cogmind_revenue_year_2_and_1_by_month

Cogmind monthly gross revenue, annotated.

I’ve labeled a few of the larger effects already discussed earlier, though I can find no reasonable explanation for March. The graph includes Year 1 for comparison, though I didn’t annotate those months--that stuff was covered with the first year’s data.

cogmind_revenue_year_2_by_country

Cogmind Year 2 monthly gross revenue by country.

By country the revenue data doesn’t hold many surprises. Comparing to Year 1′s country revenue graph, the only notable difference is that Germany overtook Australia, somewhat interesting because as an English-only game Cogmind is assumed to mostly sell in native English countries. Of course, Germany does have plenty of English speakers as well as three times the population of Australia, and (perhaps more key here) more than one German LP’er picked up Cogmind over the past year. (Plus there was the mentioned VAT change in November!)

That graph would be far more interesting if there were localization, but at least this gives you an idea of what an English-only fairly text-heavy game can achieve in an international sense. Localization is a great idea for any game that can manage it, but sadly it’s simply not possible with Cogmind.

Pricing

But we do have some extra interesting data to analyze for Cogmind’s second year of sales, now that we’ve been through multiple tier and pricing adjustments!

At the beginning of the year I wrote a lot about Cogmind’s first price change in 2016, including some common and not-so-common variables factored into my pricing decisions. Here I’ll add to that discussion with some final results of that change and the most recent third phase.

As a reminder, Cogmind’s base price was $30 for the first 12 months, $24.99 for the 11 months following that, then $19.88 for the last month of the second year (and on through today). In the context of daily revenue above I already talked about some of the more immediate effects of those price changes, but the bigger picture holds a few more details. One element I finally have enough data to explore is Cogmind’s conversion rate.

cogmind_alpha_visitor_conversion_rate_price_tiers_buyhtml

Cogmind lifetime conversion rate (2015.5 ~ 2017.5) based on buy.html visitors.

I wouldn’t read too much into that graph because there are a lot of factors at play here, so many that this data is not quite as meaningful as it appears, but it’s fun so I wanted to talk about it anyway :P

First of all, notice that it’s specifically the buy page! Unlike most other indie developers, I don’t put a buy link on Cogmind’s main web page. In fact, I also don’t even put it front and center at the top of the buy page itself! I prefer to 1) avoid generating impulse buys and 2) manage potential player expectations. Thus I intentionally force visitors to wade through other stuff before finding a link to actually buy the game :). Yes, it’s counterproductive from a marketing standpoint, but I don’t care, I’m here to build a good game and foster a healthy community, not rake dollars from random people on the internet.

Thus this source data definitely skews the conversion rate higher, because anyone arriving on that page already has a somewhat higher interest in purchasing than the average visitor. (Note that based on general industry data, those rates are high.) For comparison I did the same with /cogmind/index.html.

cogmind_alpha_visitor_conversion_rate_price_tiers_indexhtml

Cogmind lifetime conversion rate (2015.5 ~ 2017.5) based on index.html visitors.

Part of the problem with sourcing stats from main page hits is that they’re filled with referral spam which can’t always be completely distinguished from real visits (which, like incessant referral spam, may simply leave without visiting other pages :P). This is why using the buy page provides nicer metrics, because it doesn’t get referral spam--we just have to remember all the additional factors that feed into the buy.html stats.

Getting back to those factors, Cogmind’s exposure comes primarily via roguelike-focused channels, so new visitors coming to the buy page are already going to be of a rogueliking disposition and even more likely to buy :)

Also specific to the fact that I prefer basing data on the buy page, there are a lot of people who have followed development for a long time, even years, who eventually make the decision to buy when it’s right for them, whether due to a lower price, the right timing, or a combination of other personal factors. I believe there’s a fairly steady stream of people who fall under this category, and they’ll naturally just go to the buy page and… buy. This is often after having mostly obtained information about the game through one of the other channels I frequently use,  like Twitter, r/Cogmind, the forums, the dev blog, TIGS, Bay 12, Facebook, etc…

Regarding what appears to be an upward trend in the conversion rate, while it makes some sense when paired with the fact that the price comes down for each period, I think that trend is much less meaningful on breaking down the average number of daily visitors and thinking about where those numbers are coming from. For example in its first year of release Cogmind had the greatest exposure on a number of major websites, so naturally visitors from those sites were less likely to be among the target audience. That was the highest average at 71.8 visitors per day. The second period, during which there was much less general exposure, saw a significantly lower 47.5 visitors/day. And the most recent period with the lowest price, albeit shorter, recorded only 43.5 visitors/day, yet had the highest conversion rate.

Of course, knowing this doesn’t negate the fact that Cogmind’s website and my frequent (if minimal) outreach efforts are fairly effective at selling the game to those who are interested. And on the reverse side, supporting the likelihood of an improving conversion rate, obviously during each consecutive period Cogmind was closer and closer to completion with a longer and longer history of steady releases. That helps convince anyone just discovering the game that it’s both a substantial and promising project.

One of the buyer behaviors I’ve really been looking forward to quantifying is the percentage of those opting to pay more than the minimum price, and how that changed along with the tier adjustments.

cogmind_alpha_buyers_opting_to_pay_more

Percent of Cogmind buyers opting to pay more. (This data just looks at the two lowest tiers for a given period, since the higher tiers are more complicated and aimed at group buys. The Prime tier and each respective basic tier are more directly comparable.)

After Cogmind’s first year, during which $30 (“Prime Tier”) was the lowest price, I added a new perk-less Alpha Tier for $24.99. For the next 11 months, buyers could decide whether they just wanted the game, or if they could afford and would like to contribute a little extra in return for having their name in the credits. Surprisingly 13.8% of individual buyers still chose the Prime tier!

Part of the equation here would be the relatively low difference in price, percentage-wise. Only 20% more for some extra perks and to support a project they like? Why not? Compare to the rate after the price was lowered to $19.88, which means a 50% (!) increase for Prime, and the ratio of buyers choosing that option was basically halved. Many of the long-time fans interested in paying more to back the project will have already done so anyway. (Though also note that data for the latter period was only collected for about a month, because the Prime tier was removed as of the Beta release. That said, I don’t suspect we’d see much of a difference if I continued to sell that tier--it was removed primarily because development was entering a new phase, and keeping the “early supporters” tier active for much longer didn’t seem right.)

In the end I’m very glad I chose to handle tiers and pricing the way I did, because otherwise Cogmind wouldn’t have gotten nearly as much pre-Steam development as it has! Lowering to $19.88 sooner also probably would’ve been a bad move based on what I’m seeing now, since over the long term there’s been no noticeable increase in the raw number of buyers. Anything in the $19-$30 range really falls into the “too expensive” category for a lot of people, even more so if it’s not on Steam where the convenience of purchases can take some of the edge off a price, or where there’s more likely to be some sort of discount to provide additional impetus. (I’m still not working at getting more exposure to make up for the loss in revenue per player--it’s just the same old social media channels--but that’s why I chose April/May to do this, around when it’s time to transition to Steam.)

However, I certainly wouldn’t claim that sticking with $24.99 would continue to generate a proportionally higher revenue. Conversion rates would likely drop if the price remained unchanged. Each time I’ve reduced the price over the past two years, I was already feeling that sales were starting to flag and would likely continue to do so if I didn’t take action. Even if that may not have come to pass, I also knew that there was already pent up interest in a lower price, and it was about time to lower the gates a bit further and let more fresh players in.

Investment

So where does this funding go? Well, as a solo dev with relatively low asset costs, much of it naturally goes to pay my meager salary, and my job is to both create and sell Cogmind :)

As always I’ve been maintaining my detailed records of development time, which show that compared to 3,065 hours of pre-alpha development and 2,177 hours for the first year of alpha, Year 2 continued at a stable 2,192 hours of work. These numbers aren’t too pretty, because it shows that this is a lot of work for the amount of revenue coming in--certainly not worth it in an economic sense, but that’s okay for now as long as it’s been sustainable.

cogmind_time_input_by_category_through_april_2017

Cogmind development time, July 2013 ~ April 2017 (excludes 2012 7DRL work).

There’s always more coding to do along with any new features, so that has of course continued its long-term upward drive, and community-related efforts are finally starting to catch up to it as I spend a little more time on promotional stuff as the core game approached completion. Content-focused development accelerated significantly over the past year, which is what ate into coding time.

Comparing only the major development categories of Year 1 and Year 2 more directly, the shift from code to content is clear, while other areas stayed more or less constant.

cogmind_time_input_by_major_category_alpha_only

Cogmind Alpha development time breakdown by major categories.

Because “what’s a good percentage of time to spend on outward-facing efforts?” is a common question among newer gamedevs, let’s also look at the major category breakdown for the project as a whole so far.

cogmind_time_input_by_major_category

Percentage of Cogmind development time invested in each major area, July 2013 ~ April 2017 (excludes 2012 7DRL work).

So altogether it’s 66.7% game stuff vs. 33.3% community/marketing. This is really a bare minimum, which I can get away with because the traditional roguelike community is pretty tight knit with a small number of key places to stay in touch with players, making that part of the job easier. Other experienced devs will say literally half or more of your effort needs to be some kind work that helps get your game noticed (or in my opinion just as valuable: serves as time spent interacting with the existing player base).

I have much more behind-the-scenes dev stats and dedicated analysis to share once Cogmind is complete, though wanted to share a little of it in this article to give the revenue more context. (There’s also a month-wise breakdown of development hours in the latest annual review.)

Aside from dev time there have been a number of other expenses, but they account for less than 6% of the total budget (which doesn’t really have room for anything more xD). Music is something I’ve been thinking about, but how much money can be budgeted there is still an unknown for something that may not be entirely necessary and for which there are multiple valid approaches at different cost levels.

Cogmind still hasn’t broken even, but the hope is that it will as soon as it’s launched on Steam.

Next Step

It’s been a good two-year run of alpha releases (see history), and the ability to extend pre-Steam EA development has been wonderful for fleshing out the original vision--some of the stuff I’ve been adding, even entire maps, was totally not planned from the beginning! And as a result of sufficient support despite the previously higher prices, the player base could be kept from growing too large and distracting (as mentioned in my pricing article) while still getting constant feedback on new features and mechanics.

Now that the Beta is out and further development is mostly optional fun stuff, it’s time to seek out more exposure and put Cogmind on Steam :D. Performance there will be extremely important for the future of Grid Sage Games… so hopefully it can make a splash.

cogmind_reactor_chain_explosions_destruction

Making a splash.

Posted in Post-Mortem | Tagged , , , | 6 Responses

Cogmind’s Two-Year-Old New Logo

I enjoy sharing lots of information about Cogmind’s development process, and before the first alpha released two years ago, the main spot for followers to stay up to date on progress was this dev blog.

Sharing early dev stuff can in some cases become a problem later when related features, graphics, or some other aspect of a game are no longer representative of the game, but for me it’s never really caused many problems. In fact, it’s kinda interesting to even compare Cogmind’s very first mockup with how it actually looks today.

cogmind_mockup_vs_2017_screenshot

Cogmind 2013 mockup vs. 2017 screenshot. Note the older font, and others, are still available, and have a rather significant impact on the look (!), but honestly neither looks incredibly improved upon the other--even old media more or less represents the game today. One exception would be the addition of tiles, which didn’t exist during early pre-alpha and I use in about half of demo screenshots and GIFs these days.

There is one issue in particular where old info has come back to haunt me, though: The title logo design.

cogmind_logo_12x12

Cogmind’s current logo design, new as of… 2015 :P (12×12 cell version)

Back in 2015 I explained the logo design process, showing here on the blog how I used REXPaint to draw layers which were then animated separately in game. (No, I’m not even going to link it, but I’d also prefer to not edit or remove it outright--I believe it has its historical value.)

Some months after that, not too long before the first public release, I revisited the logo and made changes to its shape. Specifically, the original idea was to make the entire thing as square as possible, but the ‘D’ required a slight adjustment (missing corner) to help distinguish it from an ‘O’. In the end that didn’t look nicely balanced, so both the ‘C’ and ‘D’ got two rounded corners each. (I admit that the current style can still be interpreted as an ‘O’, but at least the whole thing looks better overall…)

But I wasn’t experienced enough at the time to realize that all those PNGs I’d put out there would be enshrined in Google Images to be found by anyone searching for Cogmind’s logo to use elsewhere… So in the time since, many people who’ve gone to create things like cover images for LPs just grab whatever Google Images tells them the logo is (no one bothers with press kits, it would seem, because Cogmind has lots of proper logo downloads in various sizes available there!).

In the end, there are a lot of incorrect logos being used out there. Some are even using the old 7DRL logo, or the non-ASCII logo used during pre-alpha development. It’s basically a mess :P

It’s possible that some logo searchers may want to try to save the header from the web site, and in those cases it’d be my fault that I stubbornly insist on using the GIF there, because it’s cool :)

cogmind_logo_10x10_animated

Cogmind Logo, 10×10 animated version. This was recorded from within the game, which actually animates the logo procedurally rather than itself using a recording, so it’s formed slightly differently each time the game is run :)

While it’s also possible to screenshot its long static frame, some people might not be set up to do that so easily, and from that source it’s only available in one size anyway, whereas logo seekers would like to check for other options as well.

You want more options? I’ve got more options!

cogmind_logo_4x4

Cogmind Logo (size 4) (animated version here)

cogmind_logo_5x5

Cogmind Logo (size 5)

cogmind_logo_6x6

Cogmind Logo (size 6)

cogmind_logo_8x8

Cogmind Logo (size 8)

cogmind_logo_10x10

Cogmind Logo (size 10)

The lesson is, be careful what you put out there, and how you do it :P. At least be aware of what can happen. Some developers are afraid to even put out screenshots or videos of their early progress (which may feature programmer art), lest it become attached to their game forever, though I believe this attitude has been shifting significantly over recent years with the indie boom as more developers share their progress--players are becoming more aware of the dev process and have a better understanding of what WIP means.

That said, I can understand why devs use code names for their projects before a proper release or marketing campaign. On a related note, at the start of pre-alpha I did at least foresee an issue with the old 7DRL stuff interfering with future reception of the game, the older jam version being as inferior as it is, so in 2013 I went and renamed all the original online content as “Cogmind 7DRL” to make the distinction more clear. That much worked out okay.

And yes, this post is a completely unveiled attempt to put more “official” logo images out there :P

Posted in Marketing | Tagged , | 5 Responses