The PACK Gaming

Alpha 61 Update - June 2, 2023

NEW: Water System!

Players can now craft Water Tanks to store and distribute water within their bases. Water tanks are crafted from the BCU and must be placed within a BCU radius in order to provide power for the pumps.
Water Tank, Pumps, and Irrigation

Water Tank and Pumps:

Players can now craft Water Tanks to store and distribute water within their bases. Water tanks are crafted from the BCU and must be placed within a BCU radius in order to provide power for the pumps.

Inflow and Outflow:

The Water Tank has two connections located at the bottom of the unit. One for water inflow and one for outflow. Your water pipe networks must connect to these in order to move water in and out of the tank.
The Water Tank HUD will show indicators for whether pipes are connected to it's inflow and outflow, and whether the connected inflow pipes reach a water source.


Once the inflow connector is connected to a water source, the inflow pump can be toggled within the Water Tank HUD. The pump will draw water in and fill the tank, while consuming a small amount of power while it is operational. While connected base items are consuming water from the tank, the tank outflow pump will be activated, which consumes power. The more items that are consuming water from the tank, the more power the pump will use.

Irrigation Parts Crafting:

The Water Tank has it's own crafting menu where players can craft the various parts required to install irrigation systems.

Water Intake Pipe:

Crafted from the Water Tank crafting menu, Intake Pipes need to be placed within a water source (river or lake) so that water can be pumped from the source. Pipes can then be attached and eventually connected to the inflow connection of a Water Tank.

Water Pipes:

Water Pipes can be crafting within the Water Tank crafting menu. They can only be placed connecting to an intake, a water tank connection or other water pipes.
Pipes have a maximum length which is enforced while placing the pipe. When connecting pipes, you need to connect to the valve handle on either end of the connecting pipe. When moving a pipe in the network, you can either move the head or tail of the pipe. The connected pipes will move with the moving pipe, allowing you to neatly adjust pipe networks with your base.
You can visibly see when a pipe is connected to a water source based on the color of the valve handle on the head and tail of the pipe (blue/red). Pipes will also glow blue/red when looking closely at them to indicate water flow. So it will be obvious when a disconnection has occurred in your pipe networks.


Each tank comes with a faucet to directly access the water without the need for pumps.
Within the Water Tank Hud, there is a tab for accessing the faucet. There are options for filling one or all canteens, as well as washing hands. Water from the tank is not treated, so still requires boiling prior to drinking (water treatment is a possibility for future upgrades).

Water Sprinklers:

Plant Bed Sprinklers can now be crafted within the Water Tank crafting menu. They can be attached to plant beds via the plant bed upgrade menu. Once upgraded, a "sprinkler" tab will appear in the plant bed Hud.
Once attached (upgraded), the sprinkler has a water intake connection, which water pipes can be attached to. The pipes need to be connected to the outflow of a water tank. So long as the connected tank has water available, the sprinklers can be activated and will slowly hydrate the plant bed. While sprinkling, the connected water tank outflow pump will be running, consuming a small amount of power. The sprinklers will automatically shut-off once the bed is full.

Sprinkler Automation:

Players can setup their sprinkler systems to run automatically. By enabling the "automation" checkbox within the plant bed sprinkler Hud, the sprinklers will automatically turn on once the plant bed water level drops below 40%. However, having automation enabled will consume 10% more power for that plant bed at the water tank pump. The sprinkler Hud also shows an indicator for whether the plant bed is currently connected to a pipe network that has water available.

NEW: Crafting Items!

Metal Pipes
Metals pipes are a new item that can be crafted at the work bench and used for various crafting recipes.

NEW: Player Requested Changes!

Player Requested Changes!

Base Resource Monitor:

As promised for a long time, players can now monitor the real-time resource usage within their base. This is useful for isolating what may be causing a power outage, viewing total solar/wind production, etc. Within the BCU hud, there is a new "Base Resource Stats" tab. This lists all base items and their power/mass usage. The list can be sorted in ascending/descending order based on power or mass usage.

Crafting Using Storage:

A pretty big change to how players can now craft. While accessing any storage item (storage chests/loot crates/player kits/base items, etc) the crafting menu will now use items from the storage (in addition to the player inventory) to craft items. This means players are less required to keep moving items back and forth in order to craft.

Weapon Recoil:

Weapons always felt a bit flat due to just a simple head-bob while firing. I've implemented new recoil and subtle camera animations for weapon firing, based on their power and kick. I think it feels way better. I think in the future I also want to add weapon hover while aiming. With stocks and upgrades to stabilize the aim, as well as crouching impacting weapon stability. Stay tuned.

