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.