Tuesday, January 5, 2010

Weapons Upgrade

Rewriting the weapons system tonight to be more versatile, compact, and modular. Bubble sprites were being loaded in the level class, while the player and enemy classes had code for input, firing and updating...which worked, but was scattered at best.

Weapons are now built with a number of variables (rate of fire, ammo, and barrel location) which makes it easier to mix and match weapon types and projectiles.

The plan is to totally rework the 'weapon' class which had been stripped pretty bare from the last rework. Also the creation of a new 'ammo' class and a couple of new enums to handle the rate of fire and ammo type possibilities.

I still have some wonkiness going on with the per pixel collision detection on animated sprites but that's not surprising since it originated from a tutorial on static sprites. The collision fix comes at a later date.

Monday, January 4, 2010

Inspired By vs. Educational

Last night I did a bit more research on creatures of the deep (thank you interweb, wikipedia and especially the magic of youTube). The good news is there is a LOT of REALLY cool stuff in the deep ocean...I mean the "Blow your mind, you've got to be making this up kinda stuff". For instance, did you know that at 3,000 feet deep, even though it is too deep for sunlight to reach, it is not a pitch black void. It's more a twinkling lightshow similar to the densest lightening bug swarm you've ever seen. Also, the tiny hatchet fish has photocells on it's underside that has the ability to change color to perfectly match the color of the light above him rendering him invisible from below. It's a built in cloaking device.

The bad news is, at the depths I was planning for the game anything not flashing would be pitch black. Which wouldn't make for a very fun game. I really wanted to game to be covertly educational, showing the diverse wildlife of the deep and some of the cool features about those creatures, but it's hard to be educational and blow the creatures away at the same time. Something seems to get lost there.

Result: I'm going to have to take some pretty big creative liberties with the environment and the enemies, and find some way to work in the factoid elements (possibly on each loading screen).

I think I'm also going to assign Katie to factoid research and copyrighting, cause some of these things are too cool and something she needs to discover for herself.

Sunday, January 3, 2010

Happy 2010!

So here we are at the beginning of a new year. Development is still moving along, slowly but moving none-the-less. And I continue to feel more familiar with C# and XNA as things progress. Recently in the XBox indie game library a company called Arkedo Studio has been releasing very well produced, high polish, yet relatively simple games. And I mean "simple" in the best way. The games are incredibly easy to pick up and play. Each has it's own cleverness and/or cuteness. And each has it's own look and feel, yet they all manage to maintain a 'family' style about them.

They are, in my opinion, some of the best, most professional games in the indie marketplace. They also are very limited in what they offer. There is no multiplayer, no save, no achievements or awards, and I have yet to see any kind of customization or personalization in the games. They are, in a way, a nod back to the 25 cent arcade days. Drop in a quarter, play till you die then start the thing all over again.

Of course, the down side to that approach (at least for the player) is they get very familiar with the beginning levels which they can grow tired of early. The up side is almost purely on the development side. It's a lot easier to develop a game when you don't have to worry about multiplayer, signing in, save points, etc.

Yet there are games, current games, that live almost entirely in the replayable world. The first that comes to mind is "Left 4 Dead". Sure, there's an initial exploration and discovery phase to the game the first couple of times through, but after that thanks to the dynamic in-game "director" the game retains a very high replay experience.

So, is there a way to combine the developmental efficiency of Arkedo Studio's "simple" approach with the dynamic replay value of Left 4 Dead? It might be a variation in weapons, ammo, level layout, depth (water), or a variety of other levers and switches

Sunday, December 27, 2009

Over a Year

Well, it's been a little over a year since I started development of "Deep Blue". And yes, it's true I sorta figured I'd be well on with my second game by now but I can't say it hasn't been worthwhile.

In the past year I've taken big steps in learning C#, the XNA development platform, as well as the basics of object oriented programming. I've read through 2 books on C# programming, 2 additional books that deal with C# programming specifically in XNA. I've done my fair share of tutorials, studied code from over a dozen other games. I've built a working version of "Deep Blue", then torn it down again to make a much more efficient version. All this in my 'free time'.

All in all, it's been a productive year, even if the game isn't launched yet. We'll see what 2010 holds. And yes, I'm crossing my fingers once again that the launch of Deep Blue is in there somewhere.

Tuesday, December 15, 2009

Back Up And Running

Thanks to my wonderful in-house tech support department (a.k.a. my wife) I'm back up and running with a completely fresh and new hard drive and no viruses.

I successfully have both rectangle vs rectangle collision detection as well as per pixel collision detection test working in-game. Now to get the per pixel working while a rotate transform is taking place, so everything checks out with the spinning O2 tank.

I've also gone back and reworked the animation and animation player classes. They were designed with the assumption that all sprites would be squares which is not the case, pretty much across the board in "Deep Blue". But I still have another modification to make to it so my animation sprite sheets are not required to be laid out completely horizontally...like in the platformer sample.

So, more to do, but stuff is blowing up now and that's usually a good thing.

Friday, December 11, 2009

Visual Studio Malware???

So, I've been fighting a virus on my computer and I used an anti-malware software to get rid of it. It did a full scan, found a number of things and removed them.

And now....I can't seem to build ANYTHING in Visual Studio Express. Every time I "build" it acts like it does a successful build, even to the point that the UI shifts into "debug" mode but no window with the game actually comes up to display anything.

And it no longer seems to be creating an exe in the debug folder of the project. I've tried this with other "sample" projects and even a "raw" new project where I should have gotten the light blue screen.....but nothin.

I've uninstalled/redownloaded/and reinstalled Visual Studio Express but no change.

So, now what?!

Tuesday, November 10, 2009

Version Problem Solved...sort of

It took a bit more browsing through the XNA forums to find a 'solution' to my XACT audio problem. Here are a few important things to note.

First, the 'version' of the project is not entirely dictated by the 'version' of Visual Studio that you're currently using. The project is versioned when you start the project. I began "Deep Blue" with Game Studio 2.0 but then upgraded to 3.0 when it was mandated by the rules.

The problem with that is that XACT 3.0 wasn't compatible with Game Studio 3.0...even though they were a part of the same download...mmm...yeah....but anyhow. They fixed the compatibility issue with Game Studio 3.1 so I upgraded my version of Game Studio. But that didn't mean I upgraded the project...which remained at version 3.0, even though I was developing it in 3.1 at the time. So I had to manually 'upgrade' my project to 3.1.

Solved.....right? Not quite.

Even after doing this I got some really odd version errors on the audio so I decided to open XACT 3.0 and rebuild the sound banks again. But that didn't seem to help. I confirmed that the files were being overwritten (updated), but it didn't seem to have any effect.

I had to manually delete the compiled sound bank files and THEN rebuild the sound banks to finally get the project to compile without error. So now it all works, but it still doesn't make much sense.