Take-All Quick Action:

Requested countless times from players. By holding the "R" key (or whatever you have bound for "Reload Weapon"), you can now "Take All" from a loot crate rather than having to mouseover to the button in the Hud. The action takes half a second while holding the button. You will see a bar charge-up over the button. Releasing the key after the quick action will automatically close the inventory.

Base and Dropped-kit HUD Markers Distance (and countdown timer):

As per player requests, I've added a distance reading to the Hud markers for BCUs and dropped-kits, which should make it easier to identify/differentiate between them, and judge travel-time. The distance is measured in meters. I've also added a countdown timer for dropped-kits, so players will know exactly how long they have to reach it. The reading will show as blue, then as orange once the timer slips below 5 minutes, then red as it dips below 1 minute.

Fill All Canteens Quick Action:

It is now possible to fill all canteens within your inventory through the quick-menu on any one canteen. This should be a nice QOL improvement when trying to manage lots of canteens at a time.

Stackable Building Tiles

Finally, building-piece tiles can now stack! This has been requested for a long time and should make life a lot easier managing inventory space while building.

.44 Caliber Incendiary Rounds:

The Revolver now has a new ammo type found within the default player crafting menu. The incendiary rounds are the same price as the default, just with the addition of phosphorous. They will deal the same initial damage, but will set their target on fire dealing extra damage over time.

Weapon Ammo Type Display:

Previously the selected ammo type for weapons would only briefly show when switching types, or while the inventory was open, making it confusing to tell which ammo type you were using. Now the equipped weapon will always show it's current ammo type (all other toolbelt weapons will still show their ammo type while viewing the inventory).

NEW: Steam Achievements!

Steam Achievements:
@Coldgames has finally implemented Steam achievements after many requests from players. Achievements are independent of any particular profile, so you can work to complete them across multiple profiles. They are also independent from the profile stats currently tracking and viewable in-game while playing any profile. SEE ALL STEAM ACHIEVENTS HERE!

In-Game Achievement Tracker:

While viewing your inventory, a button will now show on the far right, showing the current progress of the in-game Steam achievements.
Clicking on the button will open the Steam overlay to show all achievements and the current progress against each one.

NEW: New Skins Available in the Steam Store!

New Skins Available

Double Barrel Shotgun Predator Skin:

The new double shotgun predator skin be viewed here. Thank you to everyone for supporting the game through the cosmetic store. 🙏

Lever Action Rifle Predator Skin:

Can be viewed in the item store.

Revolver Predator Skin:

Can be viewed in the item store.

Performance Updates!

*Please skip if not interested in technical details.
Code Execution Job Queue
Easily the largest task I worked on this sprint, although difficult to hype-up due to being a backend feature. The Subsistence codebase has countless (game related) micro-systems running code during gameplay. Usually performing jobs based on timers, events, or every frame. Some tasks are small and lightweight, and others can be much larger. As the game has grown in size and complexity over the years, smoothly handling job execution has become challenging from a development standpoint. Systems perform tasks (run code) whenever needed, sometimes running larger tasks at the same time as others, causing "spiky" execution. I'd always mitigated this by staggering larger jobs over several frames, but this needed a proper solution. The new system calculating water-flow through water pipe networks was the final straw to convince me to implement a scalable fix. This is because each time a water pipe is added/moved/removed, the flow of water through the pipes needs recalculating. And as there is no limit to the scale of pipe networks players can build, this job was yet another (potentially) large job that could trigger.. whenever. Solution: I've implemented a job queue manager for organizing and handling various jobs (code execution) during gameplay. Systems can now asynchronously request to run a job, the manager will add the request to a queue, order them based on various priorities, and then process the queue one by one (or in batches), telling the requestor/s when it is their time. This has dramatically simplified development, brought order to chaos, and will allow me to continue scaling the game while maintaining performance.
World Initialization:
There has always been a lot of world initialization code running in the early stage of the game. This is doing things like initializing custom LOD handling, collision, world-decorations, foliage culling, AI spawns, etc. Previously I would allows this to run after entering the game world, which would take around 20 seconds. Players may have noticed awkward popping-in and poor performance during this time as the world configured itself. It always bothered me. Since I now have a stable job queue, I am throwing all this work to be processed immediately, before the player is dropped in the world. It runs way faster and as I don't have to run it while rendering and means the world is fully initialized the moment the player is given control. You will just see a very brief "Initializing World" screen before entering the world.