Most people, game devs and players alike, realize that creating a great game is a lot of work. They may not realize just how much work, but they know it’s not easy. But imagine you could create your dream game with a snap of your fingers. What would be left to do at that point? I made a checklist, culled and expanded from my Starcom:Nexus project list of all the things that go into shipping a game.
This is a work in progress, you can find the latest version here.
- Create amazing game.
 - Application meta-game functionality (anything that’s part of the application, but not directly part of game play)
- Launch screens, studio logos, etc. What shows up while the application is loading?
 - Main menu. Most games start players here, or at least have one.
- Options
- Display settings. 
- Resolution
 - Windowed
 - Subtitles
- On/Off
 - Accessibility (size/background)
 
 - FOV slider
 
 - Quality settings. There are a lot of possible options, check which ones look good and have some impact on performance—it may vary by platform, particularly mobile.
 - Language/localization. There are hundreds of little things that need to be done to support localization, but the first is to do decide if you’re going to support localization.
 - Volume control. 
- Master
 - Music
 - Dialogue
 - Game/UI
 
 - Controls
- Keybindings. If the game has keyboard control, people will complain about not being able to change the bindings.
 - Controller support. Will you support this? Which controllers? Can players change the bindings?
 
 - Other accessibility options
 
 - Display settings. 
 - Save/Load. Some games don’t need it, some games can get by with level unlocks, others needs a robust system that can save the state of an open world.
- When can the player save? Is it automatic? Limited slots?
 - Local save
 - Cloud / Steam Cloud save
 
 - Support/Troubleshooting. You need a way for players to solve their problems and let you know when they can’t. 
- Contact form
 - Forum
 - Game Wiki
 
 - High scores/leaderboards
 - Feedback. (Subnautica has a neat system where you can give feedback at any time from in game by pressing F8 and reminds about this fact periodically.)
 - Credits/About. Don’t forget to thank everyone who helped!
- Artists
 - Sound/Music
 - Playtesters
 
 - Updates. Some way to tell players what changed in the latest build so they aren’t confused.
 
 - Options
 - Loading screen. Even if the game levels load instantly, there should be some kind of smooth transition.
 - Error-handling/automatic reporting. If the game is encountering errors, it should tell be able to tell you (the developer) without requiring the player to submit a bug report.
 - In-game options. Many games have at least a pause screen that has a set of options that may overlap the main options, including exiting the game or returning to the main menu.
 - Achievements
- Integrate these with Steam and any other launch/wrapper platform
 
 - End game sequence. Even if it’s just the credits, a clear indication that the main story of the game is over.
 
 - Testing
- Test plans. The primary purpose of a good test plan is to make sure you never deploy a game build where something is unplayably broken.
 - Automated testing
 - Beta/branch test build
 - Play testing
- Regularly recruit play testers on dev forums (Feedback Friday, etc)
 - Find sources of virgin in-market playtesters.
 
 
 - Marketing
- Market research
- Identify similar games
 - Estimate market size
 - Choose starting price point
 - Realistic high/low/median sales figures. Do these numbers justify the time and money you’re putting into the game?
 - Try to find success and failure stories to learn from and get a sense of what worked/didn’t. E.g.:
 
 - Regularly updated:
