Category Archives: Game Development

First steps in command ship active upgrades.

I have to come up with a better name than active upgrades. So we are all on the same page, the command ship has a list of upgrades (have to come up with a better word for this as well) that can be activated, and a list of upgrades that are always on (aka passive upgrades). So this past week I’ve worked on abilities that need to be activated. These are fairly short in duration, and after being activated there is a recharge time before the upgrade can be used again. It is the same concept seen in MMOs like WoW (press 1 to shoot a firebolt, wait for it to recharge, then press 1 to shoot it again).

So far there are two abilities in early stages, the first is the “Command” ability which allows the player to take over control of enemy ships. The larger the ship the lesser the chance to override its controls, through further upgrades to this ability the chace improves. I still have to decide whether I want only one enemy ship to be under this effect at a time. This may be a bit too boring, since the player may always chose the biggest ship and skip the smaller ones. Still I haven’t decided on this yet.

The 2nd active upgrade is the “Energy Barrier” This upgrade allows the command ship to project an shield, the catch here is that the shield protects a single side only. Meaning that the player must position the command ship to take full advantage of the protection. However the shield is invulnerable to damage, the protection stops when the duration of the ability expires.

Hopefuly there will be many more of these abilities leading to interesting and strategic game play, making the command ship a unique and powerful vessel.

Here are some screen shots of the shield ability (placeholder graphics, the final result should be a fluid animated shield):



Click For Full Size


Click For Full Size

Void Destroyer – Iteration 5 state of the game

Well I don’t feel as happy as I thought I would finally adding in the command ship. The game has changed a bit, the difficulty decreased significantly since the command ship can easily be upgraded at this current state. I’ll have to work on toning this down and slowind down this process, giving it a real cost instead of just 30 seconds per upgrade.

The truth is that the project must become a better game as a result of adding such a complex thing as I imagine the command ship becoming. It will be your base, your command center, your seat of power, your warship, and essencially the player’s physical representation in the game. Something that has to be invested in, protected and risked. So the game will need real risk and real reasons for putting the command ship into a dangerous situations. I’ll have to give the game objectives for the command ship to conquer. That means more dynamic world, better AI, and stronger enemies. At the same time I plan on implementing command ship abilities, like shields, heavy weapons, and quick get aways.

Right now the game isn’t as good as I think it was in iteration 4, the mindless fun of kill until you are killed is a bit altered with the addition of the command ship. I’ll need to preserve this, and add more strategy, more goals, more game. Oh well, I hope you come along for the ride :)

Iteration 5 news: Textured models incoming and finaly a name for the project

I’ve purchased some stock models and they will soon appear in game. Also I’ve begun actively recruiting artists to start the process of bringing the game’s assets up to a professional level. So in Iteration 5 (due in about a week more or less) you will start to see more and more textured assets.

In other news I’ve finally settled on the name of this project, and the name is “Void Destroyer” I’m terrible with naming things because it is hard for me to make a final decision, I get very critical of names, sometimes staring at the “name your character screen” for a while in games. I’ve registered VoidDestroyer.com and will soon start to build that website. The website will be in a more “themed” fashion (as compared to ArrMaytey.com whose goal is about the technical and game development aspects of the project). The Void Destroyer website will include the background for the “universe” of the game, descriptions of the forces you encounter and tech that make up the game world in the hopes of getting players more excited about the project, drawing them into the setting. The neat thing about finally settling on a name is that it will become less awkward to discuss the game, instead of saying “unnamed project” I can say Void Destroyer, this means that I could start approaching the blog and game review communities with the title.

Iteration 4.2

Iteration 4.2 is ready to download on the main site. The biggest change is the weeklong struggle with the physics engine. I finally was able to learn how to properly communicate with it and it is working fairly well. There is still a little issue with thrust not always correctly reaching the speed setting, but that can be looked at later. I’m really excited about the changes so I wanted to make it available.

I gave the AI the ability for its weapons to turn slightly to better aim, as a consequence of the AI not being able to line up to its target as good as it could under the other flight system. What’s neat is that the AI is much better at hitting targets, but the player can still do a good deal of evasion (in the old system, evasion was almost impossible) of enemy fire. The lateral thrusters really help in this.

Another somewhat big challenge was a proper way for the ships to stop rotationg. So to recap, with the new physics engine the ships rotate via applying a force, because there is no fricksion in this space sim, this would mean that the ship would rotate forever. So of course this wouldn’t make it easy to control the ship, so I have to add a counter force to stop. Problem was that there was this tiny amount of rotation that messed with a variety of things. For example aligning for gravity drive (what I call the fast mode of travel beteen large objects) didn’t work well because in order for it to kick in it checks whether the ship is stopped (including rotation). This also interfered with the camera, as you can probably see when the ship turns the camera turns to give the effect of motion, this depends on the rotation being stopped to return to the neutral position. So with a tiny bit of rotation persisting, even though the ship wasn’t rotating, it had a big impact.

So when I fixed the rotation issue, a bunch of other problems simply went away! yay!

Drunken AI

So I started work on converting the AI to use the new physics system. Before the AI would know exactly how to turn, if it needed to turn right 90 degrees and the ship had a capacity to turn 80 degrees a second, it would then turn at 80 degrees per second, then the final 10. Now that turning is velocity based this is a bit more complex. The AI now has to decelerate the turn or it will over shoot the target.

At first I had a bug where the AI would constantly overshoot so it looked like the AI was drunk, weaving left and right eventually slowly getting to the correct point. I’ve fixed that bug, but the AI has a bit of a problem rotating correctly to hit fast moving/turning targets.

