5 posts tagged “xna”
This is the final week of the term. My friend Jimmy should be here Saturday/Sunday to pick me up for a road trip to Oregon, where I'll be staying for two weeks or so. I've got a job set up for the break there, and I kinda miss the family.
Though, I will likely have to venture out and jack someone's wireless in order to feed my internet needs, since my dad wouldn't have a connection at his house to save his soul.
Neumont's not the only school that I have a plethora of tests in this week. I've been invited by my dojo to take the Orange belt test this Saturday. I've got two private lessons set up to prep/drill some practice for it. I haven't had time to devote to the 'ol Shaolin Kempo for the past week or so (read: I barely slept thanks to Neumont), so it'll be good to get back into the groove of learning how to break limbs :).
The ominous title also refers to the current state of Theta Wars. Matt and I are hard at work on getting the damn thing done, and should be okay with making the deadline. You know, it's amazing how even fellow programmers fail to see how cool something you create is...until you show them something shiny. I could go on all day about the wonders of XNA, but few will care until shown a pretty image. It seems that sex sells, even in the world of vertices.
You know, it never fails: every project you ever work on will, at some point, hit a roadblock. Doesn't matter what you're doing.
Today's productivity killer is an InvalidDataException, curtesy of XACT. I am implementing a simple Sound engine for Theta Wars. To use XACT, you must use the Microsoft Cross-Platform Audio Creation Tool to build a couple of specialized archives. It's cool because it takes all of your sound resources and sticks them all into a couple centralized files. A WaveBank file, which contains the actual media, a SoundBank file, which contains instructions on how to use said media, and an XGS file, which is a header file to bind the files into a proper solution.
Implementing XACT in XNA is very simple:
public static void Initialize()
{
FileStream audioParameters =
new FileStream(
ThetaGame.GameSettings.MediaPath + @"\Sounds\thetawars.xgs",
FileMode.Open,
FileAccess.Read);engine = new AudioEngine(audioParameters);
wavebank = new WaveBank(engine, ThetaGame.GameSettings.MediaPath + @"\Sounds\thetawars.xwb");
soundbank = new SoundBank(engine, ThetaGame.GameSettings.MediaPath + @"\Sounds\thetawars.xsb");
audioParameters.Close();
}
My problem is that when loading the XGS file, (in the audioParameters init above), I am presented with an InvalidDataException, which accuses me of the following:
What what what?? I'm using the tool you gave me, dammit. XACT 2.0, Windows Version 9.13.644.0. Unfortunately for me, the documentation on XACT is very sparse (they don't even have sample C# code on MSDN, it's all C++), and the XACT forum doesn't seem to be especially busy at the moment. And who am I going to ask about XACT, anyway? Nobody I know has ever touched the damn thing."XACT could not load the data provided. Make sure you are using the correct version of the XACT tool."
If for some reason you, oh great reader, happen to have the XACT tool installed, you may see what you can do with my XACT project here.
UPDATE 1: Okay, I think I figured it out. Turns out that the XACT tool got an ever so slight update in the August release of the DirectX SDK, which XNA uses. Mildly different versions of the same tool results in interesting issues, like this one. I shall report if the update fixes my problem or not!
UPDATE 2: Yep, that was the trick. I also ran into an InvalidCueException, which turned out to be a noob mistake on my part (I forgot to add a "cue reference" to the sound file; in XACT, a sound file is referenced in the SoundBank, and then exposed to the outside world via a "cue.").
Cool name, huh? Theta Wars is the tentative name for the game dev project that Matt and I are working on. We've been mapping out our requirements and high/low level for a few days now. However, since this thing is due Tuesday by midnight, we're going to be up all night doing actual code.
The game will essentially be a tribute to the amazing Geometry Wars, which anyone with an Xbox 360 has undoubtably played. Due to development time, it will of course be a simplified form of it, but that's not the point. Expect to find a playable release here when it's done :).
...And this time, it won't crash like my last game.
Yea, I sorta forgot to post for a couple days. It's been a crazy week.
School is going okay. I've been spending a lot of time figuring out what I'm doing next quarter, especially for projects. Eve Andersson turned down my Managed DirectX project proposal, so that's out. At this point I'm either working on a business model thing with Tony Morgan or NUCentral for another term.
My response? I'm going to try to contact every game developer I can get ahold of to try to set up an Enterprise Projects relationship. That way, I get to continue working on something related to Ingen, and obtain some valuable experience in the games industry while still persuing my CS degree. Pretty cool, eh? that is, if I can pull it off. The top of my list has names like Valve Software, and the XNA team from Microsoft. Wel'll see what I can come up with.
Speaking of XNA, the beta framework is out in a few days. It will hit within a day or three of my birthday. It's like Microsoft decided that my birthmonth was a good time to be more awesome than ever before. Ha, if you'd told me a few years ago that I would be the one to write that sentance, I'd slap you.
XNA is the most awesome thing anyone has ever done ever. Ever. A video game development SDK for Windows, supporting C#, and capable of running on an Xbox 360. I could go on for hours on the possibilities of such a framework. The beta is hitting in September, too. My birthday month.
LETS SEE JAVA DO THAT, EH?
By the way, I've been up for just over 24 hours straight at this point. When I said Ingen was going to be an all nighter, I was not pulling your proverbial chain. It's interesting how much...colder everything seems when you haven't slept in a while. I guess the human body is in like overdrive to keep from collapsing. I've got a girl to call at around 5 tonight, followed by a karate lesson at 6. As soon as I get home from the dojo, I'm going to go die for about 243523462774 hours in my room.
Oh, yea, Ingen. Mouselook doesn't work, despite Matt and I spending over 8 hours focusing on nothing but the two lines of code it requires to work. Problem is, even with the correct calculations, the piece of shit doesn't work. Gah, so frustrating. Matt told me he found a way to make it work, however, so maybe...
Awesome. Vectors are structs. That means they cannot be passed by reference. Which means that the way Matt and I were passing vectors around led to inexplicable problems, such as TransformCoordinate() not actually doing anything.
I want to destroy something.