Status Report June 2023
Hello there, and thank you so much for checking in!
This month’s Status Report will cover further progress on the next major update, updates to our search system, detailed information on scripting, and new funding!
From the very beginning, ChilloutVR and its services have always been funded by ourselves, our wonderful Patreon supporters, and those who have purchased an unlocked account. Online games like this aren’t cheap to host, and can incur a fairly hefty cost.
We want ChilloutVR to thrive, and really build something great while making sure we can continue to support the hard-working people behind the project for all the time and effort they spend to make it what it is.
Well, we’re happy to announce that Alpha Blend Interactive has secured the funding that enables us to do just that! It will allow for some exciting new opportunities that seemed impossible before. This has been in the works for quite some time, so we’re very excited to finally share this information with you all!
One such opportunity, and foremost on our agenda for quite some time, is converting those who have put their passion into this game and community for many years into paid full-time staff. Their commitment to this project has made it what it is today, and while we know that many things still have to be done in order to make ChilloutVR the platform we want it to be, this is a significant step in the direction of achieving this goal.
Though, we do want to make something very important clear. While this news may raise some concerns, we want to assure our community that we are committed to the goals and direction that have driven us. As such, we have made sure to retain all creative control in the process of obtaining funding.
We hope you’re as excited as us about future prospects afforded to us by these new developments, we certainly don’t want to disappoint. Expect to see much faster development with the increased resources available to us going forward!
We are currently hiring for the position of web designer/web developer. This is a paid position, and those looking to work part-time or full-time are welcome to apply.
Requirements include:
Interested parties can submit their application to [email protected]
Please be sure to include as much information as possible, including a CV.
We will have additional open positions and job opportunities again in the future, so keep an eye out for those.
We look forward to welcoming new members into our Team!
During the month of May, our development team has made significant progress on fixing many issues and polishing up the game in preparation for the release of ChilloutVR r171! While we generally take this time to highlight some of the more notable changes from recent Experimental versions, because a vast majority of changes introduced were a quantity of minor fixes, we instead recommend reading through the full changelog for ChilloutVR 2023r171 Ex6 in our community Discord if interested. An invite can be found at the bottom of this post.
Other than general fixes, an option to toggle the Video Player Hardware Decoding has been added for compatibility with some hardware and systems. If you are experiencing issues using an AMD GPU with ChilloutVR in worlds with video players, we highly recommend testing this to see if those issues are resolved. If so, please let us know!
Additional modding support for developers was also added by way of the Game Event System, which makes it easier for modders to add listeners for certain callbacks, and the Mod Network, which was discussed in detail in the May Status Report. More information and documentation will be available at a later date!
Back in December, we announced our intention to move ChilloutVR from OpenVR to OpenXR due to the deprecation of the former. Unfortunately, issues were found during development which were not be ideal for some VR setups. Such issues are why the SteamVR release of ChilloutVR will continue to use OpenVR for the foreseeable future. However, we still plan to implement OpenXR for hardware and platforms that have better support for it in the future.
We will continue to look into these issues over time; but currently OpenVR poses no issues for the game, and so the decision was made to postpone it’s replacement in favor of focusing our resources on more crucial tasks required for the release of r171.
We heard you wanted some improvements to searching, so we put more search in your search!
Search results have now been expanded from 30 to 100!
Now, it’s much easier to find what you’re looking for; whether it be avatars, worlds, props, or even users with a larger variety when searching via the in-game Search menu. If you were experiencing difficulty looking for something in particular before due to the limited results, you may have better luck!
In the future, we plan to support paginated results and filtering by tags, author, and more! This means that results will be divided into pages instead of one singular long page, as well as more refined searching filters, so it will be much easier to find exactly what you’re looking for!
With the move from Unity 2019 to Unity 2021 comes a new rendering method named Single-Pass Stereo Instanced, or SPSI for short. This significantly optimizes draw-calls by only rendering a mesh once for both eyes rather than once per-eye, essentially cutting the amount of draw-calls required to render an object in half in most situations. This results in reduced CPU and GPU load for better performance.
Read up on it here: https://docs.unity3d.com/2019.4/Documentation/Manual/SinglePassInstancing.html
While that was a very brief explanation on the topic, it should more or less give you an idea of the kind of performance improvements that can be expected with this upgrade. But what does it have to do with legacy content? Well, there are a couple of caveats. First, the old rendering method, Single-Pass, no longer exists in Unity 2021 and beyond. Second, shaders being used must support this new rendering method for it to be properly rendered in VR. If not, a mesh using an incompatible shader will only be visible in one eye. This means that any old content using outdated, incompatible, shaders will not display correctly if left alone.
Shader developers will likely be able to update their content by using the information contained in the documentation linked above, but considering a vast majority of users are using publicly released shaders, what can you do? Well, to start preparing ahead of time, we recommend that creators check all of their uploaded content using the current Experimental branch of ChilloutVR in VR mode. This can be accessed via information posted in the Experimental section of our community Discord. If everything looks good, then there’s no need to worry! Some public shaders already have support for SPSI, but others may not. In which case, you may need to update, modify, or change the shader being used.
Currently, we are working on ways to remedy this issue as much as possible by analyzing outdated shaders and replacing them automatically.
Please keep in mind that this is by no means a perfect solution. It is still recommended to update your content with CCK 3.5 (when available) if possible, even if there are no noticeable issues.
For ChilloutVR, we’re working on Lua as our first client-side scripting language so that users can add new scripted behaviors to props, avatars, and worlds. We would like to add additional languages in the future and have written it to be modular enough to accomplish this. While we could have opted for a more complex, custom solution like some other games have chosen to do, we decided that it would have increased development time and introduced too many moving parts to a game of our scope and team size. Lua has been used for embedded scripting for a long time, meaning that it’s had time to mature, has a large support base, and - most importantly – can be customized later on if we feel the need to.
Users new to Lua, and software development in general, may find these first steps challenging; so we plan to offer more accessible methods via in-game scripting and editing. This will allow for a whole new level of creative freedom and expand upon what is currently possible to create new and enjoyable experiences.
ChilloutVR is using a Lua implementation called “MoonSharp”, which has a few minor differences from its ancestral C implementation. While we’d like to expand upon what these exact differences are, we’re still in development, and there may be updates to MoonSharp or CVR’s implementation that resolve or at least mitigate some of the more problematic ones in the future. We don’t want to tell users to prepare for something we aren’t certain of. The biggest reason behind using MoonSharp, though, is that its implemented in C#, and has Unity support, so integration with Unity is much more simple. That fact allowed us to automate much of the task of exposing CVR and Unity to Lua scripting.
Making use of CVR’s Lua scripting will be just like putting together MonoBehaviours in Unity: You tell the game what information your script needs in the game (in terms of standard Unity messages or CVR events and schedulers), and you can choose how to react to those events by interacting with standard Unity structures, or by calling some simplified APIs we provide for things such as requesting players in the instance, or which props are currently spawned. All scripting is done in the editor for now, but we have some ideas on how to provide in-game editing and debugging in the future. We will also be providing full wiki-based documentation and even LuaLS-compatible auto-complete libraries for your favorite IDEs.
To prevent any security issues, many methods and properties are blocked from being accessed by Lua by an allowlist. If a script attempts to access something that has not specifically been permitted, CVR will throw an exception explaining the problem and halt execution of the script. Access restrictions will vary based on whether your script is being run on a world, prop, or avatar. These restrictions are documented, including in auto-complete. We’ve also implemented additional checks for things like infinite loops and rendering calls that take too long.
For scripts that need to interact with other scripts, we’re working on a system similar to the Mod Network that we’re tentatively calling Script Network. It is still early in development, but will allow all client-side (and eventually server-side) scripting to be kept in constant communication, so things like HUD indicators and damage can be communicated to other scripts. Our current prototype can broadcast to scripts by the same script type and instance ID, all scripts with the same script ID, or even all scripts in the instance.
There’s much more we can show off here, like how scripts can be directly linked to avatar, prop, or world objects/components, but there’s still much to be done. Stay tuned for further updates, and we appreciate your feedback on the feedback site!
Find us on social media with the links below:
Discord: https://discord.gg/abi
Twitter: https://twitter.com/AlphaBlendNET
YouTube: https://www.youtube.com/channel/UCl8toTHzEER6PXoJyZcTFjg
Reddit: https://www.reddit.com/r/ChilloutVR/
Like every company, we need financial support to be able to push updates and improve our product. We are grateful for every bit of support we get.
If you want to support us you can do so here:
https://www.patreon.com/AlphaBlendInteractive
We are more than thankful for your support!
Use the link above to join our discord server and get in touch with our wonderful community, get help with creation-related topics and find people to play with.
This month’s Status Report will cover further progress on the next major update, updates to our search system, detailed information on scripting, and new funding!
Funding
From the very beginning, ChilloutVR and its services have always been funded by ourselves, our wonderful Patreon supporters, and those who have purchased an unlocked account. Online games like this aren’t cheap to host, and can incur a fairly hefty cost.
We want ChilloutVR to thrive, and really build something great while making sure we can continue to support the hard-working people behind the project for all the time and effort they spend to make it what it is.
Well, we’re happy to announce that Alpha Blend Interactive has secured the funding that enables us to do just that! It will allow for some exciting new opportunities that seemed impossible before. This has been in the works for quite some time, so we’re very excited to finally share this information with you all!
One such opportunity, and foremost on our agenda for quite some time, is converting those who have put their passion into this game and community for many years into paid full-time staff. Their commitment to this project has made it what it is today, and while we know that many things still have to be done in order to make ChilloutVR the platform we want it to be, this is a significant step in the direction of achieving this goal.
Though, we do want to make something very important clear. While this news may raise some concerns, we want to assure our community that we are committed to the goals and direction that have driven us. As such, we have made sure to retain all creative control in the process of obtaining funding.
We hope you’re as excited as us about future prospects afforded to us by these new developments, we certainly don’t want to disappoint. Expect to see much faster development with the increased resources available to us going forward!
Now Hiring!
We are currently hiring for the position of web designer/web developer. This is a paid position, and those looking to work part-time or full-time are welcome to apply.
Requirements include:
- 2-3 years of experience in HTML, CSS, and JavaScript
- Experience in designing websites from scratch
- Ability to work as a team
- Able to attend meetings and conferences during German work hours
- Strong interest in the growth of ChilloutVR
Interested parties can submit their application to [email protected]
Please be sure to include as much information as possible, including a CV.
We will have additional open positions and job opportunities again in the future, so keep an eye out for those.
We look forward to welcoming new members into our Team!
r171 Progress Update
During the month of May, our development team has made significant progress on fixing many issues and polishing up the game in preparation for the release of ChilloutVR r171! While we generally take this time to highlight some of the more notable changes from recent Experimental versions, because a vast majority of changes introduced were a quantity of minor fixes, we instead recommend reading through the full changelog for ChilloutVR 2023r171 Ex6 in our community Discord if interested. An invite can be found at the bottom of this post.
Other than general fixes, an option to toggle the Video Player Hardware Decoding has been added for compatibility with some hardware and systems. If you are experiencing issues using an AMD GPU with ChilloutVR in worlds with video players, we highly recommend testing this to see if those issues are resolved. If so, please let us know!
Additional modding support for developers was also added by way of the Game Event System, which makes it easier for modders to add listeners for certain callbacks, and the Mod Network, which was discussed in detail in the May Status Report. More information and documentation will be available at a later date!
Back in December, we announced our intention to move ChilloutVR from OpenVR to OpenXR due to the deprecation of the former. Unfortunately, issues were found during development which were not be ideal for some VR setups. Such issues are why the SteamVR release of ChilloutVR will continue to use OpenVR for the foreseeable future. However, we still plan to implement OpenXR for hardware and platforms that have better support for it in the future.
We will continue to look into these issues over time; but currently OpenVR poses no issues for the game, and so the decision was made to postpone it’s replacement in favor of focusing our resources on more crucial tasks required for the release of r171.
Expanded Search Results
We heard you wanted some improvements to searching, so we put more search in your search!
Search results have now been expanded from 30 to 100!
Now, it’s much easier to find what you’re looking for; whether it be avatars, worlds, props, or even users with a larger variety when searching via the in-game Search menu. If you were experiencing difficulty looking for something in particular before due to the limited results, you may have better luck!
In the future, we plan to support paginated results and filtering by tags, author, and more! This means that results will be divided into pages instead of one singular long page, as well as more refined searching filters, so it will be much easier to find exactly what you’re looking for!
Legacy Content
With the move from Unity 2019 to Unity 2021 comes a new rendering method named Single-Pass Stereo Instanced, or SPSI for short. This significantly optimizes draw-calls by only rendering a mesh once for both eyes rather than once per-eye, essentially cutting the amount of draw-calls required to render an object in half in most situations. This results in reduced CPU and GPU load for better performance.
Read up on it here: https://docs.unity3d.com/2019.4/Documentation/Manual/SinglePassInstancing.html
While that was a very brief explanation on the topic, it should more or less give you an idea of the kind of performance improvements that can be expected with this upgrade. But what does it have to do with legacy content? Well, there are a couple of caveats. First, the old rendering method, Single-Pass, no longer exists in Unity 2021 and beyond. Second, shaders being used must support this new rendering method for it to be properly rendered in VR. If not, a mesh using an incompatible shader will only be visible in one eye. This means that any old content using outdated, incompatible, shaders will not display correctly if left alone.
Shader developers will likely be able to update their content by using the information contained in the documentation linked above, but considering a vast majority of users are using publicly released shaders, what can you do? Well, to start preparing ahead of time, we recommend that creators check all of their uploaded content using the current Experimental branch of ChilloutVR in VR mode. This can be accessed via information posted in the Experimental section of our community Discord. If everything looks good, then there’s no need to worry! Some public shaders already have support for SPSI, but others may not. In which case, you may need to update, modify, or change the shader being used.
Currently, we are working on ways to remedy this issue as much as possible by analyzing outdated shaders and replacing them automatically.
- Any content uploaded using CCK 3.3 and below will have their shaders replaced
- This is because SPSI shader variants were ignored before CCK 3.4, even if supported
- This is because SPSI shader variants were ignored before CCK 3.4, even if supported
- Shader replacements will be matched as accurately as possible, otherwise Standard is used
- Content with replaced shaders will display an icon on the content’s Details page
Please keep in mind that this is by no means a perfect solution. It is still recommended to update your content with CCK 3.5 (when available) if possible, even if there are no noticeable issues.
Scripting
For ChilloutVR, we’re working on Lua as our first client-side scripting language so that users can add new scripted behaviors to props, avatars, and worlds. We would like to add additional languages in the future and have written it to be modular enough to accomplish this. While we could have opted for a more complex, custom solution like some other games have chosen to do, we decided that it would have increased development time and introduced too many moving parts to a game of our scope and team size. Lua has been used for embedded scripting for a long time, meaning that it’s had time to mature, has a large support base, and - most importantly – can be customized later on if we feel the need to.
Users new to Lua, and software development in general, may find these first steps challenging; so we plan to offer more accessible methods via in-game scripting and editing. This will allow for a whole new level of creative freedom and expand upon what is currently possible to create new and enjoyable experiences.
ChilloutVR is using a Lua implementation called “MoonSharp”, which has a few minor differences from its ancestral C implementation. While we’d like to expand upon what these exact differences are, we’re still in development, and there may be updates to MoonSharp or CVR’s implementation that resolve or at least mitigate some of the more problematic ones in the future. We don’t want to tell users to prepare for something we aren’t certain of. The biggest reason behind using MoonSharp, though, is that its implemented in C#, and has Unity support, so integration with Unity is much more simple. That fact allowed us to automate much of the task of exposing CVR and Unity to Lua scripting.
Making use of CVR’s Lua scripting will be just like putting together MonoBehaviours in Unity: You tell the game what information your script needs in the game (in terms of standard Unity messages or CVR events and schedulers), and you can choose how to react to those events by interacting with standard Unity structures, or by calling some simplified APIs we provide for things such as requesting players in the instance, or which props are currently spawned. All scripting is done in the editor for now, but we have some ideas on how to provide in-game editing and debugging in the future. We will also be providing full wiki-based documentation and even LuaLS-compatible auto-complete libraries for your favorite IDEs.
To prevent any security issues, many methods and properties are blocked from being accessed by Lua by an allowlist. If a script attempts to access something that has not specifically been permitted, CVR will throw an exception explaining the problem and halt execution of the script. Access restrictions will vary based on whether your script is being run on a world, prop, or avatar. These restrictions are documented, including in auto-complete. We’ve also implemented additional checks for things like infinite loops and rendering calls that take too long.
For scripts that need to interact with other scripts, we’re working on a system similar to the Mod Network that we’re tentatively calling Script Network. It is still early in development, but will allow all client-side (and eventually server-side) scripting to be kept in constant communication, so things like HUD indicators and damage can be communicated to other scripts. Our current prototype can broadcast to scripts by the same script type and instance ID, all scripts with the same script ID, or even all scripts in the instance.
There’s much more we can show off here, like how scripts can be directly linked to avatar, prop, or world objects/components, but there’s still much to be done. Stay tuned for further updates, and we appreciate your feedback on the feedback site!
Final lines & social links
Social media
Find us on social media with the links below:
Discord: https://discord.gg/abi
Twitter: https://twitter.com/AlphaBlendNET
YouTube: https://www.youtube.com/channel/UCl8toTHzEER6PXoJyZcTFjg
Reddit: https://www.reddit.com/r/ChilloutVR/
Support Alpha Blend Interactive
Like every company, we need financial support to be able to push updates and improve our product. We are grateful for every bit of support we get.
If you want to support us you can do so here:
https://www.patreon.com/AlphaBlendInteractive
We are more than thankful for your support!
Not on our Discord server yet?
Use the link above to join our discord server and get in touch with our wonderful community, get help with creation-related topics and find people to play with.