NavalArt - Deagle


Hello captains, it’s been a while since the last official post of NavalArt, despite the last public update released in the last year. the game is getting regular updates in the test branch during these months, (If you don’t know how to enable the test version, just use code “navalarttest” in the property option of the game library)

For those who have already entered the test version, you may have noticed it has stopped getting update for several weeks, this is due to I am currently working on the multiplayer framework of the game, which basically changed the deepest structure of the game.

[why multiplayer?]

At first, I was working on the cv for sometimes and meanwhile I was trying to build the structure for the multiplayer function, I found the game’s currently structure is not very suitable to introduce multiplayer on it, this means I may need to rewrite the whole anti-air, missile and aircraft system to match the requirements of multiplayer, which will be described more detailed in the content below.

That should also be the same reason that why some great sandbox games like Kerbal Space program, Simple Planes doesn’t have official multiplayer with them, that a game with multiplayer should be a multiplayer game at the beginning of development, as the running logic it required is very different from a single player game. It could be a very difficult problem even for a whole indie game team, while there is only one person works for our game, but since I have promised you guys about it and have multiplayer on our roadmap, so I won’t regret it but rather to take the challenge.

The thing turned to be if I add aircraft carrier systems to the game first, I need to rework it again when the game needs to add multiplayer in the future, so I decided to put multiplayer on a higher priority in the development. The good news is, if nothing goes wrong, we are able to get a multiplayer with turrets and torpedos working in the next test version since missiles and aircraft system should be reworked for the multiplayer), at the beginning of February.

By then I will release a new test branch without code requirement, finally we will be able to fight with our friends with our ships.

[Chanllenges]
In fact NavalArt is a sandbox game, players are able to design ships freely with a lot of ordnances on one battleship, like turrets, torpedo launchers, missiles, aircrafts, for example.

You could think about the multiplayer war games you have played, there will be not many units per round, otherwise it will need a strong dedicated server to work in the background. NavalArt is aimed at using Steam P2P network for multiplayer, so the bandwidth is even more limited, it’s just impossible to synchronize all the units between players in the current state.

[Let’s do some math]
For example, if there are 200 planes exists in the battle, the game synchronizes them at 10Hz, which is 10 times per second.

Assume that we need to transmit the rotation and position of each aircraft:

Position: 12 Bytes
Rotation 12 Bytes (For a quaternion, it’s 16 bytes)

So each aircraft costs 24 Byte for its current state in total, when we put it into the formula, it will be :

(12+12)*10*200 = 48000 Bytes/S = 46.875 KByte/s

Although it seems small when comparing to the bandwidth when we streaming videos, this is a very large bandwidth for a game, to name a few, Cs:go will costs 60 KB/s when running a 10 vs 10 casual game, a typical bandwidth usage of a Steam P2P game should be around 30 KB/s for smooth gameplay, and in NavalArt players could even add more than 200 planes on their ships.

[Solutions]
For turrets and torpedo launchers, there won’t be much problems, since their movement is deterministic, as it will have an initial speed and direction at launch, under the same circumstances it will have a same error on all clients, so the server will only need to tell every client, ok, generate a bullet/ torpedo at there, and all the clients simulate them simultaneously. When the bullet/torpedo hits something, the server tells the client to destroy the weapon, that’s all, they don’t need to be synchronized all the time.

For missiles or aircrafts, the situation is distinct from above. You might have played some RTS games, in which a lot of units could be controlled by one player over the internet, even thousands of troops. You might wonder how that is possible after we have done the math. There indeed exists some magic.
So the answer is these RTS games are all using the same technique which is named deterministic lockstep, that means no matter which pc it runs on, it will give the same result with the same user input. Only user inputs are getting transferred over the network rather than the status of all units, hence it could run well with a little bandwidth, doesn’t it sound like magic? (One famous game on Steam which is “Factorio” also has used this technology to synchronize thousands of units)
You might think we could add this to NavalArt, however, it is not very practical to do it.

Firstly, NavalArt uses float points to do all the math, which might have some error as the number goes larger, so it will not be deterministic with the same user input, meanwhile deterministic lockstep requires the game to run at the same speed as the other player’s game you are playing with, which will produce many fatal cons, if you have played networked RTS game before, you might encountered the situation that the game gets laggy with a tip: “some player is slowing the game down” or you get disconnected with the error : “You have been desynchronized” . There is also many other reasons that NavalArt couldn’t using this method for multiplayer.

To solve the network problem, we need to reduce the usage of the precious network bandwidth, which means to introduce multiplier with the current missile and aircraft system is nearly impossible, they will need to be reworked, but it won’t take very long since some code like animations could be reused, that’s the reason we are only getting basic functions for multiplayer weeks later and it’s in a test branch, since it will produce a lot of errors if we use single player code directly in a multiplayer game.
You may have noticed that planes in the current version will go through mountains, it could also be solved under the rework of aircraft systems, as the map will be quantized into grids, and it will be easier to add a path finding or an obstacle avoidance into the game, planes will also be able to fly in formation since the grid could occupied by one plane and other planes could detect it.

Using a grid based system will also reduce the network usage dramatically since only the grid coordinate needs to be synchronized, which is obviously smaller than a 3-dimension vector when using the power of two to represent it, as the latter vector is 12*8 = 96 bits, the movement of the plane could also be performed by using interpolate between girds.

There are also a lot of other technologies like delta synchronization, data compression that could be used for the multiplayer system, so please be patient, the game won’t be given up, it will get better and better gradually, as it was during the past years.

[In the End]
I hope you like the post which described the general problems and solutions for the game in the current stage. We will meet again at the release of the multiplayer test version soon.


