« IGDA Leadership Forum | Main | GameFest »

August 09, 2007

Comments

greggman

Interesting article. It certainly seems all rah rah rah, XNA is the best thing ever.

"Fristrom believes professional studios and game developers will have no choice but to evolve beyond C++ and embrace managed languages like C# in XNA"

Until they are cross platform do you really think that is ever going to happen? C/C++ is currently they only truely cross platform language right now. Depending on the game I can write the majority of the game code once and it will run on 360, PS3, PC and Wii. I can't do that in C# and will likely never be able to and there is certainly nothing on the horizon that appears to have that potential (python? ruby? lua? not gonna happen)

Another question that came up during the article is how much of your love of XNA is C# and how much is the libraries? Except for the fact that the XNA libraries run on 360 would it be any slower and possibly even faster to use other libraries?

Some have physics built in for example. Others have level editing tools and/or animation editing tools. Without taking price into consideration, in which environment could I get a prototype up in quicker. UE3? XNA? Torque? Virtools? SDL? I don't even know all the libraries available but there's a bunch others out there.

And now through the huge filter of my own bias, how cool is C# for console game dev **really**?? :-p I ask because you brought up memory management and performance issues in a previous post. How much work has solving those issue been and did solving those issues negate any of the benefits of C#.

I ask because for example I know Java development on cellphones was a joke. At least at the beginning in order to make even a small game run in the limited memory of the early generations of Java cell phones you had to have 1 and only 1 class because each class defintion used 2k of memory regardless of number of fields.

You had to have every variable be 1 or 2 letters because the variable names are left in the executable.

You had to do no memory allocation, pre allocate all your buffers and manager them yourself because otherwise you could both run out of memory and you could have your game pause for minutes when Java decided to garbage collect.

So, the first issue removed object orientedness from the code. So much for the benefit of a higher level language. The second issue made the code unreadable, so much for the benefit over say assembly. The 3rd issue made the garbage collection benefits of a mananged language disappear. Pre-allocated pools are no harder in C++. In the end there was no benefit to Java.

I'm not saying C# sucks. In fact I'm a fan. I'm also a big fan of .NET But I'm not sold on either for console development because of all those issues.

ActiveNick

Hi, since I wrote the article I thought I would answer some of your concerns.

First of all, you need to know that while I'm a huge fan of .NET and XNA from *my* point of view, based on my conversations at GDC I thought it had no chance. No one seemed to care, which is why I decide to tackle this article.

Based on the responses I got, my views on XNA for commercial games got more and more positive. And trust me, i did not misrepresent the interviewees, I left their answers intact and that is why the article is so huge. I did not want to edit them out of context.

There are some answers I could not put in because someone else had said something similar, it did not contribute as much or was less relevant to the topic at hand. But I can assure you that I did not discard answers because they were "too negative for XNA". That is why I expressely included sections on XNA limitations, what you cannot do, what is missing, and such.

Austin clearly stated that for him XNA is mainly about prototyping, and that has a lot of value to him and his studio. Williams rose the point that "Microsoft cross-platform" is good enough for most since most studios could live very well on massive revenues from Windows and Xbox 360 sales. If someone wants true multiplatform, then yes, they would have to rewrite in C++, but at this point, the hard part's over since extensive iterations with XNA have yielded a great and fun game.

Jamie did not say developers will have no choice but adopt XNA, he said "embrace managed languages like C# and XNA". It's true that today there is no managed language/framework as efficient as XNA that covers all gaming platforms, but things can change. XNA will certainly give credibility to managed code in games, and that might incite other vendors to provide their own managed solutions, and for companies like sony, Nintendo and Microsoft to support more than just C++ with their SDKs.

Koster said it best: The first XNA hit will silence the doubters.

greggman

No, the first XNA hit will not silence doubters anymore than the 6 LISP hits (Crash Bandcoot 1, 2, 3 and Jak & Daxter 1, 2 and 3) have silenced doubters.

As for XNA and prototyping again it comes down to "compared to what?" C++ and no libraries. Yea, XNA wins. Compared to UE3 or 3D Game Studio or some even more capable environment? I'm not convinced. Even compared to C++ and a decent library I'm not sure what XNA buys you.

I'm not saying XNA sucks all by itself. I'm saying it's basically a lot of hype over nothing. It's not better in any objective way to plenty of other choices and it's objectively worse in several areas.

> most studios could live very well on massive revenues from Windows and Xbox 360 sales

That's a pretty loaded statement. Especially with Wii currently winning (check EA's take on it for reference)

Jamie Fristrom

What you say is true regarding the advantages of managed code being diminished once you bring it to the 360, although it sounds like it's nowhere near as bad as the cellphone/java thing. I still greatly prefer C# over C++. The build times and refactoring tools alone...

But I'm certainly not asking any other game studios to switch. I doubt it would make sense for them when they already have a large investment in existing tech; and it gives us a differentiating position which might turn out to be a competitive advantage. We're the "Premiere XNA studio" right now, if you will.

Bob Bob

@greggman:
Have you EVER tried to do anything cross platform in C++? If you haven't then I understand you buying the silly hype that it's really cross platform. Now here's the reality: it's not. It's not even close. It is a pain in the ass to write cross-platform stuff in C++. And in all reality, if you want cross platform C++, most of it ends up looking more like just vanilla C. I have written cross platform stuff. It honestly wasn't worth the hassle.

And no, you can't write something in C++, change a couple lines here and there and boom! have it run on a wii and ps3 and xbox360. You have to do a lot of footwork to just even get started.

As for XNA. It's a dumbed down managed directx. An XBOX 360 "retained mode" API. Its windows support is abysmal at best. But yes, it's fantastic for people who want to just mess around and say "Look, I made this game for my xbox!" In that respect, it's amazing. In reality, it's very limiting. Of course, you can bypass many of the nifty features to get more control, but then what's the point? Frankly, it has a place, but in professional development, I don't agree. BUT! Keep in mind, this is NOT the same as saying .NET/C# doesn't belong in professional game dev. If Microsoft would just suck it up, realize we're not all owners of xbox 360s and that not everyone is interested in writing software for the 360 and produce a directx for managed languages that is worthwhile, then I expect it'd be taken somewhat more seriously (and no, MDX 1.1 is a joke, don't even bother mentioning it).

The comments to this entry are closed.

The Games

  • Energy Hook
    3D grappling-and-swinging-and-running-on-walls-and-doing-tricks ... with a jetpack ... for style!

Jamie's Bragging Rights

  • Spider-Man 2
    The best superhero games of all time Game Informer
    Top five games of all time Yahtzee Croshaw
    Top five superhero games of all time MSNBC
    Top 100 PS2 games of all time Official Playstation 2 Magazine
    1001 Games You Must Play Before You Die Nomination for Excellence in Gameplay Engineering Academy of Interactive Arts & Sciences
  • Schizoid
    Penny Arcade PAX 10 Award
    Nominated for XBLA Best Original Game
    Nominated for XBLA Best Co-Op Game