HomeGamesUpdatesPricingMethodology
Steam News30 May 20261mo ago

May 2026 Development Update: Optimization

Introduction to Optimization Throughout the development of our game, the world has become increasingly larger and more alive.

Full notes

Full Nivalis update

Read the full published notes in a cleaner layout. The original post stays linked below.

What changed

0 fixes2 additions22 changes1 removal
  • Performance
  • Gameplay
  • UI and audio
  • Balance
  • Compatibility
addedIntroduction to OptimizationThroughout the development of our game, the world has become increasingly larger and more alive. While this has been an exciting part of the project, it also introduced new performance challenges.
changedIntroduction to OptimizationAs we approach release, our focus has shifted toward final polish. Over the past few months, we have dedicated our time to fixing bugs, implementing localization, and heavily optimizing the game to ensure it runs as smoothly as possible.
changedLevel Design & VisualsAlthough the world is built entirely from voxels, it does not use a traditional voxel engine. This results in much higher polygon counts than usual, so we rely heavily on multiple levels of detail (LODs) to maintain performance without sacrificing visual quality. A huge amount of credit goes to the art team for making this possible.
changedLevel Design & VisualsOur focus has been on enhancing performance and immersion. We have completely overhauled and optimized light probes throughout the game which, alongside a significant round of furniture asset polishing, drastically improves memory management. If you’re wondering what light probes are - think of them as invisible, floating sensors scattered all over the city that capture how light bounces around the environment. Instead of forcing your computer to calculate complex lighting for every single frame in real-time, the game cheats a little by reading the data saved in these probes. It gives us all the atmospheric stylized lighting without melting your hardware in the process!
changedProgrammingBringing the city to life, featuring thousands of NPCs continuously living their lives, was definitely one of the most difficult technical challenges we had to face. Since fully simulating that many characters simultaneously would be incredibly expensive, we created what we call the Ghost system. It essentially separates simulated characters from their visual representations. There are three distinct tiers of optimization:
removedProgrammingIn-District, Out-of-Sight NPCs : characters that are in the same district as the player, but not visible by the camera. Visuals are loaded but disabled and costly operations such as updating animation state are not performed every frame.

Introduction to Optimization

Throughout the development of our game, the world has become increasingly larger and more alive. While this has been an exciting part of the project, it also introduced new performance challenges.

As we approach release, our focus has shifted toward final polish. Over the past few months, we have dedicated our time to fixing bugs, implementing localization, and heavily optimizing the game to ensure it runs as smoothly as possible.

Level Design & Visuals

Building a "cozy cyberpunk" world presented a unique set of challenges. We wanted the city of Nivalis to feel dense and alive, filled with people, activities, and rich visual detail.

Although the world is built entirely from voxels, it does not use a traditional voxel engine. This results in much higher polygon counts than usual, so we rely heavily on multiple levels of detail (LODs) to maintain performance without sacrificing visual quality. A huge amount of credit goes to the art team for making this possible.

Vegetation also plays a key role in creating the cozy atmosphere, which required developing plants and foliage that fit seamlessly into the environment. Combined with carefully crafted pixelated textures and extensive LOD usage, these elements bring our distinctive visual style to life.

Our focus has been on enhancing performance and immersion. We have completely overhauled and optimized light probes throughout the game which, alongside a significant round of furniture asset polishing, drastically improves memory management. If you’re wondering what light probes are - think of them as invisible, floating sensors scattered all over the city that capture how light bounces around the environment. Instead of forcing your computer to calculate complex lighting for every single frame in real-time, the game cheats a little by reading the data saved in these probes. It gives us all the atmospheric stylized lighting without melting your hardware in the process!

Plus, we’ve dialed in the weather effects, so watching the rain or seeing the snow fall against the pavement will look better than before.

Programming

Bringing the city to life, featuring thousands of NPCs continuously living their lives, was definitely one of the most difficult technical challenges we had to face. Since fully simulating that many characters simultaneously would be incredibly expensive, we created what we call the Ghost system. It essentially separates simulated characters from their visual representations. There are three distinct tiers of optimization:

  • Out-of-District NPCs: characters that are in different districts than the player. Things like visuals, animations, or physics are totally stripped away, we only simulate what is needed to track their daily schedules in the background.

  • In-District, Out-of-Sight NPCscharacters that are in the same district as the player, but not visible by the camera. Visuals are loaded but disabled and costly operations such as updating animation state are not performed every frame.
  • Visible NPCs: characters visible by the player. Those are fully materialized and simulated with visuals, animations, physics etc.

With this, system performance has already significantly improved. But friction persisted when transitioning between districts, or when NPCs were arriving in your immediate area. Moving an NPC from a background "ghost" to a physical entity means suddenly loading a structure made of models, animations, and scripts, causing noticeable performance hiccups.

