Virtual Reality Support in Evochron Legacy and Arvoch Alliance

Tips, tactics, and general discussion for Evochron Legacy.
Locked
User avatar
Vice
Administrator
Administrator
Posts: 11617
Joined: Fri Apr 25, 2003 1:38 am
Contact:

Virtual Reality Support in Evochron Legacy and Arvoch Alliance

Post by Vice »

Here are some details on the unsupported/experimental VR mode Evochron Legacy SE (and its companion game, Arvoch Alliance SE) has in a central location that I may update from time to time should conditions and/or options change. First, here are several occasional questions with answers and related information:


- What is the status of VR in Evochron Legacy SE (and its companion game, Arvoch Alliance SE)?
> There is currently (as of this writing) an unsupported experimental VR option for OpenVR/SteamVR available as one of the screen modes (Main Menu > Options > Screen Mode). However, it's not supported and may have issues. I have been experimenting with VR for a long time with interest in wanting to add it to the game (since 2014 back in the later stages of its development), but problems repeatedly continued to surface which kept it from advancing to some kind of official option. One example was when support for the game's multi-threading mode for delay handling was removed from the SteamVR API (resulting in a forced '...' wait screen). The original VR system was also broken entirely twice outside of my control since the game's release in 2015. And if things change or continue to break that are beyond my control, development platform limitations restrict what I can do (and there are currently several), feedback on performance and functionality is negative or mixed, and/or other problems continue or surface, it may never become something that's officially part of the game. There is also a chance that future changes outside of my control may permanently break functionality and the option may just be removed from the game at some point. The VR system has already been through several API version updates and a complete rewrite to a different platform in efforts to keep it working. That may not always be a practical option in the future. So no one should count on a VR option to ever officially become part of the game nor remain functional in the game as it may be removed or broken at any time. At the time of this post though, an unsupported and experimental VR mode is available using SteamVR.


- Are there adjustable options for the VR mode?
> Adjustable options are available via a 'vrsetup.txt' file that can be placed in the game's install folder inside the '\media' folder. A sample file is included with the game in the '\media' folder using '-bak' characters in its filename. You can simply rename this file to 'versetup.txt' to newly install it or copy over new lines to edit or update an existing file that may already be in place.


- What game settings are recommended for the VR mode?
> As anyone who has used VR much in the past knows, rendering to an VR HMD can be a performance heavy task. Games can often automatically change settings internally to try and optimize framerate performance in efforts to maintain the minimum needed for the HMD, often 75-90 FPS or higher. Evochron Legacy and Arvoch Alliance do not automatically change detail settings when the VR mode is active, so whatever detail settings you select will apply in either a standard display mode or the VR mode. If you encounter performance problems, there are several settings you can change to help optimize framerate performance. Reducing the Shadow Detail and/or Effects Detail setting can significantly improve the framerate. If you are encountering problems near planets, you can change the Terrain Detail setting to 'Low' or lower the Terrain Update setting to improve performance in those areas. If further performance improvements are desired, you can adjust settings using the 'vrsetup.txt' file option referred to above. Otherwise, you will likely need a strong system capable of running the game at a desired level of detail and minimum target framerate, especially in higher detail areas such as near planets and asteroid fields.


- Why is VR not officially supported and only experimental?
> The more dependent something in the game is on third party code that I have no control over, the more likely it will be considered 'unsupported' and 'experimental' (especially when that something has already broken and stopped working multiple times). Because of my past experience in trying to implement support for VR since 2014, which includes unwanted changes and removal of functionality in API's outside of my control, a required rewrite of the entire system, costs/expenses, development platform limitations, relatively low image quality required by current HMD output displays, performance limitations, and other problems, VR has never been listed as a supported feature for the game. Such issues are also why the game is not tagged or listed as officially supporting VR. Any potential support for it has always been in doubt and only ever experimental because of my experiences with the technology along with the track record of the software and entities behind it. I spent a lot in the effort to attempt to implement it. I hired two people and worked for many months on it. So it's something I devoted a lot of resources to and invested heavily in. I am still interested in trying to continue to support it, but the more things that have been broken or became unreliable, the less practical/possible it has been to support it. If things improve, then I'll likely keep trying. If not or they get worse, then it will likely not be practical, feasible, or even possible to implement a compatible system up to the performance and functionality standards I expect of it.

In order for me to consider VR for official implementation, it needs to be dependable long term and not continue to drop compatibility/functionality after API updates. The game's support for VR has been completely broken twice since its launch because of changes outside of my control involving an API provider removing functionality that previously existed. A VR mode will also need to meet my personal expectations and standards, I won't want to officially implement support for something that I can't depend on long term, doesn't provide required levels of visual detail necessary to read displays and see the game at a minimum level of visibility I expect, and/or doesn't keep up with the resource demands of the game. I will only be willing to reduce detail (which is already limited for optimal performance) and/or simulation operations to a certain point in order to accommodate the limitations required by VR devices for proper judder free movement and image quality.


- What are the chances VR will continue to be supported in the game?
> Based on past core changes outside of my control that have repeatedly broken or hindered development for such technology, it had become less and less practical to support VR over time. I won't be surprised if something else breaks yet again in the future, further moving toward eliminating the chance of official implementation. It's kind of a wait and see prospect for me at this point. While it technically 'works' at the moment, I don't really like how it functions and I don't like how certain things are no longer available to me to resolve issues that keep it from being a better option. One example is having to choose between enabling the VR mode on demand which risks a mismatch with a process subname (causing VR to fail to start) or force launching VR every time the game launches even when VR is not wanted (which is an absurd behavior to me). So it will remain unsupported and experimental indefinitely. I don't anticipate any pending changes to the system. So if the SteamVR API continues to work as it does at the time of this writing, it will at least likely remain 'functional'.

I'm currently waiting and watching to see how it develops while monitoring its stability and reliability. For now, VR will likely remain as-is with the chance of being removed if things do not improve, something breaks, and/or it receives negative feedback. Currently, there have been too many reports of problems and/or inconsistencies with certain configurations that are apparently outside of my control to fix. Problems may also surface in the future that aren't fixable in the custom systems I am using. So I'll see how it goes over time, then I'll likely decide to remove it, continue with the experimental condition, or have it be something more officially supported. For now, consider the game a standard display title only. It may have an experimental VR mode at this point, but it may break or change how it performs at any time (for reasons that are outside of my control, as it has already done so repeatedly in the past) and its future is uncertain, so I would not recommend buying the game if you expect full VR support.


- Will there be future updates to the VR system?
> Unknown at this point, it will depend on what/if changes are made to the API in the future and what they are. If I can adapt the game's engine/systems to accommodate API changes within the limitations and confines of the development platform I use, then there may be updates to retain compatibility and possibly improve the system. If not, then there won't be updates. No one should count on updates or continued support for VR in the game at this point. If you are weighing whether or not to buy the game based exclusively on its support for VR, I would suggest -not- buying the game since the future of VR support in it is in doubt and uncertain. Consider the game a standard display supporting title only at this stage.


- Are VR controllers supported?
> As of build 2.0188 for Evochron Legacy SE and 2.1788 for Arvoch Alliance SE, yes, for basic menu and flight controls. A HOTAS/joystick, mouse, and keyboard are still highly recommended though.


- I'm unable to launch the VR mode ('unable to initialize VR runtime' error message), even after selecting it as the Screen Mode and/or enabling it through Steam?
> This may happen on some system configurations that alter a default task sub-process name that SteamVR depends on. The 'vrmonitor.exe' task is normally linked to a sub-process name of 'SteamVR Status'. However, on systems that are set to a different language mode in Windows, SteamVR or its associated dependencies may alter the sub-process name. For example, Portuguese might change the name to 'Status SteamVR' while French might change it to 'État de steamVR'. As there is no consistent way to predict or account for all potential alterations, this can result in the process not being found when the game sends out the request to activate the VR mode, resulting in the error message. There are two possible solutions for this issue. First, open the ‘VRMode.txt’ file located inside the game’s install folder in a text editor and change line 2 ('SteamVR Status') to match whatever the process name has been changed to as displayed in task manager (click on the '>' symbol next to 'SteamVR' to open the list of linked processes). Once that's done, save the file and restart the game to test for changes. You can also optionally change the first line in the 'VRMode.txt' file to a value of 0 to bypass the startup check that depends on the sub-process name. However, this last step will likely force activate SteamVR every time you launch the game, even if you start the game in a non-VR mode.


News/Notes:
___________________________________________________________________________________________

Edit Feb-18-2017: Update 1.0518 - Experimental VR system now set to disable the multi-threaded frame update system by default to accommodate forced changes in SteamVR that broke the system.

Edit Jan-8-2018: Update 1.0788 - The VR system has been updated in efforts to improve overall movement response performance and to reduce judder effects.

Edit Feb-17-2018: It would appear a recent SteamVR update from Valve may have broken the standard shutdown call EL and AA use (at least on some systems), causing the game task to remain stuck upon exit. I am looking into it and if a future SteamVR update doesn't solve the issue, I'll try to have a work around solution within the games for their next updates. For now, anyone encountering the problem can close the game task down manually in task manager or press Alt-F4 to exit the game from the main menu rather than use the Exit button. Yet again, this is another example of why the VR system remains experimental and unsupported.

