(...continued from previous post)MiscellaneousOf 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
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).
ApprovalWith 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. 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
Take that Take-Two. The BuildNext 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'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's first install on Steam. Keys and TestingShortly 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
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 APIValve 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
)
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's first 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 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 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...
MiscellaneousThere 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.
ApprovalWith 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.
MarketingJust 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
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