Friday, December 12, 2008

Survey Says!

I need more feedback. There are only a small handful of players who participate in the online forum, and they have been very helpful. But I need more information than that.

Here are some interesting stats:
354 battles have been played so far. (not counting stalled games that were deleted)
There are 171 players who have signed up and "activated" their accounts.
148 of them have only joined one game or less.
That means there are only 23 people who have played in more than one game.
40 people have participated in the forum.

I am not concerned with the low overall number of players - it is a beta and I have done no advertising. I am concerened with the small fraction of signed up users that actually play.

So I want to know why so many people sign up and then either don't play it at all, or play it once and leave. Now, a large number of those users may have encountered some show stopping bug in the games less stable days, but still it seems like most people come to the site and sign up and then never play.

The forum doesn't seem to cut it. For whatever reason, people don't want to (or can't) post in the forum to ask questions.

So to that end, I have set up a survey. You don't have to be a member of the site to fill out the survey. The survey shows up on the home page. Once you have taken the survey, it no longer shows up.

I will periodically update the survey with new questions as I get answers and as new questions come to mind.

Thanks for those that have given feedback so far! You are the ones that make a "beta" game possible!

Wednesday, December 10, 2008

Ghost in the Machine

The new AI is finally here!

It was a lot of work to integrate a whole new AI platform, and I was never sure that I would end up with anything useful, but I am pretty happy with it. The AI itself is only a little bit smarter right now than the old one. But the important thing is that the AI is now completely adjustable and extensible. Each AI player can have its own strategy and tactics and changing those tactics is very easy.

So you may not notice a whole lot of difference in the AI right away, they will be able to get much better without a huge effort.

Here are some things you should notice about the new AI right away:
1) The AI fleet should stick together better instead of getting all spread out.
2) they will now use side firing weapons and lay mines
3) they will now target different weapons on different ships
4) they will avoid mine fields
5) They are better at dodging projectiles
6) They are better at pursuing other ships (especially the light fast ones)
7) They will surrender now if they cannot win instead of you having to chase down that one last Lancer that is impossible to hit.

Here are some things they still don't do, but will be able to do soon:
1) They don't use jump drives
2) They don't use tractor/repulsor beams or energy drain beams to any real effect

So Enjoy! And as always, let me know what you think.

Thursday, November 20, 2008

What have I been up to?

There haven't been any updates lately, I know. But this doesn't mean I haven't been busy. I did update most of the pages in the wiki, and I have been hard at work on a completely new AI system.

When I first launched the game, I just needed to get some kind of AI system in place so that people could test the game and play it whenever they wanted instead of having to wait for another real person to be available. So I just hacked together something quick that would suffice.

I also didn't expect that the AI would get so much use. I thought it would be mostly used for testing. But it turns out, most players that sign up for the game ONLY play the AI. This means that the AI is their only view into the game, so if the AI sucks, then the player may not ever come back and play another game. Maybe these players only want to play against the AI -- they aren't looking for a multiplayer game. Or maybe they just want to practice before playing real players. Either way, the AI is their first (and many times, only) experience with the game.

So I have been working a lot lately on a much more sophisticated AI system. The current AI just figures out who is the strongest player in the game and goes after them. It then selects that players strongest ship and goes straight for it firing as often as possible. This means it ignores smaller ships like lancers, etc and just blindly goes after the biggest ship in the game.

The new system uses two finite state machines to control the behavior of the AI fleet as a whole and to control individual ships in their fleet. A finite state machine allows the system to look at its environment and evaluate certain conditions. The result of all of those evaluations puts the system into a certain "state". That state then defines the action that the AI takes. For instance, when the "fleet-wide" AI logic is running, it will look at the distance to enemy ships and how spread out they are vs how spread out the AI fleet is. It will look at who has the numerical advantage or who has a CP advantage. That will put the "fleet" into a state of attack, defend, retreat, regroup, etc.

After that, each individual ship in the AI fleet will run its own finite state machine. That will look at things like whether its weapons are loaded or not, is there a target in front, or is there an enemy behind, or is there an enemy attacking a nearby friendly, etc. That will put the ship itself into various states that will decide who it fires on and when and where it maneuvers to, etc.

I am not 100% positive that this will result in a more challenging AI, or if it will just create a mess, but it should produce more interesting results anyway. Plus it will be configurable, so it can be changed easily and we could have different behavior for different AI players.

So be patient, updates are coming...

Tuesday, October 28, 2008

Form Up!

Formations are now live!

I had deployed the formation manager for testing a few weeks ago, which allowed you to create and play around with formations. But you could not actually use them in battle.

Now, the missing pieces are in place and you can actually enter battle using those formations. I think this will add a bit of dynamic as well as some "coolness" factor to battles.

When you join a battle and click the "Set Initial Orders" button, you will be taken to a redesigned initial orders screen. The first thing you can do on this screen is select a formation. If you have not set up any formations, the only option will be "Standard Line Abreast" formation. When you choose a formation, the system will automatically select ships from your fleet that fit in that formation and assign them to the battle.

You can then manually assign or recall ships by selecting them in the two text boxes and clicking the assign or recall buttons. You can see the total CP that you have selected as you go.

Then you can set your approach vector just as before. This is the direction you want to enter the battle from and what direction you want your formation to face when you get there. There is now a little "preview" box that will show this approach vector graphically.

When you click "Execute Orders", any changes you have made will be committed. This should reduce the "locking" problems we had before where each change you made was committed as soon as you made it (like assigning or recalling ships). That meant a lot of transactions to the server and back which caused locking errors.

Note, that the "approach vector" applies to the formation as a whole, not individual ships. For example, here is a wedge formation that is coming in from 045 with a heading of 225:



This means the entire formation is rotated to the 225 heading.

"Substitute" ships:
Say you create a formation that is for two Lancers and an Aegis and you select this formation for a battle. But then you decide, instead of two Lancers, how about using two Angels? You recall the Lancers and assign the Angels. But the formation has "slots" only for Lancers and the Aegis. When you click "Execute Orders", the system will assign the Aegis to its slot, but then find it has two empty slots and two ships that have not been placed. It will then "substitute" the Angels into the Lancer's slots. It tries to do this based on the CP value of the ship and the CP value of the ship the slot is for. So, with the same formation, if you chose two Angels and a Fayette class Frigate. It would put the FCF in the Aegis slot and the two Angels in the Lancer slots because that is the closest CP match.

"Orphaned" ships:
Say you have a formation that is for 4 ships. You select that formation and the system auto-selects the 4 ships that fill that formation. But you still have CP left to enter the battle with. So you assign 3 more ships of various types. But the formation has no "empty slots", so these 3 ships are orphaned by the formation system. What will happen is that any of these orphaned ships will appear in a line abreast formation behind the main formation. Here is a picture where I added a few extra ships to the above wedge formation:


You can see the extra 4 ships at the back.

So, give them a try and be sure to let us know what you think.

Wednesday, October 1, 2008

