This update took a while to get out, and of course it is pretty small as well.
After fixing determinism (or so I hope), I decided to break it again by introducing multithreading. Combined with some other optimizations I've done, game can now run at something over 2x previous speed. This means that you can now comfortably have more ships, and more importantly skip tutorial much faster! There isn't really much else to talk about - it runs faster, and as far as I know determinism should still work.
The next thing on menu was reworking some in-world UI elements, such as drop lines from objects to camera center's plane, ships' order visualization, stopping line and few more that have only small changes. Not much to talk about, just look at the pictures I guess.
There are of course some fixes (such as mission 12 freezing if you lost too many ships in previous mission... of course I only every tested the perfect run...). I also fixed fighters being in space when loading into next mission (now destroyed or docked at the end of mission). I also added automatic harvest order for harvesters when they are built at the rally point. I also added separate rally point for harvesters. And I guess that is it for this update.
You can grab the current release here, or let the updater do the job.
This isn't a first time I'm writing this, but I do believe I have fixed multiplayer... Anyway, here is the update:
Major part of this update was replacing physics library. This fixed some determinism issues, and improved performance. With any luck, this change shouldn't have any visible effect. There are some minor changes and there are also some fixes. I've also fixed replays, which should now work for both single and multiplayer games, along with rewind points, which are created during autosave if you have that enabled. This actually took me half the time spent on this update, but I also fixed a lot of bugs on the way.
Determinism test will now also run automatically when you start a game and it is out of date. I've made some changes so it should run much faster, and I'll also have more reports to see if determinism was fixed indeed.
AI in multiplayer should work once again, some of the determinism fixes also help single player, since there were some saving issues that could break mission, such as when reloading a save from a frame on which mission script spawned objects. And that is pretty much it for this update. It isn't much, and I really hope this fixes determinism for good.
You can grab the current release here, or let the updater do the job.
Apart from the main topic, there were some small bugfixes, added emission to construction shader, reduced noise on gas shadows, and new models and textures for Viridian missile destroyer and sensor ship and Xanthous warp gantry, warp beacon and sensor ship. So without further ado, let's move onto main topic - sensors.
Sensors subsystem now provide sensor coverage in a cone in front of a ship. Cone width, maximum distance, and distance at which strength starts to fade is determined by subsystem stats. Strength is also reduced by how much subsystem is damaged, and by how fast the parent ship is moving or turning. You can see the cone in sensor view, and see current strength in UI, along with more info in tooltip.
As you cover enemy objects by sensors, they first become visible on sensors as unknown contact, then all information is revealed at higher coverage. At what sensor strength object is detected and fully revealed is dependent on its stats. Generally large objects are detected sooner than small objects. For example battleships will be much easier to detect than frigates.
If you have multiple sensor ships covering an object, their coverage will not add up if they're looking at that object from the same direction. If you want sensor coverage to add up, your sensor ships need to be spread out. At perpendicular and larger angles, there is no combining penalty. This is there so you have some motivation to not keep 10 sensor ships with your main fleet and call it a day.
Regular objects, such as asteroids, provide sensor cover for ships, based on their distance to them. This just lowers their sensor coverage, so you need extra strength to detect them. Same rules for combining apply as for sensor coverage. Two asteroids on one side of ship will not provide as much cover as one asteroid on each side.
Finally, objects inside gas clouds are harder to detect as well. You can see the effect as required sensor strength rising in the UI, and gas tooltip will also show you its effects on sensors.
At larger sensor coverage, you'll get two additional effects on targets. Both are written in UI with tooltips, and you can also see them on sensor icons.
First one is accuracy improvement. When sensor coverage on object is larger than its detection value, you'll gain accuracy improvement when firing at that object. Stronger coverage will result in larger accuracy improvement. This makes it easier to hit it, especially at larger distances. Which brings us to the other effect.
Second effect is sensor lock. If sensor coverage is greater than a multiplier of detection value of an object, it becomes sensor locked. This comes in pair with a new "long range attack" order. This is same as regular attack order, but has much larger range, and turrets will only fire on target if it is sensor locked. Only limited number of ships can perform this order. If they can, it will show up in UI in the same place as regular attack.
This might be useful when attacking stations without getting in range of its defenses. Currently long-range attack is used in two missions. In one, you are encouraged to use long-range missile destroyer to destroy warp beacon, in second, enemy uses siege cruisers to attack your base from multiple sides. Skirmish or multiplayer AI so far cannot use sensors or long-range attacks, but that will come later.
The game is now also listed on steam, so throw it into your wishlist (or don't, it's your wishlist!). Currently there is no download available from there. I will most likely add current version, or slightly trimmed down version there as a "demo" if it will be possible.
You can grab the current release here
This update is more of a technical one, so there is not much to write about. There are three main changes: option to use AppData/Local for saves and settings, ability to translate everything in game, and modding support.
From now on, default for game will be to write user data to AppData/Local. If you prefer you can continue to use, or download "portable" version if you want to game to write everything into its own folder.
It should now be possible to add translation for everything in game. Until now, the option was bit hidden as only hardcoded texts could be translated. Now everything from game data should be available for translation as well.
Soil now also supports modding. You can create new mod by opening editor.exe and creating new dataset. This creates a new dataset folder in AppData/Local/Nuclear_Fallow/Soil/mods, (or just in soil/mods if using portable version). This is also a place where you place mods that you've downloaded from god knows where. Mods will need to be activated from main menu -> datasets. You can also save active mods as "preset" for easier switching.
You can make almost everything in editor, with the notable exceptions of translations and user interface. These require manually fiddling with text files. If you want to create a mod that e.g. modifies something from base game, it will also require some manual copying of files, as editor so far doesn't support copying from other datasets.
I've added section about modding on website, so in case you want to create mod, start there, then ask questions preferably on discord. I'll update the modding page as needed.
You can grab the current release here
There is a new option during campaign when restarting mission to reset fleet. When used, this will remove all your ships, and replace them with what I had in my own playthrough. This may be useful for when you get stuck on a mission because your starting fleet is too small, is missing some capabilities (e.g. anti-fighter), and you don't have enough time to build up even with extra given resources or reduced enemies. This will only be available when you start a new campaign.
I've added option for selection groups to be "exclusive", so that one object/ship can only be in one selection group at a time. Another addition is selection filters. By pressing buttons in selection panel (or bind hotkeys for it), you can keep only combat ships, ships with destroyed subsystem or hardpoint, or ships with destroyed engines (you can also invert the filter by right-click). There are also new keybindings available for selecting all your ships on screen, or everywhere.
All missions now have some sort of intro camera that tries to help introduce the objectives at least a little bit. These are usually very short, but when they are longer, I've adjusted some of the mission timers. These can be fast-forwarded of course.
There is some improvement in performance, especially in larger maps, sometimes allowing the game to run at 2x speed where it before managed only 1x. This is mostly related to tweaking some physics values so that objects will come to rest and not be reactivated constantly.
This update doesn't have much new content, however there are at least new models for Xanthous cargo ship and depot. There are also some new research options to make your fighters either more durable, or faster to produce. There is also some extra logic that will automatically make orders for cargo ships built from Xanthous miner (unless it has set rally point), so that you don't have to babysit it that much.
There are some minor updates for multiplayer, but there are still desync issues (I identified at least one that happens when objects overlap). These are AI picks a fleet in fleet only battles, unused resources for fleet will be spawned as resource depots, and already started games are also displayed in lobby.
You can grab the current release here