Dev Blog #34 | Foundry Fridays: Loader Reworks
Author: Mr.McDuck,
published 1 year ago,
Hello everyone!
It’s me again, mrmcduck, with another FOUNDRY FRIDAY episode. Today I am talking about the most common machines in the game: Loaders. First I want to talk about them in general and then we take a look at a recent change our team has made.
[h2]Let’s talk Loaders[/h2]
Loader, Inserter, Sorter. There are many names for the key element in factory games: The thing that moves items between belts and other machines. Some games even come without them at all and some variants have more features while others have less. Even though there is the obvious commonality, there is also a lot of nuance in how the Loader can be designed in terms of a gameplay perspective. Here I’ll share my personal thoughts about the different variants and where I see the pros and cons for our first person 3D factory game.
[h3]Loaders or no Loaders?[/h3]
The biggest question first: Should there be Loaders? They could be removed if all machines have had input/output connections for belts so that belts can go directly into or come out of the machine. For FOUNDRY I decided that this is not the way to go, and here’s why.
Benefits:
[list]
[*] Having one less buildable object makes the game more streamlined, which is in most cases a good idea, it’s easier to understand.
[*]It *might* look better, I think this depends on how both variants are implemented, but in general there is a good chance that this is going to look better.
[/list]Negatives:
[list]
[*] If you want to supply a large amount of machines it takes a lot longer to set up everything necessary because you need an additional splitter per machine (to branch off your belt into each machine). Splitters tend to be large and it requires more complex builds if there are multiple inputs and outputs. Also it requires more slopes to bridge the mess of belts that starts to exist on each side of the row of machines. With Loaders of different ranges it’s easy to build two or even three parallel belt lanes next to a row of machines and connecting them is fairly simple. For player comfort we always aim to require the least amount of clicks possible to build what is needed.
[*] Cannot do Filter Loaders where only a certain item is taken from the belt. It could alternatively be achieved with a filter splitter but that gets cumbersome quickly if you need multiple.
[*] Loaders have more flexibility, for instance you could have two belts with the same item and connect them both to the same machine so that items are taken from whatever belt has items available. While this example is certainly not the most necessary thing, the general argument holds up, especially for more experienced players and complex builds.
[*] All recipes will have to look the same in terms of amounts of inputs/outputs per machine type. Alternatively you could have a machine with 4 inputs and 4 outputs and only the ones needed would be used, but that isn’t great either.
[/list]
[h3]Loader Throughput Speed[/h3]
Many games have multiple Loaders with different speeds, providing an additional gameplay element of figuring out which or how many Loaders are necessary. So far we went with an extremely fast Loader speed which is always enough to satisfy the machine requirements. The reason is that building in first person is more time consuming than in 3rd person and forcing the player to build multiple Loaders per machine per same item type seems like it could backfire quickly. However, it’s something we’re still evaluating and maybe at some time FOUNDRY will have different Loader speeds.
[h3]Machine to Machine & Belt to Belt Connections[/h3]
Some games have Loaders which can be used to connect two machines or even two belts to each other. I think this is a good feature as it allows for more flexibility and more advanced designs, yet I decided against it in FOUNDRY. This time the reason isn’t that there are gameplay related negatives, but that it’s hard to come up with a visually appealing design in a first person 3D environment that is capable of achieving that. The only design that works would be the Factorio-style rotating arm that grabs items from one side and puts them to the other side. That specific design has a few problems I’m going to explain in the next paragraph.
Additionally I think it is more of a niche feature. Most players will rarely use a machine to machine setup as they are only rewarding in extremely advanced (ultra-high-throughput) designs where belt speed becomes the bottle-neck.
[h3]Identifying issues with our Loader design[/h3]
After some testing and feedback we realized that the fully obfuscated belt tile beneath the Loader is not great and needs improvement.
First, here are the reasons I initially went with such a design:
[list]
[*] Items can be placed on / taken from anywhere on the belt tile below, not just the exact center of the belt. This makes it tricky to simulate like a rotating arm (or other things that grab items) to be at the correct position. There are ways to solve or lessen the issue, but they all come with downsides, be it gameplay-wise (messing with throughput ratios) or visually (like heavy clipping into other items or jumping items). I’m fully aware that my explanation is not sufficient to lay out the problems, but the topic is so complex it could fill its own blog post - so I’ll just leave it with that.
[*] Items can be squeezed into gaps that are too small for a full item, causing them to overlap for a brief period. The moving belt automatically unfolds those overlaps. The reason we do this is that it’s necessary to achieve maximum belt throughput, otherwise those gaps would never be filled and cause unreliable belt throughput ratios.
[/list]
Now let us look at the problem our design caused. There are few smaller ones like mediocre visuals and sometimes less than ideal visibility, but there is one core issue we consider close to game-breaking: If there is an input Loader at the end of your belt it is impossible to find out what is beneath that Loader. And in case of a wrong item being there, it is impossible to figure out why it’s not working. Most people experiencing this expected the game to be broken. See the picture below:
[img]https://clan.cloudflare.steamstatic.com/images//38913947/a68b0575c2653d2abfc6a2d95a35a5216bb7ea3f.jpg[/img]
The machine is configured to take Xenoferrite Plates to craft machinery parts, but it’s not working at all. On the picture on the left everything seems fine, however once you remove the Loader you see that some other item that shouldn’t be there was blocking it. Unless you demolish the Loader, this is impossible to figure out.
[h2]New Loader Design[/h2]
To address those problems we redesigned our Loader. It’s not a huge change since we liked the general look and style, but we wanted to open up the visibility. So here is it:
[previewyoutube=SSKEnWbTGf0;full][/previewyoutube]
The biggest change is that we can now see into the Loader, which makes understanding the factory a lot easier and solves our previous problem. The open space now features a teleport effect that gets more intense after an item has been moved, giving visual feedback whenever a Loader moves an item.
We did an overall pass on the visuals but kept the general shape and look. It now features arrows on top making it even more obvious if it’s an input or output loader.
[img]https://clan.cloudflare.steamstatic.com/images//38913947/9d0ce73e693ed17a696b02bca852b0ebb0e0615f.jpg[/img]
But did you spot the biggest change? The belts aren’t as high as they were before. We did this to be able to reduce the height of the Loader, which makes the factory feel a lot better. The Loaders don’t obstruct machine and screen panel visibility as much as they did before. But it turns out that lower belts itself helped dramatically with what we tried to achieve: They are less often in the way now, stepping onto them is less jarring as the step up height is smaller and you see more of your machines and factory.
[img]https://clan.cloudflare.steamstatic.com/images//38913947/e1c50a71e44f04f1c066fca09fe91da53d9358dd.jpg[/img]
[img]https://clan.cloudflare.steamstatic.com/images//38913947/bc264462e005d3eb7008f14f9f52e1f6bde85568.jpg[/img]
[img]https://clan.cloudflare.steamstatic.com/images//38913947/cec05a173588d442bc2fb84686675743ed7c354a.jpg[/img]
So what about the problems I tried to conceal with the closed design? Yes you get to see items disappear or pop up inside the teleport effect, but the visual effect breaks it up nicely and doesn’t make it feel weird or unfinished. In future we might look into polishing this further with adding a fade effect to the item itself.
Overlapping items: It’s almost impossible to see when the belts are moving, and if they are not and an item gets squeezed in it’s just something to accept. It’s rather rare to spot and the overall benefits outweigh the rare visual inconveniences.
We’re looking forward to hearing your feedback and thoughts around this change. This concludes today's episode of FOUNDRY FRIDAY and see you again in two weeks!
-mrmcd