Ys VIII: Lacrimosa of Dana for Steam Progress update

Hello everyone. We have a message from the VP and COO of NIS America, Mitsuharu Hiraoka regarding an update on the Steam version of Ys VIII: Lacrimosa of DANA.

Hello all,

We hope that you have been doing well.

We have been hard at work on the optimization of the PC version of Ys VIII: Lacrimosa of DANA and would like to share with you our progress. We apologize for the long delay since our last communication.

To begin, as previously indicated in our last blog entry, we have started working with an outside developer, Rob Wyatt from Tin Giant. Rob Wyatt is an expert in GPU Hardware and 3D graphics and has worked at all levels of the graphics stack from applications to hardware design. He has worked on DirectX and the Windows kernel, and while at Microsoft was the system architect of the original Xbox. Rob contributed to the graphics architecture of the PlayStation 3 and more recently was the graphics architect at the highly secretive MagicLeap.

Outside of platform architecture, Rob has helped to optimize many games and game engines on various platforms. He was a founding member of the Sony ICE team and has worked with many AAA teams such as Naughty Dog and Insomniac. Outside of games, he has worked in VR and AR as well as offline rendering, image processing, movies and special effects. We are incredibly excited to be working on him and there has already been tremendous progress made with his work in regards to performance.

While optimization work is still ongoing, we are planning to launch the game in April, as our president Takuro Yamashita mentioned in a recent interview.

Please see below for some notes from Rob on technical issues.We will update you again soon with a release date and further information on technical details.

Thank you very much again for your patience during this process.

Mitsuharu Hiraoka
VP and COO


Major changes:
Updated to DX11.1 (from DX10)
We have found great technical solutions to performance issues, resolving most of the troubles we previously had, but this necessitates the update to DX11.1.

Technical notes:
Removed texture samplers being created on the fly. Every material texture has its sampler state prebuilt and included in the material texture. This is passed all the way through the DX11.1 renderer. Textures that don't use materials but instead use the game render state system have the samplers cached for most states Please note: there are some states that will use the old code path and create samplers on the fly. For 99% of textures, this is not the case. This removed thousands of API calls from the draw threads.

Vertex shaders have been optimized so all constants are in a single buffer, other than ones which remain in their own buffer. This makes the shaders more efficient and also means there are fewer API calls to set the constant state as we now set one buffer instead of 5-10 per draw call.

Now that vertex shader constants are set in a single block, they can be allocated from a heap in constant buffer format and set all at once. There is a single buffer at the start of the frame and the 'UpdateSubResource' calls per draw call have been removed. This is what requires DX11.1.