- Blog / website. Hopefully updated at least weekly, preferably more often.
 - Twitter. I am so bad at this. I went from Aug ’14 to May ’18 with zero tweets, but I’m working on it! (https://twitter.com/Wx3Labs)
 - Facebook page.
 - Instagram.
 - Email campaigns. Make sure you’re only sending to people who have actively requested email updates (particularly note recent GDPR requirements, below)
- https://mailchimp.com/ You might remember them as the sponsor of the famous Serial podcast (wow did they get a lot of marketing for their $), it’s a pretty good way to collect emails and send out campaigns. Has a free tier for <2000 emails.
 
 - Steam store page.
- Active Community Forum
- Pre-seed with content (not fake posts, just stuff about the game so it’s not empty)
 - Maintain active presence
 
 - Screenshots
 - News
 
 - Active Community Forum
 - Other publishers/markets
 - Appropriate web forums/threads
- IndieDB, TIGSource, r/indiegames/ etc
 
 
 - Textual info:
- Shortest possible pitch (“it’s Diablo II meets Starflight”)
 - Elevator pitch (“It’s a space-based open world ARPG mixing the mystery of exploration with arcade style combat”)
 - Search keywords
 - Longer description
 - Short store/hook description. This is different from the pitches—you’re not describing what the game is, you’re trying to pique players’ curiosity.
 - Long store/hook description
 
 - Promotional assets
- Trailer
- Storyboard: Plan out the trailer, should be about 90 seconds.
 - Capture video
 - Edit
 - Score
 - Polish
 - Get feedback, repeat
 
 - Logo
- Various formats for Steam, Facebook page, Twitter, etc. You’ll need literally dozens of versions of the logo in various resolutions.
 
 - Icon
 - Backgrounds (for Steam, Facebook header, etc)
 - Screenshots
 - Gameplay videos
 
 - Trailer
 - Media
- Press kit.
 - Bloggers/web based reviewers
 - Streamers
 - Traditional marketing channels. The value of these to most indie devs is questionable, but there might be a specific niche scenario where they work for you:
- Web ads
 - Reddit ads (I actually was able to get beta testers for a web game at a very reasonable cost per several years ago)
 - Keyword advertising
 - Social media buys
 - Other traditional media (magazines/TV/etc)
 
 
 - Conventions
- ???
 
 - Analytics
- Choose analytics platform (Google, Unity, etc) and integrate
 - Define metrics, funnels, etc
 - Track key game events
 - System info/performance tracking
 
 - Playable demo?
 
 - Market research
 - Sales
- Steam 
- Pay product submission fee
 - Setup bank account, info
 - Complete onboarding process
 - Steam Store launch checklist
 - Decide if you’re doing early access
- If yes, see Steam’s early access checklist
 
 - Set release date
 
 - Additional markets: Decide where else to sell your game
- GOG
 - See this list from Reddit: https://www.reddit.com/r/gamedev/comments/72nds2/the_list_of_indiefriendly_publishers_2017_edition/
 
 
 - Steam 
 - Misc. Technical
- Source control
- Git/Perforce/Unity Collab/Mercurial/etc
 
 - Scheduled backups.
- Local
 - Offsite
- Specialized backup services: https://www.pcmag.com/article2/0,2817,2288745,00.asp
 - Upload zips to whatever you use for web hosting.
 - Use a general purpose cloud solution like Amazon S3 or Glacier.
 
 
 - System requirements. Besides testing on a bunch of machines, if you’ve been collecting specs from beta testers this can help
- Minimum
 - Recommended
 
 - Cross platform support. Determine supported platforms. If you support a platform, you need to be able to support that platform, which means test, fix bugs, and provide all your builds for it.
- Mac/Windows/*nix
 - Consoles
 - Android/iOS
 - Web
 
 - Update deployment plan/scripts
- Versioning
 - Automated builds
 - Steampipe
 
 - DRM. A lot of players hate this, might hurt indies way more than lost sales to piracy, but here for completeness.
 
 - Source control
 - Legal/financial
- Decide legal entity: sole proprietor, partnership, DBA, LLC, S-corp, etc.
- ???
 
 - If necessary, find lawyer, accountant
 - Check licenses/rights to all assets/content
- 2D Images/Textures
 - 3D Models
 - Sounds
 - Music
 - Plugins/libraries
 - Textual content
 - If you’re using an engine check your license for things like:
- Are there revenue caps or royalties?
 - Are you required to show the engine’s logo?
 
 - Are you referencing anything potentially trademarked?
 
 - Protect own IP
- Create work-for-hire contracts for any employees/contractors
 - Make sure if you have partnered/are in cahoots/collaborated with anyone the IP ownership is clear. Remember to do this before Step 1, “Create Amazing Game,” or it’ll be harder.
 - Trademark logos, names, etc.
 
 - Set up bank account
- Business accounts require additional documentation
 
 - Pay your taxes. This is pretty much the only step in the entire list where a serious screw up can put you in jail. Although the more likely outcome is having to pay a lot more than you expected due to penalties and interest.
- You’ve been tracking expenses and revenue all along, right?
 - Remember to get W9’s from contractors and make sure to send out those 1099s at end of year! (If you’re filing in the US)
 - Make quarterly payments as necessary.
 - Plus regular filing. If you’re used to filing as an employee, this is going to be more complicated no matter what legal structure you chose.
 
 - GDPR compliance (use of any personal information you collect)
https://en.wikipedia.org/wiki/General_Data_Protection_Regulation - COPPA compliance (if you potentially collect personal information from children)
https://www.ftc.gov/tips-advice/business-center/guidance/childrens-online-privacy-protection-rule-six-step-compliance - Content Ratings, as necessary (ESRB, PEGI, etc)
 - Remember, I am not a lawyer. I am literally just a document you found on the Internet. Make sure you do your own research as well.
 
 - Decide legal entity: sole proprietor, partnership, DBA, LLC, S-corp, etc.
 
