XNA Version - 1.0 Refresh or 2.0

Jan 2, 2008 at 6:00 PM
Now that the holidays are over and our work continues, we need to come to a final consensus on which XNA version we will be using at this time. Of course, this is something we'll have to keep revisiting with each new XNA version (2.0 Refresh, 3.0, etc.), but until the 2.0 Refresh version, we need to make a decision on what to use here and now.

Clearly, the reason to stay away from 2.0 is the EULA restrictions. If we use 2.0, our choices are:
  • Use LIVE, and restrict the engine from being used by commercial games and hobbyist games alike. Having to install Game Studio just to play a game is just ridiculous, but as they say, "networking is a developer-only feature right now."
  • Use System.Net (or a managed C++ networking system), and disallow user communication. No text chat, no voice chat. Basically, just allow matchmaking without player communication. This would make any form of cooperative game nearly impossible.
  • Create a single-player only engine. (Not very feasible, as mikelid has already put time into the network layer and overall this would just limit our work)

To me, none of these options are really "acceptable."

If we go back to 1.0 Refresh, we are left with only one choice (ignoring the single-player only option): use System.Net and incorporate text chat or any other form of player communication.

There are other factors to consider here as well. The community as a whole has switched to 2.0, so this project would may be considered "dated" and we'll constantly be asked why we don't support 2.0 and why we require people to download Game Studio Express 1.0. We may also face integration issues if we decide to use any third-party XNA libraries.

At the end of the day, we're damned if we do and damned if we don't (switch back to 1.0 Refresh). I believe it was Sturm that mentioned we wouldn't have text chat functionality in a released form until 2.0 Refresh anyway. That's definitely an option to consider, though at the moment we have no guarantee that the EULA will change. EULA's are dictated by the legal folks, who rarely consider anything but their own best interests. We could play the Vegas odds, use 2.0 now, and release the full networking funcionality after the EULA is revised. And if it isn't revised, pull the communication functionality or revert to 1.0 Refresh then.

I don't know which path is better here, and quite frankly I wouldn't be happy with either. But that's the way the dice have fallen, so we need to try to pick the lesser of two evils.

How does everyone else feel on this topic?
Jan 2, 2008 at 6:07 PM
I think 2.0, only because otherwise we are dated. If the community has moved on, we need to move with them. If the engine has no users, whats the point of it (besides personal challenge!) ? I dont like either choice, but I feel we must go with 2.0.

With text chat, Im going to do it anyway, but add a flag in QSConstants that enables or disables it. Thsi way we play it safe, as we are not breaking the EULA, but if it changes no more work is needed.
Jan 2, 2008 at 6:36 PM
I would also state that we should stick with 2.0, but keep away from Live atm. I think the biggest pain point for Xna will be the integration with Live. If we create our own communication framework, for windows, and use that I think we are safer.

This of cause means that if someone wishes to use the framework they will not be able to create networking games for Xbox. This is temporaraly and only until a permanent solution is provided by the Xna team.
Coordinator
Jan 2, 2008 at 8:08 PM
Mike, we need to be careful, if we have anything in the engine that even allows for text chat, even disabled, we could be liable. Don't forget GTA3 Hot coffee controversy. Disabling it with a simple bool will likely not get us off the hook.
Jan 2, 2008 at 8:23 PM
Ok, good point. Ill code it, but not upload it. That way if ever changed, away we go!