Nidonocu

Hi there, I've been playing around with the framework and I have a little question for any MSFTies who can answer.

On the Windows side of things, if we want to call up any useful built in functions of Windows like say the common dialog box colour picker (for say, a player's car paint job) or a MessageBox (you've reached the end of the demo!), we can still do so by calling in to the Windows.Forms namespace.

On the Xbox 360 side though, any such UI we would have to recoded manually. However, as we all know, there are certain built in elements of UI on the 360 too in the form of the various Xbox Guide slide out panels.

Currently, access to one of these does exist in XNA (The save Location guide for letting the user choose a Memory Unit or HDD to save to), but access to others does not. Below is just a little list of features I've seen on the 360 and I'd like to know if they will be included in the framework. I'll probably repost this as a suggestion on Connect after a bit of discussion to see what others also would like to see included. (Just remember, no network features as we know that is definitely not on the cards any time soon.)

Virtual keyboard - Very important for letting games have characters or creations which can be named!

Guide awareness - Knowing when the guide (or right-hand side guide message) is active so that the game can auto-pause if needed or cut back on processing to improve guide performance. (In the channel 9 demo, I saw that the XNA Racer game had no idea the guide was visible and didn't bring up any pause menu while the developer was setting a custom soundtrack.)

Controller plugin state awareness - Sometimes unplugging/disconnecting the controller when you shouldn't makes the game flag up the 'reconnect controller' toast. Again, the game needs to be aware of this so it can auto-pause.

Right-hand side 'MessageGuides' - Some games (like Dead Rising) have presented all their file related UI in a flyout guide with custom text and options. It would be nice though not critical to see this available in XNA.

Custom soundtrack awareness and interaction - XACT obviously lets you mark music as background music already, however I'm not aware of any API's to interact with the custom soundtrack system and provide the 'pause for cut-scene or other event' functionality as seen in some games. (eg, Gears of War, pauses during its opening logos and loading screens)

Achievements - Although having achievements with a gamerscore is probably off the cards (how quickly would -that- get abused ;) ) Having 0G valued achievements for XNA games or what have you might be a nice thing if the logistics can be worked out. :)

Icon - On shots I've seen of the XNA menu system, entries for games don't seem to have any icons! It would be nice for the system to grab the icon from a resource asset in the game or maybe the 'icon' file used by Windows (after all, we have 256x256px icons now in Vista). Likewise, this icon could be used on the player's gamercard and other useful places in the ecosystem.

Presence - Finally, the ability to set the 'presence' information on the Gamer profile. Eg, 'Playing XNA Game - MyGame /n Level 1 /n Fighting the Boss'. It could also of course include messages for when debugging rather than playing and the option to hide the game name if you're keeping a title secret. :)



Re: XNA Framework Xbox 360 Guides in XNA

Ben Vanik

I agree with all of these - if there are feedback items for them, link them here so we can vote!

The virtual keyboard and guide awareness are important, and having a MessageBox-like helper for showing guide messages would also be nice. Achievements and presence seem like things reserved for the pro product, and icons may be difficult (seeing as the Xbox Live service contains copies of all the icons).

Note that it may be possible that Game.IsActive is false when the guide is up - any comments from MSFT

Hopefully these things will be in the final (we'll know in 5 days!) or come in the next release - they seem like fairly core elements!





Re: XNA Framework Xbox 360 Guides in XNA

Jim Perry

 Nidonocu wrote:
Virtual keyboard - Very important for letting games have characters or creations which can be named!

A component has been released for this. I'll have to dig up the link.

 Nidonocu wrote:
Controller plugin state awareness - Sometimes unplugging/disconnecting the controller when you shouldn't makes the game flag up the 'reconnect controller' toast. Again, the game needs to be aware of this so it can auto-pause.

I believe you can do this now using the GamePad class. See ms-help://MS.VSExpressCC.v80/MS.VSIPCC.v80/MS.XNAFX.1033/XNA/Input_HowTo_DetectControllerDisconnect.htm in the Help

 Nidonocu wrote:
Achievements - Although having achievements with a gamerscore is probably off the cards (how quickly would -that- get abused ;) ) Having 0G valued achievements for XNA games or what have you might be a nice thing if the logistics can be worked out. :)

Without access to Live this is impossible for now. If the XNA Arcade is actually implemented, this could be done I'm sure. I'm keeping my fingers crossed.

 Nidonocu wrote:
Presence - Finally, the ability to set the 'presence' information on the Gamer profile. Eg, 'Playing XNA Game - MyGame /n Level 1 /n Fighting the Boss'. It could also of course include messages for when debugging rather than playing and the option to hide the game name if you're keeping a title secret. :)

Another Live thing I believe.






Re: XNA Framework Xbox 360 Guides in XNA

Ben Vanik

Jim Perry wrote:
Nidonocu wrote:
Virtual keyboard - Very important for letting games have characters or creations which can be named!

A component has been released for this. I'll have to dig up the link.

I haven't seen this, but I'm guessing with 99% certainty that this isn't using the XB360's standard virtual keyboard





Re: XNA Framework Xbox 360 Guides in XNA

Jim Perry

Correct, it's a game component.

Found it.






Re: XNA Framework Xbox 360 Guides in XNA

Nidonocu

That's not a bad component, but indeed, its not the all masterful much loved build in keyboard. ;)





Re: XNA Framework Xbox 360 Guides in XNA

Nidonocu

Jim Perry wrote:

I believe you can do this now using the GamePad class. See here in the Help

That link doesn't seem to want to be clickable, can you copy-paste the ms-help url path





Re: XNA Framework Xbox 360 Guides in XNA

Jim Perry

Edited original post




Re: XNA Framework Xbox 360 Guides in XNA

Nidonocu

Got it now! Thanks :) Though still MSFTies if you're out there.. give us the Virtual Keyboard!



Re: XNA Framework Xbox 360 Guides in XNA

Shawn Hargreaves - MSFT

That's certainly something we'll consider for the next version. It just didn't fit the schedule for V1, unfortunately :-(





Re: XNA Framework Xbox 360 Guides in XNA

Jim Perry

You're going to have a heck of a "to do" list for the next version already.




Re: XNA Framework Xbox 360 Guides in XNA

Shawn Hargreaves - MSFT

Jim Perry wrote:
You're going to have a heck of a "to do" list for the next version already.


What, you mean we don't just get to take this next year off





Re: XNA Framework Xbox 360 Guides in XNA

Jim Perry

Are you kidding! ! < crack > Back to work!




Re: XNA Framework Xbox 360 Guides in XNA

Brandon Bloom

Regarding automatic pausing, please vote for this feedback item:

https://connect.microsoft.com/feedback/ViewFeedback.aspx FeedbackID=247203&SiteID=226





Re: XNA Framework Xbox 360 Guides in XNA

Jon Watte

Controller plugin state awareness


The gamepadstate has that built right in. It's just a boolean you test each time you read the gamepad. If you don't pause correctly based on this, your game is not following the rules.

Hey: how about a "tech cert" document for XNA games :-)