1. shapez 2
  2. News

shapez 2 News

Devlog 004 - Map & Space Platforms

Hey guys!

In this devlog I wanted to share some insights how the map in shapez 2 works, which is mainly based around the concept of building space stations platforms.

Here's a quick screenshot of how the islands look like, although it is already outdated:



However, to understand why the concept ended up the way it is, we need to look at how shapez 2 evolved:

IMPORTANT NOTICE: This devlog includes a lot of old screenshots, alpha footage and placeholders. The final game will look very different!


[h2]How it started[/h2]

Back in July 2022 when I started prototyping shapez 2, this is how it looked:



As you might notice immediately - I actually started with a hexagonal grid. This originated from a survey on the shapez 1 discord, and was basically my starting idea to distinguish shapez 2 from shapez 1:



It quickly evolved, and starting from the beginning I already wanted all machines to be open:



However, once I actually started to implement basic belt placement, I ran into the first issues already.



Placing straight belts on a hexagonal grid is possible, but only in 3 directions. This leads to weird looking sharp-turn belts. Disabling sharp turns didn't make it any better though, since then connecting machines got really annoying, and you still can't have straight belts in all directions:



Additionally, symmetry and tilable designs are possible, but work very differently in a hexagonal grid:



Which is, after long consideration, I decided to drop the hexagonal grid, in favour of allowing to build multidimensional factories (which we will cover in another devlog!).

[h2]Infinite map?[/h2]

I definitely wanted to have an infinite, procedurally generated map for shapez 2. However, to make it look more interesting than in shapez 1, initially I wanted to introduce a concept of "Biomes". Biomes could be areas that contain exclusively red color patches for example. This would also incentivize the new mass transport features.

Here is a first overview how it looked with those different biomes:



The result was not pleasing, but because I wanted to keep shapez 2 abstract, I couldn't just introduce styles like "Forest " or "Water" which would have made it more interesting.

Thus we came up with the "Islands" concept (they are still called like this internally), which evolved around the idea of, while still having infinite space, having to build the playable area yourself:



The idea was that you could craft islands by using shapes:



Basically better islands would cost more and/or better shapes, and they could also have shape and color resources.

After a few iterations, we simplified the crafting dialog:



However, while playtesting, we found that the crafting mechanic wasn't really interesting. The main issue was that the organic factor was entirely missing, thus every playthrough would be the same. And I didn't want to introduce randomness into the crafting, since that would not fit the concept of shapez.

To fix this, we decided the resources should instead spawn procedurally on the map again, and to mine them there will be special miner "islands":



Here is an early screenshot of the map, although the resource distribution is temporary and will change!



I hope you can already see at which scale you'll be able to build within shapez 2!

[h2]Modular Designs[/h2]

Another feature of the islands was allowing to build modular - the idea was that in the lategame, you no longer have to build individual islands but instead you have an island that contains only cutters or stackers and you can rearrange them - building on a much, much larger scale. The idea was basically that these modules are like a building from shapez 1, but instead it was built and designed by yourself!

(If you want to find out more about building modular, Giantwaffle showed it during his exclusive stream of the alpha)

This is a first draft how I wanted it to work:



[h2]Art Style Change[/h2]

During the transition, we also introduced an art style change, which is a topic for another devlog!
However, because we changed to an "Abstract Space" style, the islands now became space station platforms:



[h2]Island Layouts[/h2]

I wanted to have different layouts of islands which allow for interesting combinations, while not being too simple. Inspired by the idea of "Pentominos", every island consists out of chunks which are up to 16x16 tiles large.


(Image source)

The layouts for the islands are not determined yet, but we will try to make sure that every layout has a use and it doesn't get too much of a puzzle (i.e. there should be some puzzle aspect - but it could also get very frustrating if the layouts don't fit together nicely).

[h2]Inter-Island Transport[/h2]

Additionally to the mass transport (trains - covered in another devlog) we of course also need local transport between islands.

To make the islands actually meaningful, it was clear that we can not just allow transport on all sides of the island. Otherwise, there would be no actual difference to an infinite map.

Thus, we came up with the idea of "notches", only allowing to transport shapes at certain locations of an island:



The concept is very simple: There is a building (we call it "belt port" internally) that allows you to catapult shapes over a certain range. Because the distance between two islands is higher than the maximum range of the belt port, transport is not possible. But because the "notch" has 4 tiles that are closer to the other island, these are the places where you can exchange shapes between islands.

A notch allows for 4 of these buildings per layer - so once having unlocked 3 layers, that means effective 12 belts throughput (throughput of the belt ports is identical to the belts):



