Category Archives: Game Updates

Base assault play testing

It is interesting how different things actually play out than what you put into the game as code and logic.

Here’s a list:
I found and fixed a bug – stations couldn’t be destroyed. I don’t know how long this bug was in effect, since the enemy now builds stations this bug became apparent after I ordered the Command ship to destroy a defense station of the base I was assaulting. Speaking of stations, I recently changed the health points of stations that were being built, I made them start at 0 and increase as the station was being built (prior they started with max health even 1 second into their existance). Meaning that in theory the player could destroy the station as it was being built and not yet operational. The Command ship was firing all its guns and missiles and did put a dent in the station but couldn’t destroy it (the health generation was overwhelmed the damage), so I need to change this process and stop the station’s health growth if it is under fire. Otherwise the situation is a bit silly.

Minor bug regarding ships wanting to return to a friendly base, instead they should patrol the enemy base until the player commands them otherwise.

After defeating the defenders I realized that I have to tweak a few things, I started sending in the boarding ships, and realized that it would take quite a lot of them to kill the crew of the base which at this point numbered at over 1500. I plan on putting a cap the station’s population (this is a easy way to control difficulty as well, nearer stations will have smaller cap than further away bases). To create more strategy I plan on putting in “city” stations, which will allow for a larger work force (raising the crew cap), but they are much more vulnerable to attack since they are outside the base in a station that can be destroyed. The enemy and probably players will build defense stations around these too :)

The base’s crew generation (it is a percentage based one) was far greater than the rate of boarding ships I was sending so I need to stop the increase of population if the station is being boarded, plus put a max on population growth instead of making it a straight percentage only deal.

I also plan on putting in different ways that the player could hurt the base’s crew, for example a station that shoots torpedos (or even meteors, why not eh?) at other far away stations and bases, if shot at a base it would kill 5% of the station’s occupants (meaning that this torpedo station alone wouldn’t be enough to destroy an enemy). Plus the torpedos will have low health so that defensive stations will have a chance to destroy them. And with the city stations I mentioned, base assaults will become much more interesting. I think this will more strategy and fun to the game! Very excited about the future.

Getting ready for iter 8

Iteration 8 should be ready next weekend. Putting in the final touches now. Making sure that there aren’t any crashes, that the player can save/load etc. Also I’ll have to play test to make sure it is possible to capture other bases. If the enemy defends too well, or what not. Also this will be a test of whether this is fun/interesting :)

Once iter 8 is released, I’ll need more feedback from players, see what their impressions are. The closer we get to “alpha” stage and beyond, the more game like this project becomes the more feedback I will need. I’ll have to scour the web for willing participants.

Iter 7 and beyond

Iter 7 feels a bit sparse, my intention for it was to showcase the trading ship changes, but since I disabled “colonizing” other bases trading ships don’t have anybody to trade with. I already put in the code to capture bases into iter 8.

The process goes like this: player builds a ship, ship uses 50 crew. Ship docks at either neutral or enemy asteroid base. If neutral player takes control of asteroid base. If enemy base, the crew of the ship of 50 attack the base’s crew. At first the attackers would lose a static number of 5 “troops” per round, this felt very odd, so I made this a random number between 2 and 5. The defenders lose a base number of 5 crew each round, and then an additional 0 to 10 crew, giving it a bit of a randomized feel, but also making it in favor of the attackers.

Another aspect that I’m working is some common RTS elements, in past iterations I had a “enemy” object that just spawned shisp based on a timer, after a spawn the “budget” of ships would increase up to a maximum value. These ships would pop in instantly, and wouldn’t be linked to any asteroid base, wouldn’t take up any resouces of crew. Because I wanted this to be linked to asteroid bases (to make the enemy less of a cheater, more obeying the laws of the game that the player has to obey), I changed it so that asteroid bases queue up ships to be built, then once a pre-determined number of ships are built the base checks whether there are enemies nearby, if not then it orders the built ships to attack the player’s base.

Next up: having bases build stations, defensive, shipyards, etc.

So my goal is to make the game – more game like :) giving the player their first objective, conquer enemy asteroid bases. Will work on adding “research” in to the game as well, this is to essencially limit the ships avaiable to the player, thus allowing me to be able to control the early game. If I know that the player can only build corvette class ships then I know what I can send against the player. Also this will give the player another goal: get better tech to build bigger ships :)

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 :)

Command ship progress and happenings

The very basics of the command ship upgrades is in place. Players can now upgrade and repair the command ship a bit, the only options avaiable are to add front guns, turrets, boost cruise speed and autorepair rate. These are just basic placeholders that are useful for coding the behind the scenes of the command ship, so if you think they are lame… you are right. These upgrades are passive, meaning that they are always on and don’t require any thought to use, they currently also have no cost except for time. In the next/future iterations the command ship will also gain active abilities, for example a missile barrage or some sort of a heavy weapon, more are planned and appear in a list on this forum thread: feel free to add to this list. Players will select these abilities, they will be active for a short time and take a bit of time to re-charge/get ready for next use making them a tactical decision and a great aid in fights. In near iterations upgrades and abilities will also cost resources, the command ship will get these resources either from trading stations (you will see a cargo container fly towards the command ship) or through trading ships. Making the decision to upgrade and which portions to upgrade a strategic decision with costs and benefits as well.

In more personal news, this was finals week, and I’m now on “summer vacation” (still full time employed). A month and a bit without school, then back for a brief summer session and then a Fall session. I’m hoping I’ll be able to add quite a bit to this project over this free time.

Started work on the player’s command ship.

So the first steps in adding this big part of the game are in. The game will have elements from multiple game genres: commanding ships like in an RTS, ship to ship combat like in a space sim, economy and base management like in an empire game and repairing/upgrading the player’s command ship like in a RPG.

First off I added a new model to the game thanks to Solcommand.



Click to see full size.


Click to see full size.

This is a placeholder model since my “vision” for the end result is a bit different. First off the ship will need a more distinct heavy weapons placement towards the front. The ship will also need to be able to accomodate more turrets and have a small hangar bay. The ship will also need a neat looking bridge.

After adding this ship I gave it a “is critical” flag. So from now on when this ship is destroyed the game ends (prior to this the game would end when all of the player’s ships were destroyed). So after almost 2 years in develoment I’ve started on the “game over” screen when the player’s ship gets destroyed. The game now doesn’t instantly end and return to the main menu. Instead the camera gets positioned to look at the critical ship being destroyed and a “game over” screen is displayed showing some statistics (work in progress).

Things still left to do: make a autorepair type ability (otherwise the ship is far too big a liability). Add functionality for repairs and upgrades to the ship. Add functionality for using some unique abilities eg: firing of heavy special weapons, speed boosts, shields, etc. Add some sort of a warning system when the ship is under attack and/or low on health (since the player may often be in control of another ship this will be necessary to bring the attention back to the command ship if needed).

Working on sound/music

The first portion of the soundtrack is completed thanks to Pat. So it is time to add music to the game, adding it is easy, however I want to let a player disable it or change the volume so I’m working on modifying OgreOggSound to take these added functions. It is pretty easy, but also pretty boring. Oh well it has to be done, and I look forward to the result.

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.