1. FOUNDRY
  2. News

FOUNDRY News

DevBlog #69 | Foundry Fridays: Merry Christmas

Merry Christmas from the FOUNDRY-Team!

[previewyoutube][/previewyoutube]


Follow us on socials:


Stay tuned for more news!

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

DevBlog #68 | Foundry Fridays: Power Plant Preview

Hello everyone!

A few blog posts ago we promised to show a new modular building on the next FOUNDRY Friday and instead covered a different topic in the following post. Since we received a few “reminders” I wanted to address this grave injustice and hereby finally show the work in progress art of the new power plant!


What you can see is a power plant that is made out of several different modular buildings. I once mentioned that one of the main motivations for modular buildings was that in reality it’s more likely to have a single large machine than hundreds of small ones working in parallel. A power plant made of multiple such buildings is the next logical step. We’re trying to make those objects - especially once combined - feel like real buildings. In fact, some of them are so massive you can enter them.


Its functionality is inspired by real life nuclear power plants, although a bit simplified. We haven’t yet decided if we’ll theme it as a nuclear plant or if we’re going to come up with a more sci-fi-ish design.


Your task is to build those buildings and properly connect each of them. As we are still working on this I won’t go further into detail but instead share screenshots.


Please note that things are subject to change as everything is work in progress.

See you next time,
-mrmcd


Follow us on socials:


Stay tuned for more news!

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

DevBlog #67 | Foundry Fridays: Update 2 Timeline

Hello everyone!

We’re writing today's FOUNDRY Friday to provide news regarding the next big release, referred to as Update 2. As you may know, we originally planned for the 2nd update to arrive at the end of this year. After analyzing player feedback and survey results, we have decided to adjust the timeline and move Update 2 into next year.

The main reason for this decision is because we want FOUNDRY to provide a great and unique gaming experience and we believe to make this work we need an even bigger update. Because of the scope of the changes, breaking it into incremental pieces would have been difficult and slowed development. This means that instead of getting a smaller update at the end of this year, we will instead deliver a much larger update next year, addressing many of the suggestions our active community members shared with us during these months.

[h3]What will Update 2 be about?[/h3]
Many of our players have mentioned that a more meaningful purpose for building a factory would make the game more interesting for them — Update 2 solves this by letting players explore commerce and robot production of all kinds. After all, what’s a factory if you aren’t building something? We’ve been talking about this in several past FOUNDRY Fridays and you can read about that here and here. We believe our work on this feature drastically improves the core of the game.
Alongside that, we will also focus on new features, buildings, recipes and space station content — everything to make the game longer, deeper and more engaging — we will gradually share more details as we work towards Update 2.

And finally we will keep working on game performance, optimization and QoL features so that your factories will run smoothly while looking great.

We would like to express our gratitude to everyone who has been talking to us on Steam, Discord and socials, and participated in our surveys — you are shaping this game with us and your input is what is helping us deliver the best possible version of FOUNDRY.

It is a bit too early to have a specific date, but we’ll be transparent about our progress and what we’re working on in future FOUNDRY Fridays, and we will inform everyone as soon as we have a release window for it.
Join us on the upcoming livestream
To talk about Update 2, the new timeline and to answer your questions we will be hosting a livestream on Wednesday, the 4th of December at 18:00 CET / 9 AM PST. Tune in to share your feedback and get in touch with the developers!

See you next time,
-Foundry Team

Follow us on socials:


Stay tuned for more news!

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

DevBlog #66 | Foundry Fridays: Streaming Proxies

Hi there. Today I want to talk a little bit about the work that we're doing to try and improve streaming performance in Foundry.

[h2]Current System[/h2]
Similar to many other Unity games, Foundry is built in Unity and most entities in our game are represented by GameObjects. Some of the performance challenges that come with using game objects include:
- You can only create/destroy GameObjects on the main thread.
- You can only enable/disable GameObjects on the main thread.
- GameObjects and their components are dynamically allocated meaning that their memory is all over the place and not cache friendly.
- GameObjects use a lot of memory.

[h2]Option A: Object Pooling[/h2]
One of the solutions many games use is object pooling. This is when you preallocate pools of gameobjects and just enable/disable them as they come into streaming range. We actually use this already for some portions of the buildings but there are several challenges with using this strategy for all the objects in the game:
- It's difficult to choose how many of each item to have pooled. If we want perfect pooling, we would need to have enough gameobjects in the object pools to handle the player walking in any arbitrary direction and we only have a little bit of time on the main thread available to grow those pools when necessary.
- GameObjects use a lot of memory. If we needed to have a significant amount of objects pooled, the memory costs would grow quite significantly.
- It is still quite expensive to enable/disable objects, especially ones with deeper hierarchies where unity has to iterate the hierarchy and enable/disable all the components.
- Implementing game object pooling is fairly simple to do but converting all the game code to work with object pooling can be quite difficult and lead to very subtle bugs, not just for all the existing code, but for any code that anyone on the team writes in the future. It effectively would add a 'development tax' to all current and future development on the project.