Attack Formation!

As you may have seen from my last post giving you a sneak peak at a new feature, Fleet Combat Online now (almost) has custom fleet formations. On the left nav bar of the site when you are logged in, you will see "My Formations". This link takes you to a page where you can manage your formations.

Formations are not fully functional yet. You can create and edit formations, but you cannot yet use them in battle. I wanted to get the formation editor up there for people to play with to see if it is intuitive enough to use and find any bugs.

You can create as many formations as you like, but formations cost 150CP each. When you delete a formation, you get those credits back just like decommissioning a ship.

In the formation editor, you create the formation by dragging ship classes onto the design surface. If you want to put a Lancer in front, drag it from the list of ships to the top center of the design surface. You will see the ship facing upward. You can click on it to move it around or rotate it.

Note that the "top" of the formation editor is always the "front" of the formation. If you are using this formation in battle, you will have the opportunity to specify a heading (like you do now) to start on. The *entire* formation will be rotated to that heading. So if you want all your ships facing forward, they should be facing UP in the formation editor.

Please play with it -- create formations and mess around with the editor and let me know what you think. Once I am happy with the editor, I will work on getting the formations into the game itself.

Monday, September 22, 2008

Sneak Peek

Here is a sneak preview screenshot of what I have been working on lately for the game:



It is a "formation manager". Currently, when you start a game, your ships are all positioned in a "line abreast" formation and you can control the direction they all face, but that is about it.

With this tool, you will be able to create as many formations as you like and save them to your user profile. You create the formation by placing ship classes into specific locations and facings. Then when you start a battle, you can choose the formation you want your ships to start in. The game will automatically pick ships from your fleet to fill in the "slots" you have designated in the formation.

I think this will add a small layer of tactical planning to battles as well as add some individuality and coolness to the game :)

Friday, September 5, 2008

Might as well Jump

I have just deployed a few small changes to the game logic.

The main change is to the FTL jump drives. Players have been using them a little too much making battles hard to resolve. One player jumps so the other player immediately jumps to keep from getting caught in a vulnerable position. This goes on forever and no one gains an advantage.

So, the following changes have been made to FTL drives:
1) You cannot jump in too close to another vessel. Since there are no collisions in the game (yet), you could jump in directly on top of another ship taking advantage of the extra damage done by beam weapons at short range. Now, you will get a message that the jump was thrown off course because the destination space was occupied. The jumping ship will be placed some random distance away.

2) All jump drives now have a "cool down" period of 6 turns after a jump where you cannot begin spooling the drive again. I may make this depend on the type of ship or drive in the future, but for now it is always 6 turns. This will make it more likely that your opponent can hit you before you can jump away again.

Secondly, the fighter-to-fighter combat has been updated a little bit. Up to now all fighters had an equal chance against eachother. Now their type is used to determine who has the advantage. I won't post all the specific numbers, but the relative advangates should be intuitive. Interceptors are good against bombers and recon, but bad against "fleet defense" fighters, etc.

There were some other small bug fixes that aren't really worth mentioning too. Happy hunting...

Friday, July 25, 2008

New Focus

Well the new Interstellar era has been out for a couple of weeks now and everything looks pretty stable. The log files don't show any significant errors and I haven't seen any bug reports. So either that means the code is fairly clean or people just aren't playing :)

Along those lines, I am now going to try to address the issue of players. Up to now I have been purposely not trying to gather a lot of users because I don't want people to show up and try to play a buggy and incomplete game and then leave. But now I think it is time to try to see if we can get more people to show up and play and start to grow 'a community'.

So instead of working on the game mechanics, I am going to start to work on content and features that will attract and hold other players. You have probably seen the 'voting' links at the bottom of the main page. I am not a huge fan of these kinds of things, but the truth is they can drive traffic if people vote. I am not offering any kind of incentive to vote (yet), but we'll see where that goes.

I may also start purchasing ads on other sites to get some exposure.

So anyway, you may not see a lot of visible changes to the site, but hopefully some more players will start to show up. Please welcome them and help them get started so we can grow and fill out the game world a bit.

Friday, July 11, 2008

Its Here!

Ok boys and girls (right, who are we kidding). The interstellar era has been deployed. I did a little last minute testing and calibration of the weapon strengths and everything seemed cool, so I just went for it.

You can now create interstellar era games!

Here are some highlights:
1) Carriers and Fighters! They're pretty fun to use. But when you add the carrier to your fleet, it is empty. You have to add fighter wings to your fleet, and then assign those fighters to the carrier. You assign fighters to a carrier on the "My Fleet" page. Also, you don't directly control the fighters -- you assign them a task like attacking a specific ship or defending a ship and they go do it. They return to the carrier when they are out of fuel. Captial ship weapons cannot target fighters -- only other fighters and point defense systems can.

2) Shields! Most ships have shields. There are four shields: fore, aft, port and starboard. When a weapon hits, depending on the weapon type and the angle it hits, it can damage one or more shields. Different weapons are affected differently by the shields.

3) Different Beam Types! In addition to the standard laser, there is now a tractor/repulsor beam and an energy drain beam. The energy drain can take the targets reactor offline which can stop the ship and cause other problems. The tractor/repulsor can pull or push another ship.

4) More Effective Beams! Beam weapons have much longer ranges and do more damage.

5) Directional Weapons! Projectile weapons can now be mounted to face backward or to port and starboard. This means you can fire to the side like a classic battleship broadside.

6) Jump Drives! Many ships have Faster Than Light jump drives. You can select a destination that is anywhere on the map and engage the drive. Different drives take longer to spool, but once they do, you will jump to the destination within a few seconds.

Thats pretty much it. There are some other minor changes and bug fixes.

I hope you enjoy it. As usual, please report any bugs in the forum.

Tuesday, July 1, 2008

The Hard Part

I know things have been a little quiet around here but that is just because I have been focusing on getting the Interstellar era deployed. Once that is deployed, I will be making a lot more frequent small changes to enhance the game and the website.

The coding on the Interstellar is done. All the new subsystems and ship types work.

Now I am in the middle of creating a load of new ship types. To be honest, this is probably the hardest part. It takes some thought to come up with a balanced fleet design that hopefully doesn't have any large holes that can be exploited by certain strategies.

Not to mention that it is tedious to enter all the data related to all the subsystem and weapon types. The new era has twice as many types of subsystems, mostly due to the new weapon types.

Anyway, it won't be long now. This is a busy week with it being the 4th of July, so I am not sure if I will get it deployed this week or not. But soon.

Sunday, June 15, 2008

Furball

I am still working on the new technologies for the Interstellar era of the game. But I thought I would post some screenshots to show the progress. Here is a sequence of shots showing an attack run by two fighter wings against some enemy ships.

(Click the images to see larger versions)

In the first frame, I have launched two fighter wings (Beta wing and Gamma wing) from the carrier. Each "wing" consists of three ships. Their mission is set to attack and the target is an enemy capital ship. Once you have set their orders and launched them, the the fighters are autonomous -- they fly and fight on their own.



