Damn good coffee!
27 Apr
For this update, my role in Asplode! was absolutely minimal. While I’m in the middle of a mild crunch for The Political Machine 2008 and then away at Rochester, New York for a Paramore concert, Josh was working asininely hard on version 1.2 of Asplode!. As started, my role in this update was purely peripheral as, in my spare time, I’ve been working on the start for Bipolar and taking some of Josh’s code for his game and turning it into a more generic library that both of us can use in our current and future projects (the library is HardCat Library, obviously). Anyway, major changes:

For some inexplicable reason, the XNA redistributable may still fail to install using the installer, so you may want to manually install it: XNA redistributable.
22 Apr
On Sunday, I linked to the source/executable for my top-down, arena space shooter Asplode! and one of the things I wasn’t really proud of was how terrible the performance was for the game. Well, one of my friends took the burden of fixing it up a bit and made an installer. He then passed all of this new fangled technology onto me and, in return, I edited a couple more of the source files, added him to the game’s credits, and made a new, updated installer for the game. So here, ladies and gentlemen, is a far more proper release of the game.
This installer will execute the DirectX Web Setup, install the .NET 2.0 Framework if it isn’t already, and the XNA redistributable, but it does not contain the source for the game. Like any XNA game, this will require Windows XP or Vista, and, at the very least, a graphics card capable of Pixel Shader 2.0.
[Edit]: I failed part of the installer, so the XNA redistributable will also need to be installed.
20 Apr
Yeah, so, I’m releasing Asplode! now and such. And, along with the game, comes all of the source to the game.
I originally wasn’t planning on releasing the source but as development winded down and I started to play the game for longer sessions I soon realized that the game became virtually unplayable on my machine after about seven-eight minutes. I thought this may have been a result of poorly-managed graphical assets so I took a couple days to optimize them (and, as a result, the VectorModel and VectorParticleSystem bits of the code are an absolute mess to comprehend). After I finished doing that I jumped back into the game and, while it ran better for a while, the horrific mid-to-end game performance was still very much a factor. I went through and tweaked and optimized bits of code in other places that seemed like they would cause issues and, still, the performance problems persisted. At that point I decided that, since I got the game to a playable state and I didn’t want to devote a whole lot of time to what is, essentially, a Geometry Wars clone, that I would just throw a main menu screen on the thing, an end-game screen, and release the source code and call it a day.
So that’s what I’m doing. Here’s the game; tremendous performance issues and all.
The Game: Asplode! plays out pretty much like you’d expect; on the 360 controller the left joystick handles movement and the right joystick aims/fires bullets. There is a score multiplier which is slowly increased with every kill made up to and the multiplier reaches a maximum of nine; every time a player dies, the multiplier is reset. There are also three possible weapon upgrades. (which persist after death) which are awarded based on the number of asplosion combos — any death with a red pentabomb involved. A player has only three lives; I thought about implementing a way for a player to earn more lives but, since I have no life, the least I could do is minimize the amount of life a player can have. So there’s three. That’s it.
The Source: Uh. Yeah. Just try not to learn anything aside from what never to replicate. Ever.
The Requirements: One of the issues with an XNA title is that there are a few necessary items to install to get one running. So, I’m sorry about that. If it wasn’t such a beautiful creation, I wouldn’t use it. XNA Redistributable (Included), .NET 2.0 Framework, and I believe a run of the DirectX Web Setup and/or Visual Studio SP1 Redists if the first two don’t get the job done.

17 Apr
I’ve been playing a very time-intensive game of musical chairs with various three-dee engines over the course of the last two-and-a-half weeks in an attempt to find the one that would be best suited to my particular development style and the kind of game I want to create. And I can safely say that, tonight, I have reached the ultimate solution. That’s right, after toying around with things like TorqueX, Torque Game Engine Advanced, OGRE, Irrlicht, Nebula3, and, finally, PowerRender. The latter two of the list appeared to have the most potential, with PowerRender being the closest thing to what I was looking for, but the most recent iteration of the engine is still under heavy development and, what was the most troublesome, seems to be getting very infrequent updates. So, after all of the wasted time, I decided that I was going to dig out my old C++/D3D9/D3D10 framework and just rip out the D3D9 parts for use in a new framework which I could use in the future.
I got exactly an hour-and-a-half of work done on that last night before I realized that it felt way too much like the kind of engine work I do at my job every weekday. So now, and for realsies, I’m back with XNA. I’ll be releasing Asplode! this weekend in its terribly-performing state (and open source) and, hopefully, everything I learned in the development of that will help me create a far more useful toolset this time around as far as memory management is concerned. The most important lesson I have with me that I learned from Asplode! is that the most important thing about memory within a managed environment isn’t necessarily the allocation of memory so much as it is the deleting of it. Apparently the garbage collector is a wicked beast that must be appeased in order to maintain stable gameplay performance. I don’t know. I’m still getting the hang of the intricacies of C#. When I was working on Asplode! — and this will be readily apparent in the source if people peruse it — I didn’t know anything about C#. I simply coded as if I would code a game using C++ and, when code didn’t compile, I read up on why the error occurred and what I needed to do/learn in order to fix it. Hopefully, this time around, I’m a bit more well-prepared. It also helps that Drilian and I are teaming up for some of the more game-independent stuff.
As a random note, I beat Final Fantasy 7: Crisis Core earlier this week. While I have the same issues with it that I do most RPGs (that the combat becomes asininely annoying by the end of the game), the game did the Final Fantasy 7 universe — and FF7 is the only JRPG I’ve ever enjoyed (and loved) — absolute justice. The story was incredible and provided a lot of great depth on Zack, the inner workings of SOLDIER, and the root for Cloud’s identity disorder. And seeing Sephiroth function in more “normal” times and take actual solace in communication with friends/peers was cool. I’m just waiting for my copy of Advent Children to arrive so I can re-watch that. Now it’s back to Wipeout Pulse, AoE3: The Asian Dynasties, and more Rock Band. And GT5: Prologue. Grand Theft Auto 4 can come out anytime now as well.
Anyway, yeah, that’s about it. I hope everybody has been The Daily GameDev.net news pieces I’ve been posting every weekday morning. They’re almost asininely fun to write up but they do tend to take the place of dev journal updates at times, so if this thing has become a bit more stagnant than usual then that’s probably the reason.