XNA Creators Club Online
Page 1 of 1 (8 items)
Sort Posts: Previous Next

Limitations on "normal" networking?

Last post 12/15/2007 6:06 AM by ajmiles. 7 replies.
  • 12/7/2007 12:30 PM

    Limitations on "normal" networking?

    What, if any, limitations does XNA 2.0 impose on the network operations that our XNA apps are allowed to perform on the PC and on the XBox? For example, I have already created a web reference and made SOAP calls to a web service from my application without any trouble on the PC. So it seems that the fact that my CLR code is running as an XNA application is not preventing me from using the "normal" networking features of Dot Net 2.0, which is great!

    But will this also work on the XBox? If I deploy this same app to the XBox is it still going to be able to make a SOAP call to a remote server? Or is the XBox "locked down" and only allowed to communicate with a predetermined set of services? If so, does this limitation also apply to raw TCP and UDP networking? Will my code on the XBox be allowed to make arbitrary socket connections to public IP addresses?

    Thanks for any information!

  • 12/7/2007 12:32 PM In reply to

    Re: Limitations on "normal" networking?

    The Xbox doesn't have System.Net at all. You only have the LIVE API to work with. You are not able to make any connections using IP addresses at all. You don't have raw TCP or UDP networking. All you have is what is exposed. It's plenty for multiplayer gaming, but you don't get to access external connections or websites or things of that nature.
  • 12/7/2007 12:38 PM In reply to

    Re: Limitations on "normal" networking?

    Thanks very much for the info, Nick!

    How can we easily see what is and isn't available on the XBox? When I switch to the "Xbox 360" configuration target and rebuild my solution (the one mentioned above that is making a SOAP web service call), it still compiles without errors. From what you're saying, I guess it would fail when deployed to the XBox because it will have dependencies on assemblies that simply aren't there on the XBox. Is that correct? I would have hoped that the compile for the "Xbox 360" platform would have failed with errors, so that I could see that these assemblies aren't available for the platform in question.

    Is there a good way to see up front what is and isn't going to be available when deployed?

  • 12/7/2007 12:42 PM In reply to

    Re: Limitations on "normal" networking?

    Are you using a library that does the actual networking calls for you? That would be why no errors occur is because the methods you are calling still exist, but their underlying implementations won't work on Xbox.

    If you check out any of the MSDN docs, they will say XNA Framework towards the bottom if it is supported on the Xbox 360. Most namespaces are there. The main two that aren't would be System.Net and System.Reflection.Emit. That or compiling. The Xbox 360 project will only let you add references available to that platform or custom libraries. So you normally will get compile time errors. For instance, try to make a call to Mouse.GetState() and you'll see that particular class is unavailable on the Xbox 360.
  • 12/7/2007 12:43 PM In reply to

    Re: Limitations on "normal" networking?

    Just as a guide for others with this same kind of question...

    At least here is a good reference inside of your XNA 2.0 help that explicitly lists what's available in the Xbox 360 version of the compact .net framework:

    ms-help://MS.VSExpressCC.v80/MS.VSIPCC.v80/MS.XNAGS.1033/XNA/Net_CF_Overview.htm

     

  • 12/7/2007 12:49 PM In reply to

    Re: Limitations on "normal" networking?

    No, I'm not using a library. I still don't know why the XBox 360 compile succeeds in this case, but it doesn't matter - everything you said makes sense and I can now easily see which namespaces to avoid. Thanks for your help, Nick.
  • 12/14/2007 10:34 PM In reply to

    Re: Limitations on "normal" networking?

    I went to install XNA 2.0 Game Studio today, but noticed this in the license agreement:
    ii.    Commercial Networked Programs. In the absence of a specific agreement signed by both you and Microsoft which specifically grants you the rights to develop commercial programs that connect to any network, including Xbox Live and/or Games for Windows Live, you may not use the software to develop commercial programs that connect to any network, including Xbox Live and/or Games for Windows Live.
    However, that seems to be under a header titled 'b.    Programs developed for the Xbox 360 Platform'

    Would I be correct in interpreting this to mean that we are not restricted from making commercial windows games which use normal .NET networking stuff? Or do headers have no legal meaning? I don't see anything actually in the clause which limits it to XBox games, and that has me a little worried.
  • 12/15/2007 6:06 AM In reply to

    Re: Limitations on "normal" networking?

    This sort of thing was mentioned in this thread: http://forums.xna.com/thread/36760.aspx

    What you should draw from that thread is that you aren't going to get an answer to your question from anyone that actually would "appear" to have any authority on the subject, like a Microsoft employee. You might get lots of answers from people that can provide their own interpretations of the EULA, most of which I suspect (here's mine...) will conclude that you were correct, and that it was referring to the 360 specifically in that paragraph.

    What I can say for sure is that use of System.Net was never precluded in 1.0 and has often been suggested by all as a means for achieving network capability on Windows. But again, as the other thread highlights, if you want an absolutely definitive 100% answer to the question you're going to need a lawyer and some money. In my opinion though, the same one expressed by members of the XNA team before (and since?) 2.0 came out, if you want networking on Windows, use System.Net, given that, I would say your interpretation is correct.

Page 1 of 1 (8 items) Previous Next