Archive for the 'XNA' Category


Flex rhymes with… 6

Have I mentioned how much I like Flex? The ActionScript3 (EMCAScript/JavaScript) language is a pleasure to program in (garbage collected, dynamic *and* static typing, single-inheritance class hierarchies and built in XML (E4X) manipulation). Flex Builder 2 (which is Eclipse) is a spectacular IDE (trumping, dare I say, VS.NET 2003, my prior fave, but only with Visual Assist — Visual Assist still trumps all). And the inclusion of declarative (MXML) programming hits a perfect sweet spot in my long time HTML coder’s heart. It just seems perfect.

You know, kinda like exactly what I said would be the perfect game development environment back in March 2006. I sung the praises of the mindshift in software development brought on my “web 2.0″ where production-quality development truly is agile: they divide the problem into structure, behavior and styling. Of course. The Holy Trinity of Interaction. You find it time and time again when you dissect anything one would describe as interactive: model-view-controller, input-process-output, listen-think-speak… structure, behavior and styling.

To recap: structure defines the layout of things, their relationships, both spatially and conceptually; behavior consumes the structure, plays on the structure like monkeybars, moves through it. And styling determines how the structure is presented, provides feedback, expresses.

In practical software development terms, I’ve discovered that means one needs a declarative language (MXML), an imperative language (ActionScript3), and support for skinning and/or style sheets (Flash, CSS). Flex bundles all three together.

Of course, it has a good application framework provided out of the box (that’s free, in fact, along with the compiler… you just pay if you want the IDE, which is Eclipse, so you’re actually just paying for the visual MXML editor, which is probably worth it, but certainly not required if you’re patient or are experience with HTML/CSS). I can’t imagine if there was a gamedev framework for it… that’d be sweet. ;-)

Chalk up one for Adobe (via Macromedia): Adobe Flex 2 is the finest software development kits — nay, platform! — that I’ve ever had the pleasure of dealing with. And this coming from a guy who’s spent the last five years convincing game studios to adopt a commercial SDK (RenderWare), so I can smell my own kind… and I don’t smell Flex at all! Clean as a whistle…

I think they will seriously give C#.NET a run for its money. Sure, C#.NET is probably faster on a Windows box, no doubt about that… but is it that much faster? And .NET certainly doesn’t have the Flash graphics engine backing it up (your toolchain is already finished!). And it only really works on MS devices. And you have to download and install (and in Vista, enter an admin password!) because its a native EXE with all of the potential problems.

While Flash… well, Flash is ubiquitous. Hell, it’s more standardized across user machines than Java or web browser and most certainly operating system. And your input, output and everything in-between is identical on whatever platform your user is using.

And, and, and… it’s all sorts of integrated with and designed to a leverage the always-on-net-connection world that many, many of us live in.

Go now, you can buy it off the shelf. I did. Best $500 I’ve spent in a long time. No regrets.

Austin, Texas 4

I’m now firmly back in Austin, Texas. Feels good to be here. Warm weather, breakfast tacos, NPR, pancakes and all of the local businesses… it certainly feels like home. Of course, there is still a mountain of boxes to unpack (amazingly, unpacking boxes goes pretty slow with a six-month old and a new startup!). Oh, and Christmas shopping… So, I’m really looking forward to getting to the other side of the holidays so life can somewhat return to a normal pace… ;-)

People are asking what I’m working on, and I’ve given some veiled hints. And there are a few folks I’ve actually explained it to offline. The reactions have all been positive — dare I say, excited — so far. Of course, my powers of persuasion are legendary (why do you think EA acquired Criterion? ;-)).

Here’s the big, big, big picture goal: to make game making a purely creative process, to eliminate the drudgery of engineering that it currently requires. If technical neophytes can create web pages and edit videos, then why can’t they make games? Because we’re special? I don’t think so. Because it’s interactive? Folks get board games, and when they were kids, they certainly made up alot of games on their own. So, as educated adults who can use a computer well enough to surf the web and download music to their iPods, how come they can’t make a PacMan clone?

It’s time to stop approaching the problem from the engineeer’s perspective, which is exactly what XNA does… it’s an SDK. It’s not the YouTube of video games… it’s the RenderWare of hobbyist programmers! Not a bad thing, not an unwanted thing, but not everything it could be!

