July 2023

General

This month, not unlike the previous one, was spent focusing on several things at once, may it be bugfixing, small optimizations.

 

Animations

I have finished and added new animations for Talas’ reactions, such as nodding, shaking his head, or tilting it.

Shake Head

These animations are available for the game master and will be used by the AI.

I also added new animations for Cobble when he is using Talas’ shoes.

 

Stuck Zone Dynamic Offset

I have reworked character anchor points in order to more easily manage offsets when a character is anchored.

If you like to use the debugging option or cheat codes to change a character’s size, a character’s offset will now be properly updated.

I’ve also used those to offset the VR camera. This allows one to lay down inside Talas’ shoe while still standing up in their VR space.

 

Game CPU Optimization

CPU usage remains what takes up the most resources in MMVS. I spent lots of time in version v0.4.4.2 working on optimizing this resource usage to limit, as much as possible, CPU usage.

There are plenty of elements that are calculated every single frame. In most cases, each element uses very little resources, but since there are lots of said elements, it adds up dramastically to the calculation time every frame.

I am thus trying to delete these small calculations whenever I can. For example, I can limit an object’s calculations when it is not visible on screen, when it isn’t used, or even by caching part of the calculations that won’t need to be recalculated every single frame.

In order to figure out the elements that took up too much resources, I’ve been using Unreal Insights, an Unreal Engine tool that allows me to track every game’s call.

This is what happens through the display of a single frame in VR on my personal computer.

Engine Frame Tick

Every frame lasts for 16.6ms since I am limited to 60 frames a second.

Without this limit, we can see that I will be at 12ms, around 82 frames a second, which is still not enough for VR, especially considering my CPU that is quite powerful.

I will need to keep working on CPU usage optimization over the development of future versions.

 

Game Settings

DirectX

In order to exploit Unreal Engine 5’s new technologies, I’ve moved onto DirectX 12 starting from v0.4.4. However, DirectX 12 is somewhat unstable on small configurations. I have received lots of feedback regarding crashes that were related to DirectX 12.

[DX12_Crash.png]

DX12 Crash

Since DirectX 12 is not mandatory for the time being, the game will launch, by default, on DirectX 11 for v0.4.4.2

It will still be possible to switch to DirectX 12 using the game’s graphical settings and restarting MMVS.

DirectX 12 will be the default again at some point, but only when it becomes necessary to do so. I will also update the minimal hardware reuirements when this happens.

Hardware Ray Tracing

If you play on the desert map, or enforce Lumen’s rendering, it is possible to enable ray tracing.

In most cases, this has little impact in-game, outside of Talas’ shoes.

Temporal Upsample

I’ve deleted the temporal upsample option. This is now enabled by default when setting up antialiasing over TSR (Temporal Super Resolution)

Keep Settings Popup

The graphics menu now displays a confirmation panel asking you for confirmation before saving your changes.

[KeepSettingsPanel.png]

Keep settings panel

This is useful to avoid resetting all of your saves and settings in the situation where a changed graphical option crashes the game.

 

Run Time Path Tracer

I did a few tests and updated some scripts to better support real time Path Tracing. The most blatant example was the sky that became dark in the previous version.

[PathTracedShoes.png]

Path traced shoes

Path Tracing is an option to test this sort of rendering, but it isn’t planned to being used officially in the game. I have opened a page on the game’s GitHub here: https://github.com/xavier150/MMVS/wiki/In-game-PathTracing

 

In Game Tools

In relation to the various optimizations I’ve made, I had to redo some parts of the game’s levels and modified tools used to design levels.

I took this opportunity to make their use more simple. Green orbs, for example, are very tedious to set up, but were even more so in previous game versions.

 

Game Master

I fixed and added options in the Game Master’s menu.

It is now possible to use reactions and make Talas look at your mouse cursor in the 3D space.

 

Talas Sole

I made a small change over Talas’ talons in order to better manage and animate wrinkles over Talas’ sole. It now works more effectively, better, and uses less CPU resources.

To be fair, as I’ve expressed on the Discord server’s WIP channel, I am eager to work on a new character. I have made great progress in the technologies I used to work on Talas, and learned how to exploit them better in game. With a bit of retrospective, I could have done some things differently.

Currently, wrinkles are managed through a material, meaning it is a simple effect on a flat surface. But it would be possible, for example, to manage this with geometry with as little impact on CPU usage as possible.

 

Lumen Level

I updated the desert level to add elements and decorations for Talas to go further and do more things.

Lumen map update

I still consider this level to be a sandbox level, used to test things and play with lights. Talas' house level is much more developed, and the Nano Sole level will also be highly advanced in comparison.

 

Toy Car

With Cavus, I have revised the parameters of the ToyCar.

The car is now much more maneuverable and has a more arcade-like feel, similar to a real remote-controlled car.