Fighters01

In the next frame, we see my enemy has launched two of his fighter wings to intercept mine. When you select an intercept mission, there is no need to set a target. The fighters will launch and engage anything that is coming toward your fleet with a priority on enemy fighters.



Next, my attacking fighters have been engaged by the enemy's interceptors. On the initial pass, his two fighter wings managed to destroy all three ships in Gamma wing. They then set off after the remaining Beta wing.


My fighters have reached their target with the enemy interceptors close behind.



My fighters fire on the enemy capital ship and turn around to head for home.





As they turn for home, they are once again vulnerable to the enemy interceptors. The enemy manages to take out one of the three fighters in Beta wing. (The graphics don't yet reflect that there are now two ships instead of 3).






The two ships left in Beta wing are home free as the interceptors are forced to return to base to refuel.


So there you go, a quick little engagement. Again, the only commands I issued was to set the mission for the fighters to attack and click the launch button. The only commands my opponent issued was to set the fighters mission to intercept and click the launch button. Everything else was handled by the fighter AI. I think this is more realistic than directly commanding the fighters, and will not overload the player when there are dozens of fighters in the battle.

Thursday, May 29, 2008

Little Friends

I have officially started work on the Interstellar Era of Fleet Combat. This will take a while as many new technologies are needed. But the first one I am working on is carriers and fighters.

In real naval combat, fighters completely changed the game. Battleships were now irrelevant -- you couldn't get close enough to a carrier group to hit it with your big guns before the fighters and bombers took you down. It will be interesting to see what impact they have in FCO.

Fighters (I use that as a generic term as there will also be "bombers" that are meant to go after capital ships, but they all fall under the umbrella of "carrier craft") will not be under your direct control. I have thought about this, and it seems like directly controlling dozens of fighters each turn would be a pain. Plus it just isn't realistic -- the fleet commander issues orders, it doesn't tell the fighters when to fire or which direction to fly.

Fighters will come in "wings" -- a small group of probably two to six individual fighters. You can give general orders to a fighter wing, but they will fly and fight on their own. The orders will be like "defend ship x", "attack ship y", "intercept fighters", etc. The fighter wing will launch from the carrier and carry out its mission for a set amount of time. After that time, they must return to the carrier to refuel and rearm. You will be able to change their orders while they are in flight, but you won't be able to tell them where to fly or when to fire.

A small carrier in this era will probably carry four fighter wings and a top of the line heavy carrier maybe a dozen. (To days carriers haul about 70 planes which you could say is equivalent to 16 "wings").

I haven't decided yet if carriers will come pre configured or if they will come empty. I think there is some element of skill involved in properly outfitting your carriers just as there is in properly creating a fleet. So I think carriers will be quite cheap in terms of CP, but each fighter wing will cost CP. So a loaded carrier will end up being very expensive.

I can see some interesting choices about sending fighters after capital ships. Ships in this era will more commonly be outfitted with point defense systems which will cut fighter wings to ribbons. You may need to hurl a bunch of missiles at a target to occupy its point defense system long enough for the fighters to get in and score some hits before the PD can recharge. Should be fun.

But don't hold your breath, there is still a lot of work to do...

Wednesday, May 21, 2008

Back In Business

The new development server is built and up and running. As proof, I have just deployed a small bug fix: the game client was displaying "No Deadline" in every game even if it did have a turn deadline.

This was because a while back I forgot that the client needed that info so I marked the deadline information so the server would not send it to the client. I have re-enabled this so now it should show the time left to deadline and it should allow you to move the game forward when the deadline passes.

Tuesday, May 20, 2008

Development Server Update

Just a quick update about the state of my development server. I ordered parts for a new server over the weekend and they all arrive today. So I will be able to build the server tonight and get at least most of the software installed. Hopefully Vista won't give me any trouble and I will be able to easily transfer all the data from the old hard drive without losing anything.

So if all goes well, I should have my development environment back up and running by tomorrow night. Luckily there haven't been any show stopping bugs to pop up in the last few days that need immediate attention. But I will soon be able to get back to working on the game.

I should buy stock in newegg for how much money I have spent there recently :)

Friday, May 16, 2008

The Computer Gods Are Not Smiling

So there have been a few cases lately of old bugs in the game that I had fixed resurfacing. I could look at the code and see bits of it that I had corrected that had somehow reverted to an older version before the fix.

I have encountered this sort of thing before. It is usually a problem with Visual Studio and/or Visual Source Safe. Visual Studio is what I use to develop the game, and Visual Source Safe is a version control system that keeps track of code changes and allows you to roll back to a previous version of one or more code files if you need to. It also acts as a kind of a backup system for the code. I do all of my development on a server that is separate from my main PC. This way I can do development remotely from my laptop or even from any computer with an internet connection. This is my dev server which is separate from the live server the game runs on.

Anyway, I proceeded with the normal fix for this sort of thing -- delete the affected project out of the Visual Studio solution and reload it from the latest copy held in source control. But it wouldn't let me do this because some files were in use. I tried stopping the web server and closing all programs, but it still wouldn't let me delete the files.

Fine, I figured, the usual solution to this is to reboot, so I did. Just my luck, the server never came back up. Uh Oh.

Usually this is some sort of boot disk problem. If the hard drive is old, and you have a machine like a server that you rarely reboot (like once a year or so), the drive can get grouchy about being recycled. But I tried hard booting it several times with no luck.

Okay, now it is more serious. I removed the server from its closet and put it on a bench so I could hook it up to a keyboard and a monitor. I turned it on and nothing. No video signal, no beeps, nothing. This tells me the machine isn't even starting it's POST operation.

Well, long story short (this is already a pretty long post): the server is dead. I removed all of its components and tried to get it to post with just a bare board, CPU and minimal RAM and it still won't. I have never seen a running computer fail to post during a reboot. Really strange. I haven't rebooted this server in ages, so somewhere along the line something in the CMOS fried. But as long as the machine was already running it was fine. But on the reboot the CMOS needs to run and it couldn't.

So even though I *just* bought a new PC, I am now shopping again for a new server. Not exactly in the budget. Luckily the server will cost about 1/10th what my desktop machine cost :) (about $400 vs. about $4K for the desktop)

So there won't be any updates to the game for a little bit. Hopefully I can buy a new server and get it up with all the necessary software pretty quickly.

Sorry for the delay... (and the long post, but I needed to rant!)

Wednesday, May 14, 2008

What is your ELO?

Fleet Combat Online now has an online player ranking ladder. This is based on the ELO scoring system which is commonly used for Chess, "Go", StarCraft and lots of two player games both online and off. This system uses a pretty well established mathematical formula which gives a weighted amount of points based on the existing skill rating of each player participating in a match.

You can see the ladder here.

