7 posts tagged “game development”
It's been an interesting couple of days.
My latest term at Neumont just finished, and what a disaster it was. Lets just say I'll be happy to focus on the next term, and forget a good deal of what happened in this one. I did get a 105/100 on my last game dev assignment, which was awesome. Which reminds me.
Theta Wars is pseudo completed. Check out the video:
The video quality of the streaming YouTube is kinda crappy, but it gets the gist across. The game itself runs at 60fps; the video you're watching was captured at 30, hence the choppyness. It's quite silky smooth in person, though :). I know it's not the most impressive thing in the world but hey, Matt and I did it in under two days! Game engine and everything!
I'll be tweaking things here and there, and working on additional functionality. I just finished work on a cool little algorithm that makes the player collide with the wall properly (yea, at the time the video was taken, the player could freely leave the box). Basically you just store the player's position in the previous frame and, if a collision with the wall is detected, move the player to the previous frame :). Simple and effective.
Anyway, about the road trip. My sister's boyfriend, Scott, and his sister, Terra, will be here in an hour or so to pick me up. They left at about 6pm PST; it's about a 10-12 hour drive, give or take. Aside from the usual clothes and shower stuff, I'll be taking my laptop, my desktop, and my Xbox 360. The desktop will mostly be for PDX Lan, the largest LAN party on the west coast. It shall be awesome.
The rules of a short term road trip like this are simple: Stay awake, and keep the driver entertained. The punishment for failing to do so is death by road burn. In other words (since I've been up for about 16 hours at this point), I'm going to be drinking a lot of Monster energy drinks. May the Lord (if there is one) have mercy on my stomach lining.
Expect pictures of said road trip, and maybe posts along the way (when I can jack wireless at random gas stations).
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.
I'm at the Salt Lake Coffee Break again tonight. A 16oz iced mocha, my XML/XSLT book, and I'm ready. I have to transform an HTML page using XSLT by 10am this morning. Better get crackin.
As far as Ingen goes, I'm reworking a lot of it to be built around the beauty that is XNA. Matt and I are working together (finally) on a project in game dev. The requirements are that it's a 2d game in DirectX. We have one week. I promise good things :).
Class is over in 9 days. Wow, this term has gone by fast.
Success! My first functional game built within Ingen is complete! It also sucks balls, but that's not the point. It proves that my engine is capable of doing cool stuff. That first screen is way too pretty to be the splash screen for the game behind it but meh, it looks sweet. You can download it here. Note that the game requires DirectX 9.0c and the .NET Framework 2.0 to run.
Now to make a game that doesn't suck...
Ah, so glad the week is over. It's been a non-stop deathmarch since Sunday. Game Dev, J2EE, Projects V, and XML assignments, big ones, one day after the next. The weight off my shoulders is quite a relief.
So, enough whining about the past workload. On to new stuff! Today I should finally be able to hack away at Ingen again. I'm hoping to actually be able to use it on the next assignment, instead of doing a horrid hackjob like I did for Assignment 2 (all the code, procedural, in the code-behind of the form. Ew.). I should have no problem loading meshes into it soon. I've been toying with Bryce 5 a bit, too; considering using it to create my landscape for whatever it is I decide to build. Here's a sample picture I just made after toying around with it for 5 minutes:
Not bad, eh? I was pretty impressed with the results. Hell, it took longer to render than it took to create. I've yet to see just how useful this will be for exporting meshes to use in Ingen (Matt told me it's a terrible idea), but we'll see.
Also, a random though: Vox should never have open registration. I really like the community that is here right now. I'd much rather have it grow via invite than free registration. I'm not trying to be an elitist prick or anything like that, I just think it would keep the community from becoming the cesspit that MySpace has become. It would make it impossible for spyware to plague the site as well; even if someone used their account to make a bunch of other ones to spam Vox users with, it's easily traced and handled. What do you guys think?
I fell asleep at about 4:30am, after my first alarm had gone off. I sucessfully defeated the second one, which started blaring at 6:30am. The third, however, I could not surmount. No amount of morning lethargy can resist a lick-happy puppy. John unleashed Kobe in my room and closed the door, so not only did I get the loving-puppy assault, I got another round of it when Kobe tried to leave the room.
I was up and ready to go in 5 minutes.
Now, I'm prepping for the test that's in about 45 minutes. I'm the only one in room 200 right now, which is normal (no early morning class for me on Mon/Wed/Fri). I'll decimate this test, though, even if I don't study before hand. I thought about bringing in my whiteboard from the house, to show Aaron how much I've been working on Ingen, since he knows nothing of it's existance.
As for the rest of today's menu, I've got an XML lab to somehow get finished, and I finally start something different in the NUCentral Project. No more wiki-docs, yay.