Not only have we refactored the entire network system to allow for batteries and variable flow rates, but the system itself has been heavily optimized to be more efficient in both network traffic (that is sending data from the server to clients) and server processing (that is the amount of calculations done from second to second). This aims to improve both server and client performance when it comes to resource networks.
This has been a long process, and we’ll go into detail below on the extensive changes and reworks we had to do to deliver it, including multiple reworks and a lot of man-hours invested on our end.
We break down the new system, what you can expect, a host of new items as well as balance changes that have come along with it.
Jump in and check it all out below.
Notable Improvements:
- Water networks are now accessible at Tier 3 (find out more below).
- Sprinklers are now Tier 3, cheaper and better. They can now make you or enemies wet, water crop plots and can be triggered manually or by sustaining damage.
- Fixed instances where the Bees swarm would not always be removed upon their death.
- Deep ore veins are now unlimited by design. We fixed a bug a few weeks ago which was making them refresh on each login, meaning they ran out as intended - but after testing and based on your feedback we decided it was a better experience if they never run out.
This week: Batteries & Brownouts
We have added batteries and water storage devices to store these resources for later use, such as in cases where your solar panels aren’t producing energy at night or your waterwheels are clogged. (For the full breakdown of new items see the new items section below.)
Instead of devices shutting off when not receiving enough of a required resource, many will now move into a brownout state. Depending on the device some will shut off. For example, Aquariums will shut off, while crafting benches will brownout.
A brownout is where a device isn’t receiving adequate resources, and therefore performs at a suboptimal level. Examples include lights getting dimmer, crafting benches crafting slower, and dehumidifiers or heaters having a reduced radius of effect. Devices such as water pumps will produce less water if they are not receiving enough electricity.
We have also added a way to examine your networks at a glance so you can see the status of all the connected devices as well as their active states. This can be achieved either by having a Water Pipe Tool or Electricity tool equipped, looking at an object and pressing 'R', or by connecting one of the new items added this week (a Flow Meter) to your networks. Interacting this way will bring up a screen breaking down all the objects connected to that network. Individual elements can be clicked on to see each device in that category and a priority can also be assigned. Prioritizing means being able to define if a device should be prioritized to receive resources first before the rest of the network - this is especially helpful when you have a heavy network load or not enough power to run everything.
This week: One Big Refactor
Systems such as these may seem like a small change on the surface but in reality, something as simple as adding batteries required an entire rework of how devices both connect to networks and communicate with each other. We have gone through three iterations of this system two of which you will never see because they didn’t fit with the game and didn’t work out as well as we had hoped. But that is the part of game development that goes unseen. Sometimes, you want to add something simple to a system that wasn’t designed for it and you have to rewrite the whole thing.
The system was originally designed for all machines to have ‘constant flow rates’ - that is a static supply or demand value that can be turned on and off depending on the machine's state (also off/on). This, in theory, is simple, effective and at that time, was what we thought we needed. The static value represented a ‘flow rate', a rate at which units of energy would transfer to/from the machine into the network itself. However, adding Batteries to this system (which was always an intention) exposed a bunch of issues with the simplicity of the system, even if it worked to a degree. Some of these issues included being unable to vary the flow rates for devices, and the network acting in a very ‘binary fashion’ meant any complex interactions that we felt needed to come alongside batteries (for them to be used in a meaningful way) were not possible. (Examples include storms affecting the output of wind turbines, or scaling a device’s performance based on the amount of electricity available).
This meant going back to the drawing board on the system, and after a few more months of development, we have developed a system that supports variable flow rates. This system allows devices to be dynamically scaled up and down based on their status, and we’ve also developed a system alongside that allows you to control your resource networks, including setting priorities for receiving resources, controlling on/off states and more. In addition to these, you can now inspect your network and see the connected devices at a glance by either using the electricity and water placement tools or a flow meter.
Implementing a dynamic system means various devices can now experience ‘brownout states’, which can cause a heater to have a reduced area of effectiveness, or a crafting bench to perform less efficiently when they are not receiving enough resources from a network. In the past, these devices would have shut off entirely, leaving players having to run around disconnecting machines from the network until the problem was solved. This new system allows you far more control, and far more information to work with.
After many hours of both testing internally and with our experimental branch players, the system is now in a state we believe is ready for release. We may still have some bugs that will show up now that is being released to the general public, but we’ll strive to address these quickly over the next week. We also have plans to improve how you interact with machines on these networks as well as do a balance pass to power-generating devices (Wind turbines we are looking at you).
With a new network, comes a smorgasbord of new items.
Basic Battery Rack (T4)
The entry-level battery option, which stores a moderate amount of electricity but has a low flow rate so isn’t suitable for high-capacity networks.
Advanced Battery Rack (T4)
The premium option, with a much higher storage capacity and flow rate, which is more suitable for networks with a much higher demand.
Water Barrel (T3)
Acts as a storage device for water and can be connected to water networks.
Metal Rain Reservoir (T3)
Collects rainwater, can defrost ice into water, stores more than the Rain Reservoir (T2), and can be connected to water networks to act as a storage device.
Biofuel Water Pump (T3)
A brand new device to allow water networks to be created and used earlier in the tech tree. Can be deployed in streams or lakes to generate water when fueled with biofuel.
Water Borer (T4)
A new device that can be placed on enzyme geysers and when powered, can be used to extract water which can be fed into a water network.
Flow Meter (T4)
A device that can be connected to both water and electrical networks. It has a display that shows the current supply, demand, and available storage at a glance. You can also interact with the device to see a more detailed view and assign priorities to machines.
This week: Balance Adjustments
To pair with reworking the entire power network system, a balance pass was required on existing networks.
We have moved the water pipe tool T3, with the introduction of the biofuel water pump this makes water networks accessible much earlier. Due to this all furnaces at T3 and above can now be connected to water networks for any recipes (existing or future). Due to the water networks being shifted to T3 we have also shifted the water sprinkler and reduced its crafting cost to make it fit as a T3 item.
The biofuel aquarium (T3) has had its level requirement removed so it can be built before level 30 but also now requires a water connection to keep your fish alive.
We have also removed the water network connections from the T2 masonry bench as there are T3 replacements and it helps solidify as T3 as the introduction of enhanced production with water networks.
Next Week: Batteries, Bugs, Balance & Optimization
Next week is going to be dedicated to balancing, optimization and bug fixing for the new Networks we’re introducing this week, along with some other QoL.
Originally posted by author:If you like what we’re doing with Icarus, and want to support our continued development, consider purchasing one of our DLCs for a few dollars, it would mean a lot to us.
https://store.steampowered.com/bundle/36462/Icarus_Architecture_Bundle/
https://store.steampowered.com/bundle/35727/Icarus_Complete_the_Set/
Changelog v2.1.20.120106
New Content
[expand type=details]
- Adding Flow Meter and setting up basic logic
- Update Flow Meter UI
- Resource Network Upgrade branch merged to Trunk
- Added message about not being connected to the network to the resource network inspection view
- Fixing up Blueprints after batteries merge
- Adding functionality to flowmeter item
- Reduced sprinkler steel to 2 per
- Rebalanced Flow Meter recipe, reduced Aluminium costs and added Electronics and Glass. Moved to Fabricator
- Removed Clay and Scoria Brick recipes from Stone Furnace
- Increased Metal Rain Reservoir cost, costing 12 Refined Iron (from 8) and adding 20 Charcoal
- Readding water borer blueprint and fixing deployable enteries for water borer and biofuel pump
- Adjust flow meter durability 250 -> 750
- Increasing Basic and Advanced Battery Storage so it takes each around 10mins to fully charge and 10mins to fully discharge, this can be augmented with multiple batteries and each battery provides different charge/discharge rates
- Adding optional flow text to resource inspection resources
- Fixing issue with resource displays on talents / tooltips, the calculation for ratio was backwards showing incorrect flow rates
- Adding optional water connections to furnaces
- Upping the water borer water generation rate
- Flow meter now shows detailed resource network window when interacted with
- Resource network inspection window is now self contained and can be opened using the normal linked-actor dynamic widget flow
- Re-added resource remaining indicator to Drill, Extractor and Harvester UI
- Removed Water Connection from T2 Masonry Bench
- Removed the Water Connection from the T2 Rain Reservoir as its superseded by the T3 Rain resevior
- Shifted T2 Water Purifier to T3 as it makes more sence at that location due to the network changes
- Modified Size of Ice Borer & Flow Meter (they were too small)
- Fixed Resource network puck collision on flow meter so you can now connect to multiple networks
- Removed Old un-used flow meter static meshes
- Removed helper text for T2 Masonry Bench water connection craft speed (as this is no longer applicable)
- Adding ability to scale network flow via stats so modifiers can scale up or down depending on contextual events
- Lights Intensity is now scaled (on electrical lights) when they are recieveing less power (are in a brown out)
- Added logging if a wire/pipe fails to reconnect to a device on load
- Changed generator loading to use full activation path (should fix things like the Water Pump being stuck on Idle)
- Fixed Inspect Network not working for wiring tools on Clients
- Fixed missing action prompts from water tool
- Updated Deep Ore Veins so they are unlimited
- Lights intensity now has a stat and can be scaled by adding modifiers to lights
- Adding new brownout modifier for lights that reduces its effectiveness
- Removing Optional brownout text from resource network data
- Added dev tool for inspecting resource flows inside devices
Fixed
[expand type=details]
- Fixed bees incorrectly persisting for 5 minutes when killed
- Fixed bees not cleaning up correctly on clients when killed
- Fix a trivial runtime replication warning associated with new deployable camera focus setting
- Shield/offhand item stats are now applied when placed in the offhand
- Added resource remaining indicator to Drill, Extractor and Harvester UI
- Removed remaining value from Drills, Extractors and Harvesters (Deep Ore now unlimited means this is no longer required, others benefit from the mystery)
- Fix selected dropship index is not being set on Outposts after Return To Character Select
- MIASMIC: Fixed solar panels not counting for entire mission area, requiring placement within middle half of the mission area, can now be placed anywhere within mission area
Future Content
[expand type=details]
- Added cheat to spawn exotic infused creatures. Added red variant of infused creature particle system
- Added ability to spawn Exotic Infused creatures. You can now specify an EpicCreature row when adding AI to spawn pool in each D_AISpawnZones
- Tweaked base stats of Wooly Zebra mount, being slightly slower than the horse but a bit tankier and carrying more
- Added missing limestone half pitch icon
- Fixed Limestone halfpitch building assignment
- Added Limestone Building Piece item icons
- Adding mount specific versions of blueback attack and idle for more appropriate volumes
- Adding blueback juvi idle, flinch and death audio and events and data table setups
- Added GUN_Shotgun_CHAC
- Added DEP_Trough_Luxury_Feeder, DEP_Trough_Iron_Feeder and DEP_Trough_Rustic_Feeder
- Adding text and descriptions to a food / water troughs
- Adding Skulmut & Dribbo creature setups and correct naming
- Added proper spawnrate/damage/resistance stats for mini hippo
- Updating mange wolf aggro states and flinch audio to better match creature in game
- Submitting Juvenile Wooly Zebra mesh and textures
- Added HAB diorama for off planet bestiary images
- Added chicken trophy with white, brown, and black materials
- Hooking up bear cub carcass mesh to corpse BP
- Added setup for Mange Wolf Alpha creature including skeletal mesh and carcass assets, bestiary and stats pass needed
- Added setup for Mange Wolf creature including skeletal mesh and carcass assets, bestiary and stats pass needed
- Armoured saddles now point to correct skeletal meshes in D_Saddles
- Adding all events for mange wolf alpha. Adding low end loop layer to add bigness and adjusting spacial for standard mange wolves to be less intense
- Added Trail Beacon and Beacon Tool control hints
- Allowed Trail Beacons to be deployed indoors
- Added Trail Beacon Emissive
- Added upper and lower indicator icons to halfpiece wall item icons
- Final adjustments for blueback and blueback juvi audio sounds
- Added inverted item icons of building halfpieces
- Setting up CHAC workshop shotgun
- Updated Exotic Infused Creature VFX
- Moved files from dev folder to main project
- Adding Icons for Chicken Head, Chicken Trophy, Trail Beacon, 4x new food troughs
- Adding Chicken / Sheep Vestiages & Trophy item setup
- Adding Chicken / Sheep Bestiary Enteries & Adding Space / Workshop Enviroments / Categories
- Adjusting saddle in world dropped meshes to be generic
- Added correct bones mesh for var 2/3 and made materials from preexisting textures for the var 2/3 carcasses
- Adding Armored Saddle Icon
- Updated DEP_Trough_Luxury
- Setting up Limestone Deep Mining Deposit to use the correct textures & highlightable
- Setting up the Limestone Voxels to use the correct textures and assigning the silica phyiscal material for the pickaxe hit effect as the sulfur effect eas too yellow and did not match the effect
- Added DEP_Trough_Powered_Feeder
- Added Limestone Voxel materails and textures
- Added Limestone Deep Ore Vein materials and textures
- Added a comfort system which takes stats of deployables around the bed and applies it to the players well rested buff
- Prevent a GameUserSettings Delegate being bound twice in editor (internal dev only)
- Move Sheltered Bed Tooltip to correct folder
- Reduce the draw distance on some visual fire effects
- Improve performance of forest fires
- Adding audio entries for mange wolf alpha. Adding all current audio events and data table set up. Adjusting and fine tuning events for alpha and standard
- Adding appropriate deploy audio for all water and food troughs
- Added base implementation setup for the Kiwi including character BP and DT setups, second pass coming with corpse and proper weighting setup
- Adding sound for when food is added to any food trough. Adding audio, event and blueprint functionality
- Exotic infused creature crystal particles are now scaled based on creature size.
- Fixed bug where crystal particles weren't being randomly oriented.
- Crystal niagara particle system now persists between NPC and corpse which should reduce visual popping on death
- Skip fallback navmesh checks when transport pod EQS fails and just drop near players
- Adding brambles damage scratch event and blueprint implementation to play audio when damaging player or enemy
- Adding new audio event for coconut tree harvesting audio and also fixing growth stages pointing to cocoa instead of coconut
- Fixed bug where all creatures were spawning with exotic infused effects
- Adding in Kiwi corpse and animation setup, tweaked movespeed to fit the size and duplicated animations for Audio