Wednesday, December 16, 2015

Year 15 - Day 350

I'm working on the anomaly/quest structure now and here's the result of a scan that finds an anomaly on a planet surface.

Lots of other work is currently going on. I have a large list of specific TODO items that I'm working off of and generally get something done in the code most days. Most of this is with the intention of holding an early Alpha playtest of the game, but I have no timeframe of when that might happen.

Tuesday, March 17, 2015

Year 15 - Day 76

I'm very very close to having the initial pass at the combat system complete. So far it only features Beam Lasers as weapons and ships cannot surrender yet. However, combat is being completed and the delayed messages are being sent out.

I also realized that I currently have no way for players to mount Beam Weapon Turrets on their ship hard points, so that will have to be addressed as well.

Still, it feels good to be even this close to finishing up this major section of the game.

Sunday, February 15, 2015

Year 15 - Day 46

Progressing nicely on adding Mineral Deposits and Prospecting to the game. A ship can currently scan a planet square from orbit and get a report of what it found. Next up will be a ship landing on the planet square and Prospecting the deposit as long as there is a crew member with the Mining skill.

Thursday, February 12, 2015

Year 15 - Day 43

I've been pushing at least some code every day for the past week or so. In the last day or so I've mostly been working on Admin functionality. I added the ability to randomly create asteroid fields based on the density given when I create them. This leads me to needing to be able to also randomly generate mineral deposits at the same time, so that functionality is coming next.

I've also been doing a lot of pondering on the current Combat code. I'm going to go ahead and integrate the current combat into the game after I figure out how to make ships surrender. I'll still have to tweak weapon accuracy and damage to shorten things up a bit, but it's getting close to being ready.

Thursday, February 5, 2015

Year 15 - Day 36

I've been away from the game for quite a while. There's various reasons for that, but I'm slowly getting back into it again. My current job has me programming again on a daily basis with Java, so my coding habits have gotten better recently. As a result, I see that my code base for the game is a horrendous mess. I should have made an effort to use objects, but I didn't and at this point I'm not going to try to go back and fix that. I am, however, in the process of doing a lot of tedious code remediation that will make my life a lot easier in the future.

In the process of this, I'm finding a lot of bugs I didn't know about. I'm also avoiding the Combat code for a bit, although I have been looking at it again. The next step I need to do for combat is to decide how and win a ship surrenders.

The easiest example to consider here is a starting ship vs. any armed ship. So I'm thinking it will go something like this:

1. Armed Ship(AS) begins combat against unarmed Newbie Ship(NS).
2. Friend vs. Foe lists are checked.
3. If no ships come to the aid of the NS, a Morale Check will immediately happen. If it fails, NS Surrenders.
4. If it passes the MC, the NS will Flee since it is Unarmed.
5. After one round of combat, the NS will know how fast the AS is.
6. If the NS is faster, it will continue to flee.
7. If the NS is slower, it will Surrender. This will also apply if the NS gets damaged and becomes slower than the AS in later rounds.

Thursday, September 12, 2013

Year 13 - Day 255

Still lots of combat work going on.  I'm doing some code refactoring as well while I'm working on the Retargeting Algorithm.  So far it works like this:

1.  Ship needs a new target.
2.  Is there only one ship left on the opposing side?  Choose that ship as target.  End.
3.  Get a list of all opposing ships.
4.  Sort the list by distance ascending.  Multiple ships at the same distance are sorted randomly.
5.  Pick the closest ship as the first "potential" new target.
6.  Check targeting preference for ship.  Does it prefer to target Armed or Unarmed.
7.  Check potential target vs. targeting preference.  If it does not match, choose next ship in list.  If it does match, set this ship as the Final target.
8.  After all ships are checked and none match preference,  set the original potential target as the Final target.

What this means is if the ship prefers to target Armed opponents, then if the closest ship is Unarmed it will go to the next closest ship and see if it's Armed.

Thursday, August 29, 2013

Year 13 - Day 241

I'm still working on the combat routine.  It was taking way too long for an armed ship to destroy the smallest unarmed, unarmored ship, so I adjusted the hit chances and damage up for Beam Lasers.  I'm afraid if it takes too long for combat to finish it will stress out the server too much if I ever manage to go live with the game.  It's going to require a lot of balancing regardless.  I may have to end up raising the damage and hit chances considerably or limiting the number of rounds that combat will run.

The latest code I've been working on is to create a page that will instantly create armed ships for testing purposes.  I've thought about rigging up an entire combat simulator, and I still may, but for now that would require a lot of extra work that I'd rather spend on just getting the combat routine completely fleshed out.

I'll end today's post with a recent screenshot of a ship that was destroyed in combat.  This is what you would see if you clicked on the name of a ship in your Dead Ship List.