If the players skill levels are evenly matched, then they both stand to win or lose an equal amount of points. If however their skill levels are mismatched, the higher skilled player has little to gain and lots to lose and the lower skilled player has a lot to win and little to lose. This keeps experienced players from beating up on newbies and allows a skilled but new player to rise quickly in the ranks.

There is some potential for abuse. Once a player has achieved a high ranking, there is not much incentive for them to play further matches. They will have a tendency to just "sit" on their current score and decline challenge requests from competitors. I will be implementing measures against this in the future. But for now I think this will do.

There is also the issue of having AI players on the ladder. I don't really see a reason against this. Yes, you can plump your ladder score by playing the AI in a bunch of ranked matches, but this has diminishing returns. Since the AI sucks, its score will quickly go down to almost nothing. This means the skilled player challenging the AI will score few (if any) points by doing so. So it will work itself out I think.

So start a ranked match and join the ladder today!

Friday, May 2, 2008

Pure Energy

Wow, its been a month since I posted here. Well, I have not been inactive at all, I have been working on some big changes to the game. So without further delay, here is the list of updates:

The game now supports Directed Energy Weapons -- Lasers! This was a big development effort, but it is one step to ushering the later "eras" as energy weapons will feature prominently in later times. Though the interplanetary era isn't left out. A couple of new weapons have been added to the interplanetary era and...

A new ship class -- the Aegis Class Escort Frigate has been added. This ship carries a turreted laser cannon and an automated laser point defense system. It can shoot down incoming missiles automatically. Or, you can disengage the automated system and control it yourself.

This new ship class is relatively expensive because it will probably have a very significant impact on game tactics. It will be very hard to hit as the point defense system can hit up to two incoming projectiles per turn. Plus, the main cannon can also (manually) target incoming projectiles. Plus it also carries a decoy system. So only concentrated fire will have any effect on this ship and those that it protects. It is relatively useless for offensive combat however. The laser cannon has a very limited range and the damage it does drops off significantly with range. Other than that, it only has a single Hawk missile launcher for offense.

Other small enhancements:
1) There is a new tab in the game client called "fleet". This tab lists all of your ships. Clicking on one of the ships in this list will center the display on that ship and select it. The surrender button has been moved to this tab.

2) Hovering your mouse over a weapon on the "Fire Control" tab will show the firing arc of this weapon on the game screen. This will help you decide if it is a good time to fire that weapon or not. This can be disabled by unchecking the "Weapon Arcs" checkbox on the right side of the screen.

3) The Point Defense System (carried by the Aegis) shows up on the defenses tab. But it also shows up on the weapon tab. By default, the weapon will show "automatic mode" and there will be no buttons to control the weapon. If you go to the defenses tab, you can "Disengage" the automatic point defense system. Then go back to the weapons tab and you will now be able to control this weapon manually.

4) Beam weapons do not have a load button -- they charge continuously as long as you have reactor power. This means they can be fired almost any time -- but they can only fire using the amount of power that they have charged. You can opt to fire less than 100% power using a numeric spinner control. If you select 50% power, the laser will do 50% of the damage and have 50% of the range, but it will not discharge all the way, so you can fire it again next turn. The "firing arc" overlay will show you the range of the beam weapon.

5) Beams are only shown for an instant when the turn is updated. If you blinked and missed them, there is a "Re-show Beams" button on the right side of the screen. Click that, and it will re-draw the beams so you can see what was fired. If the button is disabled, then it means there were no beams fired that turn.

Bug fixes:

1) I made the controls on the left panel of the game client narrower, so they won't be cut off anymore.

2) The "Browse Players" on the site sorts by latest activity by default. So you can see right away who are the most active players. I also fixed the sort on Battle Stats -- clicking the column heading will sort properly by battle stats so you can see who the best players are.

3) There was a bug reported about not being able to delete messages in the game. I could not reproduce it, but I think I know what caused it. So I made a fix, but I don't know if it is actually fixed...

4) I found a math bug in my vector mathematics that would cause missiles to spontaneously loose lock in a very rare specific circumstance. This has been fixed.

5) The AI players didn't fire too often. This was because they were set to only fire their weapons within a certain range. But they were also programmed to turn slightly abeam of their opponent when approaching to help them avoid incoming missiles. This unfortunately turned them such that their target was out of the weapon's firing arc. So they rarely fired on approach. As a "quick fix", I removed this "turning abeam". So the AI will now fly right toward you and fill the sky with missiles. The AI needs an overhaul, but not right now...

Thats it! Not much really, when you think about it :)
Enjoy, and as always: let me know what you think in the forums.

Sunday, April 6, 2008

Bug Scrub

I have deployed the following changes (mostly bug fixes):
Bugs fixed:
1) AI players not firing all of their weapons when they have the opportunity.
2) An unhandled error in the game client when assigning repair teams to fix a subsystem
3) An unhandled error in the game client when deploying a decoy
4) When a ship exploded, there was no explosion drawn in the game client (there was still an explosion visible for the missile or whatever hit it, but not for the ship itself which is much larger)
5) Damage was not being applied to ships that were near another ship that exploded. Now they will recieve damage if they are within the explosion radius.
6) Label on MK II torpedos said "FS2S".
7) torpedo would not aquire target until a full turn after its launch.
8) Mine fields would disappear from the game board when you flipped backwards through earlier turns in the game. They would only show up when viewing the most current game turn.
9) fixed the drawing of some ship types that had visual defects

I also reworked the "Set Initial Orders" page. The existing layout was not going to work as players had more and more ships in their fleet. The new layout will accomodate more ships. Also, the page doesn't refresh when you assign a ship to the battle -- it uses an AJAX call to a web service to add/remove the ship without having to refresh the whole page.

As part of that rework, I got rid of the fixed compass points for your approach vector. You can now enter any heading you want to approach from. You can also enter whatever heading you want to face at the beginning of the battle (you could do this before). So if you want to approach from the upper right -- you would enter 45 in the approach box and 135 in the heading box.

Monday, March 31, 2008

Fish in the water

I have just deployed the "real" logic for Torpedoes. This should make them a lot more deadly (maybe too deadly, but we'll see).

They still won't be much good against fast ships, but they will be quite a worry for large ships. Torpedos have a 360 degree field of view, so you cannot break their lock by out turning them. They also have an infinite lifespan, so they will never run out of fuel or self destruct (all the other missiles self destruct after 30 seconds or so).

They are still affected by decoys, but only temporarily -- torpedoes are the only projectile that can aquire and re-aquire its own targets. Even if its target is destroyed, it will search and prioritize nearby targtes and go after one of them.

Basically, once a torpedo is launched, it *will* hit something eventually. There are only two permanent defenses against torpedoes:
1) other ships. Another target that flies near to the torpedo may be too much temptation for it to resist, so it may pursue this new ship instead of its original target. So you can sacrifice a lancer to save your DCD for instance.
2) Mine fields. Torpedoes can hit mines just like anything else.

Another difference from regular missiles: torpedoes are launched at their top speed -- all other missiles are launched at a relatively slow speed and then they accelerate from there.

