Welcome to MSDN Blogs Sign in | Join | Help

JoeN's Blog

XNA Shaman
Stay on target, stay on target...

Kind of a strange title I know, but I started to the write a long blog entry about project systems (which I will post at some stage) but I wanted to get to the heart of a matter that members of the team are currently talking about.

The issue we are discussing is how important building a game that is guaranteed to run on both Windows and Xbox is to you. We expect many people to fall into the following working styles:

  • Develop primarily for Windows, at some stage build the game for Xbox 360.
  • Develop primarily for Xbox 360, at some stage build the game for Windows.

We are debating adding a third option to the list above - something like "develop for both platforms at the same time".  Essentially this means making sure that as you program we modify the experience to make sure that you don't accidentally start using platform specific functionality (e.g. a mouse on the Xbox 360, reference a platform specific assembly etc).

To enable this option we would have to add a fair bit of functionality to the IDE - Intellisense filters, referenced assembly checks, perhaps some FxCop type post processing to get this right etc. It certainly is technically viable and it would be easy for us to dive into this work but I wanted to get people's reaction to this idea.

Is the third option a priority for you, or is it more of a nicety? The XNA Game Studio Express team is focused on making sure that games run on the platforms we support, so our natural tendency is to build out the third option, but I'm not sure that our customers will value it as highly as we do (or perhaps prefer us to work on other features).

We do want to address the current issue of having to have two projects (one for each platform), but how far do we go towards making sure that you "stay on the rails" if you want to build a game that runs on both Windows and Xbox 360?

I love to get any feedback on this issue - thanks.

Posted: Wednesday, November 29, 2006 9:21 PM by JoeN

Comments

Daniel Tang said:

I think this is a great idea--in fact, I was kind of wondering why it wasn't already done, but I guess I have my answer now.  As to whether or not it's actually a priority or convenience, I think that would depend on what other features were in competition.  If, say, it was playing against networking support on the 360, I'd guess that most people (myself included) would gladly take that over developing for both platforms at the same time; however, from what I've heard, I'd guess networking is a significantly larger problem (more unknowns, security issues?).

I haven't started messing around with XNA until this past month, so I have a bit less knowledge about what sort of features will be coming out after GSE ships.  Considering this feature alone, though, I would say integrated support for simultaneous development on both platforms would add a very nice benefit over "just" a well-documented framework.

By the way, I notice you have a history with Anson and Luke.  I was an intern with VC# this summer.  :)

# November 30, 2006 2:03 AM

Zyxil said:

As Daniel says, priorities vs other features.

My vote is for vb.net compatibility over simultaneous dual platform support.  But it is a great feature and should be near the top of the list.

# November 30, 2006 8:44 AM

JoelMartinez said:

Just wanted to cast my vote in with what Daniel said.  Other features (networking, camera, sharing over xbl, etc.) would take a higher priority for me.  It's not too difficult to set up the two separate projects.

But just to be clear, I do believe that your "option 3" is essential once you can get around to it :-)

# November 30, 2006 9:10 AM

sciolist said:

Well, for me personally It doesn't bother me too much to  be careful with references and what not.. It would be a very nice touch, since you'll undoubtedly have confused developers beating at your door when their code doesn't do well on the 360.

Soon enough it's going to be a vital point, but I'll agree with mr. Tang in that there are higher priorities on the list.

# November 30, 2006 11:58 AM

Machaira said:

I'm with Joel on this one. I'm not so concerned about the camera as I am about networking on the 360. Even if it were only System Link would be nice. I'm going to mention XNA Live Arcade as a much desired feature again here as well. :D

# December 1, 2006 8:07 AM

Richard Barnes said:

JoeN I have to say having the ability to have a single code base for my games that is cross platform compatible without having to maintain two separate code repositories is very important. I explored writing code that used compiler directives to maintain an input class. The input class remapped based upon platform it is running on and allowed conversion from joypad to keyboard/mouse seemlessly. While I was able to get it to work, I hated having to link to an external file that may change or be reworked by another team member and then encapsulate/overload for changes that needed to be made for a specific game. Although I do agree Machaira comment about networking for XNA has a bright future in making games that can be played on the PC against or with players on the 360 (meaning make sure the networking is compatible with each other derived from direct play, and does not have funky xbox live requirements).

# December 14, 2006 12:31 PM
Anonymous comments are disabled
Page view tracker