It’s been multiple weeks since I last posted here, so I figured I should at least tell everyone what’s been going on. School has just finished a six-week period of one test after another, during which time I took an unannounced break from coding due to lack of both free time and inspiration (the latter being unrelated to the testing). However, with that over, I plan to resume working on Shipyard, and I hope to have the combat update ready within the next few weeks. Most of the heavy lifting is done and all that’s really left is bugfixing and content generation (for example I still have a couple weapon projectile/damage effects to finish up), so with any luck the rest should be smooth sailing.
Man, these progress reports are almost into the double digits. I wish I could say the update was somewhere close to ready, but in truth there’s still a long way to go. In addition to numerous bugs and balance problems that still need to be ironed out, I still have to finish implementing the crew system. This includes crew deaths from attacking systems and the ability to replace lost crew by hiring new ones. Both of these are partially implemented (see below), but they’re not complete yet. The ability to send boarding parties to the enemy ship is also planned, but this will be implemented at the same time as shuttles, as it will require a special “boarding shuttle” to break into the enemy ship. Anyway, the changes:
Speaking of shuttles, there’s a new NPC station in town. It’s currently a placeholder, and will be fully implemented along with shuttles. With all this talk of shuttles, perhaps I should add them in the next update (0.8.1), but for now we have 0.8.0 to think about.
FUN FACT: The name “Shady Steve” comes from an inside joke between myself and a couple friends. We developed a minigame in Minecraft somewhat similar to Sethbling’s “Building Game,” except instead of separate builds you construct small adventure maps with each person building an addition to the story before rotating. There are several other differences, but that’s beside the point. Anyway, whenever one of us needs a shop for our section of the map, it’s always called “Shady Steve’s Discount <something> Emporium.” Sometimes Shady Steve is an actual character, in which case he talks in laconically in broken English, which is where the tooltip description came from.
Now, when a system is attacked, some the crew inside may be killed as well. The formula for calculating this is as follows:
- Db is the base damage of the weapon.
- Kcrew is the crew damage coefficient. This what makes explosive weapons more dangerous to crew and energy weapons less so.
- Crem is the remaining crew in the system.
- Cmax is the maximum crew of the system.
- Hrem is the system’s current remaining HP.
- Hmax is the maximum HP of the system.
The result is then rounded to the nearest integer. Additionally, if the result is negative, the crew damage is zero. If the denominator becomes 0, it is changed to 1 to prevent horrible universe-ending math errors.
For you non-math geeks, the basics you need to know are:
- If the system has more than half of its max HP remaining, the crew are completely safe.
- The more powerful the weapon, the more damage it does to the crew.
- Explosive weapons kill more crew than ballistic weapons with the same base damage, and ballistic weapons kill more crew than energy weapons with the same base damage. (The reverse is true of system damage, where: Energy > Ballistic > Explosive.)
- The more crew in the system, the more likely they are to be killed.
- The more HP the system has, the fewer crew will be killed.
- There are no random numbers involved.
Further Revisions to Crew and Power
I’ve also once again changed the crew and power mechanics. The once-per-turn thing wasn’t really working out, partially because it made mistakes annoying and partially because there were some bugs in the way I implemented it. Now, you can change it as often as you like, but the changes will take effect at the beginning of the following turn. This neatly solves most of the problems with the previous system.
Along the same lines, I have made it such that you can now use more power than your ship’s reactor(s) can provide. However, doing this will apply an across-the-board penalty to all systems until you reduce your power usage. I did this because previously, if your reactor was attacked or you moved crew out of it, power would be taken from essentially random systems until there was no overdraw. This was very annoying and prone to bugs. Now, rather than try (and fail) to fix the problem itself, the ship simply continues to distribute power evenly. Changes have been made to the ship management window accordingly:
New Pirates and Pirate Spawning Mechanics
Giving the pirates the Gazelle I was a temporary solution before I designed unique pirate ships. Because you also start with the Gazelle I, that made fighting pirates extremely costly, especially now that crew damage is implemented. Now, I’ve created two entirely new pirate ships to replace it. The Scout is a very tiny ship, with even less HP and firepower than the Gazelle. It can move at 2 tiles per turn. Then there is the larger Corsair, which can only go one tile per turn but as a class 2 ship, it packs a much bigger punch.
Additionally, pirate spawning mechanics have been altered. No longer does a pirate spawn as soon as you enter a sector. Instead, these is a 1 in 20 chance that one will spawn every turn. The number of pirates per sector is still capped at 3.
Now that crew can be lost in combat, there needed to be a way to replace them. Thus, the Academy now allows you to fill your crew to its maximum capacity. There is currently no cost for doing this, and that will likely stay the case until a future update. No real need for a screenshot; it’s pretty self-explanatory.
Spring break is, sadly, drawing to close, but in the meantime I have got a couple big changes to show you. As always, these changes are coming in the next update and are not in the current version of the game. Anyway, let’s get on with it:
The biggest change since last time is that I have implemented a new resource: Scrap. When a ship is destroyed, it will now leave behind a debris field containing scrap equal to 1/10 of its maximum HP. This can be collected by moving within one tile of them, selecting them, and choosing “salvage.” Scrap can also be bought for
10 20* credits per unit at the shipyard. Scrap can be used to repair systems instantly and without having to transfer crew at a rate of 1 HP per unit of scrap. This makes it far more expensive than repairing at the shipyard, but the ability to use it in the heat of battle will make it invaluable as pirates get stronger in later updates. Alternatively, you can sell it back to the shipyard for 8 15* credits per unit. By hunting pirates and selling their scrap, the game’s economy is now effectively sustainable.
New as of 7 April: When your ship is destroyed, you will lose an amount of scrap equal to the value of your ship. If you do not have that much scrap, your ship will only drop as much scrap as you currently have. This is to stop exploitation by suiciding repeatedly with the free default ship, harvesting the scrap, and selling it.
* As of 7 April, after some testing, I decided to rebalance scrap slightly. It is now less cost-effective to buy, but will also be more valuable to sell. This is because, in my testing, the original selling rate of 8 credits per scrap was far too little to make a difference. One of the pirates’ standard Gazelle I spaceships yielded just over 1100 credits, which means that to upgrade to a decent class 2 ship from your own Gazelle would have required you to hunt upwards of 10 pirates. I want the game to be a challenge, but this felt overly grindy, especially for an early version with not much to do besides fight pirates.
Building a ship at the shipyard now costs credits. The cost is equal to the sum of the costs all all the ship’s systems. However, the cost is reduced by the trade-in value of your current-ship. This is calculated similarly, but also factors in the remaining HP of each system. I did not add a depreciation value to your current ship, meaning there is no penalty for, for example, accidentally building the same ship twice without changing anything.
I have increased the threshold for ship destruction to
20% 40%* of its maximum HP. This is because, in my personal testing, I found that battles even with the tiny pirate ships tended to drag on as I was forced to individually destroy cargo holds and other unimportant systems. This would have been particularly annoying once larger enemies are introduced, so I decided to double the threshold.
* As of 7 April, after some testing with much smaller player ships, I decided that 20% was still far too low and still caused battles to drag on. It was quick enough with a massive ship like the one I’ve been using, but with a smaller ship it took ages even with considerably more powerful weapons. Thus I once again doubled the destruction threshold to 40% to prevent the game from dragging on.
Additionally, pirates will now only follow the player if they are within a 32 tile radius of each other. Again, this will help when larger enemies are implemented as some pirates will be easier, at first, to outrun than to destroy.
Finally, because the economy is now sustainable, the player’s starting money has been reduced to 10,000 credits. This will not affect old worlds, as starting credits are only applied at the start of a new game, but it will make the game more balanced going forward.
Real life was particularly conservative in its allotment of free time last couple weeks, hence my lack of posting. However, school has gone on spring break as of last Saturday, and I intend to spend a decent portion of my time working on Shipyard. I have already made some significant progress when it comes to the upcoming ship combat system. Some of the more important changes are as follows:
Ship Damage and Repairs
First and foremost,
pirate ships will now fight back. They aren’t hugely intelligent yet, selecting random available weapons and random parts of your ship to fire them at, but they’ll serve for testing purposes. Because your ship can now be damaged and, in theory, disabled due to lack of engine thrust or reactor power, there needed to be a way to repair damaged systems. Thus, I implemented a system whereby, at the start of each turn, every system is repaired by 5 times the number of crew currently inside it. Because some systems, such as engines, are highly important but only take a small number of crew, I changed the way crew allocation works to allow “overcrewing.” A system will not gain additional stats from having too many crew, but it will be repaired faster according to the 5x rule.
You can also pay to repair your ship by flying to a shipyard, bringing up its context menu, and selecting “Repair.” The cost is equal to (HP lost / HP max) * (System Cost), or the fraction of total hitpoints which needs to be repaired times the base cost of the system. The following screenshot shows the message that pops up to let you know that you’ve repaired your ship:
Ship Management Window
The current ship management window has three tabs: Overview, Crew/Power, and Upgrades. Upgrades is coming in a later update, so we’ll skip over that. Overview currently displays a bit of information about the ship, but really isn’t hugely useful. To change anything, you need to switch over to Crew/Power, where you can change the number of crew members and the amount of power allocated to each system. This is good enough to, for example, generally favor weapon control over engine power, but with the new crew repairs system, you need to be able to find damaged systems and repair them individually. The current screen doesn’t allow that without a significant amount of trial-and-error.
Thus, in version 0.8.0, I am merging crew and power management into the Overview tab. Now, all you have to do is select a system by clicking on it and adjust its settings in the box on the right. The screenshot below shows the new ship management window after a few turns of being attacked by pirates.
That’s right! It’s now possible to actually destroy other ships! In previous progress reports, I merely disabled pirates by shooting out their engines or reactor and leaving them behind. Now, though, if any ship (including your own) loses more than 90% of its “structural integrity,” or total hitpoints for all systems, it will be destroyed. For your ship, this value is displayed at the top of the navigation screen. If your ship is destroyed, you will be given the option of either (A) paying to repair your ship or (B) respawning for free with the default ship Gazelle I, the same one the pirates currently use. There is currently no reward for destroying enemy ships, but I plan to have them carry loot which, on destruction, will be dropped in item crates for you to pick up.
It’s been a while, but I’ve finally found the time to do a bit of work on Shipyard. On today’s menu we have something special: combat animations. Because of this, the usual series of screenshots wouldn’t do it justice, so I went ahead and made this instead:
Not everything is finished yet. As you can see, the only available animations are blue and orange versions of a simple bullet. Don’t worry, though; I’m working on adding more fitting animations for the weapons that need them. The Torpedo Launcher is going to get something that actually looks like a torpedo, the medium-size Gauss and Plasma Cannons are getting larger bullets, the Twin Autocannon is getting a smaller bullet, etc.
This post is just to say that yes, I am still alive over here, and to apologize for the lack of development news. Real life has been somewhat… uncooperative… when it comes to free time, so I haven’t gotten much of a chance to work on Shipyard. Other than a few very minor changes, the game has remained in its current state for more than a week now. Hopefully things slow down this week so I can work more on the update, but as always, no promises.
I haven’t had much time to work on Shipyard lately. Unfortunately, real life rather got in the way. Nonetheless, I’ve made a bit of progress on the combat system. You can now actually attack the enemy from the battle screen to damage their systems. You will also see a damage effect appear on the exterior of their ship. This is not tied to the system’s hit points, and is merely an aesthetic difference.
That’s the only major thing. As for minor stuff, ships now have tooltips in the navigation screen, some behind-the-scenes stuff has been reworked to allow higher framerates, a framerate counter has been added (visible in the top right of the above screenshot), and I redid the image for the Crawler Transport item (I always thought the old one looked a bit derpy). I’ll almost certainly redo the other items as well, but that will come either when I feel like it or when I inevitably rewrite the item and inventory system.
Just look at this sexy beast:
Welp, that’s all for today! Hopefully life gets less hectic for a while so I can focus on game development.
That’s right, folks! All the preparation is done and it’s time to get to work on the actual combat system!
I’ve spent most of the past day making small changes necessary for the combat to be balanced, but I have also got the beginnings of the combat screen in place. Though you still can’t actually attack, it will list your weapons and tell you (A) if they can fire and (B) if no, why they can’t.
For example, in this world I’m using a ship armed with a forward-facing railgun. Because the railgun is a fixed weapon, it can only fire in the direction it’s facing relative to your ship. As you can see from this screenshot, my ship is not facing the enemy ship:
Because of that, when I go into the combat screen, the railgun (along with the two torpedo launchers, also forward-facing) is disabled:
However, if I turn to face the enemy ship directly, like so:
The three fixed weapons can fire as normal:
That’s it for today, folks! I’ll see you next time I make a significant step toward the completion of the combat system. Until then, happy building!
This is the last in the series of “preparation” updates for the big Combat Update. Major features include AI ships that follow you around (they don’t attack yet — that’s next update), a new station, a new weapon, and a bunch of UI tweaks and fixes. As always, full details are in the changelog on the official Shipyard page.
You can download it as a .zip or, if you have the launcher, update it that way.
This wasn’t quite worthy of being called Progress Report #4, but I still wanted to share it. Since the last progress update, I’ve added a completely new NPC station to the world: the Academy.
Currently, it doesn’t do anything. In the future, though, it will allow you to hire both generic crew (to replace those lost in combat) and officers, who will provide special bonuses to your ship.
Also, it’s animated! The idea, for the science geeks out there, is that the outer ring of the station rotates such that the centripetal force simulates gravity.
Because stations are generated at the start of the world you will have to start a new world for Academies to generate.