StarMade 0.19282 - More Fun Into Battles

Posted on June 21st, 2015 07:28 AM EST

This update is all about fixing a lot of things that still felt wrong in the game, and adding some more fundamental design changes, which will once again change a part of the game’s meta completely.

We redesigned how ship battles work, adding a completely new system, called the “HP-System”. There are also a lot of other enhancements and fixes in the update.

Here is a video that explains the new features:

https://www.youtube.com/watch?v=iF0fe6EBMuA

Hitpoints

System-HP

One of the biggest constructive criticisms we get for the game is that ship battles are basically a race on who can take out the core of the other ship. Which makes it a single focus point for everything. We long wanted to fix this problem, but first had to solve a lot of other problems along the way, ensuring that the new system is not more boring or broken than the old one, but intuitive and fun.

A Hit Point System was the goal, but while it sounds easy on paper, it actually required a lot of problems to be solved for integration.

Here are some of the problems that came up along the way:

HP is always represented by two values: Maximal HP which indicates how many Hit Points an entity has, and current HP which indicates how many Hit Points the entity currently has left.

The first problem was with determining how to keep track of HP.

One idea that seems natural was to keep a copy of the ship in the status of full hp. This however would cause a lot of problems, as it would essentially double the size of ships in RAM, on disk, and cause problems managing it, as every change that modifies max HP would also modify that copy. All that for just two values seemed a very bad deal in cost-value.

To combat that problem we are using a block count system, which has existed anyway. This however means that HP is based on the blocks, so if a block is damaged it still provides HP as long as it’s not destroyed.

This means we can have a very small and fast way of keeping track of maxHP vs currentHP.

Now, what is the max HP based on? If you would add a block to a ship, you would want your maximumHP to go up based on what you have placed. The same would have to happen if you removed a block.

This all works fine, but what happens if you lose a block due to damage. Naturally you wouldn’t lose maximumHP, but only current HP of course. However, what happens then if you place a block? Would you get the HP back? Would that mean if you place another you would have more HP than maximumHP, would both HP and maximumHP go up? What is the actual ship’s state that the max HP is based on?

If your HP is at 100% adding and removing blocks will instantly update your HP keeping your HP at 100%.

If you are below 100% placing a block will NOT give you any HP, but still increase your maxHP.

If you are below 100% removing a block will deduct from your current HP, but not decrease your max HP. This means you will lose percentage when removing blocks from a damaged ship.

If you reach certain damage below 100% you will get negative effects like power/shield regeneration loss, loss of thrust, control, and at the end the “overheating” state. This means that you don’t have to kill every single block to kill a ship, but only a certain percentage.

So, what can you do to get back to 100% once you have lost blocks? The solution was to add a mechanism called “Reboot”.

A reboot takes your max HP to what the ship’s blocks currently represent, and also brings your current HP to 100%.

You probably already saw the potential problem that brings: Just quickly reboot in battle and you will be at 100% again. However, rebooting actually takes time. The time is based on the damage taken, as well as the overall mass of the ship. You also can neither modify or fly a ship that is currently being rebooted, and power and shields go down to 0. It is also canceled if more damage is done. All these things make it relatively silly to try to reboot in combat.

The most Hit Points are provided by system blocks like power, weapons, support, etc. So ships now have actual weakpoints.

Furthermore on overheating you will no longer die instantly. You will get thrown out of your ship (it is now implemented that you automatically align to a ship when exiting it) and you can get to your escape pod, or stay and fend off a possible boarding party. You can’t enter your ship while it is overheating, and your only way to stop it is to reboot by pressing ‘r’ on the core. When a core is rebooting from overheating, you will not be able to enter it until it is done overheating.

Armor-HP

To further add more depth to ship battles, armor HP has also been introduced. Armor HP is the complement to System HP. The only blocks providing armor HP are actual armor blocks like hulls.

Armor HP provides a damage reduction to all damage taken to an armor block. Upon damage, 50% (config value) of the damage is going to Armor HP and the other half will be the damage on the ship, as long as there are any Armor Hit Points left.

Armor HP does NOT reset with a reboot, and can only be repaired at ships (or future ship yards) for credits. Ships can also reboot instantly at shops for credits.

Losing armor HP will not give you any negative effects, but they are a vital resource to have on a good ship.

Both System-HP and Armor-HP give a whole new feeling to ship battles, making them a lot more fun and exciting. All values of course are not final, because as always we took care that all essential values are available in the blockBehaviorConfig.xml. You can also go back to ship core based combat from the serverConfig if you would like to do so.

