Monday, July 5, 2010

Hypershift - Multidimensional Tower Defense

Anyone out there a fan of tower defense, or TD, games? You won't have to wait much longer. Hypershift, a new commercial game, is coming to PC soon. It is currently under development by Green Lightning Software (primarily myself) and Q-Soft, Incorporated (primarily my brother), and this blog will cover its development phases. Here I'll post weekly progress reports, explain what I've been up to, and in general, let you know how it's coming along. Unfortunately, it'll be a while before a demo is available, but the moment it is, I will post it.

So far, it's about 20% done. There is a lot of work ahead; yet most of it is the easy stuff. The game engine is nearing completion. The tower placement system works well, the HUD is very fluent and responsive (and, I think, looks pretty good for having been made entirely by me). For those who are curious, I'm using the Pro version of Game Maker 8 to develop Hypershift. Most of the work ahead will consist of level design, music and sound choice, licensing, and/or composition (as I am also a composer), and turning all my ideas into sprites and objects in the game, which should be fairly straightforward once the engine is finished.

You want gameplay details? There'll be more to come in the weeks to follow. Right now it's mostly ideas, and they may or may not pan out in actual gameplay. To whet your appetite, I will now tell you about the resource system.

Much like in the Supreme Commander, a massive-scale RTS game, from which the idea came, the resources in Hypershift are mass and energy. It makes sense in an era of technology when the only useful conversions are between those two substances. Plus, I like the simplicity and elegance of it.

Here's how it works - mass functions as money, essentially. You get mass from killing creeps, and you can use it to buy and upgrade towers. You can also salvage unwanted towers for extra mass. Energy, on the other hand, is a little trickier. It functions as lives, resources, and tower efficiency, all at the same time.

Basically, if nothing is happening, your energy output will stay at 100%. When towers start firing, they use up energy at different rates. However, energy recharges at a low, fixed rate, so assuming all goes well, you'll gain it back at some point. On the other hand, each creep that makes it to the end is automatically transported back to the start. This transportation uses up a lot of energy. If your energy falls below 50%, your towers may become less efficient, depending on how much energy they require (they will fire less often, do less damage, and so forth). If this goes on long enough, and your energy drops to zero, you lose.

There's a lot more to it than just resources, however. There are a lot of different towers you'll have to choose from, as well as some other goodies. In addition, the multi-dimensional aspect adds quite a bit to gameplay. I'll talk a lot more about that in later posts.

As far as development goes, I've been going crazy on it the past few days. It jumped from 0% to about 5% in a day, then to 20% over the next couple days. There's only been a few major problems thus far, and I've solved most of them. My remaining time off tomorrow will be spent trying to solve those problems, and get more towers made. I only just added the use of Game Maker's inheritance system (an object-oriented concept) and it has worked great so far.

My main problem is the title screen animation. It took me 6 hours, and it's quite large. There are 72 individual sprites, each one a high quality Photoshop render. The trouble was getting it to animate in the game at a decent speed. It looked great, but the resource footprint was far too high, surpassing that of some finished games with only its main menu and that animation. So I dumped it, then threw the images into a Windows Movie Maker project and gave them all the smallest time slice available, a measly 8 FPS. It's animating and takes up barely 2 KB, but I'd like it to look a little less choppy than 8 FPS. That's terrible even for a low quality animation.

Next in the lineup of problems needing fixed is the tooltips I wrote a script for. They won't behave like they are supposed to, being drawn on top of everything else. I've changed the drawing depth but it does no good. It seems to ignore the depth and the things that get drawn first end up on the bottom, the very problem that the depth variable is there to fix.

Finally, the tower placement system is a bit glitchy. That's likely because the towers are 18x18 while the rest of the game uses 32x32 sprites and grids. However, I'm perusing and sampling from a tower defense games guide when necessary, which so far hasn't been much. It helped a lot with the bullet system and ballistics calculations, but the tower placement system is a bit lacking, mainly because the guide's code is hard to adapt to what you want. I've patched things up the best I could, and redesigned part of the placement system that didn't quite work the way I was using it.

If you have an idea for the game, if you want to know more about it, if you like what you see, or even if you don't like it, feel free to shoot me an email. I am usually good about replying quickly to emails, especially since I receive so few of them.

No comments: