1. FOUNDRY
  2. News

FOUNDRY News

DevBlog #47 | Foundry Fridays: Dev Insights & Construction Industry Preview

Hello everyone!

In today's episode of our FOUNDRY Friday dev blog I am going to talk about how development is going and what we are doing behind the scenes. Since we participated in Steam’s Next Fest back in early October 2023, many of you have been asking about the state of development and how our schedule looks. I do not have a launch date for you at this point, but I want to share some more information with you and provide insight into what we are working on. After that I also have a little sneak peak about another new feature.

[h2]Development Insights[/h2]
In one of my previous status updates I told you that we’re full steam ahead on our Steam Early Access launch. Let’s take a look at what that actually means in detail, so here are our biggest launch milestones:

[h3]Feature Implementation[/h3]
We need to finish the features we want to be part of our launch version. This refers to the core implementation of gameplay mechanics. Examples are the reworked underground mining, long distance transport, assembly lines and so on. If you’re following our dev blogs you might have noticed that the majority of those things are actually already finished or at least far into their development progress. The vast majority of work here has indeed already been finished, what is left are a few smaller mechanics, more polishing and a few adjustments derived from our playtests.

[h3]Gameplay Content[/h3]
Once a feature has been fully implemented it still needs to be added into the game's playable content.

Examples of what this means are:
  • When is it unlocked through research progression and what does it cost?
  • Decide crafting recipe balancing, item & machine properties (stack sizes, power consumption, …) and many other configurable settings.
  • What additional content (items, production chains, new machines, …) is required so that it integrates well?
This is what we are currently working on the most. There is a lot to set up with many more advanced technologies added in Science Pack 4. It is a very creative and fun process, but it requires a lot of thinking, testing and iterating to get things right. Our experience reworking Science Pack 1-3 content proved that it is absolutely worth it. Progression is a key part about keeping a game fun, things shouldn’t go too slow to bore the players, but they also should not go too fast to overwhelm them. In general we are making good progress on this topic, but there is some more work to do. We also want to ensure that there is enough content for our Early Access release.

[h3]Quality Assurance[/h3]
This one is very straight-forward, in short it is about making sure that the game is (almost) bug-free and that it’s sufficiently comfortable to play, in terms of feature polishing. This also includes verifying that the game's balancing is working the way we intended it to. The way we approach this is by playing the game a lot on our own first (to find the biggest issues) and then we ask external testers to do the same and provide feedback. Sometimes everything is fine, and sometimes we need to get back to the drawing board and adjust things. Thanks to the alpha preview community and our Next Fest participation we had great opportunities to get significant amounts of feedback and testing and we are very grateful for that. Again, thank you!

[h3]Auxiliary Features[/h3]
A less visible part of game development is handling all sorts of what I call auxiliary features and implementations. When looking at game dev and how many exciting things it involves, it is easy to overlook some of the non-gameplay related things behind the scenes. I’ll provide a few examples: Localization support to make the game accessible in as many languages as possible, Steam integration to make the most of what Steam offers, and many other similar things. While this is by far the smallest part of game-dev, it does eat up some time and needs to be completed before a launch. Luckily we have most of those things already covered.

[h3]Conclusion and Outlook[/h3]
We’re progressing well and we are positive that our EA launch is not that far away. We still want a bit more time before we get comfortable about sharing a specific date, but rest assured we’re progressing steadily towards it. Over the coming months we’ll share more information on the topic. On top of that we also do have some yet unshared and exciting features to reveal in our future FOUNDRY Fridays. And one of them I am going to reveal right now:

[h2]New Feature Preview: Construction Industry[/h2]
We had this on our Roadmap & Idea Board for a while as “Modular Building Rework”. Manually building our very large modular buildings didn’t feel right and it sometimes was somewhat clunky. Therefore we have reworked the whole system into something new that I call “Construction Industry”. When you build a modular building you simply place the base part and then you can open an external window that lets you configure the building’s construction in a visualized editor. Please note: All following screenshots are work in progress.


For construction to start you will need to build construction and transportation drone ports and supply them with construction material. The process is automated, once everything is in place and supplied you can watch the drones and ships construct your buildings.