Center of Mass

Center of Mass is also no longer the core. It will now calculate the center of mass of a ship precisely on any mass placed anywhere.

This doesn’t yet include docked entities, but it will soon. Also, in the future there will be options to have a more realistic physical model based on the shape of the ship in terms of being able to turn the ship.

Implementation wise, the new Center of Mass system doesn’t cost any performance and is updated immediately (best to try it out on a planet)

AI has also been updated to now aim at the Center of Mass which gives them a much better chance to hit something vital.

You can also switch on an indicator for center of mass in the advanced build mode.

Individual Block Mass

With the new center of mass implementation it was also time to integrate individual block masses. This means, decorative elements will now barely add any mass to the ship, while armor and other blocks will add more than usual. Of course the center of mass will also reflect individual masses.

Cannon and Beam damage rework

Since now every block counts in terms of a ship taking damage, the missile seemed really superior as while it has similar total damage, it just takes out blocks a lot faster.

Cannons now do damage to multiple blocks by default. The more damage a projectile has, the more blocks will be affected. Starting at 100 - 900 damage goes one block deeper per 100, from 1000, every 1000, and so forth.

The damage is then distributed so that the first block hit will take the most and the last one the least damage. Accurate numbers can be looked up in the structure panel.

A beam will do the exact damage no matter if the block got taken out or not (what in the past the piercing effect did), but it is stopped by any block that provides armor HP.

The cannons has to take out a block to get to the next one, so if the damage of 1 block deep is not enough, the damage that would go in the second block will be used on the first until it is taken out. Any damage more that it took to take out a block is however still lost. Overall this still means a lot less damage is lost from cannons and more blocks are taken out per shot.

All values are of course still not in a final state and are available in the config.

New tools and boarding mechanics

Two new tools have been added and are now available from the shop keeps. These keeps can now also be respawned in the middle of the glass area of Shops that had them.

Grapple Beam

This beam aligns you to an object on a very far range. It doesn’t automatically reel you in (yet), but you will have time to get to the object before the grapple expires. This makes it possible to get on objects from a good distance and board them.

Torch

This useful tool does little damage but has a very distinct advantage: It bypasses armor and shields and throws the pilot out of the core if the core was brought down to 0 HP with it.

This means you can use the torch to take over enemy ships. Be warned though: The pilot will receive a warning if a torch is being used on his ship.

New Turret AI option

Since with the new mechanics, you not only have to defend your ship from the outside, but also from the inside. This new AI option makes turrets only target astronauts.

Ship info window now customizable

It is now possible to resize and move the ship info while holding control in build mode. You can now also change the size of the text so it is much easier to read on higher resolutions. A general size option will also come later for all menus.

Multiple weapon hot bars

Another requested feature was the addition of more places to put weapons, especially with inner ship logic now being a thing, so we added 9 more hotbars. There are multiple ways to switch through them.

Pure mouse scroll: upon going to the end of a hotbar you will switch to the next one. This can be disabled in the ingame options.

Control+Mousewheel switches through hotbars

Control+number selects a hotbar directly (with ‘0’ being the 10th)

Additional Chat Controls

More chat options have been added to enhance the experience.

• Client-side ability to ignore other players

• Admin Mute Command

They are usable via the right click context menu.

New bug tracker

We switched to a new bug tracker, which will make tracking a lot easier and streamlined with the development process.

Colored Missile Trails

The trailed of colored missiles are now also colored.

Bug Fixes

A lot has been done since the last update. Thanks to all the testers!

One thing to note is that missile turrets have been upgraded to now being able to hit missiles a lot better. Turret rotation is now mass based, so smaller missile turrets are better in aiming and leading a target. Also the “aim at selected” AI option has been fixed.

T3 Require auth + not uplinked does not show a clear enough error-message on connecting

Music

We're currently looking to create SFX and a soundtrack for the game, if you're interested and have the skills, please send an email to duke@star-made.org with some samples and info about yourself. We're aiming for orchestral, classical and ambient elements, however any sample you think will impress us is fine.

Coming up

There is a completely new launcher nearly done. It will be built to make the installation of java for the game absolutely obsolete. It will also eliminate any java version problems, as well as add a lot of other features. It will also be the starting point for finally having an ingame menu, as well as ingame server switching (which are easy to do but held off for solving other problems around the game). Also, work on the creature system will now switch into full focus.