- May 9, 2019
Monster Hunter Rise has been out for a number of months, selling an impressive number of copies while also showing the capabilities of the Switch hardware in the right hands. One of just two titles on the system to utilise the RE ENGINE — the other being Ghosts 'n Goblins Resurrection — it brings the series to another level on Nintendo hardware, while successfully retaining the visual look and charm from past-generation entries.
The technical aspects of the title are interesting, however. Monster Hunter: World always seemed beyond the capabilities of Nintendo's hybrid system, yet many of the updated approaches of that title made their way to Rise. The days of segmented maps with numerous load screens are replaced by seamless open areas, while new gameplay additions allow players to traverse environments quickly and even vertically. While the visual styles of Rise and World are different, they have far more in common than many may realise.
That's been reinforced to us recently - we've had the wonderful opportunity to pose questions to Yasunori Ichinose, Director of Monster Hunter Rise. This interview was focused on the technical development of the game, and of course that implementation of Capcom's flagship RE ENGINE.
Nintendo Life: What was the main technical reason for utilising the RE Engine for Monster Hunter Rise on Nintendo Switch?
Yasunori Ichinose: The main technical reason is that we can use RE ENGINE's powerful C# scripting system, not to mention the latest graphics features of RE ENGINE (if hardware specs allow it). In MT FRAMEWORK, all the game logic was implemented in C++, so the build time was a problem; in RE ENGINE, the game logic is implemented in C#, so the build time can be greatly reduced (approximately 10 seconds, which would take 100 times longer in C++). This allows for quick iterations of trial and error to make the game more interesting. It's not directly visible, but it's a very important part of development, and I think it indirectly contributes to the fun of the game.
Along with Ghosts n' Goblins Resurrection, this is a rare instance of the engine being utilised on Nintendo's hardware. To what degree did the core RE Engine team adjust the tools to suit the Switch?
RE ENGINE was designed from the beginning with multiple platforms in mind, so the simple porting itself was not that difficult. However, it was quite difficult to work with the core graphics elements (which involved the Nintendo Switch's slightly unique graphics API, NVN) to develop a translator for the shader program.
In RE ENGINE, shader programs are written in HLSL (high-level shader language), but we had to implement a new translator to convert them to GLSL (OpenGL shading language). In this translator, we implemented a few tricks to output the optimal code when converting from HLSL to GLSL so that the performance of the GPU can be achieved. We also added support specifically for the Nintendo Switch GPU. For example, we added support for ASTC (adaptive scalable texture compression), a texture compression format that has been very useful in reducing memory and data size.
Did early testing of the RE Engine and the planned visuals for Rise return strong results, or was significant optimisation required to achieve the performance you wanted?
The initial performance was quite severe and major optimization was a must. First, we switched the graphics pipeline from a Deferred-based one to a Forward-based one. In the past, the RE ENGINE used a graphics pipeline based on Deferred Rendering. However, since memory bandwidth was expected on the Nintendo Switch, we built a new Forward Rendering graphics pipeline for Monster Hunter Rise. We then made many optimizations one by one, from large to small.
Examples of these optimizations include: baking/applying shadows, applying GPU Occlusion Culling, and replacing DOF (depth of field), etc. with new lightweight alternatives. Many other miscellaneous optimizations were made as well, including: replacing overly rigorous computation with simplified computation, replacing Compute Shader implementations with Pixel Shader implementations, and adding a Culling Process. We also worked with the artist to adjust the area of influence of lights, since the light source calculation process becomes very heavy in areas with too many lights.
Like Monster Hunter World before it, Rise utilises larger and seamless environments - what are the biggest benefits of that approach?
In Monster Hunter Rise, you can now perform highly flexible actions such as wall-running and using the Wirebug. You can also ride around the field quickly while riding a new buddy character called Palamute, which works very well with the seamless environment.
Though it's a new engine, the visual design does share similarities to the previous Wii, 3DS and Wii U entries. Can you explain how you evolved that look, albeit at a higher resolution and level of detail?
In order to make the new monsters of Monster Hunter Rise fit in the same field as the monsters of past titles with very different model specifications, we carefully proceeded with the texture expression, polygon count, and number of joints after repeated verification with the motion team. The expression of hair was the most difficult part, but it was solved when the shaders from Monster Hunter: World could be ported over.
Can you talk about the extensive animation work that went into this project? How significant a progression did this represent from the previous 3DS titles, for example?
Due to the specs of the Nintendo Switch, it would have been easiest to use data from the 3DS era, but since Monster Hunter: World was released recently, it was important to make Monster Hunter Rise look as modern as possible. From a processing standpoint, it is better to have fewer joints, softness of the movement and a high degree of freedom of expression. That was an element that we did not want to cut, so I was working closely and consulting with the programmer. Characters from Monster Hunter: World are kept as they are as much as possible, while some new characters were created by consulting with the model team and we cut the joints up until the very last minute. When it comes to facial animations, Monster Hunter: World's ample number of joints was an impossible number, so we worked on finalizing the number for this game and then worked on the facials.
As for the animation work, we started by making sure that the data from Monster Hunter: World could be ported over. Modifying and reducing the chain and auxiliary joints was a task that required more work from the modelers and programmers. In addition to the Monster Hunter: World attacks and movements, “Wyvern Riding” was added as a new feature to Monster Hunter Rise, so the number of motions we needed to create increased considerably. The time it took to create attack, movements, and techniques was high, and since “Wyvern Riding” movements were also added, the enemy animation team had a hard time due to the sheer volume of material, creation time, and post-incorporation checks.
On the player's side, we included a lot of aerial actions involving Wirebug actions and additional actions using walls, so in addition to internal captures, we also had the help of Katsugekiza (action mo-cap team) to improve the quality. For the NPCs, we focused on the placement and relevance of each NPC in this game. We hope that you will enjoy the little things that change, such as the way NPCs greet you when you come to their villages, or the way NPCs change their locations after you move from one area to another.
What graphical tricks and adjustments are you most proud of, in terms of steps that enabled the game to look and perform so well (for example reduced framerates on distant creatures, resolution adjustments)?
No texture streaming is done during the game, but it’s done during the cut scenes, NPC textures are streamed and loaded only in the high-resolution mipmap portion to make them higher resolution. This allowed us to reduce memory usage during the game, while making the cut scenes look even better. The graphics in Monster Hunter Rise are a combination of many fine tricks and adjustments and we are proud of them all equally.
Small objects (props) in the background are erased when they are far away, but if they suddenly disappear, the popping will stand out. So, we used a dither pattern to gradually erase them so that they would not stand out. We also manually adjusted the distance at which we erased individual items that stand out. Since there is no G-Buffer in Forward Rendering, the techniques often used in Deferred Rendering (SSAO and SSR) cannot be used as they are, but they are implemented in a creative way. SSAO (Screen Space Ambient Occlusion) was implemented using a method that calculates it using the ‘normal’ recovered from the Depth Buffer depth values. SSR (Screen Space Reflection) was specially supported by adding a dedicated drawing path only for the water surface. The reflection of the water surface is a part that we worked especially hard on, even if it increased the processing load a little, because we wanted to make it look realistic and beautiful. Additionally, a simple atmospheric scattering calculation was included in Fog. With only a small processing load, I think it contributed to making the background light expression look a little more gorgeous.
If you could travel back in time and give yourself some advice at the start of Monster Hunter Rise’s development, what would it be?
I believe that we should have created an environment for automatic performance measurement earlier. Monster Hunter has a wide variety of combinations of stages, monsters, weapon types, etc., so we did not have an automatic measurement environment that covered all of these patterns. This made it a little difficult to check the optimization results.
What is your overall feeling after working on Monster Hunter, in the RE Engine, on the Nintendo Switch?
Optimization was very difficult, but it was also challenging and rewarding. Thanks to the basic design, tools, and development methods of RE ENGINE, we were able to challenge the optimization up until the very last minute. It was a challenge to fit the large RE Engine into the small Nintendo Switch, but I'm happy that we were able to create something that people will think is impressive that it runs at this quality on the Nintendo Switch.