One of the reasons we have changed this is because we liked the idea of creating additional gameplay mechanics while making it more convenient to build or modify those large structures. Another reason is that some of those required buildings go well with some other not yet announced features. We believe those systems will provide a great foundation for what we have in mind for the future of FOUNDRY.


Also here is a new modular building, what could it be?


This is all for today. In a future Foundry Friday we’ll cover this feature in more detail and depth!

Until then, stay tuned and have a nice day!
-mrmcd


Follow us on socials:


Stay tuned for more news!

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

DevBlog #46 | Foundry Fridays: Force Of Nature

[h2]Welcome to ‘Foundry Fridays’[/h2]
Hello again! My name is Jason, the art director of Foundry. In this week’s ‘Foundry Fridays’ dev diary, I’m going to talk about how we create natural looking biomes in our fully procedurally generated landscapes.

[h2]First, Let’s Look At The Real World[/h2]
Using the example biome of our forest in Foundry, the first step to creating a natural look in a procedurally generated landscape is to go outside and find yourself a nice little forest to get lost in :) Or at least research online for some pretty forest photography.


As you can see, trees and plants are NOT evenly distributed. Dirt paths and clearings from erosion and other natural factors help break up where foliage grows. Plants also have a tendency to group or clump together based on where and how far the wind carries their seeds.

By understanding these basics of what’s observed in nature, we can make some “rules” in our foliage generation system that simulate the natural growth of vegetation in a forest.

[h2]Let’s Make Some Noise![/h2]
A great way to create paths, clearings and clumps of foliage is to use procedurally generated noise for masking out areas where vegetation spawns.

We then use layers to embed different noises within each noise map. With this system, it’s easy to create rules for what types of vegetation should clump and what types of vegetation should always clump close together. The exact placement, scale and rotation of each flower or grass plant is still random within each layer’s noise mask. Combine that with a randomly generated voxel landscape, world generation is unique every time you spawn a new world.
All the while looking natural.

Here is an illustration that demonstrates how using layers of noise maps works to clump vegetation together.


[h2]Putting It Together, Layer By Layer[/h2]
In the game, we first build up a biome by adding a main terrain type (in this case with the forest we use a grass surface) and break it up with dirt using a noise mask. This creates areas of clearings and paths where foliage will not grow.

We play around with the procedural noise settings until we’re happy with what we’re generating in game.


It’s also worth noting here that we add a very broad overall noise to lighten/darken areas of terrain to help break up the underlying tiling terrain textures when viewed from a distance.

We then add a layer containing trees, large plants and rocks that will only spawn in the grassy textured areas of the landscape voxels.


Within the grassy textured areas, we add another layer with a different noise that creates clumps of grass blades. We can also set a parameter for each vegetation object that determines the likelihood or percentage chance a grass object will spawn per voxel of terrain. Vegetation objects are also randomly rotated, scaled and offset to the voxel they are spawned on to help with more natural clumping.


Then within the grass clumps noise layer, we use a third noise mask to add clumps of flowers.


We can go on and on, but this gives you the basic methodology behind how we generate natural looking, fully procedural worlds!


[h2]Till Next Time![/h2]
I hope you enjoyed this Foundry Friday. As always, if you have any questions, please hit us up on Discord.

Thanks for reading!

DevBlog #45 | Foundry Fridays: Decor, Creative Mode & Trailer Event

Hello everyone!

Today’s blog post covers three topics, first we are sharing more details and pictures about our decorative object system to provide a better understanding of how creative gameplay will work. Then we look at a new feature we call “Creative Mode”. And finally we have some exciting news for our itch.io alpha preview community.

[h2]Decorative Object System[/h2]
Last week we provided a sneak peek into our new decorative object system. It provides various blocks you can use to build more impressive factories with. Today we’re going to share screenshots of the blocks we have created so far:


The elements above should provide you with a wide range of possibilities, and as time goes on we will add more shapes and objects. All of them can be rotated around any axis to provide the utmost freedom.

By default they are white / light gray and they can be colorized through our new paint roller handheld object:


The paint roller comes with multiple preset colors, but also provides the option to create custom colors to apply to those decorative objects. For now you can only colorize the objects above, but we’re looking into giving more objects support for colorization.


You may ask what about getting creative with voxel blocks? Our decorative blocks are designed to be complementary to the voxel system, and we are still working on adding more regular voxel blocks with different textures to allow for more creative gameplay.

[h2]Creative Mode[/h2]
In future when you start a new game, you will be asked if you want to start the game in “Creative Mode”. If you enable it, you will have access to a new menu which allows you to spawn any item you want - regardless if it is already unlocked through research or not. This is for people who want to focus on creative building or just experiment with different mechanics.


Except the ability to spawn items everything is the same, so you can still conduct research and progress through the science tree with research servers. Some of you may already know our debug menu which allowed for a similar experience. The main reason we decided to make this into a new feature is that the debug menu lets you spawn items or do things which easily can break the game. The Creative Mode UI provides a safe and risk free experience with a better user interface for those who love to tinker.

[h2]Next Preview Version + Release Date Trailer Event[/h2]
For everyone who has previously bought our alpha preview version on itch.io we have exciting news: On Monday (15th of January 2024) at 11:00 AM Pacific Time (20:00 CEST) we will release the next preview version, containing the two features above and the majority of the Science Pack 3 content.

We have decided to launch an event until the end of this month: Use the regular or the creative mode to build good looking factories and send us the savegames. We are going to make a trailer that announces the Steam Early Access launch date, and we are going to use your provided savegames for that. More details on the event and how to provide savegames can be found in our Discord once the event starts.

We’re looking forward to your feedback and your factories!

Enjoy your weekend,
-mrmcd


Follow us on socials:


Stay tuned for more news!

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

DevBlog #44 | Foundry Fridays: Year Recap & Decorative Objects

Hello everyone!

I hope you had enjoyable holiday celebrations! The FOUNDRY-Team is on a two week company-wide vacation to recharge our batteries and get ready for the upcoming year. For that reason I’ll keep today's blog a bit shorter, I’m going to start off with a recap of 2023, look ahead into 2024 and finally show off a new feature.

[h3]Recap and Outlook[/h3]
This past year was the most transformative year for our studio. Partnering up with Paradox Interactive provided us with the ability to scale up to a development studio worthy of the name. Development progress is now going faster, our art has improved and in general the quality we can deliver to our community has increased. On top of that we have received a far greater visibility and our community has grown significantly.

Over the past year we were able to revamp the gameplay experience when progressing through FOUNDRY. Additionally we have added and improved countless features. A process that culminated in our Steam Next Fest participation where over a hundred thousand people played our game. It showed us that we’re on a good track and also made us aware of where we need to spend some additional time.

Our focus for the upcoming year will be the long-anticipated Steam Early Access launch - an event we’re looking forward to as much as you do. We initially assumed we would get there a bit sooner, but game development done right takes some time and we felt it was necessary to spend more time on our game to provide the quality and scope we think the game should have for an Early Access launch. We still don’t have a set date for you, but we will let you know as soon as we can. There will also be additional alpha preview versions for our itch audience - more information on that soon in our Discord.

[h3]Decorative Object System Sneak Peek[/h3]
Before we close today's episode of FOUNDRY Fridays I’m going to share a few insights about our newest feature: A decorative object system that allows you to get even more creative about your factories. We always had a couple decorative objects and while you can build anything out of voxels, we wanted to provide you with additional objects to create good looking buildings and structures.


The building above is made out of several smaller objects which are highly customizable and tile well together. They can be rotated around any axis to provide the most possible freedom. Our art director Jason has created a pretty large amount of objects for you and there are almost certainly more to follow. To achieve more creative diversity the system provides an option to select different colors for all of those objects. Please note that the screenshots are work in progress and models and textures are not final.


As this is just a sneak peek, this is all for today. The system will most likely get its own blog post at some point, but I wanted to show you something new for the final blog of 2023.

Happy new year and see you soon,
-mrmcd


Follow us on socials:


Stay tuned for more news!

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

DevBlog #43 | Foundry Fridays: Shader Shenanigans

