Now that I’ve fixed my server troubles (or, at the very least, delayed the inevitable), I can get back to work on proper, content-adding updates for Shipyard. I’ve been giving it some thought, and I feel like it’s ready to proceed from the “pre-alpha” stage into the “alpha” stage. In a tradition that I started with version 0.8.1, this post will serve as a general plan for the new features and content coming in Alpha 1.0. As always with these early plans, anything written here is subject to change.
WARNING: Wall of text inbound!
Free-Form Systems (And Related Changes)
Currently, all types of ship systems come in fixed sizes. This limits the amount of creativity you can have when building ships, for no real logical reason. Thus, for Alpha 1.0, many systems will be changed from fixed sizes to being free-form. Adjacent tiles of the same system will automatically merge into a single system. Stats will be calculated by some base value times the number of contiguous tiles. Crew’s quarters and weapon controls will definitely be changed to this mechanic. Bridges and engines will definitely remain fixed. Other types may or may not be changed to free-form depending on how the implementation takes shape. Cargo bays and corridors are already essentially free-form, and all they need are new textures. In order to make this work, however, some major changes will need to be made to several game mechanics.
Although I could, with the current system, simply make a 1×1 version of the weapon controls system, crew and power management would be a nightmare. You would have to manually allocate a single crew member to each individual tile. With the new free-form mode, crew will not be allocated to individual systems but rather types of systems (weapon controls, engines, etc.). In Alpha 1.0, crew assigned to a system will be considered to be “working” the system, meaning they are actually operating it rather than repairing it. Free crew will automatically repair all damaged systems evenly, and will not contribute to the effectiveness of the system. You will also be able to tell your free crew to “focus” on a particular system type if you want it repaired at a higher priority. There will be a cap on the maximum rate of crew repairs to prevent players from spamming crew’s quarters for invincibility.
Hitpoints and Weapon Damage
Another problem with simply having separate 1×1 systems is damage. Damage to a system when it already has 0 HP is wasted, and with small systems, weapons like the railgun would be a pointless waste of weapon control points. In the new system, damage will be dealt to individual tiles rather than whole connected systems, and extra damage will be spread out to adjacent tiles. The HP of a system type will be based on the combined HP of the individual tiles that comprise it. Crew damage will work similarly, with the total being calculated by some sort of population density formula. I don’t want to go into too much detail, but in general, more weapon base damage still means more crew damage.
Overhauled Ship Editor
The ship editor was literally the first part of Shipyard I developed, way back in summer of 2013. Back then, you couldn’t even save and load your designs, never mind actually build and use them in the game world. Despite the progress the game has made since then, the ship editor has remained largely unchanged aside from adding a few extra buttons. In my own personal experience playing the game, I have started to find it clunky and annoying to use. Now, I think we can all agree that if the developer finds their own game tedious to play, some changes are in order.
Problems with the Current System
- The viewport, at 16×16 tiles, is very small and annoying to work with when designing large ships.
- The system and weapon lists force you to hover over each item to see what it does, since they don’t show any stats. They’re also incredibly disorganized, listing things in the order they were added to the game rather than by any sensible system such as alphabetical by name, by minimum ship class, by stats provided, and so on.
- The exterior editor requires you to click on each tile you want to change, when quite often you want to cover a large area all at once.
- The stat panel to the right isn’t very useful. It’s just a big pile of numbers that eat up screen space but don’t have much relevance to gameplay.
- The save/load/build/etc. menu buttons also take up a lot of screen space. Surely they don’t need to be visible 100% of the time, considering how infrequently they’re used.
- The interior, exterior, and weapons view buttons are similarly much larger than they need to be.
- This only really affects me, but behind the scenes, the ship editor is coded like… well… like I coded it a year and a half ago. I’ve improved greatly as a programmer since then, but the ship editor remains an inefficient fossil of my less-experienced self.
Changes for Alpha 1.0
- The building grid will take up the majority of screen space, with other components being arranged to maximize the use of space.
- System and weapon lists will be organized to show items in some meaningful order. They might even allow you to change the order, similar to the way you can sort files in Windows Explorer.
- The exterior view will allow you to “paint” tiles by clicking and dragging, allowing you to edit large areas without giving yourself carpal tunnel syndrome.
- Stats will be moved to a separate tab alongside interior, exterior, and weapons. They will also be changed to be more relevant to the game in its current form.
- The save/load/build/etc. menu will be changed to a window that can be opened when you need it and closed when you don’t.
- The buttons to change between the interior, exterior, weapons, and now stats screens will be changed to a tabbed menu like the one in the ship overview window of the navigation screen.
- Everything will be rewritten from the ground up to be more efficient behind the scenes.
I mentioned in my outline for the last update that officers might be coming in 0.8.1. However, with all the problems with implementing shuttles eating my time, I never even got started on them. Now, I’ve decided to make them a possible feature of version Alpha 1.0. Officers are characters that act a bit like upgrade items, but with a few key differences.
- You can hire as many officers as you have Officer’s Quarters systems, similar to shuttle bays.
- Officers are people. People must be kept happy. Thus, if you want your officers to provide the best bonuses, you will need to keep them happy. Some might not take kindly to excessive violence. Sometimes two officers won’t get along with each other (for example, a pirate and an ex-space-cop). All of them, however, will need to be payed.
- The stat bonuses provided by officers will be generally better than those provided by upgrade items.
- Officers will be randomly generated, unlike items which are hard-coded.
- Officers will earn experience toward improving their stats, while items are fixed.
Shuttles for Real, Maybe
Shuttles didn’t make it into the last version due to unexpected troubles in their development. Finally, after five months, I decided to cut them from the update and release what features I had completed. With so many fresh, new features to work on for Alpha 1.0, I can’t promise they’ll make this update either. However, the progress I made is still there, just hidden, so anything’s possible.
Other Potential Features
Free-form systems and the new shipyard editor will be the main features of Alpha 1.0, but along with them I have some other ideas which I’ve been tossing around. These may or may not make it into the update depending on how much time they take.
- New items which are not available in stores, but instead must be crafted from scrap and other items. Because of the added difficulty of acquiring these items, they will be generally better than those easily purchasable in shops. One possible way to do this would be to have a “workshop” system, which would craft items faster the more crew and power were assigned to it.
- A second hotbar on the navigation screen, this time to the right of the HP gauge to make it symmetrical, to which items and shuttles can be assigned for quick access without having to go into the cargo hold and shuttle bay menus.
- Character skills for your character, making them essentially a free officer. This might involve some sort of skill tree and/or XP system–I haven’t thought too much about the finer details.
- Changes to the way the inventory system works, with each cargo bay storing one item as opposed to one kind or item.
- Changes to the way spaceship data is stored and saved to fix bugs like enemies spawning with less than full HP and reduce the size of ship data files.
- Sound effects. With the inclusion of Paul Lamb’s sound library, a solid framework for playing sound effects is already in place. All I need to do is add them.
- Exterior armor. This will allow you to make a system more resistant to damage, at the cost of increased weight (and therefore ship speed).
- Crew injury and medical bays. When a system is attacked, crew may be merely injured rather than killed. The medical bay will be a new system which can heal them after a certain number of turns.
First of all, congrats on making it this far through my wall of text. Unless, of course, you just scrolled down to the bottom. Don’t worry, I’d probably do the same. Either way, I’m excited to get to work on Alpha 1.0. As it will be a huge update with many changes, it will probably take a long time to complete. However, once released, the result will go a long way toward a finished game. I’ll keep posting here as I begin to implement the new features, but until then, happy building!
…dang that last bit sounded cheesy.