Saturday, December 22, 2007

More Ships, More Chaos

I have been working on that larger battle I mentioned in my last post. I have also been working on the user interface a little bit. The more I actually try to run a battle, the more I find things that are missing or are not right about the UI. Which is good, that is the whole point of testing. In my last post I mentioned that I was going to post pictures of a battle between more starships -- here you go...

Below is a screenshot from a battle between two cruisers and three frigates. As I mentioned in an earlier post, play balancing is a bit of an issue at this point. This screenshot is from early in the battle, but you can see that the three frigates (in red) are going to clean up against the two cruisers (in green and blue) even though the cruisers are more powerful on paper. You can see missiles in flight in this screenshot -- three fired by one frigate and three fired by another. In the upper right is a high speed kinetic projectile fired from the rail gun of one of the cruisers. Unfortunately, it has missed its target and will fly off uselessly into deep space.

You can also see the explosions left over from missile impacts on each of the cruisers. The faster reload rate of the frigate's missile launchers is giving the cruisers fits. In terms of the user interface, you can see the new helm control UI on the right. This is more intuitive than entering a course and speed manually. Instead, you can just click on the circle to give your helm orders.

On the right, below the (temporary) zoom control is a simple spinner control that has the number "20" in it. This is because this screenshot is from turn 20 of the game. You can use this control to go back and look at previous turns. In the future, this control will be a little more sophisticated, so you can "play back" the previous turns, or an entire game to review what happened.

(click the image to see a larger version)

Monday, December 17, 2007

Wiki Wiki

I have created a wiki for Fleet Combat Online. It will be the home for the game encyclopedia. It will have definitions for the ships and weapons and all the other game objects. It is also another nice distraction to keep me from actually finishing the game :)

Friday, December 14, 2007

Coming Along

I have actually been making a lot of progress lately, which is why there have not been a lot of posts. Well, that and the fact that Galactic Fleets is taking up a lot of my time (click that to sign up and I get points! W00t!). I am the type that easily gets addicted to games. I used to play MUDs a long time ago -- I would stay up all night long (after all, that was the only time you could tie up the phone line for hours on end without getting in trouble) level grinding to get the next bit of loot. (Yes, we had spawn camping back then which generally consisted of hitting the "." key every second or so to "do nothing"). That is why I have never touched World of Warcraft. It would be like poison to me.

Anyway, back to the point. I actually created and played through an entire game of Fleet Combat Online from start to finish the other day. Of course I have played a few turns at a stretch to test various new bits of code all the time. But this was the first where I started a game and didn't stop all the way through it. Of course, I was playing both sides since the AI isn't coded yet and I don't want to release the current version of the game.

It went very well. I didn't find any major defects and all the features worked as they should. It needs a little play balancing. I played with one Destroyer armed with a massive rail gun against a frigate with a guided missile launcher and a torpedo launcher. I thought for sure the destroyer would win because of the almost un-dodge able rail gun shots. But it totally went the other way. Even though I was playing against myself, the destroyer could not keep its distance from the frigate because it had to constantly maneuver to dodge incoming missiles. The rail gun on the destroyer only fires forward, so it was useless when the ship had to turn its beam to the incoming fire. So the destroyer went up in flames after inflicting only about 15% damage to the frigate.

Next I will test a larger number of ships, maybe four on two or something. Also, I have implemented damage control since the previous test game, so that may affect the outcome. I will post screenshots of the battle next week.

Monday, December 10, 2007

Progress Report

Now that I have several different kinds of star ships and weapons setup, I need a way to get them into a game. Up to now, I have been creating test games by manually editing the XML files that make up a game and going from there. But now I need a web page where a user can create a game, add his or her fleet to the game and allow other gamers to sign up for it. Basically, I need an easy way for players to start their own games.

So that is what I am working on now. I am thinking of using the concept of "command points" which all players will have. Think of this as cred with your superiors -- it allows you to requisition more ships or larger ships for a particular battle. If you keep losing battles (especially when the odds were in your favor), your ability to convince your superiors to send you more ships goes down.

When you create or join a game, you can add ships to the battle by requisitioning them from HQ. As other players join, they too can add whatever ships they can scrape up. When all players are ready, the battle begins.

