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.