Game Development Community

ZaBingo! Torque X Game Development Diary 4

by John Kanalakis · 06/05/2009 (10:04 pm) · 3 comments


This is the final installment of the Torque X Game-in-a-week Blog...

Preparing for Xbox 360 & Commercial Release

Well, this is it… the fourth and final post in the series of creating an XNA game using Torque X from concept to release on the Xbox Live Comminity Games Marketplace. The time it took to go from concept to Beta release was about five days, though I’m sure it could have been half of that without the detailed blogging.

We started with a paper concept that mapped out all the key elements, created the game foundation, added some basic art, then focused completely on game play. When game play was finally tuned, the rest of the art poured in, some setup screens and GUI were added, and sounds were added. Now it’s time to run this on the Xbox 360.

Adapting to the Television

What looks great on your PC monitor might not look as good on a Television. Plus, there are many types of televisions with different resolutions, aspect ratios, and brightness.

Color
It seems to me that dark colors appear even darker on many televisions. For example, dark green looks great on my laptop, but comes out as nearly black on my test televisions. Likewise, lighter colors, such as pink and light yellow appear lighter; almost white. So, you’re left with the mid-range of colors on the palette.

Aspect Ratio
There’s a good mix of televisions that are Standard Definition 4:3 and High Definition 16:9. The Xbox 360 does a great job of formatting your game to fit properly on the consumer television, regardless of your game’s aspect ratio, by framing it within a letter-box (horizontal bars) or curtains (vertical bars). If you want your game to fit perfectly, you can create two sets of screens: one set 4:3 and one set 16:9. In the game class’ BeginRun() method, you can get the aspect ratio from the graphics device and show the appropriate set of screens. Again, this is double work. I typically favor High-Definition display and set all of my screens to 16:9, letting the Xbox 360 add the letter-boxing as needed. In the TorqueSettings.xml, just set the screen resolution to:
<PreferredBackBufferHeight>720</PreferredBackBufferHeight>
<PreferredBackBufferWidth>1280</PreferredBackBufferWidth>
Also, if you choose the 16:9 aspect ratio, you will want to update the Torque X 2D Builder to match as well. When you start the 2D Builder, select Edit+Preferences from the menu and then set the Design Resolution for 1280,720. Also, click an empty are of the scene, go to the Edit tab and then set the Camera property to 160x90.

Sizes
This is probably obvious, but needs to be mentioned. Most games sit at some distance from a television as opposed to a laptop or computer screen. So, screen objects and fonts need to be large and high-contrast so they can be easily seen from a distance.

Safe Area
Many televisions have a wide and unpredictable over-scan area where 5 to 10% of the outer edges of the game will fall off the edge of the television. Be sure to keep critical game information, such as score, lives, ammo, etc. within this range. Torque X Builder 2D renders a box that identifies this area. And, in your game, you can add a line of code to render similar boxes.
GUICanvas.Instance.SafeAreaRendering = GUICanvas.SafeAreas.ActionTitleOutline;

Converting the Game Project to Xbox 360

Converting the game project to Xbox 360 is easy, but has a small twist that makes it seem difficult. Start in Visual Studio by clicking your Game project node in the Solution Explorer. Then, right-click it and choose “Create copy of project for Xbox 360”. If you have the pro version of Torque X, you need to repeat the process for the TorqueCore and Torque2D projects too – also – be sure to update the assembly references in all projects to point to the Xbox projects. Next, you need to update the Build Configuration Manager. Select Build + Configuration Manager… from the menu and make sure that the x86 projects are set to x86 and the Xbox360 projects are only building as Xbox360. For some reason, Visual Studio always messes this up and you end up with a compiler error about a missing OutputPath.

I put together a short video of this process a while ago that demonstrates the conversion.



Xbox Live Gamer Services

There are a lot of Xbox services that you can tap into. It all starts with adding the namespace reference to the top of your Game.cs file.
using Microsoft.Xna.Framework.GamerServices;
In the Game.cs file, find your BeginRun() method and add the gamer services component.
Components.Add(new GamerServicesComponent(this));
Now you can make use of the many available services. If you want to display the Sign-In UI, then call…
if (Gamer.SignedInGamers[0] != null)
{
    Gamer.SignedInGamers[0].Presence.PresenceMode = GamerPresenceMode.AtMenu;
}
On the Xbox, a game can share what the player is doing at any time so that friends can see. If you want your game to share the player’s score with others, try this…
Gamer.SignedInGamers[0].Presence.PresenceMode = GamerPresenceMode.Score;
Gamer.SignedInGamers[0].Presence.PresenceValue = Game.Instance.Score;
You can find out if your game is in trial mode, for example: to show a different background with a commercial.
if( Guide.IsTrialMode )
    Bitmap = @"dataimagesMainMenuBuy";