It’s time to throw off the shackles and storm the gates… the audience will only grow in relationship to the number of creators, and the number of creators will only grow if we mature the tools and lower the barrier of entry. Anyone can pick up a paintbrush… anyone can make a game.

A more accurate explanation of XNA 8

Mitch Walker, the Program Manager for XNA, has a good explanation of what XNA actually is: Managed DirectX plus a games-oriented framework plus games-oriented content pipeline tools. Not the YouTube of Video Games… but that’s a good thing!

A response from GarageGames on XNA… 0

Jeff had an excellent write-up addressing the doubters of XNA Studio Express. And he’s go into an excellent example of exactly what I’ve been trying to explain in all of my recent defenses of the idea. Perhaps his words are a bit more convincing? Let’s hope so…

Why all the hate? 10

I’m really surprised by some of the negative comments on Microsoft’s decision to open up Xbox 360 to indie development. I would have expected a great fanfare from the indie crowd, but most of what I’ve heard has been suspicion and derision.

For example, Greg’s thoughts on the subject. Sure, it was basically what I expected, but that still doesn’t mean I wasn’t disappointed to hear it. I realize that his bread is buttered these days by indie *PC* game developers, but he does seem to miss the f*cking point… as do many of the commentors on that post. Here’s what I had to say (carried over from my comments on his blog):

First, Greg attributed the Net Yaroze to Sega. Of course, it was actually Sony. And it was an incredible pain to work with. And it was basically like having a cheap-ass devkit. And it severely limited the resources you could access on the machine. On, and your game had to run completely in-memory. Details @ Wikipedia.

Second, several folks suggested that the service should be completely opened up, truly a “YouTube of Video Games.” Of course, MS (and the media, hook-line-and-sinker) loves a soundbite like that, but what they’re offering really isn’t YouTube (yet). The obvious caveat is that MS has to keep the quality bar high for “official” titles (as I explained in my previous post on the topic). Folks pointed at Amazon.com as an example of an “open system with filtering,” but they are being disingenous (or naive) if they think the barriers to getting a book listed on Amazon are equivalent to me uploading some random code to a website (or a video to YouTube). Perhaps, with the recent growth of on-demand publishing, perhaps the barrier is a bit lower, but there’s still an incredible amount of relative filtering that happens.

Besides, how do you make money off of that? There’s several, several orders of magnitude more videos out there on YouTube and they still don’t have a clear path for monetizing that. Do you really think it’d be easier on the Xbox with code?

Oh, and I really like the excellent point someone made: “Greg, will Manifesto be publishing any title that comes their way, regardless of quality?”

Of course, Greg’s (and some commentors’) perspectives are very different than that of the consumer MS is targetting. MS is targetting that high school kid who knows some programming and wants to do some stuff on the console in his living room. They’re targetting hobbyists who want to “play” on a console. Of course, these same people already know (and already do) this stuff on PC’s.

Craig Perko echoed this misconception I’ve seen elsewhere (which demonstrates GarageGames’ very effective marketing surrounding this):

I had the same reaction as Greg, especially since the actual software you get to use is literally a port of GarageGame’s existing middleware.

GarageGames is offering the Torque X package on top of MS’s XNA framework. It is a separate purchase, just like if I sold you a C# class library for you to use. Users are welcome to use Managed DirectX and C# to their fullest (and basically have full access to the hardware).

Unbelievably, someone actually raised the “but C# is crap” objection:

XNA Express only works with C#. Whilst it isn’t a bad language it certainly isn’t going to go up against C++/asm for performance. [...] You have to create your game on a PC first, erm, at that point you can either distribute it to lots of ppl on PC, or a few ppl on the 360. This is much less 360 development then PC development with 360 development tacked on. But then WTF you develop games with C# and managed directX when you could just develop with C++ and directX, with only a tiny loss in your potential audience? [...] XNA is a solution looking for a problem IMHO.

Let’s dispense with the whole C# vs. C++ crap. I applaud finished product, not the tools used. I could give a flying fuck if some kid in his bedroom (or the guy in the office next to me) used VisualBasic or assembler to craft his Pong clone (or his WWII FPS or his epic fantasy MMO). We’d all be so lucky as to be able to use a nice high level language like C# to make all of our games. Besides, the performance is as good or better than most programmers can do in C++ anyway. I only wish that the performance difference between C# and C++ was the barrier to indie gamedev nirvana…