This change will affect new games starting from now. As always, let me know what you think.

Friday, March 28, 2008

Don't Panic

Your ships and all of your games have disappeared. This time intentionally! I have deleted all the game data except for the players statistics (Command Points, wins, losses, etc.). Everything else is gone.

This was needed because I had to redesign the data storage for the entire game. This site started as an experiment in game logic and I wanted to see if it was possible to set up a web based game and get players to show up. I spent an absolute minimum amount of time in designing/coding things that didn't affect the "game play". I also did not know what kind of restrictions I would be under with a hosting partner. I wasn't sure if a Microsoft SQL or MySQL database would be available. So everything was just stored in XML files on the server. This works fine, but it is slow and very inefficient with disk space.

Now that the game is playable and we have players showing up every day to play it, it was time to address that shortcoming. So I moved everything to a Microsoft SQL database and the only thing still saved to XML files are the "archived" game turns. Each turn is saved so that you can go back and review past battles and/or study your opponents. Since performance isn't an issue, that data is stored as XML and compressed to the file system. Everything else is in the database.

This should make the game more scalable for the future as more players sign up. It should also help eliminate any data corruption bugs that we might otherwise have seen.

So I am sorry about any games you had in progress and about your ships. But you can now rebuild your fleet and start new games. Hopefully there won't be another data wipe needed.

All Command Points have been refunded. Any that you have earned in battle, you still have, so you are not completely back to square one.

In addition to the data wipe, there are a few small game play changes:

1) When a player joins a game you started, you will get an in game message.
2) The heavier ships now carry heavier weapons. There are now three classes of missiles (Falcon, Hawk and Eagle) and three classes of mass drivers (Mk I through III). The higher classes are more maneuverable, faster and hit harder. This should increase the value of the heavier ships.
3) The MCC has been nerfed a little bit. Its triple missile launcher has been replaced by a double and a little bit of weight has been added.
4) The cruisers are now a bit faster as I added engine power to them.

So the heavier ship classes should feel very different and their weapons should be more potent.

Enjoy, and as always -- let me know if you see any bugs. This is a *HUGE* change in the code base and it was designed to solve some bugs we were seeing, but it is very likely to have introduced some new ones.

Sunday, March 23, 2008

And they're back!

The in game and lobby chats are back online. This also means that the "player status" indicators in the game client are back and working. So you can play a game with both players online now and everything should work as normal.

Saturday, March 22, 2008

Chat(s) down

The lobby chat and the in-game chat are both down right now. This will also affect the "traffic light" status indicators in the game.

The problem is that the client and the chat server are written with a beta version of Adobe Flex. Well, Adobe just released the final version of Flex this week and for some reason, they decided it would be a good idea to kill any application using the beta. So the chat server had to be rebooted and now the server software won't run saying the beta is expired.

I have the final version now, but I will need to update the game client, the chat client and the chat server. It is a bit tricky to update anything right now because I am in the middle of porting the game data storage to a database. This involves changing a lot of the data structures in the client and the server. So I am not sure when I will be able to fix the problem.

You *should* still be able to play games in a turn-based manner. But if you and your opponent are online at the same time, you will not be able to play or chat properly because when you click "ready" on the status indicator, his game client will not get the message, so the game will not advance.

So please hang in there. Sorry about this!

Wednesday, March 19, 2008

Don't hold your breath

There haven't been any updates in a week (since the release of mine fields), and there probably won't be for close to another week. This is because I have decided to rip out a lot of the guts of the game engine.

When I started writing Fleet Combat Online, I didn't know if I would actually release it or not. It was just something to play with and see where it went. Since it was just an experiment, I didn't bother using a proper database for storage of game objects and the games themselves. All I did was put in a quick mechanism to serialize the game data to XML and save that XML to a file. It was super quick to code (a couple of minutes) and it worked.

But now that the game is up and working, that isn't a solution that is going to fly for very long. So I am porting the storage of the game data over to an SQL database instead of using XML. The "ships vanishing" bug and the "stuck game" bug are both due to the XML file storage issue. Storing things as XML files is slow and unreliable compared to a database and it is this that has caused some of these bugs. The "stuck game" bug mostly happens when two or more game clients call the server and ask it to process the turn at the same time. Since there is latency in reading/writing to the file system sometimes those different requests step on each others toes. With a database, the game record can be properly locked while the turn is being processed. Then when the turn is done, all the clients will be informed and get the latest game data.

Anyway, it is quite a bit of work (which is why I didn't write it like this in the first place) so it will be a while before it is ready. I haven't decided if I am going to go to the effort of making it compatible with the current game data. If I don't do that extra effort, then all current game data (games, ships, etc.) will be incompatible. So there will be a game wipe in that case. Player information is fine as that is already stored in the database. But game related data might go bye bye.

Wednesday, March 12, 2008

Deadly Space

I predict that the Columbia Class Corvette and some of the larger ships are going to get a bit more popular...

I have just deployed a major change that enables mine fields. Up to now, the mine layers have been pretty useless because they haven't created proper mine field. But now they do and they are quite deadly. Please read this wiki article about mine fields as I think it will have a big impact on tactics and fleet composition. Two highlights: mine fields are almost invisible to your enemy, and mine fields have the potential to stop incoming missiles. This change will affect games in progress.

Other changes in this release:
1) reduced some of the "message spam" in the game client. If your helm is damaged, you won't hear about it a hundred times each turn. You will now get one message saying how far off your helm might be (of course you don't know exactly, because its damaged). Same goes for engine damage that limits your speed. Note: if your engines go offline or your speed is limited to a slower speed than you are currently travelling, your ship will not just suddenly stop or suddenly be going the new limited speed -- it will slow down to that speed (or to a stop) gradually.

2) You will now get a message about each subsystem that is damaged by a hit so you don't have to go to the damage control panel to see. The message will tell you how badly damaged the system is or if it is offline.

3) Fixed some bugs related to subsystem damage

4) Hopefully fixed a bug where the turn would not advance -- the timer counts down and the screen refreshes and your status is set back to "not ready", but the turn did not actually advance. This one is kind of tough, but maybe it is fixed now...

5) Fixed a bug where you set your status to "ready" and then a second or two later, it reverts back to "not ready".

6) Fixed a bug where you could assign more ships to a battle than the CP Limit for the game would allow.

7) Implemented data compression on the server. Each turn of a game is about 100KB worth of data. Games seem to take about 100 turns and all turns are kept (so that you can review past battles). So the amount of space used has been adding up and reaching my hosting account's limit. Increasing that limit is surprisingly expensive, so hopefully the compression will help...

8) When setting your initial orders for a battle, the "heading" will automatically be set based on what "approach" you have set. So if you choose to approach from 090, then your ships heading will initially be set to 270. If you approach from 180, then your heading will be 0. You can of course change this, but this will help eliminate the mistake of entering the battle facing backwards.

Friday, March 7, 2008

Damage