Edit Mar-28-2018: I've changed the VR shutdown procedure in both EL and AA to bypass the standard method, which prevents the game from being trapped and unable to completely shut down upon exit. Also, it appears other changes in the SteamVR API have introduced potential flickering on some system configurations (primarily in the right eye). Not sure yet what caused this, but it may be related to some kind of reduction in performance reported by players using VR in other games. So I'm developing a new dynamic frame timing mechanism that will attempt to remedy the issue from within the game automatically. If things stay on track, both changes should be available in the next planned update.

Edit May-7-2018: EL version 1.0808 is available for download and includes some scaling changes, new scaling options in 'vrsetup.txt', and a new timing mechanism for FrameTimer that should help reduce flickering/flashing issues that could occur on lower performance systems apparently as a result of changes made to the SteamVR API in recent updates. An update to AA with the same changes is planned for the near future.

Edit May-10-2018: AA version 2.0708 is available for download and includes the same changes as the recent EL update.

Edit July-8-2020: Arvoch Alliance SE has officially been launched and includes a new VR system based on the Vulkan API that the game uses. Please report any problems as well as positive results to me directly via e-mail ( starwraith.com > contact ) with details on the system configuration you are using. If a future update becomes available for Evochron Legacy that also uses Vulkan, this is the same VR system it will also incorporate.

Edit February-28-2021: Evochron Legacy SE has been launched and includes the new VR system based on Vulkan previously introduced with Arvoch Alliance SE. The revised options in the 'vrsetup.txt' file have been updated at the link above.

Edit May-2-2021: As of Evochron Legacy version 2.0188 and Arvoch Alliance SE version 2.1788, the VR system now supports compatible VR controllers. Configuration options in the 'vrsetup.txt' file have also been expanded. Details are available in the changelog notes: viewtopic.php?p=197145#p197145

Edit June-28-2021: It's been discovered that the process name for SteamVR may be altered on some setups using certain languages. For whatever reason(s), the process name for 'SteamVR Status' may be changed to 'Status SteamVR' in some language modes in Windows/Steam. When this happens, it breaks the process link between SteamVR and the game, causing the game to report being unable to initialize the VR runtime. To work around this issue for the time being, open the ‘VRMode.txt’ file located inside the game’s install folder in a text editor and change line 2 ('SteamVR Status') to match whatever the process name has been changed to as displayed in task manager (click on the '>' symbol next to 'SteamVR' to open the list of linked processes). It seems most of the time, the name is just flipped, so the value would be 'Status SteamVR'. Once that's done, save the file and restart the game to test for changes.

Edit July-14-2021: Evochron Legacy SE version 2.0208 is now available and introduces a point menu for VR controllers as well as a number of other improvements and new control options. This update also includes automatic checking of the 'Status SteamVR' process name related to the issue reported earlier. If a player runs in to issues getting the VR mode to initialize due to an altered process name, they can also change the '1' in the first line of the 'VRMode.txt' file to '0' and that should allow the VR mode to initialize regardless of what SteamVR changes the process name to.

Edit February-7-2022: The VR system has been updated to narrow the click/select range to the message log area for advancing training stages, allowing access to the holographic VR menu options for controllers without advancing the training stage. Both controllers can now also be used to select options while in point mode (left will override right if both are in point mode at the same time). New bypass and mode cap settings have also been added to the 'vrsetup.txt' file options. Check the revised 'vrsetup-bak.txt' file included with the game for details.

Edit May-4-2022: I'm working on revising many of the available setting options for VR controllers to support customizing axis inputs for flight controls and resetting/preserving values when a controller is switched out of a flight mode. Additionally, I've also been working with an Oculus Rift S user to narrow down more specific button options. The results of those efforts have provided the following values for control inputs with those devices (optional beyond other control input values):
Triggers - Button Index 33
Grips - Button Index 34
Thumbsticks - Button Index 32
Left X - Button Index 7
Right A - Button Index 7

These values can be used in place of existing values for any button input option in the 'vrsetup.txt' file.

Edit September-28-2022: By request, work is being done to change the way the viewpoint moves with head rotation for improved alignment across the entire range of scaling settings and results in test builds have been positive. A new option is also being added to support adjusting the movement rate of cockpit structures relative to control input and ship motion. While this is primarily being developed for VR users, it will also be adjustable for non-VR users as well. These are in development for the next planned update.

Edit October-3-2022: Evochron Legacy SE version 2.0388 and Arvoch Alliance SE version 2.2088 has been released. VR viewpoint movement has been recalibrated to better align with the entire range of scaling settings and a new text file option has been added to support changing the rate of movement for cockpit structure relative to control input and ship motion.
StarWraith 3D Games
www.starwraith.com | www.spacecombat.org
3D Space Flight and Combat Simulations
Locked