This may not be totally bad since this solves a problem that I had for a long time, the AI was far too accurate and the player didn’t stand a chance on a one on one fight. Now that the AI can’t turn perfectly anymore and has to slow down the turn the player has an advantage. The problem is that the AI is now too disadvantaged, especially when it comes to beam weapons. Before beam weapons were clearly superior to projectile weapons, now they are inferior. So what’s the solution?

One thing that I think I should invest much time into is making the ships a bit easier to maneuver, not as easy as before, but the deceleration of a turn should be faster to give both the player and the AI more control. Its pretty neat and feels fairly “realistic” the way it is now, but needs tweaking to be more fun and arcade like, a good balance between both worlds to reduce unwanted frustration of the player.

The other thing that I can do is give the AI the same “cheat” ability that the player has had. When the player ship’s weapons were near the target, they would turn within 30 degrees or so and help the player aim. The AI might need this ability as well.

———-

The other neat thing about the better physics integration is that now there exists the “correct” momentum of a ship. Before I had a value that was most of the time correct, except when a ship would be colliding against another object, then the value was horribly mistaken, because the ship’s momentum wouldn’t be affected by the impact (under the old system, now this is under the control of the physics engine). This might not sound like a huge issue, however when it comes to aiming and AI it was big. Weapons have a built in “aimNode’ (as I call it) that calculates the correct position for the weapon to be aimed to have a great chance to hit their target. Part of the formula was the target object’s momentum and the firing object’s momentum. If this value was off then the weapons would miss. This off value would crop up a lot when objects were colliding, the weapon AI would still think it was moving and thus shots would be hopelessly off target.

So not only was the old physics bad in the sense that collisions were very sticky and ships sometimes would get stuck on each other, but in many cases weapons wouldn’t be able to destroy them, aggravating the stuck issue because the ships were basically invulnerable due to weapons constantly overshooting them.

Physics engine

As I was play testing Iteration 4, I watched as a large carrier turned maneuvered. Problem was that the large carrier was able to stop turning instantly. This is not the type of space sim I want to make. Don’t get me wrong I don’t want the ships to be sliding left and right either, hard to maneuver, but I want there to be some weight to them. I’ve been planning on fully integrating the Bullet physics engine for a while and started down this path again (I gave up many times).

The last attempt of me doing this resulted in a hybrid system, I would position and orient my ships manually, but when a collision happened I would give the physics engine control which would then show a dynamic collision. Problem was that doing things this way severely limited the physics engine’s understanding of the situation, because it didn’t know about the linear and angular velocity of the objects, the collision wasn’t dynamic. I would limit the physics engine control over the object for a split second because if the physics engine had control then the player wouldn’t, so I limited this to the point of impact and a few moments after, meaning that the collision would start abruptly, then stop abruptly, no fluidity. Plus the ship’s momentum wasn’t impacted by the collision.

Anyways the above system gave me more then I had before so I was fairly happy with it. But now I have a much more integrated system, now I don’t rotate an object, I apply a angular force to it, I don’t move a ship, I apply a linear force to it.

Here’s a before and after video showing the same collision happen in the two modes:

The change is subtle, but the after is more fluid and dynamic, and best of all the player has some degree of control at all times. What is left is for me to teach the AI how to maneuver with this new system in place as well. Hopefuly the benefits here will also be neat.

Iteration 4 released

You can download it here . Iteration 4′s main focus is the new tutorials and tactical mode visual changes.

My goal for iteration 5 was to start on the player’s command ship. The ship where the player’s in game avatar resides, an old warship found amid the rocks. However while testing iteration 4 I decided that I will first work on better physics integration. Right now I’m using physics in a sort of a hybrid way. I’ll fully integrate physics to give the ships more weight and a more realistic feel. Also I’ve been thinking of adding a better user interface for adjusting the graphics options, I’m not sure how many of those that download my game change the graphics options to get the most out of the experience, so I’ll create a better interface for this instead of the basic Ogre 3D setup window that currently appears.

There will also be an increased focus on getting textured and better art assets into the game.

I’m excited about the future of this project.

Iteration 3 released

The planets are gone and enemies now ramp up until their are fairly unstoppable, I’ve played and tweaked the game last night and the longest I’ve lasted was about 28 minutes (thanks to some defense stations) before succumbing to the onslaught.

Few more tweaks and this morning to the installer to make sure it is consistent with the older iteration (same install directory). The installer now also creates a link to the manual in the Programs Directory, minor but important things like that.

The major goal for iteration 4 will be to have a semi complete tutorial, in addition to the usual tweaks and fixes. The nice thing about starting on the tutorial system is that the same code will be re-used for the story mode, since a tutorial is basically an objective based sequence of events, same as a story line.

Hope you enjoy!

Iteration 3 almost here

I remmember a while back a friend of mine had a baby, I teased him comparing taking care of my cat (then a new arrival as well) to him taking care of his newborn. He would say: Its nothing like a baby! Well if I had friends in the game industry I would tease them now comparing me getting ready to release iteration 3 to them during their releases. I’ve been fairly busy tweaking the game, fixing a few bugs, updating models, play testing, balancing, updating the website with new screen shots and making a new video for youtube. I have to remind myself: it isn’t commercial yet, so you can take breaks (sitting in front of a computer eventually gets to me) and don’t have to keep a ridig schedule.

I keep thinking that if I was a company and had a team I could have someone else do the website and other tasks. Oh well maybe one day!

Working on some new models tonight

Again! Why do I do this? I feel compelled to make the game look better knowing that my time would be better spent on programming.

Anyway I found a neat source of blender models, this particular download (from http://www.blendswap.com) lets me assemble ships from parts, meaning that I can alter them and customize them to my linking, basically selecting how many polys the final result will have.

Here are some images:

Full size


Full size

Also pictured is the “editor” which is fairly basic now, but will become a well a very useful modding tool.