else
    Bitmap = @"dataimagesMainMenu";
And then show the Marketplace buying widget on a button push…
Guide.ShowMarketplace(PlayerIndex.One);
There’s a lot more you can do, so be sure to check out the API.

Final Media Required

www.envygames.com/share/icon.jpgThumbnail
The thumbnail is the game’s icon that appears in the games list on the Xbox 360 Dashboard. You can always use the default icon, but having your own icon is definitely preferred. The image must be a JPEG file sized to 64x64 pixels and less than 16KB file size. You set the thumbnail in the project properties view, at the bottom of the Application tab.

www.envygames.com/share/boxart.jpgBoxart
The box art is your most prominent piece of advertising and is what most customers will notice first in the games catalog. Although the required file format is JPEG and sized to 584x700 pixels and less than 150KB file size, it is typically reduced to a smaller size when customers first notice it, so make sure it will still be noticeable when reduced.

Screenshots & Video
When customers want to know more about your game, before downloading and trying it, they enter a details page for your game. This has the game description, three pictures, and a video that you can use to convince a customer to download your game and try it. The pictures must be in JPEG format and sized to 1000x562 pixels. You can also upload a preview video or game trailer to MSN Video.

Create a .ccgame to Share

Although you can create an installer for your game, the preferred distribution method (and only distribution method for Xbox 360) is to create a .ccgame package. This is essentially a self-extracting and installing package file that you can share. This is also the package that you will ultimately upload for release on Xbox Live Community Games for play testing and for release.
To create a .ccgame, select your Xbox 360 game project in Visual Studio and select Build + Package game as XNA Creators Club Game from the menu. The package will be automatically created and saved to your output folder, where your .exe file was created.

Submitting the game into Play Testing

Before you release your game to the Xbox Live Community Games Marketplace, you really should run through play testing first. This lets others try out your game and test it for bugs. You can always take down your game and replace it with another version as you make progress, but, it is expected that what you post for testing is essentially ready for release. If you post a game that is not really ready to be shared, the testers will not be kind with their responses.

Another point of frustration can be the lack of testers. You kind of need to sell your game. So, have some good artwork for the thumbnail image, have a good description, create a video and post it. Also, test out other games; there’s a lot of quid-pro-quo that goes on.

When you’re ready, go to creators.xna.com and select Games + Submit Game from the top menu bar. Click the “Add Project” button, enter a title, then click the “Add Game” button.

www.envygames.com/share/xblcg_submit.jpg

Enter the description, genre, number of player, and links to online pictures and videos.

Submitting the game into Xbox Live Community Games

After a week or so of play testing, it will be moved to the marketplace where any of the 16 million Xbox Live customers can download the game, run a free trial, and ideally buy it. The game will be available in over a dozen countries. You get 8 minutes to impress the potential buyer. Remember the Guide.IsTrialMode gamer service. Use it to make those 8 minutes count.
Pricing is also the next challenge. You can set your price to 200, 400, or 800 points, translated to about: $2.50, $5.00, and $10.00, respectively. Keep your price realistic and see what other similar games are going for to get an idea.

Conclusion

This is the end of a week-long process of creating a new Torque X game from concept to public release, complete with Tilemap features, UI, sounds, and support for a unique game controller. This post finally ends with the public testing release of ZaBingo! Feel free to download the game, give it a try, and post feedback on the XNA Creator’s Club Forums. After a week of play testing and feedback, I'll make some minor fixes and then upload to the Xbox Live Community Games Marketplace, where millions of Xbox Live customers can try it out and ideally buy it. Also, the final version released will include a link to download the full source game code once purchased... just a little bonus for game developers.

The game is available for anyone to download and try. (9.6 MB .ccgame file)

That's all for now, thanks for reading!

Diary History

#4 Preparing for Xbox 360 & Commercial Release
#3 Adding User Interface, Sound, and Effects
#2 Focus on Core Game Play
#1 Designing and Preparing the Game

John Kanalakis
www.envygames.com

About the author

John Kanalakis is the owner of EnvyGames, an independent game development studio in Silicon Valley that produces games and tools for Xbox 360, Windows, and the Web.


#1
06/05/2009 (10:54 pm)
Another great blog John. Well done, sorry to see the mini series is finished.
#2
06/06/2009 (1:40 am)
Indeed. Thumbs Up!
#3
06/06/2009 (12:01 pm)
Wow, fastest Torque project I've seen! Congrats John!