(Credit: Photo by Julius_Tetsuo, 肄业遮目)
Sep 25, 2022
NavalArt - Deagle
New part: American 127mm/54 Mk16 twin turrets
New part: American 127mm/54 Mk42 dual-purpose turret
New part: 1/8 Sphere
New part: 1/4 Cylinder
New part: 1/4 Cylinder(Wall)
Added new content to the mod tools tutorial
(https://docs.google.com/document/d/1OOrE84_RiVGDMkColI-2rf8Zv6YnENAX-bp2_idyDgc/)

Adjusted British 152mm/50 MK XXIII triple turrets(ID:91)'s weapon data
Adjusted British 152mm/50 Mk26 twin turrets(ID:134)'s weapon data
Remastered the model of American 152mm/47 MK16 triple turrets
(Credit: Admiral_Bofors)

Fixed a bug that caused the placed custom parts to lose color when entering custom parts mode
Fix the problem of misspelling of English localization ropes of bollards
Fix the problem that the original parts id135 and id139 Italian turret multiplier is wrong.
Fix the problem that there is a small gap after the hatch parts are placed.
Fix the bug that some American vertical missile launchers have a small offset.
Fix the problem of gap in Japanese Chimney II model.
Fix the bug that when reading automatic archives and system preset ships, the ships will not be loaded when they arrive at the dock.
Fix the bug that the British 152mm/50 MK12 single-mounted sub-gun barrel is upside down.
Fix the bug that the turret auto-manual switch is displayed above other ui levels
Fix the bug that the American 127mm/54 MK42 dual-purpose gun has a spacing between the single gun and the base
Sep 13, 2022
NavalArt - Deagle
Fixed The bug that some of the mods runs well while installed locally but will cause the game can't load all the parts when subscribed from workshop
Added Steam rich presence(The status text in the friends panel)
Fixed some anit-air guns will log error message in the game
Aug 19, 2022
NavalArt - Deagle
Adjusted The rotation adjusting button's function has been set to increase/decrease rather than setting the rotation value directly
Fixed The bug that some of the vanilla turrets don't play the fire sound effect at correct volume
Fixed The maximum range unit of missile mod is 'm'rather than "km"
Fixed Gimbal lock appears when setting the rotation value in the older version
Aug 12, 2022
NavalArt - hemadw86
Mod tools updated: mod support for missiles
Mod tools updated: Sound mod for turrets, aa guns, missiles and torpedo launchers
Mod tools updated: ciws option for aa gun mods
Mod tools updated: weapon classification support for modsin the inventory

Fixed The tiny error when picking color in paint mode
Fixed The bug that the HE warhead of missile doesn't do any damage
NavalArt - Deagle
Summary

This update brings the game a new missile system, which includes anti-air, anti-ship and cruise missiles, an improved inventory sorting panel, along with glowing and wooden deck added to the paint tool, futher more, there are lots of improvements and plenty of bugs have been fixed.

Added

Added White alert box for mouse selected parts in paint mode
Added The function of painting mode as glowing color.
Add The function of painting wood deck in painting mode
Added The function of exporting 3d printed models in the shipyard.
Add The tip window before the Mod loading panel automatically exits the game.
Add Log tool window for exporting error reports in developer tools
Add System preset ship Arleigh Burke
Add System preset ship PLAN 054A
Add Option to sort parts in the inventory by weapon type



New Parts

American [RGM-84 "Harpoon"] Anti-Ship Missile Launcher
Russian [P500 "Bazalt"] Anti-Ship Missile Launcher
Russian [M-11 "Shtorm"] Anti-Aircraft Missile Launcher
American [BGM-109 "Tomahawk"] Cruise Missile MK41 VLS
American [ESSM "Sea Sparrow"] Anti-Aircraft Missile MK41 VLS
Russian [P270 "Moskit"] Anti-Ship Missile Launcher
American AN/SPY-1 3D Radar
American AN/SPG-62 Fire Control Radar
American Modern Chimney I
American Modern Chimney II
American AN/SPY-1 3D Radar(mirrored)
[HHQ-7 "Hai Hong Qi 7"] Anti-Aircraft Missile
[HHQ-9 "Hai Hong Qi 9"]Anti-Aircraft Missile H/AJK03 VLS
AK-176 76mm Single Turret
H/PJ-26 76mm Stealth Turret
AK-630 Close-In Weapon System
AK-630M2 Close-In Weapon System
American [AGM-158C "LRASM"] Cruise Missile MK41 VLS
American [RIM-174 "SM-6"] Anti-Aircraft Missile MK41 VLS
Chinese [YJ-83 "Eagle Strike 83" Anti-Ship Missile]ST16M/ST17 Missile Launcher
American[RIM-7 "Sea Sparrow"]Anti-Aircraft Missile MK25 Missile Launcher
American[RIM-116 "Rolling Airframe"]Anti-Aircraft Missile Launcher
Chinese[FM3000N]Anti-Aircraft Missile CCL VLS
Chinese[HHQ-9B "Sea Red Banner-9B"]Anti-Aircraft Missile CCL VLS
Chinese[YJ-18LAW "Eagle Strike-18"]Land-Attack Warfare Cruise Missile CCL VLS
Chinese[YJ-18AS "Eagle Strike-18"]Anti-Ship Missile CCL VLS
Italian[OTOMAT "Otomat"]Anti-Ship Missile Launcher
Russian[S-300 "Thunder"]Anti-Aircraft Missile SA-N-6 VLS
Russian[SA-N-7 "Shtil"]Anti-Aircraft Missile Launcher
Russian[SA-N-4 "Circle"]Anti-Aircraft Missile Launcher
American[SM-6 "Standard Missile-6"] MK26 Missile Launcher
H/PJ-11 Type 1130 CIWS
Chinese Modern Chimney I
H/LJQ 3-D naval air search radar
American AN/SPY-1 3D Radar




(Credit: 終電列車)


Adjustment

Adjusted Soviet system post-war weapons received some enhancements
Adjusted Ciws top cover adjusted to white
Adjusted Added ship facing arrows to the default background of the shipyard
Adjusted M-11 storm missile count from 4 to 8 rounds
Adjusted US [SM-6 "Standard-6"] anti-aircraft missile MK26 launcher’s missile count to 12 rounds
Adjusted New part Russian S-300 air defense missile SA-N-6 vertical launch system’s size
Adjusted Resizing of new part H/PJ-11 Near-Range Defense Weapon System

Optimized The efficiency of the code for loading ships
Optimized Anti-aircraft gun target select code to run more efficiently.
Optimized Aircraft calculation performance
Optimized Anti-aircraft gun damage calculation efficiency

(Translated by translator, manually edited)


(Credit: skant)


Bug Fixing
Fix the bug that the custom color palette of color panel is not fully localized
Fix the bug that the custom color panel does not load colors after clicking.
Fix the bug that the advanced paint mode will keep spraying when the mouse is pressed to spray.
Fix some bugs in the calculation process of ap bullet penetration model
Fix the bug that the shells of anti-aircraft weapons with high rotation speed, such as CIWS, diverge.
Fix the bug that some weapons will tremble in place
Fix the bug that some mod parts may cause a significant drop in frame rate due to missing meshes.
Fix the bug that some mod parts may cause the ship parts to be lost due to the missing grid.
Fix the bug that the color of the module disappears when pressing the O key during the battle or trial flight.
Fix the bug that black smoke will appear randomly in the blank space when the plane crashes
Fix the bug that the torpedo logo is flashing after launch
Fix the bug that the locking line does not disappear after the player is sunk
Fix the bug that there is no sound of type 5 siren in siren preview panel.
Fix the bug that ships change color when pressing p in armor mode or module view to opening coloring mode.
Fix the bug that the x-symmetry axis is incorrect in adding cable mode.
Fix the bug that ships with many parts are occasionally displaced when the game is pausing.
Fix the bug that submarine-launched torpedoes cannot be launched.
Fix the bug that the button of missile launcher with spare ammunition does not disappear after launch
Fix the collision box of harpoon anti-ship missile
Fix the bug that torpedoes disappear after launch.
Fix the bug that the collision body of SPY-1 Aegis radar does not match the model.
Fix the bug that the developer tool is displayed when entering the game for the first time.
Fix the bug that the module status display mode cannot be closed when pressing O and then switching out of the game.
Fix the bug that the game keeps logging collider warning message in the battle.
Fix the bug that the turret still fires even if it not aimed at target
Fix the bug that the turret can still fire even though it is not aimed at the opening of Ai
Fix the bug that the missile cannot fire after locking the enemy and then unlocking.
Fix the bug that the anti-aircraft gun do not return to the original position after firing.
Fix the problem that the firing status in the scope still shows ready after the turret is destroyed.
Fix the bug that the anti-aircraft missile reloads when it is fired.
Fix the problem that the flame effect is too repetitive after the vertical launch system is damaged.
Fix the problem that the name of the certain mission is wrong.
Fix the bug that the battle name is not displayed occasionally.
Fix the problem that the placement of vertical launch system of CCL in the middle system has an offset
Fix the bug of YJ-18AS "Eagle-18" anti-ship type load wing’s position is not right
Fix the bug that the top and bottom of the YJ-18AS "Eagle-18" anti-ship missile is upside down.
Fix the bug that the top and bottom of the YJ-18LAW "Eagle-18" land attack type anti-ship missile is reversed.
Fix the bug that the launch cover of the CCL vertical launch system of the medium series [FM3000N] air defense missile disappeared.
Fix the bug that the model of Sea Sparrow MK25 launch box’s normal is at the opposite direction.
Fix the bug that the anti-aircraft gun shells are fired from behind the anti-aircraft gun.
Fix the bug that the aircraft cannot be controlled again after recovery.
Fix the bug that the aircraft can’t be controlled when it has been recycled
Fix the bug that the anti-aircraft gun does not return to its position when disabled.
Fix the bug of missile texture error caused by pressing “o”
Fix the bug that the SEARAM missile model has no wings.

(Translated by translator, manually edited)



(Credit: Ace2001)

The Next
Due to the developing order of the game's content, the original plan have been adjusted to introduce missiles in the 0.9 version, the next version's major content will be aircraft carriers and fog of war systems. The contents which shall be added to the game after the next version are : Mission editor, multi-player, and some other fun stuffs. If you like my game and are willing to support the development of the game, welcome to my patreon: https://www.patreon.com/navalart, the member awards are well listed, thank you!


May 19, 2022
NavalArt - Deagle
Added

Added Added in-water projectile attenuation
Added Kinetic energy decay after shell penetration of armor
Added the function to delete with box selection in custom parts
Added Default sorting of Steam Workshop mod and Steam Workshop ships changed from sorting by name to sorting by subscription time*.

Fix

Fix a bug that prevented all mods from loading if more than 50 mods were activated in the SteamWorkshop subscription
(This bug is caused by Steam itself, I have reported it to Steam, the current fix is the change with * above)
Fix the bug that the text of the moveship button in the developer tools is not displayed.
Fix the bug that the shells generated in the developer tool cannot hit the ground.
Fix the bug that the text in credit panel is misplaced.
Fix the bug that the firing shells will fly unreasonably to the later aiming point after pausing the game and moving the viewpoint after aiming.
Fix the bug that the preview image of custom parts will render purple parts selection box.
Fix the bug that the preview image disappears after saving the ship.
Fix the bug that high explosive shells penetrate the water surface.
Fix the bug that Moveship function is not available in developer tools.


Apr 26, 2022
NavalArt - hemadw86
Fix

Fixed The preset ship "USS BB67 Montana"'s magazine bug

Fixed The preset ship "VMF IZMAIL" is too heavy in current version

Fixed The version of the Unity engine caused critical lag for some players(Game recompiled after the game engine updated, some players' fps boosted dramatically after this update)

Fixed The bug when player test the ship in the second tutorial, they get empty ship and fly into the sky

NavalArt - Deagle
New
Add Game built-in tutorial
Add Super resolution screenshot 6x magnification
Add Button to select continue after failed in the battle
Add Reset tutorial progress interface in settings
Added Language selection interface when first entering the game
Added British 381mm main gun model remastered.

Adjustments
Adjusted physics calculations for ship propeller semi-submersion (physics calculations are more friendly to smaller ships)
Adjusted menu screen initial camera distance
Adjustment Default sea quality adjusted to low
Adjusted sea tones

Fix
Fix the bug that coordinates are not mirrored after cable mirroring
Fix the bug of wrong annotation of filter button in parts inventory
Fix the bug that misreporting of naval bomb hits

Now the roadmap
1、Improve armor armor penetration system 2、Missile system 3、Carrier system

Apr 7, 2022
NavalArt - Deagle
Added A three-view button to the dock scene
Added Button for detecting parts too far in the build tool panel
Added Auto save interval now could be adjsuted in the settings

Adjusted The orthogonal view scaling in the dockyard interface
Adjusted Increased the camera angle limit of the dockyard interface

Fix the bug that may cause resolution reset
Fix The default stock ships are now released only when the game is started for the first time
Fix the statement of "target is within minimum range" is not in English.
Fix the bug that the list of ships cannot be scrolled after grid auxiliary line is turned on in gallery mode.
Fix the bug that the ship steam workshop panel shows the subscribed mods
Fix the bug that the viewpoint is flipped after the dockyard camera is pulled to vertical.
Fix the bug that the ship information has error when entering the dockyard
Fix the bug that the telescope can't be closed after player's death
Repair the bug that auto-save cannot be used
Fix the bug that the mirror function for luminous cube fails
Repair the description bug of American 305mm/45 Mk5/6 duplex turret.
Fix the bug that the mod manager in the game cannot be enabled after subscribing to more than 50 mods.

...