StarMade Dev Blog - The weapons update

    • Annonce ​Officielle​
    Serveur MineFun mc.forultranoob.be
    Serveur StarFun sm.forultranoob.be:27560
    Vote
    Serveur Discord Infos
    • StarMade Dev Blog - The weapons update

      StarMade a écrit:

      Hello players,

       

      The first dev build is now available. There is a lot to cover in this update. The primary focus of this update is to make weapons more unique and give them a better feeling, as well as improving the overall combat experience.

      This is the first dev build of many, and there are other features to come still like the ability to zoom with weapons, weapon graphical updates and PD missile priority.

       

      Not all combat related aspects will be addressed in this update, ship movement might still receive some minor (but important) changes in the far future and the AI itself will definitely get the attention it needs in other releases.

       

      Also, there will be graphical updates to the weapons still. Most important, however, is to first ensure good functionality.

       

      Weapon Combinations

      Weapon combinations use the same mechanic still, but each combination and base weapon has been completely overhauled.

       

      We removed the Damage Pulse weapon (push pulse is still available), so there will be a total of three normal weapons plus nine combinations. All other weapons and support tools are handled separately and will no longer have any combinations. However, the default state of support weapons like the salvage beam will be upgraded to what people usually went for when there were still combinations for it.

       

      Recoil

      A new recoil system has been implemented. Not only will cannons and possibly other weapons now cause recoil on your cursor aiming, but there is now also physical recoil on your ship depending on your weapon. This means that you could technically propel your ship by shooting weapons. There is also impact force, which means that you will experience a physical force when weapons hit your ship. The force will scale with the damage of your weapon, but this can vary even more depending on the combination type where we can tweak it even more.

      Cannon

      The cannons have probably received the biggest update. To make them more viable, we completely changed their damage model to allow for an accurate damage to block destruction representation, while at the same time also interact better with the target’s armor for balancing.

       

      A cannon projectile now does explosive damage that, in theory, can reach the end of any structure. On impact, part of the damage will be expanded to the surrounding blocks and creep outwards till it runs out of damage. To keep the game running smoothly, a scaling algorithm was implemented to limit the number of operations per update. This means that in high load situations, it would not slow down the server. Instead, it would simply take a little longer for the same amount of damage to apply. We call this the “Acid” model since it, in a way, behaves like acid burning through a material but at a much faster pace.

       

      A cannon projectile has extra characteristics too now, such as type and width. The type is determined by the weapon combination and specifies the formula used for the Acid Damage to propagate. For example, one type of cannon could leave a cone-shaped hole in your target, and another type could have this one flipped around. The width of a projectile could then be used to limit how wide its damage can creep outwards.

       

      By putting blocks next to your cannon output, you increase the perpendicular size of it. The width is based on this. The more width a weapon has, the broader the “punch” will be, but the bullet will of course not penetrate as far, since it’s using up a lot more damage for Acid Damage. The weapon itself still needs the damage to do this though and it’s entirely possible that your wide projectile does not even destroy a single layer, or that a too thin projectile over penetrates.

       

      Armor

      Armor has also been completely redesigned. The old armor rating values that reduced incoming damage, and armor HP have been taken out completely to be replaced with a system that makes the armor and its thickness matter at the point of impact and does not over generalize the entire ship’s armor.

       

      When a shot hits armor, the system will test how many blocks in the line of fire are also armor. The armor value of those blocks is then summed up and compared with the damage.

      This is done every time a shot encounters a new set of touching armor, so you can absolutely have inner armor to protect your reactor.

       

      A projectile can have 3 states in total: Stopped, Normal, or over-penetrating.

       

      If the damage is lower than the combined armor value, the shot is considered ‘stopped’ by that armor. A stopped shot will only do damage to the first block. This means that you will only lose at most one block per shot if you have great armor relative to the weapon that hit you.

       

      If the damage is good but not too good for what it is hitting, you get a normal shot and acid damage will apply like you expect it work.

       

      A shot with overwhelming damage however, will be considered over penetrating against most armor plates. The acid damage model will still apply, but gets adjusted in such a way that less damage will be spent in acid damage, and you’re more likely to shoot right through your target with little damage done.

       

      As an example, if you shoot a relatively small ship with a huge cannon, the shot might just go straight through the complete ship, leaving only a 1-2 wide hole. This means that sometimes, using less powerful weapons against smaller targets might be more destructive.


       

      The next few dev builds will have us applying these acid damage formulas to each of the cannon combinations and you should start seeing a noticable difference between each type.

       

      Combinations

      The combinations of cannons are as follows:

       

      • Default: An all-around decent cannon

      • Cannon + Cannon: Fast firing machine gun with accuracy problems at higher damage values (recoil)

      • Cannon + Missile: Charge cannon with left click to charge, release to fire. Will have different shape for acid damage (most likely a cone. The amount charged on fire will change its damage, acid damage spread and other variables to change its efficiency.

      • Cannon + Beam: A slow firing, sniper/artillery cannon that will have a different shaped acid damage model once again. It will still be relatively efficient when over penetrating its target, but is hard to hit.

      Beams

      Beams have also been updated considerably. They now possess the ability to latch onto targets. This makes them a lot easier to use. Most beams won’t penetrate, as it simply jumps from one destroyed block to next closest block of the initial hit, preferring blocks that are on the surface over blocks that are deeper. Those beams are perfect for burning off the outer shell of ships and against shields.

      An entity can break a latch if it turns away from the firing entity. This will only be possible for the mother ship to prevent exploitations like rotating armor. Alternatively, a non-latch on beam can and will still be used with combinations.

       

      Tools like the salvage beam will not latch on and can be used normally.

       

      Combinations

      • Default: A latch on beam

      • Beam + Cannon: A beam that doesn’t latch on with some acid damage. The latch can break by turning away, but the beam will try to latch onto the next block that has a sight line to the beam output.

      • Beam + Missile: An arc beam with shorter range but doesn’t break from target turning away. This is useful when trying to do focused damage on one spot.

      • Beam + Beam: A doom beam that penetrates the complete length of the beam, and adds acid damage. This would represent an actual death star weapon. Very overpowered right now and can easily be used for performance tests! The acid damage will be adjusted later on, and this beam will get other penalties to account for its high penetration and damage values. This could be the inability to aim with your cursor, having to drop your shield, require additional charging time, having to stop to fire, can not be used on turrets, etc. Stations are especially vulnerable to this type of weapon so we’ll make sure there are mechanics in place to balance it properly..

       

      Once we’ve established a baseline config, we’ll also be using a mechanic to reduce the damage of beams with distance.

       

      Repair Beam

      The repair beam has been completely overhauled as well and is now capable of repairing and replacing killed blocks. The reason this has taken longer is several problems to optimize this system for large scale, as well as handling the logic of connections. In the dev build, you can only replace the blocks in order (as if you pressed “undo”), however in release, you will be able to repair blocks that don’t have any connection (like hull) at any time, and only systems would have to be done in order. This method of repairing will use the blocks in your linked storage chest but is using ‘creative’ mode in the dev build for now.


       

      Tractor Beam

      The new tractor beam replaces the push and pull beam of the previous release. This weapon is able to hold another entity in place. It can also move with you as you either rotate or move yourself while still firing the beam. It comes with a built-in mode change so you can push the target further out or pull it in. In the dev build, you can change modes by right clicking. This function will be refined further in the GUI. There will also be a way to set the mode by connecting logic blocks to it.


       

      Missiles

      While the basic missile has not changed, there are some major changes to how they behave and fire.

      Missile Capacity

      To prevent missile spam, a ship will now have a shipwide missile capacity. This capacity reloads overtime at a fixed rate, and requires some additional power to do so. You can place extra missile capacity blocks on your entity to increase the base capacity. This means that there is a finite number of missiles you can use in a battle. To counteract that restriction, missiles will be made stronger and less will be more. Firing a missile should be a real decision rather than a no-brainer.

      This not only will help with performance during battle, but also will make missiles feel a lot more impactful.

      Combinations

      • Default: Very 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, but it is extremely hard to aim and use (almost impossible to fire effectively from large ships). The bomb does friendly fire and will arm itself after several seconds, which means you should clear away after firing one.

       

      We’re going to add proper missile prioritization for your Point Defense turrets in the next few dev builds, this will also include missile HP that would scale with the missile’s damage. This will allow for high damage missiles to get prioritized, but they will also require big enough PD weapons to take it down before it reaches the target.

      Effect types

      All damage will now be a combination of 3 damage types:

      • Kinetic

      • Electromagnetic

      • Heat

       

      When a cannon/missile/beam hits, damage is reduced or increased depending on what the target is weak or strong against. This reduction is only applied once for a projectile and missile but is applied every time when a beam does damage.

       

      The existing damage effect blocks have been removed for three new ones. These three are used to change a weapon’s default damage type composition (e.g. cannons are mostly kinetic damage).

       

      On the opposite side, you can use reactor chambers to strengthen your ship/structure against the damage types respectively. You won’t be able to get full protection against weapons, but it is possible against environmental damage. In the universe update, this will be used to add more variation and danger to your universe and with the right setup, allow you to live and build in an otherwise hostile environment.


       

      With armor thickness and these effects, we will be able to provide you in-game information to help with building and analyzing your structure’s armor. By just looking at your armor from any angle, you will see information to show the statistics of that particular spot and what is behind it, showing you potential weak spots, and how much damage your toughest armor can withstand without having to take apart your ship layer by layer.

       

      Mines

      With the removal of damage pulse, we decided to add something that is standalone from the weapon combination system to compensate, the minelayer.

       

      With this, you can lay down mines permanently in sectors, with a ton of possible configurations for each to determine what type it is.


       

      The mines could be seen as tiny mobile shipyards, with a Mine computer connecting to a Mine core.

       

      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 the storage that is connected to the Mine computer. The strength of the mine will be configurable through block consumption in the following dev builds.

       

      Newly laid mines are unarmed and remain so until armed via the Radial Ship Menu.

       

      To destroy any armed mine, simply shoot at it or ram into them.

       

      A mine has a detection radius and will activate based on what it is looking for.

       

      The following mine-types are available (for now):

      • Cannon Mine: This mine fires a cannon projectile towards entities in range

      • Missile Mine: This mine fires heat-seeking missiles as long as an entity is in range

      • Proximity Mine: The classic mine. Once activated the mine will follow the entity that triggered it and do massive explosion damage on impact. Once activated, the mine is used up.

       

      The following Mine Modifications are available:

      • 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 strength 10 fold but also increases cost 10 fold

      • Personal AI Mod: mine will not attack the one that laid it but everyone else

      • Friend AI Mod: mine will attack only enemies of the player

      • 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)

       

      Raw Feature List

      Here’s a list to indicate all the items that went into this specific build.

       

      1. Completely Rewritten weapon handling and processing

      2. Effect damage

        • Effect damage block config capability

        • Effect damage block behavior config capability

        • Effect damage effect config

        • Effect damage attack and defense processing

      3. Effect armor

        • Global effect defense

        • Per block category effect defense

        • Per block type effect defense

        • Armor chamber effects

        • Environmental Armor effect

      4. Cannon width architecture system

      5. Cannon width pipeline

      6. Acid damage

        • Acid damage formula

        • Armor depth

      7. Cumulative optimized projectile block handling

      8. Beam optimized penetrate handling

      9. Beam latch-on functionality

        • Beam latch-on synchronization

        • Beam latch-on connection broken handling

        • Beam latch-on progression handling

      10. Repair beam

      11. Tractor beam

        • Tractor beam pull

        • Tractor beam push

      12. Cargo damage

      13. Mines

        • Minelayer blocks

        • Minelayer structure

        • Minelayer connection

        • mine graphics

        • mine network and db infrastructure

        • mine proximity checks

        • Mine hitbox checks

        • Minelayer inventory consumption

        • Minelayer mine composition calculations

        • Mine Stealth

        • Mine placement distance checks

        • Basic mine clearing admin commands

      14. LoD system

        • LoD abstraction

        • LoD mixed mode

        • LoD activation

      15. bBock change handle optimization

      16. Wep combination rewrite

      17. Missile capacity

        • Missile capacity handling/reloading

        • Missile capacity synchronization

      18. Thread instancing optimization

      19. HP data update (always making use of all available bits)

      20. Block Config parser rewrite

      21. Bomb missile

      22. Death beam functionality (penetrating/acid)

      23. Meta effect capability

      24. Raycast fixes and optimizations

      25. Beam optimizations

      26. Extended user controller pipeline in weapon usage

      27. Optimized repair storage

      28. Repair storage serialization

      29. Smaller fixes in between

      30. Inventory block-search reset when dragging from hotbar

      31. Mini freeze when building/starting game fix

      32. Major memory optimizations for handling damage and block changes in general

      33. Recoil

        • Physical Weapon Recoil

        • Physical Weapon Impact

        • Cursor Recoil

       

      Thank you for playing StarMade,

      The Schine Team

       
      Source: star-made.org/news/starmade-dev-blog-the-weapons-update