Monday, May 31, 2010

Aiming HUD

OK, OK, here's the new HUD! Quit bugging me!

The Artillery unit behaves differently than the rest. It's the only unit that can adjust the distance at which its projectiles explode. The downside is that they won't explode if they come into contact with anything on the way, they'll just sail right over it. It requires more finesse to catch an enemy in your sights but the reward is much higher damage.

To help the Artillery out, I've started implementing a HUD to show aiming related data. In orange you can see the minimum and maximum range of the left-trigger weapon, and in cyan the min/max of the right-trigger. I've yet to add an actual reticle but it will be there shortly, showing where the weapon is actually aimed at.




Turns out this HUD is pretty useful even when you're not playing as an Artillery, so I modified it to show just the max range for other units since their weapons don't have a minimum range.

The art style of the aiming marks give you an idea of where the art direction is headed. The red health and ammo HUD in the bottom left will be replaced eventually with something more appropriate and aesthetically pleasing. You can also see that fog of war is on, with some subtle fading at the edges! Here's a shot of an artillery projectile exploding:


I'll post soon about the auto-aim feature I implemented recently and how that fits in with the Operator unit type. Keep the comments coming and I hope you enjoy!

Tuesday, May 25, 2010

Fog of War

One of the most exciting aspects of a game to me is making decisions with limited information. I knew from the start of development that I wanted Mechanized to have fog of war - a screen over parts of the battlefield that aren't in the player's field of vision. It forces players to scout rather than just rush in blindly, and rewards communication and teamwork.

After some searching online I found Catalin's excellent web site, and particularly his code for dynamic lighting. With some minor modifications I had it up and running really quick to my great delight. The lighting code was also good for learning about different ways to manipulate alpha values in textures to achieve different effects.

I fiddled around with different field of vision textures, adjusting the amount of blur at the edge of the field as you can see in my post about the new art style. With the new look, things are bound to change...

Monday, May 24, 2010

Particulars

When it came time to decide on different types of weapons, I realized that I would need to implement some sort of explosion system, rather than a simple projectile collision like I had to start. I debated having a defined, hard-coded explosion/splash radius, but I was working through a particle engine tutorial (RB's tutorials are very helpful and easy to follow!) to learn C# and decided to try that instead. It looked beautiful for explosions, so I worked it into my projectile system. That was a while ago - today I finally hooked it up so that each projectile checks if it is hitting a unit and actually deals damage.

With the particle engine, I get unique, somewhat random explosions every time, so there's no relying on a rocket doing X damage within a radius of Y. The particles go in random directions, and each carry a bit of the rocket's total damage with them. I can tweak the engine for each weapon type to vary the size, velocity and damage it does. This reduces the need for more complex sprite designs, too. Each explosion is just a combination of one basic shape.

Here is a screen showing all the different particles I have so far:


Please keep in mind that they are hard to catch mid-explosion, and don't look as impressive when taken as a single frame - they are moving, fleeting splashes of color.

New Look & Feel!

All the art for the game (so far) is done by me. When I was coding the basic game mechanics I threw together some sprites to work with. Recently I stepped back and looked at everything I have left to do on the game and put together a bug list. New art wasn't on it, but when I was playing around with the particle system I wanted to implement I tried different particle shapes. The triangle reminded me of old games I used to play where you drive around a tank and shoot enemies, and that had really simple, 3D line-based graphics. I decided to try a new design for the basic tank sprite, and ran with it.

Here is the original art:


and here is the new look:


The heads up display will definitely change to something that better suits the new look - it was just a placeholder anyway. In the original art you can see the circular particle explosion. The green and black circles are just targets I put in to test collisions that have long since been taken out. In the new art I have fog of war turned off until I implement the map system. You can see the same rocket explosion but with the new, triangular particles which I really dig.

I'm really excited about this new direction, and can't believe how much different my game looks from when I woke up this morning.

Welcome

At the urging of friends, I've decided to start blogging about my experience developing my first video game, Mechanized. It also happens to be my first time programming in C#, and using the XNA development platform. I could wax poetic about how easy XNA makes things, but I'll keep it short and say that it's a dream.

Mechanized is a squad-based, 2D, tactical combat game. I started developing it as a break from studying for exams in April 2010, lamenting the lack of good four-player games to play on one computer. My roommates and I tend to just play a lot of Super Bomberman. I still intend it as a game for me and my friends, but if I feel it has sufficient quality when it's done to compete on the market, I may look into releasing it through a publisher like Valve (Steam) or Microsoft (XBLA). Regardless of its market potential, it will also have network play built in so friends can get a copy to join in online.

To avoid any accusations, yes, Mechanized is heavily inspired by Chromehounds for the Xbox 360, even though I've never played it. I don't have an Xbox, and I wanted to bring the compelling gameplay I'd read so much about on-line to a venue I could access. That said, Mechanized is not at all a Chromehounds port; I like the idea of driving large armored vehicles around and blowing each other up, so I might as well look to the giants for a starting point. I will be striving very hard to make this its own, unique, fun game!

Since I have been developing for about a month now, there are a number of topics I've already worked through, so I will post a number of small entries to talk about some things I found interesting, useful, or challenging.

I hope you enjoy following my progress!