Please consider supporting us by disabling your ad blocker.
StarMade Weapons Update - Prebuild
Posted on June 24th, 2018 02:43 AM EST
The weapon update just entered the pre-release state. All the features we wanted to add are now implemented.
In terms of content it is probably as big if not bigger than the previous Power update. It completely overhauls all weapon, adds a lot of new features, graphics, optimizations, fixes and other improvements.
Some parts such as updating the block icons, textures and finalizing the config files, are still in the works but everything else should be there for you to test. We already went through a lot of bug fixing and this version should be playable. We strongly advise to backup your universe or use a completely separate installation. You cannot revert your world to the current release version without a backup.
The current pre-release version can be downloaded and installed from the Pre branch.
With more exposure, it will be easier to find those less critical issues and ensure stability before we can release it to everyone to use.
If you come across anything new that doesn’t work or you believe you’ve located a new bug, report that here to help us out: Report a Bug (Release Candidate)
In case you’re not too sure about it, feel free to leave a comment on this thread.
To make a more complete package, new features and improvements have been added all across the board.
We also wanted to give weapons and combat in general a better feeling. This incorporates a broad spectrum of features including the HUD, recoil, explosions, physical force, damage, armor, and many more.
While we changed and added on existing weapons, we did remove the damage pulse entirely as it had no real purpose. It also reduced the amount of combinations possible which allows us to concentrate more on the remaining ones.
This is achieved by propagating damage outwards, block by block, starting from an origin block.
The propagation speed can be adjusted to move faster or slower depending on the processing power and bandwidth of the server. Several bandwidth optimizations have been made to make the information on removed blocks as small as possible. As a result, even large amounts of blocks get processed quickly without any hiccups.
We can change its behavior while this is propagating as well, allowing for unique damage patterns to be implemented.
Like before, each projectile has a penetration depth based on its damage. This can range from 1 to 200+ blocks. Each block in this penetration line, acts as the starting point for Acid Damage to start from. The damage of the entire projectile is then distributed accordingly to end up with the appropriate damage shape.
A general change to cannons is that all projectiles are now considerably faster, which will make battles at higher speeds a lot easier.
The physical recoil on your ship is in the opposite way of the firing direction, the impact force on your target is in line with the firing direction as you would expect.
There is also something we call 'cursor recoil', meant to give a better feeling to cannons and reduce its accuracy slightly when fired manually. This represents a similar tequnique as shooting a gun in most first person shooters. It’s kept at a manageable level, and scales properly with your fire rate and damage. There’s also a maximum cursor recoil threshold in place to make sure even the biggest of weapons don’t throw your aim around too much.
- Default: An all-around decent cannon, doesn’t excel at anything
- Cannon + Cannon: Fast firing machine gun with fast projectiles. It uses the Cone: Wide-> Narrow damage shape.
- Cannon + Missile: Charge cannon with left click to charge, release to fire. The longer it is charged, the better the efficiency and damage of that shot. It also uses the Cone: Wide-> Narrow damage shape.
- Cannon + Beam: A slow firing artillery cannon with a narrow -> wide cone damage shape. Even when over penetrating, it will be relatively efficient, but it is hard to hit.
We’ve changed the Damage <-> Power consumed ratio to be different for each combination. It allows us to balance the high risk weapons to reliable damage dealing ones. A slow firing cannon is always more efficient, as a miss or a bad hit is a huge waste of time and power.
Each combination also has a default sniper zoom mode, toggled with right click. It ranges from 2x to 4x and greatly enhances accuracy on long range targets.
Some examples of the damage left by only a few projectiles:
~ High damage projectile: https://i.imgur.com/JR213Wr.png
~ Multiple medium damage projectiles: https://i.imgur.com/UUjJZ5X.gifv
We’ve improved the functionality of Beams to allow for that. Some versions are capable of traveling along its target without you firing or aiming it again, they’ll deal decent damage as well but may not necessarily stay where you want them to be.
- Default: Latch on beam that breaks off when it has no direct line of sight with the current block.
- Beam + Cannon: Aimable beam with short burst time and cooldown
- Beam + Missile: Arc beam with a shorter range but doesn’t break when there is no direct line of sight anymore. Has a long burst time.
- Beam + Beam: Penetrating beam that can’t be aimed with your cursor. The damage of the beam is distributed equally over the blocks in the penetration line. Requires to be charged before firing and stops your shields from blocking damage while you are charging.
- No active logic block connected: hold
- One active logic block connected: pull
- Two active logic blocks connected: push
Keep in mind that the mode set by logic is only used when the beam itself is also fired by logic, otherwise it will use what the player set.
- When a bullet hits armor it checks how many armor blocks come behind that block in its path.
- The count of armor will stop at any non armor block or air. That count defined the “armor depth”
- Each armor block now has an armor rating that will get added up (with possible additional bonuses on thicker armor)
- The resulting total armor value along the armor depth is then compared with the bullet’s damage
- Is the armor value lower than the bullet’s damage, the bullet will travel on as normal and destroy the armor blocks along its way
- Is the armor value higher than the bullet’s damage, the bullet will only do acid damage on the first block and stops completely
- Is the armor value much higher than the bullet’s damage, acid damage is not even applied and only a single block gets normal damage and stops completely
- This will be repeated for every continuous plate of armor the bullet goes through in a ship, so inner armor a very viable option
In addition, the HP of Armor has been increased to make it capable to absorb more damage.
To add another layer to using missiles, we added a Missile Capacity system that will also prevent you from spamming them. By placing missile capacity blocks on your entity, you increase the maximum amount of missiles to be stored. The missiles are reloaded in bulk, as soon as you fire a missile, the reload starts. When the timer runs out, all the missing missiles are filled up again.
For AI controlled ships, the reload only starts when they run out of missiles, this helps control the amount of missiles flying around.
In addition, you require additional power for the missile capacity blocks. This should normally not be a concern unless you’re deliberately trying to store too many missiles for your ship’s size.
We’ve also implemented proper anti-missile prioritization. You can set any of your AI to fire at a certain category first:
- High damage missiles
- Low damage missiles
- Default: Fast non tracking missiles
- Missile + Cannons: Heat-seeking swarming missiles
- Missile + Beam: Lock-On Missiles
- Missile + Missile: A bomb with no self-propulsion and uses the ship’s velocity as its own. The bomb will ignore shields and does friendly fire as well. It will arm itself after several seconds, it won’t detonate if you fire it at point-blank range of your target.
Volley fire can also be set in the Bobby-AI module for turrets and drones to use.
All indicators now also have been moved to the center of mass of entities. They will still be on the core if you are aligned or in gravity of an entity.
This will greatly help with lag in larger ship battles, where the undocking of turrets and other docks was one of the biggest parts of lag-causing elements.
Also an all new LoD system has been implemented which is currently in use for the mines to be able to have a lot of them in one sector without problems. The system is written in a way that it can be used for a lot of other things in the future.
- Kinetic (Cannons)
- Electromagnetic (Missiles)
- Heat (Beams)
Any damage in the game is now a composition of these effects and they are aplified depending if what they hit is stong or weak against that effect. Even environmental damage like sun damage (heat) is now part of this system. This will be further expended upon in the universe update.
You can adjust the basic damage distribution of each weapon by linking it to the specific effect computer you want it to have.
There are also defensive reactor chambers to strengthen your ship/structure against these damage types respectively.
If the value is set to 1, all config values will be interpreted as fixed block units (meters).
Next to the mine core you can place up to 6 mine-specific block modifications. The mine core block plus its modifications are used as a “blueprint” for the mine’s capabilities, while the constructed and deployed mine itself is not a block but a small 3D model.
Constructing and laying a mine requires blocks from either the pilot’s inventory, or its linked storage. All newly deployed mines are inactive. You can activate them by right clicking, or via the radial ship menu for more options.
Mines can be destroyed by being shot, or simply physically running into them (which may not always be the best idea).
Mines can also be laid via logic by connecting a logic block to the mine layer.
The following mine-types are available:
- Cannon Mine: This mine fires cannon projectiles when in range
- Missile Mine: This mine fires heat-seeking missiles when in range.
- Proximity Mine: The classic mine. Once a targets gets within range, it activates the mine and will follow the entity that triggered it, explodes on impact. Once triggered, it is used up.
- Cannon Mine Mod: turns mine into cannon mine
- Missile Mine Mod: turns mine into missile mine
- Proximity Mine Mod: turns mine into proximity mine
- Strength Mod: increases mine damage
- Personal AI Mod: mine will not attack the one that laid it down
- Friend AI Mod: mine will only attack the enemies of the person who laid it down
- Stealth Mod: with each additional mod the mine will gain one point in stealth. Depending on recon strength while scanning the mine will be invisible at distance (distance depends on the difference of stealth vs recon)
This block (or group of blocks) is destroyed on passthrough if the connected storage has no remaining items. If the storage has remaining items, the damage is done to the stored items themselves, meaning that items are being destroying emptying the storage. HP are irrelevant to these blocks as every shot will do passthrough damage. The shot will not lose any strength and continue. The storage will lose items on every storage block the shot passes through.
The storage block has the same mechanics as the cargo blocks.
This means any ship is equally viable in terms of integrity, as long as its integrity is positive when going into battle. It will also help with lag from explosions and the snowball effect once a ship dips into negative integrity.
AI should be able to use all weapons with the exception of mines and charged shots currently (will be fixed for release).
- The rewrite of the weapon and general usable module system made the amount of steps involved in pretty much everything weapon and module related a lot less. Not only does this result in much cleaner code, but also a general speed up.
- The update system for modules is now on-demand, which means the system will not bother to even check if the blocks of a group changed as long as there hasn’t been an actual notification for that. This means that the general idle time for all entities has been cut down significantly. This is very noticable in sectors with a lot of entities and docks.
- Block processing has been optimized to minimize the amount of lookups by grouping all changes by chunk. This also cuts down on synchronization time between threads and cleans up the code considerably in that section.
- Block change recording has been completely rewritten to minimize memory usage and serialization size.
- Removed some bottlenecks that were occurring in big fights.
- Thread spool up to remove short freezes after starting the game, e.g. in build mode.
- A ton of smaller optimizations across the board.
- Memory optimizations for the particle systems.
- Log cleanup during ship battles
- Gif recording performance has been improved (quality setting in settings.cfg)
- Shipyards have been fixed. Additionally, shipyards now have a seperate logs to catch any future problems
- Docked entities (turret or not) being surrenly misaligned has been fixed
- Fixed hp problem for ships becoming 0 and then not taking damage after that, making a ship effetively unkillable.
- Fixed shields (fix came with rewriting the system)
- Fixed bug that would spam the log with exception during battles causing major lag
- Fixed bug on chunks not drawing correctly (wrong lighting)
- Fixed warp gates
- Fixed turret AI not being able to shoot at a target after a while
This post contains mostly the features. We will go more into the technical aspects and all the new backend systems that have been created, and the existing ones that have been completely rewritten for this update in the release news post.
Thank you for playing StarMade,
- The Schine Team