1. FOUNDRY
  2. News

FOUNDRY News

DevBlog #92 | Foundry Fridays: Worms and Caves

Hello everyone!

We never stop trying to make the most out of the voxel-based world of Foundry. With the introduction of Lava Caves we already brought some more gameplay content underground. But there is still a lot of untouched terrain between the surface and them. As mentioned in an earlier Foundry Friday we are currently experimenting with adding some exploration mechanics. Combining these two thoughts there seems to be a logical consequence: Caves!

Cave Entrance

[h3]Worms don’t just like apples[/h3]
All of the world generation in Foundry is noise-based and thus the cave generation needs to be as well. For this we use so-called “pseudorandom noises” that appear statistically random, but are produced by a deterministic process. So passing in a value into the noise function will always lead to the same output value. Otherwise playing Foundry wouldn’t be much fun when the world changes every time you load your game.

At first glance a noise (visualized above) doesn't seem special, but it can be a very powerful tool for procedural generation.

Our caves are created with the help of “Perlin Worms”, a method that is based on using a Perlin Noise, which is a pseudorandom noise as mentioned above. Using these can give the caves some sort of slithering effect, making you think a worm just passed through and ate away the terrain. If you are interested in more mathematical details about Perlin Worms, here is a link to a site that i found helpful and well explained: Link

Let’s look at a video! But keep in mind that everything is still WIP. You might spot some new rarities in these images. Maybe our robot can find some use for them?

[previewyoutube][/previewyoutube]
[h3]Inventory UI Experiments [/h3]
Meanwhile others in our team have been experimenting with a new inventory and crafting frame. Some of the upcoming features require a bit of a rework for the inventory frame itself, and therefore we have decided to try overhaul the whole thing a bit. User experience about the crafting frame being tied to the inventory frame was always a bit awkward, so we're trying to make it into a single frame and increase the quality as a whole. Here's a first image:


Note that this is still work in progress! Also the additional headers inside the crafting frame can be toggled with the button on the top right above, so you can have it as compact as it previously was. But this should help new players finding their preferred crafting buttons faster.


We're sharing this with you early so that we can have your feedback influence the process, please let us know what you think!


And that's it for today!
-lxi

Follow us on socials:


Stay tuned for more news!

https://store.steampowered.com/app/983870/FOUNDRY/

DevBlog #91 | Foundry Fridays: Save File Size Optimizations

Greetings Founders!

On today’s FOUNDRY Friday I wanted to share some of the behind-the-scenes work that’s being done to support the announced features for update 3.0 that we’ve covered in Foundry Friday #89. When adding trains for example, we also wanted players to utilize more of the infinite world that Foundry has to offer.

I did an initial analysis to see what issues crop up when playing in a much larger world with trains, and most things thankfully seem to hold up well, with the exception of some visual bugs that we’ll have to mitigate.

But a larger problem is that due to all the world exploration, the save file that I used for testing had already surpassed 100mb. This save file growth needs to be addressed with some significant optimizations. Generally the saves that we receive from players reporting their feedback (thank you!) range from 10mb to 50mb depending on how far they’ve gotten in the game. Of course there’s some more dedicated fans with even larger saves, but those will benefit even more from these save file optimizations. The reason why a smaller save file is beneficial is that it makes it way quicker when a friend joins your world, syncing your saves with Steam Cloud and it also reduces the time it takes to (auto-)save your game.

With some profiling, in the save files that are shared (but especially in my save file) a lot of it is just the terrain data from the chunks that was travelled through to get to their destination, with a singular belt or train (soon™!) connecting those points. But every chunk that is viewed at some point, unmodified or not, is still stored in the save file. This causes roughly half of your save file to consist of terrain data.



To tackle this, we tried a few options, starting with the easier ones:
  • Increasing the level of compression used (Foundry internally uses Zstandard to compress the 3D chunk data with great results) but this didn’t really net any significant gains and came with a large speed penalty.
  • Compressing multiple chunks in groups. Due to a big overlap and continuity between the chunks in a group, this seemed like a great idea, but it unfortunately only netted a 15% improvement for the scene I tested.
  • Don’t store the chunks that aren’t modified, and simply regenerate them as needed. This allows us to save (pun not intended) a lot of data, but it comes with the big downside of having to make sure that
  • all* places in Foundry’s code make sure to tell the saving system that a chunk is modified if there’s anything that a player does there.
Ultimately we decided on going for the last option, since the first two options didn’t seem to combat the increased train-driven save file size quite as well as the third option was likely able to achieve. To prevent creating too many headaches for our later selves, I decided to only implement the regeneration for the terrain for now, since it's the largest part of all the chunk data. And with that, it came to a solid 30% reduction in save file sizes.



As an additional security measure to make sure that the game never deletes anything important, I’ve made it so that it’ll always fully store any of the chunks near your factory, and that it also won't guess which chunks might have been modified in any of your existing saves.
Here’s a visualization of a base surrounded by a large number of unmodified chunks that will now no longer have their terrain data saved.


We’ll wait until we get positive feedback from our playtesters there’s any unforeseen issues with it, but so far it has shown great results. There’s quite a lot more stored inside the chunk data that is able to be regenerated, so it's definitely possible to be reduced even further.

- Milan



Follow us on socials:


Stay tuned for more news!

https://store.steampowered.com/app/983870/FOUNDRY/

