A little guide to get started with the XNA exporter for Xbox

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Hello folks,

    I helped beta test the exporter so I thought I'd pass on some (hopefully) useful info which I learned during the process. I haven't tried using the exporter for Windows Phone yet, so for now this just covers the Xbox side of things. Some of this might be covered in the documentation, but I'll share it anyway.

    First off, you'll be creating games for Xbox Live Indie Games, or XBLIG: Please login to see this link.
    The main difference between these and something like the iOS app store is that with XBLIG, your game is peer reviewed by the community before it can appear on the store.

    There's some good things about this process; you'll often get useful feedback by people who have not only played your game, but make them. As a member you can also review games yourself. If you have a game waiting to be reviewed by others, you can often offer to review other people's games in exchange for them to review yours. This speeds along the review process, which is completely dependent on how quickly people decide to review your game. Expect it to take from 1 week to 1 month.

    You can also submit your game to the community for play testing, which I've found really useful. Once you submit your game, it will automatically create a forum post for people with a developer account to comment on your game.

    These checklists are a good place to start when you work with the XNA exporter to make sure your game will pass the requirements. They are what your peers will use to review your game.

    Please login to see this link.
    This is the so called 'evil checklist'. Basically, if your game fails anything on here, it will fail- meaning you'll have to correct it and resubmit the game. So before you submit anything for review, test it against this yourself.

    Please login to see this link.
    This is the 'not so evil checklist'. Think of them as guidelines. Things on here won't fail your game, but they are recommended.

    I'll cover some things that you probably won't have encountered with before working with MMF.

    Safe Area: Because everyone's tv is different, you must avoid putting important elements of your game too close to the edge of the visible screen. This usually affects the UI & HUD the most. Leave a gap between the edges of the screen and where your HUD begins. This is important because some tvs cut off portions of the screen.

    Trial Mode: With XBLIG, trial modes are built into the game. All XBLIG have a trial mode, which people can download for free- then if they decide to get the full version, the game will switch to normal mode. You can access this flag with the XNA object. So you'll want to check for the trial mode and then limit the content accordingly. You can also call up the purchase interface with the gamer services object- so you can make a 'buy' button.

    Control: You have to make your game respond to all controllers when the player first starts it. So just testing controller 1 is not enough. Most people include a start screen with a 'press start' type instruction. Then whichever controller presses start- the game will assign control to that controller. You'll have to code this into your games too.

    The player index and the index you use to test the controllers are not the same. The player index is 1-4 as you might expect- this refers to the possible slots of the players. But because you can test more than 1 controller at once, the system to test buttons is a bit different. For this you use a 1-15 system. I've noted all the possible combinations here- the value on the left is the 1-15 index, the other numbers are the numbers of the controllers.

    With this, you can test all possible combination of controllers. So for example if you had a 2 player game, you would probably want the menu to be able to controlled by both the controllers assigned to the 2 players playing. So you would have a selection screen which gathered the info on the controllers first. Then you could store this as a 1-15 value using a global value. So if controllers 1 & 3 were the ones being used to play, you would store the value 5. Then use this global value to test against with the controller object for the controls in your menu.

    Save Data: If your game uses an ini or other data saving object, you need the player to be signed in to access it. If the player is not signed in and the ini is called, visual studio will present you with an error. So you need to test if a player is signed in before accessing or writing to an ini. To test if a specific player is signed in, you can use 'compare two values' then compare

    Quote

    Len( Alias$( "Gamer Services", 1) )
    Greater
    0


    Where 1 is the player index. So comparing the length of the player's alias- if it's above 0 then they're signed in. At the moment I think this is the only way to see if a specific player is signed in, but correct me if I'm wrong.

    Things do get more complicated with more than 1 player, as you have to code which player's save data to use by setting the 'system player' in the XNA object. Hopefully this gives you a good enough overview to understand the process behind it though.

    So hopefully this is useful. I'm gonna go make some games now :)

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • Incredibly useful. Thank you colej!

    I think the money is in Windows Phone 7, but I just can't resist the thrill of playing my own game on a games console after all these years...

  • True, windows phone is a pretty small percentage, but to a small developer all sales add up.

    Lets take Cole for example -- He has been able to reuse most of the work he did on Megacity and port it over to Flash, iOS and the Xbox.
    I also know he is a beta tester for the Android module and porting it over to that platform.
    So he has multiple revenue streams for sales and exposure.

    Make a little on this platform, make a little on that platform and hopefully it adds up to a reasonable amount of sales.

    This also would be a great portfolio item if Cole ever goes to look for investors or work in the game industry.

    So what does my post mean? I am not sure.
    But if a developer spent months creating a masterpiece iPhone game and it was popular, there wouldn't be much harm to port it over to Windows Phone.
    As long as it didn't take them a lot of additional work -- which it wouldn't if you thought about that from the start and designed it correctly and used something like Multimedia Fusion 2 where you can export out to the other platforms pretty easily.

    Just my 2 cents.

    Please login to see this link.

  • ^ What Jeff said. It's another string to the bow essentially. A massive benefit of using mmf is being able to port to all these platforms easily, and soon we'll have Android to port to as well.

    The XBLIG platform is definitely worth considering, you might be surprised by how many people do check out the indie games.

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • Great bit of information - I've just bought the XNA module and looking forward to re-writing some of my old games for it. Quick question to start off however - what's considered an adequate safe-zone in pixels? Is there a specific limit, or is it flexible?

    IndieDB Page: Please login to see this link.
    Development Blog: Please login to see this link.

  • I've seen some people on the apphub forums suggest 80% for really important info, 90% for everything else.

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • Great stuff, wasn't expecting such a prompt answer at midnight!

    I notice there's also some debate as to resolution? Most suggestions point to using 1080 as standard, but is it safe to use 720 and let the console up-scale?

    It looks as though the released Zombie game is in 1080 and it seems to work quite nicely even with a large number of actives on screen. Congrats to the developer of that Zombie game btw - I played that quite a bit without even realising it was a CT product.

    IndieDB Page: Please login to see this link.
    Development Blog: Please login to see this link.

  • Also, regarding resolution - if the screen size is set to a lower res (maintaining aspect ratio) would it still resize appropriately and look okay? Or is it best to stick to a HD resolution setting of 1080 or 720 and manually draw the assets to a larger size?

    IndieDB Page: Please login to see this link.
    Development Blog: Please login to see this link.

  • The resizing seems to work fine. I'm currently in the process of converting a flash game with a weird resolution and it fills the screen just fine. I don't quite know what the review policies are for 'odd' resolutions, I can't find anything excluding them though. If you want to be safe work in 1280x720.

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • Okay, well I've set everything up and have managed to get an old game working on my xbox. It's very touchy with the fonts you use and make sure you add the information to the properties/XNA tab, or it draws up an error when compiling. The gamepad controller is very easy to use which is great!

    Will run some screen resolution tests this afternoon and see what looks good!

    IndieDB Page: Please login to see this link.
    Development Blog: Please login to see this link.

  • I don't understand how the ini work with the xna i force the player to sign in, but how i make save in the container? it will be usefull a tutorial.

    Please login to see this link.

  • ok seems every time i put an ini extension file in a frame it get to be stored on the profile that is declared as player 1 if i make gamepad two being the player 1 save on his profile, so i want to choose among the profiles that are active, how can i do that? for my reason i have to keep gamepad 2 to be associate with player 2 and so on in the multiplayer mode so if i need to store save game for each character profile how can i do that?
    for the high score it could be needed to have a ini stored on the global container so the high score are the same for all profiles.

    Please login to see this link.

  • You can use the 'set system player' in the xna object to change which player's data is to be loaded.

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • Also, if you are outside the US, to get paid you first have to fill in some tax related documents: Please login to see this link.

    Creator of Please login to see this link. & Please login to see this link.. Always working on some exciting game development projects! Check out the latest at : Please login to see this link.

    Follow me on twitter Please login to see this link.

  • I thought I should show my head around 'ere considering I've been using ye products for a while now.
    Anyway, straight to the point, I've just bought the XNA exporter and I'm just a little confused on this "testing controllers/assign controllers" merlark. (Took me a ickle while to figure out movement using the pads :3)

    Anyway, so let me get this straight, if player 1 presses start you have to test for each controller? So like for players, 1,2,4 and 8? I'm just a bit baffled with the whole thing, considering I'm used to key presses :P (Working with flash and all)

    Anyway yeah, tis all. I think I'll get the other stuff sorted out like, Gamer Services and other stuff. It's just a big step working with this XNA exporter from the flash one.
    -Sinclairian

    (Yay for first post.)

    -Newgrounds site: Please login to see this link.

  • I designed the Gamepad object to take the problem of testing all the controllers into account.
    The parameter you pass to the function to test the gamepad is NOT the number of the player, but a binary number in which each bit represents a player to test. bit 1=player 1, bit 2=player 2, bit 3=player 3, bit 4=player 4.
    So if you want to test ALL the players at the same time, just pass 15, and your game will work with whatever gamepad is activated.

    If your game uses INI, or Hiscores, you must display the device selector panel at the beginning of your application. So you must detect, as you say, the player connected. Do it in your menu screen, by using the "gamepad is connected" condition. Warning, this condition wants the number of the player based on ZERO (0=player 1, 1= player 2...) I know this is bad, but it is too late to change. Once the player is detected, pass it to the XNA object and all the system dialogs will use this gamepad.
    Please read the documentation of the XNA object (as well as the XNA documentation in MMF help, Distributing your application section).

    Francois
    PM: Please login to see this link.

  • Ah, aye I think I might have gotten grips with it now =). Thanks for the heads up.

    Only other issue I seem to be having is opening the file in Visual Basic 2010 Express. For some odd reason, it keeps saying,

    "The application for project '(directory)\FILENAME.csproj' is not installed. Make sure the application for the project type (.csproj) is installed."

    Any clues? I've installed everything that is stated on the list. Mmm. (And also all the service packs for Express)
    -Sinclairian

    -Newgrounds site: Please login to see this link.

  • Can you ZIP your XNA MMF project and send it to me?
    And correction to what I said earlier.
    You cannot detect the player using the game with the "Gamepad is connected" condition. Your game will be rejected because the tester activate several gamepads and enter the game.
    You must detect directly which gamepad moves the options in your menu (by detecting which player presses A for example).

    Francois
    PM: Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!