10 months ago - /u/ - Direct link
A lil somethin somethin: You can find the details for this event on the announcement page here.
10 months ago - GM Mint - Direct link
Hello Lumia Island survivors!
Today's Dev Journal will cover the Frame Report.

There's a saying in the game industry that you should never make optimization promises. There's a lot of variation in player experience because the overall optimization improvements don't apply equally to everyone, and even if the overall optimization improves, there's always a chance that one particular operation will pop up that causes problems, so it becomes a never-ending process. So we’re going to be very careful about bringing up optimization in this Dev Journal.

Optimization was a top priority internally as we prepared for Eternal Return 1.0.
Squad Mode in particular had the most frequent framerate issues, and with 24 players, we were concerned that if we didn't optimize it, the game might not even be viable.

So the optimization work went ahead with the intention of redesigning a lot of the invisible “Back End”. In terms of workload, this was by far the biggest thing we've ever introduced in the Dev Journals.
Here's a quick overview of the main things we worked on.

First, a Light Map was applied to Lumia Island. Previously, light sources were calculated in real time, but Light Map converts pre-calculated lighting effects and shadows into textures (image files of the surface of objects) through a process called baking. While this slightly increases VRAM usage due to the large amount of lighting information stored in textures, it greatly reduces computation while still allowing for colorful lighting effects that are difficult to express in real-time lighting.

A Grid Map is a conversion from the in-game coordinate system to the coordinate system of a virtual plane, rather than using the actual objects placed on the island. This can greatly reduce the amount of computation in the physics engine, as it simplifies things by not having to calculate every object directly, but it also requires a lot of detailed calibration, as switching back and forth between the two coordinate systems can introduce perceived inconsistencies.

Addressable Assets, which allow you to address game resources (models, textures, animations, effects, etc.) to streamline loading, was one of our goals, but unfortunately fell by the wayside in this iteration and will have to wait for another time.

One of the biggest tasks we faced was optimizing the UI and Information Management. Eternal Return is a game with a lot of information that is updated in real time. Unlike first-person games, where you can abbreviate a lot of information about distant enemies, the information of all participants can be seen at any time, and the amount of information represented by the UI is large, so information management was an area where we had a lot of work to do and caught a lot of leaks.

We also focused on reusability of all resources used in the game. Not only did the number of players increase, but the number of Wild Animals and objects also increased to accommodate the larger map, and to optimize this, we implemented a system where resources are loaded first and reused in the game as much as possible.

Also, character skills are often heavy effects that use a lot of computation and memory, so we put a lot of effort into optimizing the effects. Some of these were introduced in the character side, but there were many other cases as well.

Towards the end of our Dev period, the latest stable version of Unity, the engine on which the game is based, was released as Unity 2022, which meant an engine update. Updates to the underlying engine can fix a lot of issues that our code can't reach in the long run, but they can also cause a lot of short-term issues, making them difficult to do during live service. But, we had scaled back our live updates for Eternal Return 1.0, so we could be a little more aggressive.

In addition, many other improvements were made, and we wanted to measure their impact.
Frame Drops was the most frequent frustrating issue during gameplay, so Frame Protection was the most important goal.

We set up about 30 different environments with different graphic cards, option settings, and in-game situations, and measured frames 11 times for both the Early Access version and the Official Launch version. Here's a comparison of the most recent frames from the Early Access version (0.87, blue line) and the Official Launch version (1.0.5, red line). The higher the frames, the smoother the movement.

<Combat Testing - GeForce Series>


<Combat Testing - high-end laptops>


In addition to the combat 6-player test, we also had non-combat tests, such as moving around Lumia Island, and stress tests, in which 18 people were constantly fighting.

<Non-Combat Testing - Radeon Series>


In almost all of the 30 environments, frames were noticeably improved, and even after version 1.0.5, which is shown in red, there were further optimizations, so the improvements went beyond the graph.
In addition to frames, we also measured changes in CPU, GPU, and memory utilization, of which the goal was to maintain the status quo, and we saw a slight increase in CPU and GPU utilization, but wasn't a significant change.




But, memory utilization increased relatively.


CPU and GPU, but especially memory utilization, have a Trade-Off with frames. Loading more resources into memory, make frames to hold up better. But, we tend to be much more cautious, as increased CPU and GPU utilization can lead to other problems, including crashes.

The increase in memory utilization is not a problem when the RAM requirement is 8GB or more, but in a 4GB environment, it becomes virtually impossible to run due to the default usage of the operating system. As a result, we're raising the minimum memory requirement to 8GB to ensure a better playing experience.

Game loading times have also been significantly reduced. There was a particularly long loading problem when the PC was turned on and the game was run for the first time. While depending on the environment, we were able to see that loading times dropped from an average of 2 minutes to around 30 seconds on some PC. We also saw a significant improvement in the loading time of Lumia Island when starting the game.

Improving overall loading time also has a Trade-Off. The size of the update per patch is now larger than before, and instead of the easy solution of bundling chunks to load to speed up the process, it's more of a concept of having to patch the whole bundle every time you patch.

We've given you a bunch of figures, but at the end of the day, the experience of optimization can vary from player to player. The dilemma with optimization is always that it may not be fair to everyone, and it can have unexpected behavior, especially in untested environments.
"I didn't experience any lag during gameplay."

When I played with the number of frames unlocked, I didn't notice any frame drop.
"Steam's own framerate hovered between 100 and 140, so I didn't have any issues playing."
"When I was doing the test internally, I was last in the rankings, so when I played live, I felt a lot of optimization backlash."

While a few pieces of feedback are by no means representative of the entire experience, and everyone's experience will be different, we've gotten a lot of feedback that it's much better than the old experience, so we're hoping to see a more pleasant Eternal Return.

This concludes the Dev Journals for Eternal Return 1.0.

We are now 3 days away from the Official Launch. And no matter how much we prepared, we still feel like we didn't do enough for all the players who have been patiently waiting for us.

We've made it to 1.0 after three long years of Early Access, and we owe it all to you, our players.
We'll keep working hard to bring you a more fun game over the next three days and beyond!

As always, thank you!





Recent Eternal Return Posts

about 4 hours ago - GM Mint
about 21 hours ago - GM_Goddess