Chime VR Demo
Chime VR Demo

March 2022 (Ongoing) c# directx 11 virtual reality

Chime is my project to learn how to implement a VR game from the ground-up.

Chime logo

WIP video:

I chose C# as the development language because the focus of Chime is on learning, and C# is much more conducive to rapid prototyping and development than, say, C++. For example, I absolutely do not trust std::string to generally behave well, while System.String just works. Also, C# has greatly improved its performance in real-time scenarios in the past few years, including adding a robust SIMD math library in System.Numerics and introducing the Span<T> paradigm for effective array management.

However, choosing C# did mean that I had to lean on third-party bindings for native libraries I needed to use. Thankfully, the .NET ecosystem is quite expansive and most projects have some form of bindings out there.

I have initially built Chime on the OpenVR API. However, OpenVR is being retired in favor of OpenXR, and is showing its age in certain pain points. Somewhere down the road I should modernize the VR support by porting Chime to OpenXR.

I have laid out procedural audio synthesis as a design goal for Chime. This will be great to learn because I haven’t really done any audio synthesis development before.