What Goes Into Making a Game, Besides the Game?

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.

  1. Create amazing game.
  2. Application meta-game functionality (anything that’s part of the application, but not directly part of game play)
    1. Launch screens, studio logos, etc. What shows up while the application is loading?
    2. Main menu. Most games start players here, or at least have one.
      1. Options
        1. Display settings.
          1. Resolution
          2. Windowed
          3. Subtitles
            1. On/Off
            2. Accessibility (size/background)
          4. FOV slider
        2. 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.
        3. 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.
        4. Volume control.
          1. Master
          2. Music
          3. Dialogue
          4. Game/UI
        5. Controls
          1. Keybindings. If the game has keyboard control, people will complain about not being able to change the bindings.
          2. Controller support. Will you support this? Which controllers? Can players change the bindings?
        6. Other accessibility options
          1. http://gameaccessibilityguidelines.com/
      2. 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.
        1. When can the player save? Is it automatic? Limited slots?
        2. Local save
        3. Cloud / Steam Cloud save
      3. Support/Troubleshooting. You need a way for players to solve their problems and let you know when they can’t.
        1. Contact form
        2. Email
        3. Forum
        4. Game Wiki
      4. High scores/leaderboards
      5. 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.)
      6. Credits/About. Don’t forget to thank everyone who helped!
        1. Artists
        2. Sound/Music
        3. Playtesters
      7. Updates. Some way to tell players what changed in the latest build so they aren’t confused.
    3. Loading screen. Even if the game levels load instantly, there should be some kind of smooth transition.
    4. 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.
    5. 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.
    6. Achievements
      1. Integrate these with Steam and any other launch/wrapper platform
    7. End game sequence. Even if it’s just the credits, a clear indication that the main story of the game is over.
  3. Testing
    1. 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.
    2. Automated testing
    3. Beta/branch test build
    4. Play testing
      1. Regularly recruit play testers on dev forums (Feedback Friday, etc)
      2. Find sources of virgin in-market playtesters.
  4. Marketing
    1. Market research
      1. Identify similar games
      2. Estimate market size
      3. Choose starting price point
      4. Realistic high/low/median sales figures. Do these numbers justify the time and money you’re putting into the game?
      5. Try to find success and failure stories to learn from and get a sense of what worked/didn’t. E.g.:
        1. https://www.reddit.com/r/gamedev/comments/76htb2/successful_steam_launch_postmortem_throne_of_lies/
    2. Regularly updated:
      1. Blog / website. Hopefully updated at least weekly, preferably more often.
      2. 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)
      3. Facebook page.
      4. Instagram.
      5. Email campaigns. Make sure you’re only sending to people who have actively requested email updates (particularly note recent GDPR requirements, below)
        1. 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.
      6. Steam store page.
        1. Active Community Forum
          1. Pre-seed with content (not fake posts, just stuff about the game so it’s not empty)
          2. Maintain active presence
        2. Screenshots
        3. News
      7. Other publishers/markets
      8. Appropriate web forums/threads
        1. IndieDB, TIGSource, r/indiegames/ etc
    3. Textual info:
      1. Shortest possible pitch (“it’s Diablo II meets Starflight”)
      2. Elevator pitch (“It’s a space-based open world ARPG mixing the mystery of exploration with arcade style combat”)
      3. Search keywords
      4. Longer description
      5. 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.
      6. Long store/hook description
    4. Promotional assets
      1. Trailer
        1. Storyboard: Plan out the trailer, should be about 90 seconds.
          1. https://gameanalytics.com/blog/dos-and-donts-of-game-trailers.html
          2. https://www.gamasutra.com/blogs/RoqueRey/20140703/220298/Indie_game_indie_trailer_Tips_for_making_a_trailer.php
        2. Capture video
        3. Edit
        4. Score
        5. Polish
        6. Get feedback, repeat
      2. Logo
        1. Various formats for Steam, Facebook page, Twitter, etc. You’ll need literally dozens of versions of the logo in various resolutions.
      3. Icon
      4. Backgrounds (for Steam, Facebook header, etc)
      5. Screenshots
      6. Gameplay videos
    5. Media
      1. Press kit.
        1. http://dopresskit.com/
      2. Bloggers/web based reviewers
      3. Streamers
      4. 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:
        1. Web ads
        2. Reddit ads (I actually was able to get beta testers for a web game at a very reasonable cost per several years ago)
        3. Keyword advertising
        4. Social media buys
        5. Other traditional media (magazines/TV/etc)
    6. Conventions
      1. ???
    7. Analytics
      1. Choose analytics platform (Google, Unity, etc) and integrate
      2. Define metrics, funnels, etc
      3. Track key game events
      4. System info/performance tracking
    8. Playable demo?
  5. Sales
    1. Steam
      1. Pay product submission fee
      2. Setup bank account, info
      3. Complete onboarding process
      4. Steam Store launch checklist
      5. Decide if you’re doing early access
        1. If yes, see Steam’s early access checklist
      6. Set release date
    2. Additional markets: Decide where else to sell your game
      1. GOG
      2. See this list from Reddit: https://www.reddit.com/r/gamedev/comments/72nds2/the_list_of_indiefriendly_publishers_2017_edition/
  6. Misc. Technical
    1. Source control
      1. Git/Perforce/Unity Collab/Mercurial/etc
    2. Scheduled backups.
      1. Local
      2. Offsite
        1. Specialized backup services: https://www.pcmag.com/article2/0,2817,2288745,00.asp
        2. Upload zips to whatever you use for web hosting.
        3. Use a general purpose cloud solution like Amazon S3 or Glacier.
    3. System requirements. Besides testing on a bunch of machines, if you’ve been collecting specs from beta testers this can help
      1. Minimum
      2. Recommended
    4. 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.
      1. Mac/Windows/*nix
      2. Consoles
      3. Android/iOS
      4. Web
    5. Update deployment plan/scripts
      1. Versioning
      2. Automated builds
      3. Steampipe
    6. DRM. A lot of players hate this, might hurt indies way more than lost sales to piracy, but here for completeness.
  7. Legal/financial
    1. Decide legal entity: sole proprietor, partnership, DBA, LLC, S-corp, etc.
      1. ???
    2. If necessary, find lawyer, accountant
    3. Check licenses/rights to all assets/content
      1. 2D Images/Textures
      2. 3D Models
      3. Sounds
      4. Music
      5. Plugins/libraries
      6. Textual content
      7. If you’re using an engine check your license for things like:
        1. Are there revenue caps or royalties?
        2. Are you required to show the engine’s logo?
      8. Are you referencing anything potentially trademarked?
    4. Protect own IP
      1. Create work-for-hire contracts for any employees/contractors
      2. 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.
      3. Trademark logos, names, etc.
    5. Set up bank account
      1. Business accounts require additional documentation
    6. 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.
      1. You’ve been tracking expenses and revenue all along, right?
      2. 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)
        1. https://www.irs.gov/pub/irs-pdf/fw9.pdf
        2. https://www.irs.gov/businesses/small-businesses-self-employed/forms-and-associated-taxes-for-independent-contractors
      3. Make quarterly payments as necessary.
      4. 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.
    7. GDPR compliance (use of any personal information you collect)
    8. COPPA compliance (if you potentially collect personal information from children)
    9. Content Ratings, as necessary (ESRB, PEGI, etc)
    10. 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.