[h2]Option B: Unity ECS[/h2]
Another solution games will use is Unity's ECS system. Though using Unity ECS would solve many of our issues, the main issue with the unity ecs system is that Foundry was in development for many years before the 1.0 release of Unity ECS and switching the entire game would require a significant rewrite of the entire game. It would be possible to use it for only certain systems but this would mean we would have two entity systems which would add significant complexity to the game. So instead of rewriting everything to use Unity ECS, we're working on incorporating some of the ideas behind it into our own code.

[h2]Option C: Streaming Proxies[/h2]
The solution we are currently prototyping is to take parts of our own code and make them more data oriented and have it stream in separately from the unity GameObjects. These objects that stream in separately are called streaming proxies. These proxies are data oriented and stream in exceptionally fast. The idea is that most of the world you see will be drawn using streaming proxies and game objects will stream in close to the player:




[h2]Initial Prototype[/h2]
As a prototype, we've moved over the rendering of everything that uses our compute rendering system over to the streaming proxy system. Here's a video of how fast streaming was before:

[previewyoutube][/previewyoutube]

And here's an example using streaming proxies:

[previewyoutube][/previewyoutube]

In the second video you can see that all the streaming proxies stream in exceptionally quick but we're not yet loading collision for any of those objects which means you can't interact with them at all yet. That'll be solved by a mix of streaming in gameobjects near the player and moving more systems over to the streaming proxies such as collision/effects/sounds/etc.

[h2]What's Next[/h2]
This whole system is a a work in progress and the final solution might end up being a mix of gameobjects/pooling/streaming proxies. Next steps are to stream in the gameobjects near the player but also to move some of the collision handling over to the proxy system. That being said, we wanted to give you guys a look into some of the work in progress that's being done to solve the streaming issues in large bases.

Thanks for listening!
-Cheerio

If you haven't read our previous FOUNDRY Fridays and prefer a video format, feel free to check out our Monthly Status Update video on YouTube:
[previewyoutube][/previewyoutube]

Follow us on socials:


Stay tuned for more news!

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

DevBlog #65 | Foundry Fridays: Two Buckets

Greetings Founders!

We have been pretty heads down working on some major changes, so today's Foundry Friday is a bit of a grab bag of topics. We are going to go over the survey results, show off the orbital uplink tool, show some optimization progress of modular buildings and tease a new mega structure.

[h2]Survey Results[/h2]
Last Foundry Friday we shared a survey with our community to better understand where we should focus our efforts on improving Foundry, and we received TONS of responses and were able to draw some valuable insights.



Although there was a great deal overlap in respondents' opinions, the feedback fell into two broad buckets. Our retained players focus on quality-of-life improvements, like refining resource gathering and adding smoother gameplay tweaks, reflecting how invested they are in the experience. Meanwhile, players who’ve taken a break often cited the need for more content, a clearer endgame, and blueprints to bring them back. This mix of perspectives gives us a solid direction: making iterative improvements to keep regular players engaged while expanding content and adding features to draw back those who’ve stepped away. This survey affirmed our need to add more content and a thematic goal- but also reminds us we also need to expand the existing core pillars of the game.

Of note, the pressure mechanic was not seen as a priority. I believe that’s because it’s something that has conflicts with the general vibe of the game- so it’s interesting to see the community respond with a similar opinion. Also… everyone wants trains.

[h2]Orbital Uplink Tool[/h2]
In Foundry Friday #62 we shared information about the Orbital Laser. This late(ish) Space Station upgrade helps players terraform large chunks of terrain with ease. And now commanding the space station with the new Orbital Uplink Tool design is a breeze. This craftable handheld has a right-click modal menu that lets you switch between different Space Station features (like the Orbital Laser).


[h2]Optimizing Modular Buildings[/h2]
Foundry is receiving a ton of optimizations, but there is still much left to do in order to allow absolutely massive factories smoothly on a wide range of hardware. This week we tackled optimizing Modular Buildings, the mid to late game super structures that are built in modules by construction ships and drones. These buildings presented a unique challenge in that they don’t utilize our existing systems for rendering.
By manually processing the drawing of these buildings (and their related handrails, scaffolding and modules) we were able to improve performance on this “blast furnace” test scene from a poultry 27fps to a much more acceptable 103fps.

Modular buildings can contain thousands of pieces like hand railings and scaffolding.

Modular buildings now have the same batching optimizations as regular buildings

Foundry is the most fun when you try to scale, and because of this it’s important that we have each element run as fast as possible. We have done a ton of other rendering and streaming optimizations that we haven’t talked about yet, and our development builds are running smoother than ever. The next update should be really solid for those who like to build "big".

[h2]Mega Modular Buildings[/h2]
Now that modular buildings have received a large optimization- we might as well tease where this feature is going. Even larger, even more modular mega structures! Next Foundry Friday we will reveal one of the most mega modular buildings yet. In fact, it’s so large you can actually go inside and to get it to work requires numerous new modular buildings. This building is so iconic that it was hard to get a work-in-progress screenshot where you wouldn't immediately guess what it is. So you get this early rendering of one of the components instead:

What could it be?

Well, that's it for this week. We are hard at work on a ton of things behind the scenes and we are eager to share more in the coming posts.

Cheers
-markl

Follow us on socials:


Stay tuned for more news!

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