I have just deployed a change that enables damaged subsystems. Well, the subsystems have always taken damage, but it had no effect until now.

When a subsystem is damaged, its performance will be affected proportionally. So if your engines or your reactor is damaged by 50% then your ships top speed will be reduced by 50%.

If your weapons are damaged, there is a chance that they will misfire. You should get a message when a turn is processed if anything was affected by system damage.

I will be adding more effects soon like engine damage hurting acceleration as well as speed, etc. So just keep an eye on those messages and make sure you assign repair teams to fix the problems as they come up.

This should also help reduce the effectiveness of the Lancer Scouts as they are too small to have repair teams. So if they are hit and they sustain damage, they may lose their engines or weapon permanently.

Thursday, March 6, 2008

More Fan Requests

I love my people, so I do what they ask :)
I have just deployed the following changes which pretty much all come from player requests:

1) Spectator mode is now complete. When you are at the game detail page and you are not playing in that game, there will be a "Watch this game" button. Clicking that will launch the game client in spectator mode. The ship control panel will be gone, but everything else is functional. When spectators join a game, a message will show up in the chat window announcing it. Spectators can chat with the players and vice versa. If I get complaints about spectators griefing players, I will add a feature to mute or kick spectators. But for now I think it is a nice feature to chat with your audience. This works by the way for old games too. If the game is over, you can still watch it and use the VCR buttons to go back to the beginning and watch the battle from the start.

2) When you enter the game client, the chat window will tell you if other players are online. Before, if player A was online and then player B came online, player A would get the message "player B is online". But player B, having come online later would not be told that player A was there. Now when you login, you will see a message telling you who is already online in that game.

3) There is now a "Turn Deadline" feature. When you setup the game, you can choose to have a deadline or not and set it to between 1 hour and 1 week. This is so that if one player goes inactive during a game, the other(s) can keep playing. Obviously, the inactive player is going to lose, but at least it doesn't cause the game to sit there forever waiting for that player to come back. After the deadline passes, any player that logs in to the game client and sets their status to "Ready" will trigger the next turn whether the other players are ready or not.

4) There is now a "Cancel Game" button on the game detail screen. This is visible after you have created a game, but before you have clicked "Start Game". So if you created a game and no one ever joined, you can cancel it. Once it is started though, you can't cancel it.

5) The "Online Now" and "Last Activity" features on the browse player screen are fixed. I still have that time-zone issue that I haven't fixed yet, but at least it accurately shows if someone is online right now or not.

6) There are now Zoom In and Zoom Out buttons in the game client. You can zoom in and out best with the mouse wheel. But if you don't have a mouse wheel, there are now small up/down buttons next to the scan range box that you can use instead of having to type in ranges manually.

Thanks for all the suggestions! Please keep them coming, the more you ask for, the more I will do :)

Tuesday, March 4, 2008

Stupid Rotating Earth

If you haven't noticed by now, FCO has a bit of an issue with time zones. In theory, the technology I am using (ASP.Net and MS SQL 2005) should take care of that automatically, but it clearly isn't. Maybe it has something to do with bits of the application being in California and some bits being somewhere in Canada that is in the US Central time zone.

This is why when you go to the "Browse Players" page you don't see anyone listed as "Online Now" -- not even yourself. Because the server thinks your last activity was 8 hours ago or something.

Anyway, I am going to be trying to fix this. But for now the "Online Now" feature will be pretty unreliable. As will the dates and times of messages you receive. Oh, and forum posts. Basically just any Date/Time you see on the site is complete BS. No biggie though. :)

Monday, March 3, 2008

Major Update

I have just deployed some changes. Some of these were suggested by users -- thanks JinnTann and 123 (whoever you are).

Here are the changes. Please let me know if any bugs have been introduced with this deployment:

1) There is now a "Browse Players" link on the left hand menu. You can see all players and click into their profile. In the future, there will be a search here, but it is not needed with the measly number of users we have now

2) There is a "Send Message" button on the player profile page.

3) The player proflie page shows the players battle history.

4) On the battle detail page, the invite users box now only accepts one user at a time. This was to allow it to have the user-name autocomplete feature like when you are composing a message. Now, just type one username or email and click invite, then do the next one.

5) There is the *beginnings* of a spectator mode. Once a game has begun, if you are not in the game, you will see a "Watch this game" button on the battle detail screen. Clicking that will take you into the game even if you are not in the battle. The game interface doesn't yet account for spectators, so some funny things might happen in the game interface, but it should work for the most part, but I have not tested it. I will be making changes to the game client to support specator mode soon.

6) There is now a "Surrender" button in the game. Clicking this will remove your ships from the game on the next turn. If it is a two player game, the game will end. It will count as a loss for you.

7) If all ships are out of ammo, the game will end. This will count as a "win" for both players since each player had surviving ships still in the game.

8) Command Points are now awarded when a battle ends. This is highly experimental right now, so it may change in the future. The amount of points you get is equal to the average CP of all the ships in the battle -- the bigger the ships are on average, the more CP you will earn. If you lost the game, you will get half of this value. If you surrendered, you will get one third of this value. Some of you are owed CP from battles that ended before this. I will account for that later once I see that this award system is working OK.

9) There are now AI players in the game! You can play by yourself against one or two AI players, or you can invite AI players to a game with other people. AI players work with all the same restrictions of normal people in the game. To play against the AI, just invite an AI player to your game. Their names all start with "AI". So type "AI" into the invite box and the auto-complete should pop-up with all the AI players. Pick one and click the "Invite User" button. The AI will join your game and set his initial orders.

10) The in-game chat and the chat lobby have been improved a little. There should be no more problems with text wrapping or other glitches.

Thursday, February 28, 2008

That was Embarassing

The AI player development is coming along pretty well. I just gave it basic survival and attack instincts and decide to play a game against one of the AI players. I am embarassed to say the battle was a draw.

To be fair, his fleet was a little bit stronger than mine : two LCS's and two HCF's to my two LCS's, one MCC and one DCD. So I had a Corvette and a Destroyer vs his two Frigates.

The battle came down to one of my LCS's and one of his and we both ran out of ammo. (Which reminds me, I need to have the system detect a draw -- as it is, there is no way for the game to end in this scenario).

I am really surpsised it was a draw. Maybe I wasn't focussing 100% on the fight and paying more attention to making sure the AI was behaving as it should, but still. The AI doesn't even use decoys or mines at this stage and still was pretty good. That gives me some hope :)

On another note (not at all related to the fact that I almost got beat), I have nerfed the LCS's a little bit. I made them a tiny bit heavier so they won't be able to turn as quick. And I made all the missiles (Falcon, Hawk and Eagle class) turn a little better. I also made the missile launchers have significantly higher muzzle velocity. Originally, missiles (not mass drivers) were launched with almost zero velocity relative to the ship. They would rely on their own acceleration to gain speed. Now they will launch with a good bit of initial velocity so they won't take so long to catch up to their target.