[h2]What the heck are shaders? [/h2]
I’m glad you asked. Shaders are tiny little programs that run on your computer's GPU, running a massive number of operations in parallel to create many of the wonderful effects you see in modern computer games. We use shaders all over Foundry, and since I spend a lot of time thinking and working on them I wanted to share a bit of the work I’ve been doing on our new unified object shader.

If you want to catch up, in previous Foundry Fridays I talked a bit about our first person rendering solution and touched on our lighting system. Before we delve into our new Foundry shader I think a little background on shaders is in order.

[h2]Vertex Shaders[/h2]
First you need to understand that almost everything you see in a video game is made out of triangles, and each triangle has three points that define it, which we call vertices.


These vertices are often spaced out more than each pixel on your screen. We frequently perform operations that move, animate or color each vertex.


A simple Vertex program will transform the object space position of each vertex into clip position, and perform some operations on the texture mapping. The really cool thing about vertex programs is that they only define the data at each vertex point in a triangle, and then the data is “interpolated” (blended) between each point when you sample the data later at the fragment (pixel) level. Imagine one vertex is blue, the other is green, then the middle point between the two will be teal.

[h2]Fragment Programs[/h2]
The interpolated data from the vertex data is then transferred to a fragment shader (one fragment shader per pixel of the shader being drawn on screen). The fragment program then decides what will be drawn on screen. Here we sample a texture, given a uv coordinate to output a simple texture without any lighting information. If you want lighting or any fancy features from here you need to add a ton more code.



[h2]Surface Shaders[/h2]
Unity has a really nifty feature called surface shaders. These shaders let you create consistent and powerful shaders with relatively little code. That’s because instead of defining the final “output” in a fragment program, you write a surface description in a special surface shader. This includes descriptive things like the color of the object and the reflectivity of the surface. Because we are just describing a surface we are not responsible for how the final pixel looks, and instead another shader operates on this data all at once at the end to create a consistent look with all other surface shaders.



[h2]Multi-Compiled Shaders[/h2]
Shader programs are designed to be as small and efficient as possible, but at the same time we ask them to do so many different things. A solution to this is to make each “feature” you have in your shader optional by compiling two versions- one with the feature and one without. Key shaders often have many different options and for each option, O, we have a total of 2 to the power of O shader variants.



[h2]Default Foundry Shader[/h2]
Ok so now that we have that out of the way, lets talk about the new Foundry shader that we are moving towards using across most buildings, and characters. This shader utilizes surface shading and multi-compiled shader features. The “Default Foundry Shader” has numerous features we are experimenting with that can be mixed and matched and may one day find their way into the game.



[h2]Rim Lighting[/h2]
Rim lighting takes the normal and view direction of the fragment and determines if it’s looking at a glancing angle for highlighting. You are probably most familiar with this effect in Mario games like Galaxy. This can add definition to the edges and silhouette of a building or character. Here I apply an extremely obnoxious amount of rim light to the drop pod to help visualize how the light is applied.



[h2]Wear Mask[/h2]


Factories in Foundry are pretty and clean, but what if they were dirty? Using a tri-planar “noise” texture I can selectively apply smudges on buildings (or entire factories) using the wear mask feature. You could imagine how this might play into a gameplay system in the future, but for right now it’s just an experiment.

An old screenshot test of what a “dirty” base might look like.

[h2]Color Tinting[/h2]
Buildings and characters can have selective tinting at runtime. Areas on the model are masked out to receive tinting and then this shader feature modifies the HSV value of the fragment to a new tint. We are already using this tinting system for the player “skin” selection option from the Next Fest demo, but here you can see that it’s not limited to predefined colors- it could even be animated or applied to buildings.



[h2]Conclusion[/h2]
Shaders allow you to dramatically change the way your game looks and feels, but it’s easy to go overboard and create a performance nightmare. Surface shaders help keep things consistent and shader features let us optimize the amount of code actually run per surface to just what is needed. Foundry’s visuals and shaders are constantly evolving and I'm excited to see where we improve them next!

- Mark Laprairie

Follow us on socials:


Stay tuned for more news!

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