Dev Deep Dive: Balancing Freedom and Performance
[h3]In this part of our Dev Deep Dive series, the team talks about one of the toughest design challenges: how to give players creative freedom in Modulus without breaking performance or stability.[/h3][p]Jarvs (Head of Comms): Welcome back everyone, let’s kick this off:
[/p][h3]How do you balance creative freedom with performance and stability? That can’t be easy.[/h3][p]Thomas (Senior Tech Artist): Our approach is usually to give players as much freedom as possible, and then only put limits where performance demands it. The camera is one example; we cap how far you can zoom and tilt, which lets us cull distant objects.[/p][p]Another big factor is the islands. Because the world is split into separate islands, we can optimise them in parallel, even simulating them on different threads. That way, performance scales better as players expand.[/p][p]David (Game Director): Yeah, we set some general performance guidelines, but ultimately we have to see what players do. You can imagine scenarios, but sometimes people surprise you. Like, someone places 2,000 Scrappers, and suddenly performance tanks. Who does that? [/p][p](Side note from Jarvs editing this interview. Mick LITERALLY just did this, see video below)[/p][p][/p][previewyoutube][/previewyoutube][p]But it happens, and that’s when we optimise.[/p][p]We don’t try to cover every possible extreme upfront. And at the same time, some players actually want to push the game to breaking point, so we don’t want to restrict that either.[/p][p]Jarvs: It’s very much a “challenge accepted” kind of thing for some players.[/p][p]Thomas: Definitely.[/p][p]Mick (Lead Developer): And honestly, that’s part of the genre. In factory games, if you go infinite, at some point you’ll hit performance limits. The question is: do you stop players early, or let them break things and then patch it if it becomes a widespread issue?[/p][p]We always choose the second option. For example, we let you plant a tree on every single tile if you want. We don’t pop up a warning after fifty trees. It’s more fun to push the system and see where it breaks. And if enough players hit the same wall, then we’ll dedicate time to solving it.[/p][p]It’s a kind of cooperation between us and the community. The core systems we ask you to use will always run well. Beyond that, it depends on what players push hardest and shout loudest about.[/p][p]Jarvs : And our community has been amazing for that. They don’t just break things, they explain how and why. That feedback has been huge in helping us decide what to fix, what to leave open, and what to revisit later. Honestly, they’re legends.[/p][p]Ok next question:
[/p][h3]How does the simulation handle scaling?[/h3][p]Mick : Our biggest advantage is modularity. That’s true for gameplay and development. A small set of elements can be combined endlessly, and that’s exactly what scaling is about.[/p][p][/p][p]
[/p][p]Of course, you start with a naive approach, just add more and see if it works. Eventually it doesn’t, and then you need smarter solutions. Graphically, that might mean not rendering distant objects. In simulation, it might mean not running every system at full power all the time.[/p][p]Behind the scenes, games are full of smoke and mirrors. Modulus is no different. Scaling always “works until it doesn’t,” and then you rebuild. You throw away an old solution, design a better one, and carry on. That cycle never ends.[/p][p]Jarvs: You guys are true magicians to me. [/p][p]So moving on then:
[/p][h3]How do you optimize assets when hundreds of machines are running?[/h3][p]Thomas : A lot of it is classic optimisation; culling, instancing, and vertex shader animations for conveyors and resources.[/p][p]We’ve also discussed future systems like abstracting items. Instead of simulating every single resource individually, we could average inputs and outputs, almost like treating a group as one operator. That would allow much bigger factories without tanking performance.[/p][p]David : It’s technical wizardry, really. The kind that players don’t see, but that makes the game possible.[/p][p][/p][previewyoutube][/previewyoutube][p]The balance between freedom and performance is never final. Modulus is designed to let players push the boundaries, even if it means breaking the game. Every extreme build, every odd experiment, helps the team find the next optimisation and the next way to scale.[/p][p]In the next part of our Dev Deep Dive, the team talks about cross disciplinary collaboration, looking at how a small team blends art, audio, and design into one seamless experience.[/p][p]Don’t forget to wishlist the game, and give it a follow whilst you're there. Every follow the game gets, helps Steam recognise that people are excited for Modulus! It also means that you will be notified when we drop the next part of this series.[/p][p][/p][p]Catch you soon Module Makers.[/p]
[/p][h3]How do you balance creative freedom with performance and stability? That can’t be easy.[/h3][p]Thomas (Senior Tech Artist): Our approach is usually to give players as much freedom as possible, and then only put limits where performance demands it. The camera is one example; we cap how far you can zoom and tilt, which lets us cull distant objects.[/p][p]Another big factor is the islands. Because the world is split into separate islands, we can optimise them in parallel, even simulating them on different threads. That way, performance scales better as players expand.[/p][p]David (Game Director): Yeah, we set some general performance guidelines, but ultimately we have to see what players do. You can imagine scenarios, but sometimes people surprise you. Like, someone places 2,000 Scrappers, and suddenly performance tanks. Who does that? [/p][p](Side note from Jarvs editing this interview. Mick LITERALLY just did this, see video below)[/p][p][/p][previewyoutube][/previewyoutube][p]But it happens, and that’s when we optimise.[/p][p]We don’t try to cover every possible extreme upfront. And at the same time, some players actually want to push the game to breaking point, so we don’t want to restrict that either.[/p][p]Jarvs: It’s very much a “challenge accepted” kind of thing for some players.[/p][p]Thomas: Definitely.[/p][p]Mick (Lead Developer): And honestly, that’s part of the genre. In factory games, if you go infinite, at some point you’ll hit performance limits. The question is: do you stop players early, or let them break things and then patch it if it becomes a widespread issue?[/p][p]We always choose the second option. For example, we let you plant a tree on every single tile if you want. We don’t pop up a warning after fifty trees. It’s more fun to push the system and see where it breaks. And if enough players hit the same wall, then we’ll dedicate time to solving it.[/p][p]It’s a kind of cooperation between us and the community. The core systems we ask you to use will always run well. Beyond that, it depends on what players push hardest and shout loudest about.[/p][p]Jarvs : And our community has been amazing for that. They don’t just break things, they explain how and why. That feedback has been huge in helping us decide what to fix, what to leave open, and what to revisit later. Honestly, they’re legends.[/p][p]Ok next question:
[/p][h3]How does the simulation handle scaling?[/h3][p]Mick : Our biggest advantage is modularity. That’s true for gameplay and development. A small set of elements can be combined endlessly, and that’s exactly what scaling is about.[/p][p][/p][p]
[/p][h3]How do you optimize assets when hundreds of machines are running?[/h3][p]Thomas : A lot of it is classic optimisation; culling, instancing, and vertex shader animations for conveyors and resources.[/p][p]We’ve also discussed future systems like abstracting items. Instead of simulating every single resource individually, we could average inputs and outputs, almost like treating a group as one operator. That would allow much bigger factories without tanking performance.[/p][p]David : It’s technical wizardry, really. The kind that players don’t see, but that makes the game possible.[/p][p][/p][previewyoutube][/previewyoutube][p]The balance between freedom and performance is never final. Modulus is designed to let players push the boundaries, even if it means breaking the game. Every extreme build, every odd experiment, helps the team find the next optimisation and the next way to scale.[/p][p]In the next part of our Dev Deep Dive, the team talks about cross disciplinary collaboration, looking at how a small team blends art, audio, and design into one seamless experience.[/p][p]Don’t forget to wishlist the game, and give it a follow whilst you're there. Every follow the game gets, helps Steam recognise that people are excited for Modulus! It also means that you will be notified when we drop the next part of this series.[/p][p][/p][p]Catch you soon Module Makers.[/p]
- [p]Team Happy Volcano. [/p]