Wednesday, February 27, 2008

You Got Schooled

Ok, ok I know I am supposed to be working on the AI Players, but I am surprised at the number of early-adopters that have signed up and I am a bit concerned about losing them because they can't figure out how to play.

No one has complained yet, but I can imagine that at least some people have found themselves lost but are too shy to ask questions in the forum.

So I have whipped up a quick tutorial. Please check it out -- it is pretty sparse so far, but it covers everything you need to know to get a game started. It is a bit wordy (as is my style), but it contains a lot of information too.

Incidentally, if any of you want to contribute to the fleet combat wiki, feel free. All you have to do is sign up to wikidot (sorry, there is no way to integrate the login with FC) at this page. I will get an email and approve your account and then you can start editing and writing wiki pages to inform the hordes of players that I am sure we will soon have ;) about every detail of the game.

Tuesday, February 26, 2008

Fake Players

I have started work on computer controlled players. I had intended to have working AI players before ever launching the game because of their value in testing -- two AI players could complete an entire game in 1 minute rather than the days it takes us humans. But I got too excited about getting feedback from people so I launched the site anyway.

The AI players will help a lot in tweaking the balance of the ships. The AI could be set up to run a battle of large ships against small ships 100 times and record the statistical outcome. Then we could use that information to re-balance the ship classes.

I have never coded an AI system before, so this one will probably be pretty simple, but it will know how to attack and defend itself. When complete, you will be able to invite AI players to your games just as you can invite regular players. I hope to have several AI players to choose from with different play styles.

The AIs will be just like regular players in every respect. They will have player profiles that you can view online and see their win/loss ratio and the number of command points they have, etc.

The AI will not cheat. They will use the exact same game information that you have access to in your browser, they don't have access to "privileged" information. They will submit orders to their ships the same way you do, they will not be able to issue Load and Fire commands on the same turn for instance. This may handicap them because people are smarter than AI (especially AI programmed by me), but you could always handicap yourself by limiting yourself to fewer command points, or by taking on two AIs at once.

I *hope* to have the AI done next week, but we'll see how it goes.

Monday, February 25, 2008

Forum Problem

There was a problem with the forum that I discovered and is now (hopefully) fixed. You are supposed to have access to the forum automatically when you sign up and activate your game account.

Apparently, people were going to the forum site and not being able to login, so they were registring for a separate account on the forum. A separate forum account is not required. Once you have activated your game account, you can use that same login info on the forum.

If you created a separate account for the forum, you don't need it anymore, just login with your regular game account info. If you tried logging in before with your game account and couldn't you should now be able to.

Friday, February 22, 2008

Ooops

There was about 12 hours of downtime which has just ended. I added some features and fixed some bugs. Then when I published the application to the hosting service, everything died. I am not sure what happened, but I couldn't fix it. I opened a ticket with the hosting company and they fixed it right away. But I had to recompile and republish the application which took some time (well, that and sleeping). So everything is back up.

The cool new feature is Messaging! You can now send messages to other FC members. There is also an experimental auto-complete feature when you go to type in the members name. So far it seems a little flaky, but it is definitely a nice feature to have as long as it is reliable.

I also fixed a few small bugs like the "start time" of a game always being blank and there was a small exploit that could allow you to add more ships to your fleet than you should be able to.

Thanks again to the testers!

Oh, one more little thing. The www.fleetcombat.net URL is now live. This blog is now relegated to blog.fleetcombat.net...

Tuesday, February 19, 2008

A few small bug fixes

During play testing it became clear that small ships "pwnd" the larger ships. Particularly small ships with mass drivers. Those mass driver rounds have no warhead, but their great speed gives them an incredible amount of energy. Large ships like Frigates and Destroyers were going down with one shot from a mass driver.

So I have increased the hull strength of all the ships, but particularly the large ones. I have also increased the damage done by the non-mass driver weapons so they are not completely dwarfed by the mass drivers. This fix does not affect any games in progress, but will affect all games starting from now on.

Also, you will now be refunded your command points when you remove a ship from your fleet. So you are not stuck with your first choice of fleet composition. I have refunded all missing points.

I also made changes to the chat lobby and the in game chat to make long winded messages less likely to be cut off.

Thank you to the testers for finding these issues! Now on to more testing...

Monday, February 18, 2008

War is Hell

Fleet Combat Online has entered "beta" stage. I am now looking for players to test things out. Let me know by adding comments here if you want to help out (if you already have before this blog post, then I have already been in contact with you).

In honor of this occasion, I have recorded a full battle and put select screenshots of it up on Flickr for you all to see. This way you can see the battle unfold and see how tactics might take an important place in this game.

You can see the slideshow here

Please let me know what you think either with comments here or at flickr.

I hope to be able to play a bunch of games with real people over the next couple of weeks to refine the game play and incorporate feedback. So let me know what you want to see! We are getting close.

Friday, February 1, 2008

One more thing to check off

The web site is done, well at least all the core features. I am not putting it up yet, because I am not quite ready for people to sign up and start creating their own games. I will need to do more testing first and most of all, I still need to add a lot more content: ships, weapons, etc. Right now there are only a couple of ship classes which won't be much fun.

Som people have had trouble signing up for the forum and some don't want to have to sign up for WikiDot just to be able to use the forum. So I think when I launch the web site, I will put up a new forum that is integrated into the game's database. This way, game members will automatically be forum members and the screen names will all be the same. So don't worry about the bad forum software right now :)

So I am off to try to be creative and make a bunch of new ship and weapon designs. Maybe I will make a public web page where people can create their own in order to flesh out the ship list... We'll see how motivated I am.

Monday, January 21, 2008

Talk Back

Fleet Combat Online now has a forum. I don't expect a lot of deep conversation since there isn't much to talk about at this time, but I just set it up so I thought I should mention it. I'll add more categories later, I just wanted to make sure that the software I am using was up to the job.

I am getting pretty far along in making the website that will eventually host the game. It will allow you to create a game and either make it invitation only or public to anyone. Players can join the game and then pick the ships they want in their fleet. Once everyone is ready, the game will start and launch you into the Flash based game client. So far it works pretty well.

Wednesday, January 16, 2008

Small Update

I have started working on the main website for Fleet Combat Online where you will go to sign up and actually play the game. I have all kinds of ideas for player ranking and factions and such things, but I am trying to keep it simple to start with. Also, I am not a graphic designer by any means, so it will be pretty spartan :) When it is ready, this blog will move to a new url and the main website will appear here instead.

I also finished the mechanism for submitting turns in the game and I am pretty happy with how it turned out. In the game interface, you will see the list of players with a "traffic light" icon next to each one. The traffic light indicates that players "readiness" for the next turn. Red indicates that they are not ready and they are not currently online, so it may be a while before they are ready. Yellow means they are not ready, but they are currently online and logged into the game, so it won't be long. Green means they are ready and waiting for the turn to be processed. Clicking on your own traffic light icon will toggle your status between ready and not ready. This is similar to how all XBox Live games work.