Notches are displaced, so that if both islands have a notch at this location, you actually get twice the throughput:



As you can see, they are also bi-directional (which is actually something we are considering to change - let us know what you think!)


[h2]Island costs[/h2]

We spent a long time thinking about the costs of the islands. Since we removed the crafting mechanic, at this point the islands were entirely free to place.

The first idea was to make them still cost a certain shape. However, then we figured it makes a lot more sense to instead keep them free, because it would fit the concept of shapez best - buildings are free as well, after all.

This incentivices playing around with the islands, rearranging them, deleting them without having any penalty attached to it.

To still reward building optimized factories, we then introduced a "limit" to the maximum chunks you can place, which can be increased via research. Every island consists of multiple chunks (as shown above), so larger islands are more "expensive". But because it is just a limit and not a cost, you can just play around find out what works best for you!



As you can see, the cost if the island (4 chunks) is shown when placing it, as well as the current usage and the limit.

Of course, the limit can be increased via research, and we actually want to make it an infinite research so your factory can grow forever!

[h2]Further topics[/h2]

Writing this devlog has actually been incredibly difficult, because there are so many more topics I could dive into, but even writing this together already took quite a while! (Which is why I had to delay it by one day).

However, I wanted to already give you an insight on what topics you can expect from further devlogs:

- Fluids & Fluid packaging
- Multidimensional factories
- Crystals
- Trains
- Research Tree
- New blueprint system & currency
- Art style change
- ... and so much more!

If this was an interesting read to you, please let me know in the comments so I know the devlogs are appreciated!

And if you want to stay informed about the upcoming devlogs, giveaways and more, please follow the Shapez 2 store page:

[h2]Follow to get updates[/h2]

PS: In order to get updates, be sure to wishlist AND follow Shapez 2, since just wishlisting doesn't give you any notifications on new events & updates!

https://store.steampowered.com/app/2162800/shapez_2/


Have a nice remaining weekend!

Tobias



Devlog 003 - New Stacking Mechanics

Hey everyone!

As promised in the last devlog, I wanted to cover the changes and new mechanics regarding item stacking in Shapez 2!

However, I wanted to also quickly mention that we have a new logo for Shapez 2:

[h2]New Logo[/h2]

https://store.steampowered.com/app/2162800/shapez_2/

Let us know in the comments if you like it!

Devlog - Stacking
Please note: This devlog might contain spoilers regarding shapez 1, if you haven't completed level 20 yet.


[h2]Recap from shapez 1 - The old system[/h2]

In shapez 1, the stacking basically works like this:

If you combine two shapes, let's say, two halves, it will combine them on a single layer:



However, if you try to stack shapes that have overlapping parts, the right shape will stack "on top" of the other shape, effectively getting smaller:



The reason for the upper shape is getting smaller is making sure you can still read both layers.

It can get more complex quickly though - what if the shapes only partially overlap?
In this case, you will produce an overhang:



If you now try to cut this overhang, the right side "falls down" and gets bigger again:



Here for example is how you produce a shape that has a "floating" piece which is not connected to anything else (like in the logo):



Using this mechanic is required to produce the logo (level 20) shape - and it can be very unintuitive.
In fact, it is so unintuitive that we got hundreds of bug reports about "broken stacking mechanics" so far!

[h2]The reason to change[/h2]

When making a survey in the shapez 2 discord about the stacking mechanics, this is what we got out of 927 votes:

A) 31%: I have completed level 20 in shapez 1, and figured the solution on my own
B) 51% I have completed level 20 in shapez 1, but I looked up the solution fully or partially
C) 3% I stopped at level 20
D) 15% I stopped before level 20

Seeing that only 18% stopped at level 20 or before - it shows that this is really represents the core audience of shapez, having played the game at least for 10 hours +.

And yet, out of the 82% who completed level 20, effectively 62% had to look up the solution on the internet!

This showed us that the mechanic definitely needs a change, and this is what we did in Shapez 2.

[h2]Stacking in Shapez 2[/h2]

Our goal for Shapez 2 was, besides of making all buildings open, making the game more accessible. This also includes making all mechanics feel like a challenge, but not like a bug, and thus they have to be intuitive.

I'll simply show the exact same setup from above, but this time in shapez 2. (PS: There are alpha builds available in the discord, if you want to try it yourself!)

Again, if you combine 2 halves, it looks like this:



If you stack 2 shapes that have overlapping parts, it looks like this:



If you stack 2 shapes that only partially overlap, it looks like this:



So far so good - but what happens if you now try to cut the overhang?



As you can see, there is now a little animation showing how the overhang is falling down and resizing to its original size.

This also applies if you try to build a floating shape:



As you can see - the overhang now falls down as well!

This means that floating shapes, which are not connected to any adjacent shape, are not possible in Shapez 2 - are they?

Let me introduce you the new pin mechanic!

[h2]Pin Pushers[/h2]

To allow to produce floating shapes in shapez 2, we wanted a mechanic that makes more sense and also looks "reasonable" with the new 3D environment - having parts just float in the air would look weird and inconsistent.

Thus, we are introducing a new mechanic - the pin pusher.



It introduces a new "shape part" type (Short code: "P-"), that is a little different compared to the other shape parts. It effectively removes a whole quadrant and replaces it with a single pin.

Utilizing the pin, you can create floating shapes again:



This makes whole process a lot more intuitive. And you can produce some pretty .. interesting shapes! Notice how the right shape is actually the "a" from our new logo - a shape you can only produce in Shapez 2!



[h2]The algorithm[/h2]

The shape stacking logic has been created completely from scratch in Shapez 2. It now does an actual, physics based simulation of the shape (which is of course cached, so it's very efficient).

The first step is identifying "groups" within a shape. 2 parts of a shape count connected if:

- They are on the same layer
- They are adjacent quadrants (i.e. top right and bottom left wouldn't connect)
- Both are a "full" shape - that means, not a pin

A group is connected physically, so it means that when it falls down, all parts fall down by the same amount.

After identifying the groups, we run our "physics" simulation which basically applies gravity to all groups, until the shape is not changing anymore.

This might sound rather complex at first, but the behaviour is actually a lot more intuitive if you try out!

PS: Again, there are alpha builds available in the discord, if you want to try it yourself!

PPS: If you are interested in the exact details - you can find the C# Source here! We are always happy to get suggestions on the code, just like in shapez 1.

[h2]Further mechanics[/h2]

The floating shapes mechanic was a beloved mechanic from a lot of veteran shapez 1 players, and we are very well aware that the pin pusher mechanic simplifies the process quite a bit. Especially for those who love (hard) puzzles, there is now a gap.

However, don't worry - this is why we are introducing additional shape mechanics as well, such as crystals!

Be sure to follow the Store Page to get notified about new devlogs covering those mechanics!



PS: Did you notice all GIFs loop seamlessly? This was actually a lot of work! If you like the devlogs, let us know in the comments so we know it's appreciated :)

Have a nice weekend!
Tobias


[h2]Wishlist & Follow Shapez 2[/h2]

https://store.steampowered.com/app/2162800/shapez_2/



Devlog 002 - Cutters

Hey everyone again!

The response to the latest devlog was super positive, so I thought I'd try to give you more regular updates now! This devlog is covering the topic of cutters, rotationally dependent shapes and much more. Enjoy the read!

Why cutters are difficult


[h3]How it started[/h3]

Cutters have often caused confusing in shapez 1 already. Here's a quick reminder how they work:



Basically the right side of the cutter always outputs the right half of the shape, no matter the orientation.
There is actually a good reason to not just cut the shape in half like a wedge on a belt: It would break blueprints.

Imagine having a blueprint with cutters and rotating it - the blueprint would now work differently, being effectively useless.

However, we felt that this is still a suboptimal solution, since there were frequent "bug" reports of the cutter not working, which was due to a misunderstanding how it works.

For shapez 2, we wanted to revisit this mechanic, and here's what we ran into:

[h3]Making the cutter 'open'[/h3]

As mentioned in the previous devlog, one step to make the cutter more obvious was to make it fully animated:



However .. Besides of the animation & mesh being work in progress, I'm not sure this makes it any better at all to be honest. While the process is more visible - it's still very hard to determine how the cutter will cut.

[h3]Camera Rotation / North indicator [/h3]

Another issue is - while the camera rotation in shapez 1 was fixed, you can fully rotate the camera in shapez 2. In order to determine how a cutter will cut, you now also have to factor in the camera rotation. For example, if you revisit the gif from above - are you wondering why the cutter is putting the right side on the left belt?

This is actually because the camera is rotated by 180 degrees - the cutter is actually facing downwards.
To better show in which direction the camera is currently facing, we added a small compass:



As well as a small indicator (WIP!) on the shape:



[h3]Belt Relative Rotation[/h3]

At some point, there was the suggestion for belt relative rotations. What does this mean?
Basically, right now, all shapes always point upwards. This means that the cutter also always has to cut from top to bottom.

If the north of the shape would now be aligned instead towards the direction of the belt, the cutter could always cut in that direction, because even if you rotate the cutter, you'd get the same result.



While this would partially solve the cutter issue - it now introduces a whole bunch of other issues.
For example, as you can see in the gif, it's now extremely hard to predict how the stacker will combine the shapes, because they rotate on every belt corner. Which is, after quite an extensive discussion on the shapez 2 discord, we decided against it.

[h3]Rotation for Research Goals[/h3]

Another issue we ran into: In which direction would you actually have to deliver the shape into the hub?
In shapez 1, the shape had to be rotated in the correct direction in order to be accepted.

However, can you spot the issue on this screenshot?



Because the camera is rotated by 180 degrees, it looks like you would be delivering the shape in the correct rotation, while in fact you are delivering a shape that is flipped.

This lead to a lot of confusion - and even bug reports like "HUB is not accepting shapes".

To avoid this, we simply now allow the shape to be delivered in any rotation into the hub (However - if you are looking for a more hardcore experience, we are considering to add an achievement to deliver all shapes in the correct orientation! And probably also an option in the game creation settings, although probably not on the initial release).

PS: Did I already mention the artists are currently reworking the hub? Follow the shapez 2 store page to receive future updates!



[h3]Operation Previews[/h3]

Another improvement we made to make using cutters (and other buildings) a little easier: Whenever you are about to place a building, it shows you the predicted output:



[h3]Simplifying the onboarding / "Light" Cutter[/h3]

We've been really trying a lot to make the cutter easier to understand, however even with all the improvements, the cutter can be hard to understand.

Because the cutter is the very first processing building you unlock, we felt that it can quickly overwhelm new players.

Thus, we came up with a solution - A "light" cutter which only outputs one half of the shape, and trashes the other side. This avoids the whole directional conflict, has a much simpler animation, and is easier to understand:

(The mesh is a placeholder)


Later in the game, you can then unlock the full cutter as an additional unlock, effectively "flattening" the difficulty curve a bit, while you can still choose to rush it.

And the great thing is, the light cutter still has its use case after unlocking the full cutter: If you only need one half of the shape, it's more efficient (space & throughput) to use the light cutter.

[h3]Follow & Wishlist![/h3]

Be sure to follow Shapez 2 on Steam to receive notifications about future devlogs!

https://store.steampowered.com/app/2162800/shapez_2/


I hope you enjoyed the read, and stay tuned for the next devlog, where we will cover the new stacking mechanic in Shapez 2!

~Tobias


Shapez 2 - Devlog 001

Hey everyone!

I wanted to give you an update on the development of Shapez 2, our current plans and more!

News

[h2]Funding Secured[/h2]

Shapez 2 will be partially funded by the German Government via the "Computerspielförderung des Bundes". This allows us to produce the game with a much higher quality, more content and bigger team. We are super excited and extremely grateful that we can now produce the game with all the features & content we have in mind!

[h2]We are hiring![/h2]

Speaking about a bigger team - we are currently looking for a Senior Unity Developer as well as a Community Manager! If you are based in Germany and want to work in a small, super motivated team as well as having a huge impact on Shapez 2, please apply!

[h2]Alpha Gameplay & Screenshots[/h2]

If you are curious how Shapez 2 will look and feel, you can check out this exclusive alpha gameplay stream from Giantwaffle! We usually don't allow anybody to show the game outside of the discord, but we made an exception to get early feedback. Keep in mind this is a very early version of the game with still months of development to come, but we think it already shows very nicely in which direction we are heading!


We've also updated the Store Page with current Screenshots from the Alpha!

PS: We are currently not looking for more alpha testers, but follow the Shapez 2 Store Page to get updates when we do!

Devlog

[h2]Simulation Updates[/h2]

I wanted to give you a quick idea how the simulation works in Shapez 2, to also explain why the simulation performance will be up to 30 times better than in Shapez 1!

All buildings in Shapez 2 are represented via a concept called "Belt lanes". A belt lane has basically 3 relevant parameters: Current Item, Progress, Next Lane.
The lane then also has a "Belt lane definition" which stores parameters as the duration, speed, world position etc.


These belt lanes know about their next lane, so for the simulation, it is not relevant to which building a lane actually belongs - the simulation itself does not have the concept of buildings.

When you place or remove a building, a graph of those belt lanes is built. In order to make sure the simulation runs at full precision, we have to build the graph and compute which dependencies every building has. This results in a flat list, which is built individually for every island (thats what we call the space station platforms internally).

You can see an example of the update order here - as you can see, the buildings at the end of the chain are updated first, and the extractors are updated last. This is extremely important, since otherwise you would constantly have gaps between items on the belt (And it also means loops are less efficient - so don't build loops! :))


[h2]Belt Simulation[/h2]

To better visualize and debug the simulation graph, we have created a small tool for which we ported the main parts of the C# Simulation (since Shapez 2 is written in Unity) to TypeScript.

You can give it a try here, and also have a look at the simulation code here!

Basically the simulation works like this:
From the last lane (on the right) to the first lane (on the left), the simulation first computes how far the item can maximally progress (reading the MaxStep from the next lane). Then, it computes how much the item can actually progress based on the time elapsed, and moves it as much forward as possible. As a last step, it updates it's its own MaxStep property. You can visualize the property by checking the "Show max step" checkbox.

The computation of how far an item can progress can get rather complex, because there are two dimensions to take into account: Time and Distance.
An item can not progress faster than the maximum speed of the lane, which is the main limit of the throughput. However, items must also not overlap when being rendered, which is why between two items, we have to ensure there is always a distance of 0.5 units.

This sounds simple at first, but can get pretty complicated. For example, if you have two lanes which have a length of 0.5 world space units and a speed of 1 unit/second, it means an item needs 0.5 seconds to reach the end of a lane.
If the second lane has an item at 50% progression,it means it is at 0.5*50% = 0.25 units. if both lanes are directly connected, it means an item on the first lane can only move 0.25 units on the first lane as well, until it would intersect with the item on the second lane. This is what the MaxStep property basically stores.

However, there are buildings which have lanes that have a length of 0 units, but still a duration. Imagine the rotator for example - it has 3 lanes: Input Lane, Processing Lane, Output Lane.



The processing lane has a duration of 0.5 seconds by default, but it has a length of 0 world space units.
If we now look at the graph using the world space length as the dimension from left to right, it looks like this:




However if we look at the graph using the time as dimension from left to right, it looks like this:


If you look at the visualization (again, link), you will see that in the world length dimension the item just stops (and would rotate in the real game) whereas on the time dimension, it just continues to progress.

Depending on the complexity of buildings, this can be a pretty daunting task to get right, especially if we want to get all buildings to run at 100% precision.

[h2]Visualization of Items[/h2]
Another big problem is that we can not "hide" items, because all buildings are supposed to be fully open. In almost all other factory games, buildings are solid structures that have inputs & outputs, but they just "consume" the items and output others. Because shapez 2 is fully open, this adds a lot of new issues (but we think it is worth it!):


For example, splitters can sometimes still have overlapping items:


This is super hard to fix, because we can not simply "warp" the items, however we will cover this in another development log!

[h2]+3000% Simulation Performance[/h2]

You might ask why we are doing all these efforts to put the nodes into a graph structure. The main reason for this is that we want to make the simulation 100% precise at just 2 UPS (Updates per second).
This means that islands which are not currently in view can be updated at 2 UPS instead of 60 UPS.
Compared to Shapez 1 (and almost all other factory games) this is a huge performance improvement - to put it into numbers, about 30 times faster.

We've done some initial tests and it seems that factories with >1,000,000 buildings and thousands of islands are just fine.

However, we want more - and thus we're also building the simulation to support multiple threads. Because every island is it's own graph, we can update islands independently of each other, and then update the "shared" structures afterwards. If we use 8 threads instead of just 1, this means the simulation would in total be about 240 times faster than in shapez 1.

Realistically, we will hit other limits (like memory bandwidth), but in general you can expect the simulation performance to be at least magnitude better than in shapez 1, and probably also compared to other major factory games.

Of course, this is only the simulation - if you choose to select ultra-high graphic settings for example, the game can still run slow if you don't have an appropriate setup.

However, we are giving our best to make sure huge factories run perfectly smooth!


[h2]Graphic Requirements[/h2]

We've received a lot of questions about the system requirements with the all-new graphics. We know that one advantage of Shapez 1 was that it ran well with low requirements, and our goal is to make sure that Shapez 2 also runs on low end setups, which is why we will also include a "minimal" graphics mode which will make the game run very ugly, but also very fast. Tests have shown so far, that it should be no issue playing on an integrated laptop GPU for example, but we will keep you updated with definite stats closer to release!




That's it for today, and we will keep you updated on the development progress - Please let us know in the comments if you liked this technical insights and would like to see more!

And last but not least, be sure to wishlist Shapez 2 if you haven't yet!
https://store.steampowered.com/app/2162800/shapez_2/

~Tobias