Tuesday, September 15, 2009

Successes & Failures

I'm the kind of guy who never hesitates to call things the way I see them. For example: I'm not shy about saying that, as far as I'm concerned, Microsoft Visual Studio and C# make for much better development tools than X-Code and Objective-C. But it's not because I'm a Microsoft loyalist. To prove it, it's time for me to reveal the other side of the card. Perhaps I can best explain with a story:

The first full version of Sorceror's Stripes is now done and, as best as my tests can reveal, running like a Mustang. I've converted all the resources for iPhone use, so the porting process should be ready to go. And, as it turns out, I'm very glad our primary deployment platform is the iPhone/iPod and not Windows.

With the first full beta ready to go, I decided I ought to compile a release version of the game so some of my friends can help with playtesting. I hadn't compiled a release version of an application in Visual Studio before, so this was new to me. I suppose compiling a normal VS app is easy enough, but it turns out, in XNA's case, it's murderously difficult.

The first thing I did was select the Publish option to try to create a prepackaged installer for the game. But for some reason, that wouldn't export my audio -- even after compression, the game has 100 MB of audio and the exported audio library was under 200 KB. That obviously wasn't going to work.

So then I tried to just build a Release instead of Debug version of the executable. But when I tried to run the Release exe, it crashed immediately, and I couldn't get it to work, despite triple-checking that the game content was all accounted for. "Okay," I thought, "last resort: Let's go with the debug exe."

The debug executable at least will run... on my computer that I developed the game on, at least. So I copied the debug exe, all the game content, and the files outputted by the compiler onto another computer to see if it would run off the development machine. Unfortunately, it crashed immediately. "Probably missing dependencies," I thought. So I found a forum post by some XNA guru listing the dependencies you need to run a game developed with the version of XNA I'm using... but when I tried to download the dependencies, they wouldn't even download right.

Not to be licked so easily, I transferred the game files onto a third computer and tried to download and install the dependencies on that one. The dependencies at least downloaded and installed on that computer, but even after that, the executable still crashed the moment I tried to run it.

...At which point, after a couple hours of wasted work, I decided to just give up. My big takeaway from this experience was that XNA games are ass when it comes to trying to deploy them, and poking around on the Internet, it seems there's widespread agreement on that point.

On the other hand, my brother Lion has successfully deployed apps onto the iPhone (well, technically, iPod, but if it works on one it'll work on both). It might have been a bit of a pain, but he got it done. All of which, just to reiterate, makes me very glad that our primary deployment target is the iPhone and not Windows. And makes me hesitate not one bit to admit that deploying iPhone games works much better than XNA ones.

The important point, of course, is that at least the development version of the game is working which means that the logic is all sound and the content is all created. So there's nothing standing in the way of porting the whole game onto the iPhone as soon as the speed issues are resolved.

Next task on the to-do list: Build the company website.

- Satellite Observatory (James)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.