This concept is something that can be built on a lot in the future to give players some motivation to win battles rather than just giving up or retreating.

Friday, December 7, 2007

Its all about the content

Up to now, I have been running my little test games with just one type of star ship and one type of weapon to make sure that the game engine is working the way I want it to. But now I am ready to start creating an assortment of ships and weapons and defensive systems, etc. This is what I think of as the "content" of the game. The engine that processes the turns (ships moving, weapons firing, things exploding) doesn't care at all about what the objects are that it is working with. It simply reads xml files that define what weapons and engines a given ship type has, and from that it can figure out how fast it can move and when it can fire its weapons, etc.

So I am writing a bunch of little xml files like this to define a ship:

<ShipType>
<TypeID>1000</TypeID>
<Name>Columbia class Destroyer</Name>
<Abbreviation>CCD</Abbreviation>
<Mass>110000</Mass> <!--mass in kg-->
<Length>42</Length> <!--length in meters-->
<HitPoints>250</HitPoints> <!--hitpoints of hull-->
<SubSystems>
<Reactor ReactorTypeID="1000"/>
<Engine EngineTypeID="1000"/>
<Weapon WeaponTypeID="1000"/><Weapon WeaponTypeID="1001"/>
<Sensors SensorTypeID="1000"/><LifeSupport LifeSupportID="1000"/>
</SubSystems>

<!--drawing instructions: MoveTo(x,y):LineTo(x,y)-->
<Geometry>M,0,-10:L,5,5:L,0,0:L,-5,5:L,0,-10</Geometry>
</ShipType>

You can see that this small ship has one engine and two weapons. The specifications of the engines and weapons are defined in other XML files. This way, it should be easy to make new ship types or tweak existing ones for balance.

The "geometry" section is drawing instructions for the client. This is so each ship class will look a little different so you can tell them apart visually. Right now, I am just going to use simple line drawing graphics, but maybe in the future I will add some actual artwork. (I am no artist!)

Thursday, December 6, 2007

Do you OGame?

While doing more research via Google to see what is out there in terms of browser based space combat games, I stumbled across OGame. OGame is a massively multi player online 4X (eXplore, eXpand, eXploit and eXterminate) game that runs completely inside the browser. So I joined a game to see what it is about.

I am not sure that I "get it". The game play (at least in the beginning) is very very slow, and there isn't much to do except click on a link to start building something and then wait for the timer to tick down. But I could see that later in the game having a lot more going on as you end up with hundreds of planets and huge fleets and alliances and all that. So I'll keep playing it and see how it turns out.

One thing is for sure, they have TONS of people playing it. I hope that is a good omen for Fleet Combat Online...

Tuesday, December 4, 2007

Your Orders?

Here is a closer view of the tactical panel on the left side of the screen. This is what I am currently working on. Helm Control allows you to steer the currently selected ship as well as see its current heading and speed as well as its desired heading and speed.

Fire Control (shown) is where your weapons show up. You can load them with various types of missiles and target weapons individually to different targets.

Defenses is where you would control shields (if they exist in your "era"), point defense weapons, armor, etc.

Damage Control will show the status of all the parts of the ship and allow you to assign repair resources to each sub system.

At the bottom you can see the sensor output. This is showing information about the current target of your ships sensors. Its distance and bearing as well as a predicted intercept course that is calculated based on the speed and heading of both ships.

I am currently working on fleshing this section of the UI out some more to show more information and allow for loading and configuring of various weapon types.

Monday, December 3, 2007

First Screenshot

Here is a very early screenshot of Fleet Combat Online.


You can see the basics of the UI and two ships on the battlefield. The blue one is under control of the current player and the red one is the enemy. The dark grey lines show the position history of each ship. The lighter grey lines show its direction of travel and speed.

The grid is in 1 kilometer squares. You can zoom in and out and this grid will still show 1km squares.
The tabs on the left are the main command UI. It has sections for: Helm Control, Fire Control, Defenses and Damage Control. Details about your current sensor target (not currently show) appear in the lower left corner. The lower middle section is for messages about what has happened in the most recent turn.