Creating Great Community Games

From XNAWiki
Jump to: navigation, search

These are some design and other considerations when making a game for the Xbox LIVE Community Games (as gathered from notes taken during Gamefest 2008):

  • Design Considerations
    • Starting
      • There is automatically a standard XBLCG splash screen
        • Fills the 3-5 seconds of boot up time
      • Keep load time low
      • Never freeze the screen; use asynchronous loading when you can
      • Load just what you need to move the player along
      • Play an animation if the loading is > 1 seconds
    • Menus
      • Use the "Press A or Start" screen as a "sign in" so you know which player is primary
      • All menus should navigate the same
      • Menu work isn't glamorous; use GSM sample to get started
    • Exiting
      • If it's a trial mode, display a sell screen with one button to take them to the game offer
    • Main Menu
      • If only one mode, consider using "Start Game" instead of "Single Player" or anything
      • If multiple modes, consider just listing them all on the main menu instead of sub-menus
      • If it's a trial mode, have an option to purchase the game from the main menu
    • Help & Options
      • Brief how-to-play
        • Controls, tutorials, etc
      • Control options (customizable controls)
      • Audio/video settings
      • Credits
      • For all options, provide a way to easily reset to defaults
        • e.g. Press X to Restore Default
    • Pause Menu
      • Should have these options:
        • Resume
        • Purchase
        • Help & Options
        • Save (if applicable)
        • Quit
      • All games should have a pause menu
      • In multiplayer - pausing stops input; not game
        • Otherwise if I pause my game, my friend's game stops too
    • User Experience
      • A = confirm, B = cancel
      • Start = Pauses, Back = scoreboard, map, some other game function
      • Allow navigation with both DPad and left thumbstick
      • Tool tips where appropriate
      • Design for simplicity
      • User won't be 20 inches from screen
        • Check font sizes
        • Make sure the user can see what they need to see
      • Game doesn't need all the options
        • No need for resolution, graphical quality, etc. All Xboxs are (basically) the same.
    • Profiles
      • Hard to get right, but users will appreciate it
      • PlayerIndex.One is not always the right player
      • Be flexible with requirements
        • Have fallbacks for users with Silver accounts, offline accounts
        • Check for parental settings (such as networking being disabled)
        • Test with lots of the various configurations of security settings
      • Allow gamers to sign-in/sign-out
        • If sign-out during game, elegantly return to main menu
      • Use gamertags and gamer pictures where appropriate to personalize
      • Allow viewing of other profiles
        • E.g. clicking on profile in high score should bring up Guide with details on profile
  • Tech Considerations
    • Resolutions
      • 1280x720 is always safe bet
        • Letterboxes on 480i/p, scales up to 1080p
      • Consider adjusting based on actual display
    • Scaling
      • Xbox 360 will scale to match output display settings
    • Standard Definition
      • Be aware of font sizes/positions
    • Color
      • Check gamma/saturation levels
      • Watch for color critical gameplay
        • E.g. in Hexic HD, you can put glyphs on pieces for people who have trouble with colors
    • Letterboxing
      • 16:9 letterboxes on 4:3
      • 4:3 does not pillar box on 16:9
        • It gets stretched
    • Safe Regions
      • Overscan 0-20%
      • All critical information should be in inner 80%
      • All important information should be in inner 90%
      • Should still render 100%
    • Audio
      • Test different configurations (headphones, stereo, 5.1, etc)
      • Compare in-game volumes to Xbox 360 startup sound volume
      • Music
        • Gamer can override with Guide
        • Use Song + MediaPlayer to play music
        • Or use XACT and place in Music category
      • Compression
        • Use XMA in XACT
        • Use MP3 or WMA for Song API
    • Input
      • Make use of controller subtypes where appropriate
        • Different controllers provide different data
      • Unplugged/disconnected controller should pause game
      • Use gamer defaults (invert thumbstick, trigger for gas, etc)
      • Don’t use keyboard for gameplay
        • Only for text entry
    • Storage
      • Treat storage APIs asynchronously (because they are)
      • Use correct locations
        • Saved games should be tied to profile
        • High scores should not
    • Multiplayer
      • Add Quick Match feature
        • Just perform query in background and join best session
      • Custom Match
        • Use parameters, filtering, etc,
        • LIVE API only returns 25 sessions
      • Support Invites
        • In-process is a bit more work
        • Helps sell the game
          • If user A invites user B to play your game and user B doesn’t own it, he is automatically shown the purchase page
      • Lobby
        • Display match settings
        • Support “ready up”
      • Be sure to test, over the internet, your max players
      • Use simulated latency and packet loss when testing
      • Voice is automatic, but you may need to manage for bandwidth
      • Consider game management (e.g. kicking players, etc)
    • Content Size
      • 150MB max
      • All content compressed by default in 3.0
      • Audio compression – use XMA
      • Texture compression – use DXT if you can
      • Smaller textures if possible (e.g. use 1024 instead of 2048)
      • For small games, load the whole thing up front
      • JIT (just-in-time) loading is tricky
        • Hard to get just right
        • Can cause content “popping”
      • ContentManager “per zone”
        • One for UI, one per level, dispose when needed
    • Testing
      • Submitting is real
      • Testing is very important
        • Leverage peers to help test
      • Considerations
        • Resolutions
        • Profile Levels (Gold/Silver, Online/Offline, Signed-in/Signed-out)
        • Multiple Storage devices
        • Multiplayer over the internet
  • Selling Your Game
    • Game Metadata
      • Title
      • Description
      • Capabilities (multiplayer, number of players, etc)
      • Thumbnail, screenshots, box art
    • Trial Mode
      • Time limited sessions
      • Showcase in that time
      • Enable purchase in-game