To solve this, we implemented a classic optimization technique: Object Pooling. Instead of constantly creating and destroying NPCs, we maintain a pre-loaded "pool" of character templates waiting backstage. When we need to materialize a ghost, we grab the corresponding character from the pool, and it will be sent back to that pool once it's no longer needed. While this slightly increases the memory required by the game, the payoff in framerate stability is massive.

Besides characters, the ghost system is used for all the objects requiring world-state persistence, which represent more than 10,000 elements like tables, chairs, dishes etc. The world remembers exactly how you left it without overwhelming your hardware.

The Unity Profiler has been essential in our optimization process, as it lets us track exactly how CPU, GPU, and memory are used. With such data, we can identify the bottlenecks and what aspect of the game or what code should be optimized. This precision is critical because every fraction of a second counts. For a game to run at 60 FPS, the budget per frame is only 16.66 ms. At that scale, finding a gain of even a few tenths of a millisecond is already a significant improvement.

Beyond execution time, managing memory is also critical. When code requires some temporary space in memory to run, it creates what is technically called memory allocations. If this happens constantly, on every frame for example, even tiny allocations can accumulate over time and become problematic. At some point, a process has to step in to identify unused memory and mark it back as available. This is called garbage collection, and it is famous for causing framerate stutters in games. By reducing memory allocations throughout our code, we can make this operation faster and so reducing loading time.

User Interface

The user interface is a central component of our game, serving as the primary way players manage essential gameplay aspects. From the outset, we have designed the UI to support various screen aspect ratios, including 4:3.

The system comprises over 40 distinct windows, panels, and interface elements, all engineered to remain clear and consistent across any display configuration. Managing the game's extensive content — which includes over 240 ingredients, 190 meals, 100 quests, and 620 furniture items — presents significant demands for both performance and readability. To address this, during UI optimization our objective is to ensure the interface remains intuitive, responsive, and efficient for all players.

Story

For the story, we’ve been testing and balancing the interactions we have with the rich cast of characters you meet in the city. From fishermen who tell bad jokes to faulty robots who offer free therapy, there’s a huge number of interesting people to befriend in the city and getting the flow and pacing of quests and stories just right is a delicate balancing act. As we fine-tuned the major story beats and how they link up with the gameplay systems and offer rewards to the player, we needed to adjust the game economy and the difficulty of the quests so they are satisfying and challenging without being frustrating. We feel the plotlines, gameplay and economy now all click into place, and the choices you make will feel meaningful and resonant.

Fishing

We wanted to share some details on the fishing gameplay. Fishing is not based on random chance. Instead, every fish has a physical representation, with hundreds appearing simultaneously. Each fish is individually simulated to follow others or your bait, forming colorful shoals that move in mesmerizing patterns. This means the specific salmon you catch is the same one you saw in the water just moments before.

To ensure we can simulate over 1,000 fish while sparing CPU cycles for other background elements — like your staff serving Nigiri to customers across the city — we have implemented significant optimizations.

Additionally, every fish emits a warm glow. While officials claim they are perfectly safe to consume and dismiss reports of food poisoning as rumors, this glow presented a rendering challenge. To maintain performance, each fish's light is rendered to a separate screen texture at one-fourth the resolution. This reduces the pixels rendered and stored in VRAM, which helps optimize performance for modern GPUs.

You can see this system in action in the editor below

Our QA Process

We would like to provide an overview of our current QA structure and processes. We are currently utilizing three teams: our internal team at ION LANDS, the primary QA team at 505 Games, and an external team at Quantic Lab.

Our internal team focuses on testing new features and bugfixes within the editor environment and on Steam builds. Once we push a new build to our Steam testing branches, the teams at 505 Games and Quantic Lab take over. Their testing covers several critical areas:

  • General stability and blocker identification

  • Save and load functionality

  • Quests and story progression

  • Environments, movement, and interactions

  • Character simulation

  • User interface

  • Memory consumption and performance

Additionally, a dedicated team handles localization testing for our 11 supported languages (English, German, Spanish, French, Portuguese, Russian, Simplified Chinese, Traditional Chinese, Korean, Japanese, and Turkish). This includes verifying voiceover synchronization and UI text accuracy. For Chinese, Korean, and Japanese, we must "bake" two optimized fonts for each language prior to translation updates to ensure all required characters are included.

Finally, Quantic Lab is assisting with compatibility testing. Using Steam hardware survey data, we are testing various configurations to ensure broad compatibility and to finalize the minimum and recommended specifications for our Steam store page.

Conclusion

We hope you enjoyed this development blog, which has been a bit more technical than usual. For us, all of this behind-the-scenes effort comes down to one simple goal: ensuring that players across a wide range of hardware and languages get the smoothest, most immersive experience possible at launch.

Once we are ready to share a release date, you won't miss it.

Your ION LANDS Team

PS: This update was written by multiple members of our development team: Piotr, Roman, Lukasz, Mislav, Aman, Thomas, Nicolas and Marko.

Source

Steam News / 30 May 2026

Open original post

Changelog.gg summarizes and formats this update. How we read updates.