Making an Xbox LIVE Indie Game
Collecting my thoughts on what it takes to make a quality XBLIG
This is the beginning of collecting my thoughts on what it takes to make a quality XBLIG. These are taken from the best practices suggested by Microsoft, the XNA community and my own observations. Eventually I want to start providing code examples/samples for the various things listed here. Even if you can't make a fun game, a best selling game there's absolutely no reason in the world you can't make one that has a high level of quality and polish
Splash Screen
The splash screen traditionally is where game companies display their logo and the logos of any of their partners. These are often accompanied by special affects and transitions. For an XBLIG, it can be useful to show a splash screen but it’s VERY important to recognize that every second you’re displaying a splash screen is a valuable second you’re losing of someone playing the trial of your game. XBLIGs need to evaluate whether a splash screen makes sense for them. If you do use one, here are a few suggestions for creating one with polish.
Keep it short. Gamers want to play your game, not watch what you think is a cool splash screen.
Make it skippable. Allow the player to press the “A” button to skip your splash screen. You’ll find this is a useful feature for you as a game developer as well so you don’t have to constantly sit and watch your own splash screen.
Ask yourself if you even need a Splash Screen. Splash screens can be useful for branding, but there’s all kinds of branding opportunities in your game. Do you really want to waste valuable time starting the game? The answer may be no.
Tie it into the gameplay. As an XBLIG you can’t waste precious seconds that aren’t already showcasing your game style and play. Some great examples of XBLA games that do this are Castle Crashers and Splosion Man. Both of those games start showcasing game style and humor in their splash screens to great effect.
Start background loading. If you’re going to show a Splash screen for a few second, you might as well save the gamer a few seconds of waiting later. Start background loading content, levels and more when appropriate.
Controller Detect Screen
- Display instructions “Press A to Start”
- Make sure you use a large, readable font that you have a license to use
- Tie the controller detect screen into your game, make sure it’s already getting people interested and excited about your game.
- Detect and store the first controller to press the A/Start button
- Continue background loading when appropriate
- Give visible and audible feedback when first player is detected
Title/Menu Screen
- Display short, readable, informative list of menu options (emulate what best selling XBLA use)
- Add a “Buy it Now” menu item
- Give user audio and visual feedback as they move through menu items
- Make it VERY clear which menu item is current selected
- Do NOT disable menu items! Instead notify users when they select them of why they can’t access the feature
- Display buttons used to select menu item (A is standard)
- Support Left thumbstick, right thumbstick and the DPad for navigating the menu
- Support B to move back to the controller detect screen
- Give visible and audible indication that a menu item was selected
- User a LARGE readable font (that you are sure you have a license to use)
Pause Screen
Miscellaneous Thoughts
- Don’t forget about Rich Presence
- How to Play/Interactive Tutorial
- Error Emails/Error Screen
- Brag/Email scores/Email to share with friends
- Make your game single player
- Support Local Multiplayer
- Pay for your cover art
- Write a captivating description
- Take four screenshots of the most exciting parts of your game. (If the most exciting parts of your game include the title screens and menus, re-do your game)
- Participate in the forums
- Playtest
- Peer Review
- Do not use the default settings, font and menu layout from the GameState or Network State management samples
- Before writing ANY code, delete the line in the Update method that checks for the Back button to be pressed an Exits the game. NEVER exit the game with the Back button.

