Glass!
Glass is something we’ve talked about a whole lot over the years. It’s been one of the most consistent requests from creators, brought up in every Q&A, and is something we’ve wished for on the team as well. We’re super excited to finally give our creators an easy and fully-supported way to make windows and water and more, without a giant martini glass or hacky strings of CSS.
For more info on how to use the new glass prop, check out:
We put a lot of love into this little cube, and we can’t wait to see what you make with it! But I know glass has been a long time coming, and it looks a little different than what we said we were shooting for, so I wanted to talk a little bit about why we’ve made the decisions we have, and what we hope for in the future.
Under the hood
We’re doing a little bit of movie magic here to make sure the glass looks nice and shiny everywhere. Some of our base rooms have lush, detailed reflection information built into them from their RRO days...and some of them don’t, because we don’t know what you’re going to build! But a reflective material only looks as nice as what it’s reflecting, so the glass was looking pretty flat in the Maker Room at first.
We don’t want a reflection that’s blatantly fake - but we don’t want it to be empty, either. So as part of our fancy shader, we’re piping in a little bit of nonsense data that will mix with the colors from the SkyDome chip in the Maker Room. Just enough noise to give it some gleam!
Accurate reflection, and fake, respectively!
Why isn’t it a material?
We’ve had a lot of people ask us for glass as a material, and in fact that was our initial approach! Unfortunately, we ran into some issues with it.
When we were talking about glass last fall, we were also exploring ways to make our maker pen geometry render faster. We had high hopes for this work, and among other things, we were trying to solve one of the most pernicious problems with transparent shapes: sort order. (Bet you thought I was going to say performance!)
Roughly speaking, objects are drawn each frame in order from furthest away to nearest, based on their center, so that you see closer objects “in front.” Thanks to some shader magic, merging a bunch of maker pen shapes into one shape container makes them all count as one object for this purpose. That’s why it saves you ink!
Drawing things from back to front isn’t always perfect, especially with really big objects. Let’s say you’ve got a house that’s been merged into one shape container, and you make a little table to go inside it. For most of the places inside that house, the center of the house is closer to you than the center of the table. If the “further away” table rendered first, and the “closer” house rendered on top of it, you wouldn’t see the table at all. It might flicker in and out depending on where you walked. The results would be weird and really obviously wrong!
For opaque objects, there’s a “depth buffer” to make sure that if half of an object is hidden by something else, the stuff that’s hidden doesn’t get drawn, no matter which object is actually closer to you. This depth data means that it doesn’t really matter what order things get drawn in, except for optimization.
However, you can’t use this for transparent objects. They have to be drawn back-to-front or they look wrong - since you can see through them, there’s no faking it with a depth buffer. We found ourselves in the situation of having a house with glass windows, with a glass table inside it, and being unable to ensure that they’d draw in the right order.
There are ways to solve this, but unfortunately, we haven’t found a solution yet that runs well on all of our platforms. We aren’t finished exploring rendering options, but it’s a long term effort, and it became clear that waiting would mean you guys had to go much longer without glass. And we really wanted to get you something fun and useful sooner than that!
What’s next for glass?
A real glass material is still on our wishlist! We’re also starting to discuss ways to let creators set up custom reflection information for their rooms, which will improve the accuracy of glass reflections and metallic surfaces, and generally make all of the lighting look nicer. We hope to continue to make glass more expressive, and to that end, expanded configuration options are coming very soon to let you enable decoration mode and remove the collision. And if you have any other glass-related requests, we would love to hear them!
Audio FX zones!
But wait, there’s even more! Also introducing: Audio FX Zones! A resizable gadget that modifies sound within its invisible volume.
One of the delights we’ve had in creating Rec Room quests is the environmental storytelling we get to do. Sound plays a critical role in immersing you in these rooms. We wanted to give you the same power to bring players into special audio environments in your rooms, like how we take you into space in ‘The Rise of JumboTron’ or take you underwater in ‘The Isle of Lost Skulls’.
You now have the ability to make a great throne room with heavy echoes, or a misty field with muffled sounds, or a partially flooded submarine where you move in and out of underwater sections and metal corridors with creepy reverb.
To enable this, we’ve included our first implementation of Audio FX zones. Using the maker pen you can find Audio FX Zones in the ‘gadgets’ and then ‘other gadgets’ section. One of our use cases for the Audio FX Zones has been to let you tell the story of a complex place through how it sounds, which means you need lots of capability with the shape of the volume.
You can use all of your regular tools to scale, move, and rotate volumes to fit most spaces. We’ve also added in the ability to make spherical Audio FX zones so you can fit curved spaces as well.
Sometimes, you’ll find yourself overlapping these zones, which is why we’ve also included a priority section. This will let you set some zones to higher priorities, so in case you’re standing in an overlap, you’ll hear the effects of that zone, over others.
We’re excited to see how you use the different effects, and want to hear what you’d like next!
Learn how to add extra character to your rooms with audio effects by watching a quick tutorial here!
As always, thanks for playing!