Community Challenge: Tiny Factory!

Hello fellow factory-optimizers.

Today, we bring you a challenge. Are you robot enough to accept it?

A little birdie told me you build BIG and MASSIVE maybe even HUGE factories. Terraforming the environment to your needs & only caring about the optimal way to generate an astonishing amount of output. Well... Here's an idea...

What if... You tried to make it as TINY as possible? It's something we've always wondered. Can you make a small - but effective factory?

^ Example of how small we want it to feel

Here's the rules:

  • Create the smallest factory you can that automatically builds & sells robots.
  • Maximum number of each type of machine/building cannot exceed 8. (excluding storage, belts & loaders. But you can have MORE than 8 buildings. Just not more than 8 of ANY SPECIFIC building)
  • Be creative! Build anywhere you want on the map!
  • You're allowed to play in any gamemode, however make sure to be resourceful about materials.
  • No more than 1 ship per resource going to or coming from the space station.
  • Ships that transfer from an outpost to station to base are NOT allowed. (ie: all resources MUST be belted in)
    [
  • } NO MODS
  • Factory must be built on the
  • latest* version of FOUNDRY.
  • Screenshots of the factory is required, videos are even better. Post on this steam thread OR in the discord on the appropriate channel.
  • Share your save files so everyone can validate it's working.


Now, there will be a prize, however, we're not revealing that yet. Don't expect anything too big. In the end, it's all just for fun anyway.

Are you up to the challenge?
If not... then maybe just scroll and see what everyone else are posting!

Follow us on socials:


Stay tuned for more news!

https://store.steampowered.com/app/983870/FOUNDRY/

DevBlog #90 | Foundry Fridays: Achievements

Hello everyone!

For today's FOUNDRY Friday we’re going to look at something we’ve been quietly working on: Achievements. They were always on our roadmap towards 1.0 and recently they fit in nicely with our development schedule so we decided to start implementing them. Rest assured we didn’t divert resources from our other features like Trains or Nuclear. Given there were also quite a few messages requesting them it seemed like the right time.

[h3]How Achievements Work[/h3]
Achievements in FOUNDRY are tracked per savegame and there will be an achievement window where you can see all achievements and how your progress is going.

Of course each Achievement will also exist as Steam Achievement, and whenever you unlock any achievement in your game, it will unlock the respective Steam Achievement.


[h3]Achievement Types[/h3]
We started by implementing the obvious achievement types related to factory progression:
  • Unlocking Researches
  • Space Station Upgrades
  • Lifetime Sales Profit
  • Completing C3-BB Quests
  • Building certain amounts of buildings
  • Produce a specific amount of items of various types
And on top of that we’re looking at custom achievements where you need to do specific things like interacting with critters. We already have implemented a few and we’re currently looking into adding more of those, which brings us to the next paragraph.

[h3]What kind of achievements would you enjoy?[/h3]
We would love to hear your thoughts about what kind of achievements you would like to see in FOUNDRY. Either let us know in the Steam comments below or on our Discord, our team is going to read all your messages. It would also be interesting to hear if there are any achievement types you would actually dislike. Same about the amount of achievements, can there be too many? What would be a number you felt comfortable navigating? As always we’re very grateful for any type of feedback!

Thank you for reading and see you next time,
-mrmcd



Follow us on socials:


Stay tuned for more news!

https://store.steampowered.com/app/983870/FOUNDRY/

DevBlog #89 | Foundry Fridays: Road to Update 3

Hello everyone!

Welcome back to another FOUNDRY Friday episode, today we’re looking at what’s next for FOUNDRY after the recently released Terraforming themed Update 2.2.

[h3]The road to Update 3.0[/h3]
After delivering two smaller updates, our next update is going to be a bigger one again. The central feature will be the addition of trains, but we want to expand the game in other ways as well. We’re still working on finalizing the full scope of the update, but currently we’re looking at three additional improvements:
  • Nuclear Power: A complex power plant which is made out of multiple modular buildings. Including new related resources and items. The goal is to add an additional endgame power source and lay the foundation for more energy-intensive content.
  • Content Expansion: More Science Pack 5 content to extend the maximum playtime before you reach the end of the game. This content would link into the new systems.
  • Exploration Mechanics: We’d like to add a few mechanics that provide a purpose to explore the world. As of now we’re thinking about various collectibles, especially tied to our voxel system (cave exploration), which eventually can be used to further improve your factory.
Don’t take all those features as confirmed yet, but as always I wanted to share them early so that we can get some feedback. I won’t go further into detail for today, but it would still be interesting to hear your gut feelings on how interesting or important each of those things sounds. Or is there anything else you believe the game urgently needs?



[h3]Public Train Test Branch[/h3]
We are planning to launch a public test branch where you can try out trains in the very near future. It will feature an early preview version of the train system and it is purely intended to gather feedback while we’re still working on finalizing the systems. This will be your chance to help push the implementation of the beloved train system in the “right” direction.

Please be aware, and I really need to emphasize this, that it’s unfinished, unpolished and there won’t be any real content supporting it. It is meant for us to get feedback and find issues before launching it as part of the real update 3.

We don’t have a specific date for this yet, but we will share more information soon.

See you soon,
-mrmcd



Follow us on socials:


Stay tuned for more news!

https://store.steampowered.com/app/983870/FOUNDRY/