I was excited when I heard about this, but that’s because until I read this post by Greg, I didn’t realize that the developers wouldn’t be seeing a cent of the game’s sales. Why couldn’t M$ just split the profits 50/50 with the developer? (Of course any such arrangement is probably confused by the fact that the games will be bought with M$ “credits” or whatever they call them, rather than with any real-world currency.)

Which is utterly, completely false. While you can’t make any money off your games, neither does MS. Folks pay a flat fee to have the opportunity to download and run managed code on their console. That’s the only financial transaction. You can’t charge for your game, MS doesn’t charge for your game. If they like it and want to distribute it on XBLA, then count your blessings, because you just got a spectacular calling card for your next title. Oh, and some steady income (based on the current conversion rates). (BTW, credits have a linear exchange rate with US dollars, so there’s absolutely no confusion there even if they were in play.)

I think that if M$ was mostly staying out of the revenue side, and letting people just use XBLA as a market to sell their games at whatever price they wanted, and M$ was just taking a relatively small cut, then Greg would have an extreme positive positive reaction to this. Instead the pricing is still screwed up, and he has an extreme negative about it. (If you haven’t figured it out by now, he’s very rarely lukewarm about anything. :)

As I mentioned in my previous post on the subject, there’s no way that it would be fiscally sensible for MS to open up the Xbox like this. Not yet. There’s not enough high quality software to stand out from the crap. They make money off of software sales. If there’s a huge market for software that they don’t get a piece of, then they’ll have to shift their profit to the hardware, which would mean consoles would become even more expensive than they already are. If they just took a fixed percentage off of each sale (like eBay, for example), there’s a whole bunch of responsibility that lands in their lap in regards to quality and support. Basically, opening up the Xbox as requested at this time would be a huge liability and money sink for MS, and would really gain very little for the indie gamedev crowd.

And finally, to sum up Greg’s (notably biased) opinion on the matter:

Whoop ti fuckin doo.

Be fucking happy for this new opportunity for indies, hobbyists and amateurs! No one is forcing you to make Xbox games, no one is focing you to sign-up for the Creator’s Club. But previously, it wasn’t even an option. Now, there is another door open, another platform to develop for, one that is significantly different in context than the traditional PC. This will only make the indie gamedev community stronger, and will serve to increase the numbers of game developers out there with some decent skills.

Why waste the effort on tearing it down? Why all the hate?

The YouTube of Video Games 7

People would think strange of me if I failed to mention Microsoft’s new XNA Studio Express and Creator’s Club. I’m excited to see DIY gamedev brought to the consoles, and it looks like Microsoft is doing everything right.

Sure, folks will say that Sony did it first with the Net Yaroze. But if you think they’re the same thing then you just don’t get it. XNA Studio Express will allow C# developers to target the Xbox360. Retail Xbox360’s. That’s the first big difference between this and Net Yaroze (which required a custom console). The second is the XNA toolset is a really high quality toolset (unlike the usual half-baked Sony developer tools). Visual Studio is arguably the best IDE (undisputed for C# in my book). The C# language is a wonderful compromise between C++, Java and higher-level dynamic languages like Python. The Managed DirectX API (which is the hardware API for XNA) basically eliminates all of the irritations of the traditional C++ DirectX API (which is already orders of magnitude better than any API Sony has ever released), leaving you with an ideal system library to work. The .NET Framework is very, very full-featured (much more so than the STL, and more appropriately so for games than something like BOOST).

In fact, I’m already in line to get this beta, and look forward to writing C# on the Xbox360. I think we’ll see a spectacular influx of indie gamedev. Seriously, the only drawback for C# for indie gamedev on the PC was always the client machine: fluctuating hardware specs and the requirment for a bulky framework download (potentially). Lots of barriers on top of the built-in indie gamedev barriers (for distribution). But C# on the 360 eliminates that: guaranteed hardware. And with the addition of automatic resource management in C#, you’ve practically eliminated all of the low-level programming worries. All of the focus is on creating the game.

Bravo, Microsoft. Bravo.