As soon as all players have set their status to ready, they will get a 5 second count down and the turn will be processed. When the turn is processed, the game board refreshes and you see all the ships move and all players status is automatically reset to "not ready".

If you are playing in "near real time" mode, then all players status will always be "ready". As soon as a turn is processed, you will see all players traffic lights will still be green and there will be a countdown to the next turn. The length of time between turns in this game mode is configurable. You will still be able to set your status to "not ready" if you need to pause the game.

This brings up an issue that it will be interesting for me to see unfold. Fleet Combat Online can be played "live" with all players logged in and playing at the same time, or it can be played "offline" as in a Play By Email game. PBEM (or PBM) has been around since long before the Internet. The idea is that each player plays their turn when they have time and once all players have submitted their turn the game progresses. VGA Planets is a classic play by email game (one that I still play to this day). If you've ever seen Blade Runner, the scene where J.F. and Roy are debating about his next chess move is a form of PBM game. He and his opponent never get together to play, they just send their moves to each other. (A game mode that Dr. Tyrell should have stuck to...)

During the game, you will be able to switch modes. So you can start the game with all players online and then when someone has to go, you can switch to offline mode where turns are processed by the players whenever they have time to login and play. Email notifications can be set up so that you are told when you need to submit a turn.

Friday, January 11, 2008

Incoming!

I have just implemented decoys as a defensive measure against all types of incoming missiles. Modern day fighter jets use two types of decoys against missiles, "chaff" and flares. Flares are intended to confuse missiles guided by infrared detection and chaff is little foil strips intended to confuse radar guided missiles.

In space combat, the guidance systems probably won't use IR or radar, but rather an EM Signature. The missile will look across the entire electromagnetic spectrum -- ultraviolet, visible, infrared, microwave, radar, etc. Everything that the target is emitting will be recorded and memorized by the missile.

So that means that the decoys will have to be very sophisticated. At the time the decoy is launched, it will itself look at the EM emissions from the ship that launched it. It will then use various emitters to reproduce that emission signature. So the decoy will "look" the same as the ship no matter what band of the EM signature the missile is using at any given moment.

Here is a sequence of screenshots showing the decoys in action. In the first frame, the enemy has launched three missiles at the target. We have responded by deploying a decoy and altering course:

You can see the missiles going toward the target. They have spread out a bit as they each make up their mind between which of the two targets to follow. In the next frame, you can see one missile has clearly "bought" the decoy. The other two are not distracted though:The final frame shows the results. Two missiles impact the target, the other heads uselessly off into space:

Monday, January 7, 2008

Happens to the Best of Us

Well, I did a little digging into the issue of the high speed mass driver rounds missing their targets too often. I found out that it had nothing to do with the speed of the round or the guidance system. Turns out it was a stupid little defect: other missiles that I have tested have proximity fuses while mass driver rounds do not. When a missile gets close to its target (within its proximity fuse range), it watches to see if it is about to fly by the target. If so, then it detonates, figuring that it is as close to the target as it is going to get.

Since mass driver rounds don't have proximity fuses (or any type of warhead at all -- their kinetic energy is plenty of punch), they never detonated because I didn't write any code to detect an actual hit on the hull of the target. So I added code to detect a hit on the hull itself and now the mass drivers are back to being super deadly :) In fact, the way it is now, one hit from a mass driver will kill any of the ships I have set up. I will adjust this of course, its no much fun to die on your first hit (though it may be more realistic!).

Also, I have added a chat window as you can see in the following screenshot. I hope to be able to implement team chat as well as global chat.


Wednesday, January 2, 2008

Lead or Pure?

In en earlier post I promised to post more screenshots of a larger ship battle. I haven't done that yet because playing in that battle brought up some issues that I have been fixing. Mostly just little stuff when you click through each of your ships and giving them orders and then go back and click on one of the ships you already gave orders to, there is no indication that it has orders. So this made it very hard to know if you had already given a ship orders or not. So I made the "new" orders visible when you click on a ship.

Also, it became clear that I need a better guidance system for very fast travelling projectiles. Rail Guns (or Mass Drivers) fire a projectile very very fast. On the order of tens of kilometers per second. While current hypothetical weapon designs for mass drivers would involve a simple slug as the projectile, I think that any star ship worthy weapon is going to have some kind of guidance. After all, 10 km/s is fast, but if your target is 100km away (or even 10 km away), they aren't going to be there by the time the projectile arrives.

Up to now, all projectiles in Fleet Combat Online have been using "pure pursuit". That is, they constantly look at their target and steer toward it. This is the same guidance model as first generation air to air missiles like the AIM-9P Sidewinder. This form of guidance (and its primitive IR sensor) meant that you could only fire that missile in "rear aspect" -- meaning from behind. If the target was moving across the missiles field of view, then the pure pursuit model always puts the missile a little bit behind the target because you are steering directly at it, but it is moving sideways.

I have found the same kind of behavior with the mass drivers in the game. At first I thought "fine, that is a disadvantage to an otherwise very powerful weapon". But upon playing it makes it very hard to hit anything with them. And at least in the "early" eras of star ship combat, a vessel armed with a mass driver is not likely to have much in the way of other weapons because of the power required (and heat generated) by that big rail gun.

Slower rocket powered missiles don't really have that problem as they aren't as likely to whizz by the target before they can alter their course enough to hit it. As they get closer to the target, their course becomes more parallel to the target and they sort of fall in line behind it before catching up and hitting it.

So I need to change the guidance model for the mass driver projectiles to have a "lead pursuit" model. That is where you look at the targets speed and direction and try to predict where the target will be by the time you get there. You can see this different logic if you ever see video of the later AIM-9M missile being fired. The target is directly in front of the plane but moving to the right. When the missile is fired, it immediately takes a hard right turn making you wonder where it is going, but it is just "leading" the target.

Here is an article about the differences at one of my long time favorite sites Sim HQ.

So that's what I am working on now. Hopefully it won't make those mass drivers too deadly -- oh the joys of play balancing...

Here's to Competition

I don't know why I didn't find this before, but for some reason this site just showed up in one of my Google Searches about star ship combat and fleet operations:
www.starshipcombatsimulator.com

It looks to be essentially a modernization and an expansion of the original Begin or Begin2. It even references the original FASA starfleet combat game.

I have not played it yet, but it looks interesting. Unlike Fleet Combat Online, they have chosen to stay inside the "Star Trek" universe, so you can choose from any of the races and ship types from Star Trek canon. Also, it uses a client EXE that you have to download and install, wereas I have chosen to be completely browser based.

I am happy to see that someone else thinks those old games were cool and that there is no current substitute for their level of tactical game play. I am a bit discouraged however to see at the top of the home page that there are only 579 users. I would have thought that in the whole world, there are a lot more than 579 people looking for an online star ship combat game. I hope they just haven't yet actively sought out a user base. Soon (if I get going on development) you will have another choice for this type of game :)