Author Archives: arrmaytey

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.

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.

Giving tactical mode some love

Tactical mode as it was looked a bit too cartoonish. My intent is for tactial mode to look “cool” yet “utilitarian” (read: no frills military look). I also wanted to distinguish tactical mode by having a different approach to light in it. I wanted everything to be clearly visible unlike the ship mode where light came from the sun. However when you turn off light then you lose a lot of the coolness and detail (from the shading). So I came upon an idea, turn on the light for the majoirty of the model, and turn off the light (in game dev terms when you turn off lighting you make an object fully visible) on the model’s wireframe. I also changed the background color to be much darker. The result looks much better in my opinion.

Tactical mode - before and after
Click to see full size

DIYgamer.com banner add offer

DIYgamer.com was kind enough to offer indies like myself the chance to display a banner on their site. I jumped on the opportunity and put together a non-animated banner in a few minutes and true to their word it was on display on their site for a week.

Banner on DIYGamer.com
Click to see full size.

It was quite a thrill for me to see it, but I immediately thought I could have made it an animated gif, made it better, etc. Everyday after it started appearing I checked how many visitors went to my site via the DIYgamer.com banner. It was about 10 per day, 50 in total (over the weekend DIYgamer.com had website issues and was down for a few days). I didn’t get any hellos from any of the visitors so I don’t know what they did once they came to the site (whether they downloaded the game etc). Quite honestly I was surprised at the number, I thought it would be lower because I know from my own experience I’m pretty well trained to ignore ads on sites.

Hopefuly one day I’ll be in a position where I can repay this kindness.

Budgets, art, etc

I added a textured base model from SolCommand’s website. Looking at model in game gave me ideas. I like how it looks and imagine everything else looking similar. So I am investigating the possibilty of paing for art. There are a few choices for “off the rack art” like: Turbosquid and 3DRT . Some of the off the rack art I think would fit, but there is glut of fighters and other small ships, and a lack of larget capital ships. Plus going down this route I would probably end up with a big mismash of dissimilar styled ships and varying texture resolutions. Still I’ll probably invest in a few models and keep an eye out for more.

I also communicated with an artist that advertised on some game development forums, the artist rates were far beyond what I’d be comfortable at this point, in the few hundred dollar range per day. I would either need someone who is far more into the hobby aspect, far hungrier, and/or just starting out. Basicaly someone in a similar position to mine.

Iteration 3.5 and a Twitter account

I wasn’t planning on releasing iteration 3.5, instead the plan was to release iteration 4 in about 2 weeks, however DIYgamer.com extended a very generous offer to show banner adds of indie projects for free on their site. I jumped on the offer and in hopes of the increased traffic I “finished” two new tutorials that I’ve been working on to ease players into the game. My plan is to ask gaming communities for feedback on how effective the tutorials are in the near future. There may be some gaps that I’m missing because I’m too close to the project. I hoped to ask my wife to run through them, but simply ran out of time this Sunday. She’s the perfect candidate since her gaming world involves Solitare and a week long obsession with Zuma years ago. If the tutorials teach her how to play the game then they’ll teach anybody (which is my goal).

Also in the vain idea that those same new visitors (and repeat guests) would be interested in following me on Twitter I joined up Follow me on Twitter. Quite honestly if you asked me before I started this project whether I would have a Twitter account I’d probably roll my eyes, but nowadays I definatly see a use for it to help me spread the word and communicate with those who may be interested in this project.

I hope you download iteration 3.5 and test out the new tutorials and let me know how they work out. The plan is for Iteration 4 to also include a combat basics tutorial.