All right. Welcome to office hours. Pretty quiet one.
This week, it sounds like no one's got questions.
So for those who don't know, uh, you can drop questions about resonate into the, uh,
primetime 2024 0305 thread, and I'll answer them in the order that they appear.
I don't see any right now,
but I'll go ahead and answer them in the order that they appear.
Um, so starting off, we have, uh what the dog doing So dog sat on my lap.
Um, I did try and not wake them up whilst I repositioned dog Cam. And if that was
successful, you would have had dog Cam, uh,
looking at their bed with them being asleep.
But they've woken up, and now they want something.
They probably want to go out for a peek because I've had a nap for a couple of hours, so
that's that's That's OK. They're gonna have to wait till the office hours.
So they're on my lap chilling out. Yeah, that's the only question I've got so far.
So, uh, hope you're all fine. Hope you're all well,
um,
to keep those questions coming,
let me know. what you wanna know?
Uh, Red 56. Yeah, go ahead. Ask those questions we've got.
Um, you know, a bunch of information here I can share if I have the, uh,
appropriate question.
Uh, OK, here we go. So, Red 56 asks, uh, is making object physics just a component.
I'm not sure entirely what you mean.
If you if if you mean like, making an object a rigid body,
um, then you can't do that right now,
except with the caveat of you can sort of half
do it with a hack with the character controller component.
That's the only physic, uh, physics body that we have.
Uh, if you mean, um making an object, A collider, as in things can collide with it.
So just the floor or other objects for interactivity.
Uh, then, yes. That's just a component called a collider component.
It's like you're not gonna be able to I mean you are
if you use the hacking method of using a a character controller,
but you aren't going to be able to, for example,
spawn out a ball and then have that ball drop to the floor
and bounce around that doesn't exist in resonate currently without that hack,
of course.
So pass cos every time I launch Resonate,
I have to run into a collider for a quick freezing spike and grab onto it for another.
Uh, yeah, that's cool. Pre baking. Um, so we don't pre bake, Um, some of the the stuff.
So when you bump into things like that or interact with an object for the first time,
we stand up a bunch of code that will,
um, make that not happen. But that code is what's causing that hitch.
Uh, we have, um, a
continuing sort of debate amongst the community about whether
we should do that on start up or not.
Um, currently the the team has made a decision to not do that on Start up.
Um, And so there we go. I've just answered ea's
question.
Um,
next up, Admiral Soap. Uh, no, I asked that one.
I've read 56 says, can I only have certain objects collided with each other?
Absolutely.
Uh,
if they have a collider component on them or
I have a character controller component on them,
they will collide beyond that, if the character collider type uh, sorry.
Not the character collider type. If the collider type,
uh, is a specific type,
then they won't interact. It's a little bit more of a complicated question.
Maybe ask what you're trying to do and not like
the parts of the engine that you don't know.
And then and then maybe that might help.
Let's now take a look at, uh So I did the Houston's
question, which is the team have decided that we don't pre bake them right now.
Um, if you'd like us to,
you know, debate that some more. You can open up
a github
issue about that.
Uh, as for
nki, um, Nui
asks, uh, is there a way to quickly get the length between shoulders in a proto
based avatar system installer?
Uh, you mean the distance between the shoulders? Cos absolutely.
You just use body node slot, I think, uh, with an on, uh,
input of left shoulder and right shoulder and use the distance node between them, so
body node, slot, left shoulder, body node, slot, right shoulder distance node.
Uh, euphoria says, speaking of pre baking,
Is it possible to pre bake common data types to prevent freezing the loading?
Their listen to component or frock browser again.
That is a decision that we have made to not pre bake them.
And this one, I actually understand a lot more than the the collider one.
Um, because,
uh, if we pre bake the data types to prevent the freezing,
it assumes that everyone who opens resonate will
have the experience of looking at data types.
And that's incorrect.
Some users open
resite, and they don't do development.
We have, uh, business customers et cetera, that
you know, they don't do development.
The development's done ahead of time, so they don't need to take that, um,
that freezing.
Um,
so we don't pre bake that currently pre baking or
not Pre baking it again is like an item that,
uh
uh, I I is basically up for debate amongst the community and in some cases,
amongst the team.
But right now the team has decided not to pre bake them
so you can go ahead and open up a get up issue.
If you'd like to change that,
um, maybe it'll be something that we include in the setting.
I don't know, but, uh, better to discuss on
github
there so we can get some thoughts in and and see what's going on.
Uh, Red 56 say, say of a world collide with all
and then, uh,
plane that collides with planes and not players and players
collide with the world and some parts of the planes.
Ah, yes, that's all possible.
Uh, I'm not entirely sure what you mean, but it's all possible.
Um, so by default, um,
most worlds that you load into will have some form of ground in the grid space.
It will be the grid in the sort of circular platform.
It'll be the circular platform in someone else's world. It's up to them.
Um, but for a default world, it'll be there. Let's just say it's the grid, right.
The grid itself has got a, um, a collider on it,
which has the carrot collider check box.
Uh, character.
I don't know what the check box is even called these days,
cos it's like muscle memory.
Anyway, there's
a There's a
check box on the collider called like character collider.
And if that is checked on, then, um, players will not be able to, um, pass through it.
Um, they can if they're a no clip But if you're a no clip and then no clip doesn't clip,
um,
so you'll be able to walk on that grid because that's done.
If you spawn a cube like just a default cube or box into, um, Inter
resonate,
it won't have that enabled.
You can go ahead and inspect that cube
and enable character collider on that cube manually.
Or you can use the character collider setter tip, which you can find in, uh, resin
Essentials tools.
I don't remember what we made it look like, because, uh, I don't remember.
It's It's It's like revamp, but it's in there.
Um, just go along the names, and then you shoot the, uh, Cube with that tip,
and it will be collider
collider. Um,
and there you go.
There's a whole host more questions that you probably have about colliders.
So keep them coming in. I'll
answer them as they come in.
All that's done. Uh, Big Red Wolf. He does the session
session. Chechen
Szechuan sauce. Does the session in
component Refresh Or does it only update when a valid session idea is specified?
Let me go ahead and take a look for you. I've got the code base open.
Uh, it should automatically refresh, um, for the session. ID that is provided.
Uh, if it's not, then make sure the session idea is correct. And try changing it.
Basically, we register an event listener, uh,
when the session ID input changes and then that event listener gets
the details whenever they're available from the rest of the engine.
Moving forward to nki.
Who says Relatively speaking, how heavy are resonates collider ALS
compared to each other. So I'm gonna give you the bpu
two, graph that, uh, we float, float around. Cos remember, we use BEP
U two for collisions.
Uh, and just, you know, physics in, in in general.
Uh, what I'm trying to do is find that graph. I have it in,
um, in, uh,
resonate, of course, but I don't have it in, Uh
uh,
Do what a nuts.
Sorry. I just went to, like, be
who's thing. And I got, like, immediately, like pocket.
Saddened by the concept of nuts, they listed it as a feature nuts.
All right, I'll look into that later.
Um,
I don't have the graph. Some of I have the graph. Um,
there's a world I have in, uh,
just
like accidentally,
like, accidentally. Just searched like graph or Google Image Search.
Surprisingly, they didn't give me what I needed.
I'm aware of their, um,
their stuff like the There we go,
Ozzy Got it for Ozy. We're gonna like I'm gonna like
you got a badge today, right?
Helped prime during office hours. Phonograph.
So there's that graph for you.
Um, so you can see there on the graph the, um, cost compared to sphere to sphere.
So sphere, sphere to sphere. Collisions are effectively a distance check, right?
Cos your sphere has a radius.
Um, and so two spheres colliding. It's effectively.
Just like how far are they away from their,
um, uh, their spawn point compared to their radius.
So that's why it's the the cheapest one.
And then you go all the way up to, um, stuff like that.
Now, on that graph, what you see, triangle.
They mean a single triangle and, uh, in meshes.
Remember that the count of triangles is how many,
uh, triangles that you have inside that mesh to say your triangle had 50,000.
You needed to, uh, you know,
multiply the the cost by the 50,000 triangles that you have.
Uh, and that's why you'll see that triangles on this are, um, under convex holes.
Um, because convex holes based on a single triangle
are least performant.
But based on multiple triangles are more performant,
which the graph like showed that,
uh, but yeah, interesting. Um, is sphere convex hull?
But again, that's this convex hole collision.
Uh, but there's the the the graph for you.
Uh, so,
uh, soap said that there were newts in
beu physics's, uh, demos. Yes, I remember the newt model.
Um, but like it's in their feature list, It's like features cool collisions, blah,
blah, blah, blah, and then newts.
So they they might be doing a bit, but I'll I'll have to Look, I'll look later.
Doesn't need to be right now. Uh,
Big Red Wolf. You know it will
update. If the engine has new information, it should update.
If it's not updating, try changing the session. ID
Frooks
is typing. Oh, no. One of my answers might have been incorrect. I'm gonna scream.
Um,
Luke says culling setups, uh,
use deactivation to remove things from processing while
leaving them in ra M for quick access.
uh, would it be possible to also compress the salt content so they take up less ra M?
Uh, I
don't know that area like sufficiently enough to say for certain,
but I know it sort of technically enough to say no.
Um,
we don't wanna be doing that.
Like in some aspects. Yes.
You know, like most video games, they hide loading screens these times like,
for example, in portal.
It's the elevator that takes you between,
uh, between levels.
So what they do there is they just completely remove the level that you were in.
I remember this as well.
By the way, when you when you complain about loading screens in games,
the loading screen has to, like, clear all the memory of the current level
and then load into memory the new level,
and depending on the game,
there will be optimisations there to keep standard assets in.
So, for example, for each level in portal,
you'd probably still need the the texture that goes on walls that you can't portal,
for example.
But you don't need, um
you don't need the mesh of the previous level, for example, so that can be cleared.
That would be how we would probably do it.
And it would probably be sort of like the world, chunking or like system.
I think there's a bit of issue, but, like Fri
has talked about it before. Like,
uh, it comes up a lot when we talk about floating Point,
how we want to sort of chunk up worlds, Uh, in some cases,
and it's also shown in Minecraft a lot.
Um, when you have a Minecraft, uh, map open in Minecraft,
I don't know where else should open a Minecraft map, but there we go.
You can do it in Resonate
uh, there's a chunk distance, which you can specify, which is a setting.
Beyond that chunk distance, the chunks aren't rendered, uh, and beyond,
like another distance.
Probably they're not in memory or something, I don't know,
but we would have to combine it with that chunking based system we wouldn't be able to
like give a preda flux note or something like
compress hierarchy decompress hierarchy like that sort of low
level, um, interaction with the world is something that,
like we'd rather just fix for you, uh, bit correct, says uh,
false concerns about II's recent patch that allows, uh um to run heather.net eight.
Um,
it's a big patch. I have no concerns about it.
One of the things that I like I keep needing to bang
the drum on is like we allow people to do this stuff.
Uh, SI
O did reach out before writing it, and I said,
provided you're not distributing the patched DLL S instead,
contrib like distributing a patcher
that would still be in line with our various agreements. So,
like zero concerns. They could do whatever they want.
Like.net comes out nine comes out tomorrow
or whatever, whatever it comes out, if they patch it to do.net nine. Fantastic.
Um, the important part that you need to remember is just because CYO
did it doesn't mean that we can do it cos we need to do it.
I don't wanna say properly cos that makes Cyrus solution sound bad,
but like properly, Um, yeah,
there's some information there from fruits.
I'll read it out for the benefit of the recording, which is, uh, fruit,
saying we intended to do, uh, we intend to do this at some point, but doing,
uh properly requires some redesign of certain systems,
notably how types are encoded.
The mod gets around this by patching around these things.
But this is hacky and not something we would do officially,
it's essentially a matter of when the type rework ha ends up happening.
But that hasn't been prioritised yet.
Yeah, uh, so remember, if we did the.net eight headless, the, uh,
clients would be running on the.net version that we're stuck on due to unity,
so there would need to be some sort of like layer of translation, right?
We're going from a.net four. I always forget F.
If it's 46 or 4746 set up to a.net eight server.
Um, there's incompatibly
there.
If you're interested in, like, all of the incompatibilities there,
read uh CSIRO's work and see what they're doing.
And you'll see that like it isn't a lot of work,
but the category of work is the problem.
So there we go. I think that, um, that's that sorted.
Red 56 says if I self implemented gravity,
would it be easy to take the ground collision even at high speed?
I do not recommend reim implementing gravity.
Um, at all zero recommendations of doing that.
If you want gravity for players, use our gravity.
And if you want gravity for objects,
use the character to collide a hack or wait for rigid bodies.
Those are literally the two options.
I've seen some people that come into Reina
and they want to like rele
everything. And it's like, Well, we do that for you
Like we we do gravity for you. We do character movement. You don't need to redo that.
You just need to like what I want to figure out. Red is like What you want to do
is a lot easier in some cases than than the sort of question chain that you're on.
Um, so ask what you want to do, and maybe that'll help out.
Uh, euphoria says, Well, join date, badge. Just be able to resonate.
I can't remember the latest discussion on that, but we had a discussion about that,
and there's a internal gup issue about it.
II I cannot remember.
Um,
some things just fall by the wayside because their priority is just, like, so low.
Like adding another badge compared to, you know,
getting everyone off our back about,
uh, motion. Flur priorities are kinda like you know
difficult in that regard,
Uh,
as an additional, um,
information on the whole culling and and memory compressing thing.
You don't want to compress the hierarchy. It would save you very little memory.
This is freak's talking, by the way,
Uh, most of the memory is in the assets textures and meshes,
and compression is CPU intensive.
And then, um,
he talks about how you wanna normally
load completely load and completely unload parts,
which is exactly what I was saying about portal.
Uh, we do wanna do some form of chunking and and stuff like that.
Uh, there is a get up issue for it, which you can you can read about that.
I seem to remember if there is, but I seem to remember there is.
It comes up a lot cos people wanna make, like, really expansive worlds,
and then they can't because floating point hits,
uh, to those people, uh, I remember that, uh,
half
life two exists, and some of the worlds in half life two are really big.
And some of those worlds actually exist inside of resonate,
and you can drive around on them.
I forget the really big one,
but there's a community here on Resonate that will keep loading that world.
And they will, uh,
they will drive around it, etcetera.
Um,
there's memes that are on that map. Yeah, here it is.
This is, uh, one of the gifts that's in, you know, uh, the GIF system by discord,
uh, which is in resonate. And it's on that map that I was talking about.
It's quite big, and people drive cars around it all the time.
This dog is being a hot water bottle for me right now.
I was like, perfect temperature.
Now they're sat on my lap and their backs pressed up against my like chest.
I'm too warm. I need to take off my sweater.
Um, yeah.
I don't know how that map works, but if they move the map around, uh, to, uh,
reset your origin,
that's one of the strategies you can get around floating point for, um
uh, what
I
for,
uh, for the chunking to Yeah. Make sure to take the check. The the issue.
Um,
one of the the things that we sometimes get as
well is like there are some parts of our engine.
We don't want you to worry about
and
like, you can look if you want, but like, you shouldn't have to worry about them.
We wanna take care of it for you.
Like one of the reasons why reson night was built in the first place
is because fruits got tired of doing the same tasks over and over again.
Uh, so do keep that in mind.
In some cases,
it's like you shouldn't have to worry about it so chunking when it comes out.
Uh,
hopefully you just shouldn't have to worry about
it. There'll be tutorials, of course, but like, you know, it should just be fine.
That's what we wanna do when we you know, when we release features.
That's also kind of like inherently built into the engine.
Cos like when we ship a build, we don't know
that,
you know,
you're gonna make two cubes and smash them together with active colliders on them.
We just need to like, cope with that.
I'll see if I can find a chunky
or something. Um, I.
I remember a other issue, but there are, like, 800 or something open,
so it's difficult to remember them all.
There are 940 open. I'm gonna scream.
Um,
here we go. This one's here. Yeah. There's also a reference, uh, here in this one.
And then there's additional commentary in this one as well.
Like so there's a bunch you can read here, and they're all sort of, like,
linked together.
That one's closed, cos it, but like, it's the whole,
like floating point precision I was talking about,
uh, Anyway, Red 56 says battle glide stuff. I'm making a flight system,
and I don't want to use a lot
of complex character collider stuff for performance reasons.
Um,
yeah, I would. I'm sorry, red
physics, But, like,
use the character collider stuff or wait for rigid bodies.
Otherwise, you have to permit your own physics on the plane.
And, uh, I wouldn't do that.
I wouldn't do that.
You can,
but I wouldn't do it.
I'm gonna scroll up now.
It looks like I've missed some questions during all of the embedding,
but I'll take a look.
Uh, electronic.
Uh, you've got the answer to that question in double precision world position.
That's issue 664, which was closed by fris
with that information.
So there you go
for
um
there's a questionnaire from PRA.
I don't know you. Hello. Welcome to the
I mean, you might be a regular user for all I know, but hello.
I have not seen your user name before. And I'm very good at remembering user names.
Um, I asked this in gains office.
Uh, what are the chances of getting basic profiling tools? Uh
uh. We don't have any sort of prioritisation for profiling.
I'm sure that, like, fruits and I have issue like ideas about it,
but
we haven't.
We haven't like we don't even know enough about
to tell you what colour it's going to be.
But yeah, make sure that there's a G
issue for that one, and we we can see how much interest there is. And,
uh, there are some, like,
performance testing things you can do using our debug screen.
It's not like accurate.
Some other people have just, like, added mods to resonate where they like print.
Um, like profiling information to the logs. Welcome to do that as well.
Uh, but nothing. Um, nothing. Inbuilt. Yeah. It's not been prior
electronic. Yeah. Colour is the the like, you know, the like apple thing.
Uh, the Apple test where it's like, Hey, everyone, picture an apple in your brain,
right?
And then you can scale.
How detailed and and life like that picture of the apple in your brain is,
um, sort of informs how your brain works.
And lots of people have different answers to that question,
which is fascinating for psychologists but also fascinating.
Just humans to figure out that different people's brains work differently.
When we say profiling system
an apple doesn't even appear we haven't thought about it
like we might have like Oh, well, it'll be apple shaped and it will probably be red.
But like the the image of the apple is so unclear in our like collective brain
that we haven't looked at it yet enough to even comment on it.
Uh, Read, 56 says what is provided the character glider.
Uh,
every single part of like rigid bodies that you can access
today without implementing it manually is in the character glider,
uh, character controller. Sorry, I keep saying that wrongly,
uh, fruit says in a like a great statement that I wish we could sub
how, like Posterized, we might have to, like, edit the text a little bit,
but I like I want it on a poster like there's a lot of things we wanna do.
But we can only do so many at the time.
So it's only so often times as a matter of what, uh,
of when we'll prioritise certain features over others.
It helps us decide what to prioritise next. Yeah,
uh, so
we are still a small team.
Um, and on the engineering side, we've got three people, um,
working on the engineering side of things.
Furius
is working on settings. Um,
gs
is working on, um graphics, but also the the rules dialogue. Now,
um, I'm working on stuff which is on my my GI
board that you can see right now it's security focused.
So I'm doing a lot of crashes, et cetera.
Um, but like
regardless of what you say today,
there is no way that we'd be able to go ahead and work on Avatar reforming,
like even if you were, like, work on Avatar profiling.
It will. It will solve world hunger
like we're not able to just switch tasks like that.
Like, right now, I'm investigating some text related stuff to do of a crash,
but that's cool.
Uh, red says complete topic shift. Don't even need to mention it.
Just go ahead and ask the question someone will ask about like,
um,
like recycling at some point.
Um, so red 56 asked about per vertex mesh editing again. We've thought about it.
We've considered it.
There's even some sort of prototypes that freaks had back in the day.
Um, but
nothing.
Nothing concrete like we wanna do it like we used to ship a a DLL called Gen XGENEX,
uh, which is all about, like, additional men. Uh, mesh generation.
But as far as I remember, the DLL. Was was empty.
Uh,
but yeah, it was it was cool stuff.
We definitely need, like, data model improvements before we do, like,
full on mesh editing, though, cos it's just a lot of data.
I wouldn't say after custom shades because custom
shades isn't the sort of data model um,
approach that I was talking about.
Custom shades is something to do
with, um, the renderer, whereas, uh, like, mesh editing would be
more sort of on the engine. Don't you dare pee. We're almost done, Doc.
Ok, No more questions. Questions are closed. Red 56. You can ask a question.
A
master of as
you could ask a question no one else can. This dog wants to pee.
We gotta like speed things up here. Alright,
Uh, Lex says
hopefully this is a difficult question,
but how do you deal of not being able to do
relaxing and creative task and resonate because of being extremely busy?
You should ask me about Batman.
So, basically, like if IAFK in your session in, like, a strange part of the map,
I'm effectively like doing what Batman does,
which is Batman stands on the top of rooftops, um, in the city.
And he, like, listens to what's going on in the community.
Uh, listens to what's going on in Gotham City.
And then, if he needs to, he, like, swoops down from the rooftops and goes like, Hi,
I'm here to fix this problem.
And then he goes back up to the rooftops to
chill like he spends a lot of time on rooftops.
Chilling.
I spend a lot of times a FK in resonated sessions
chilling because hearing you guys enjoy our product helps me,
uh, focus.
Some people also sort of Call me. Um,
Eva, Um, like, what's the Angel character? I don't remember.
Like the full name of the angels and Doctor who
but those or or SEP 173 cos like I just, like, move around at, like, the the you know,
I'll tab back in for an hour
and I'll like, move position,
and then I'll tab back out again for an hour.
Um, but it really does help, guys. So? So if I'm a F
king in your session or not speaking, trust me, I'm getting work done.
And you're helping,
um, just by being there, Right,
uh, for benefit of the, uh, of the recording.
Um,
Fluxus, Uh,
switching task is very costly.
Sometimes it takes a week or two just to get back speed on what I was working on.
And I started working on settings.
I got dropped by a lot of smaller issues and problems.
Uh, that became more urgent or community wanted at the time.
When I got back to it,
it took me a bit to figure out where I left
off and how I actually wanted to do things there.
If we switch a lot, we end up losing a lot of time. Uh, things take slower over a result.
I agree with what
is saying there something which I do and I.
I know that I'm doing a significant task switch, and this is like,
I won't be able to go back to this thing for like, a week or two.
I'll open up like a notepad document, and I'll just like brain dump into it.
And sometimes that helps. Um but yeah, it's still it doesn't help completely.
It's still a lot. Um,
strangely, though, I don't mind, like switching tasks.
Uh, when it comes to, like, work versus not work like this dog needs a walk right now.
Um,
and I'm gonna think about some of the tasks I'm working on whilst out on a walk.
And sometimes I come up with, like, how to fix a bug
because I'm separated from the computer.
So what I'm saying there is taking breaks is important of note there with me, a F king,
and you know everything else going on with the community.
Just like, keep in mind that, like the rest of the team and myself, almost like,
maybe include myself there.
For example,
Um by accident. But the rest of the team, we're humans, right?
I'm hungry right now. And that's because I forgot to eat breakfast.
Um, so now I have to, like, stop working, walk the dog, make lunch,
eat that and then get back to work.
And some people are like, Why are the devs not moving fast? It's like
I forgot to eat breakfast. That's how hard I'm working for you guys.
Uh, Red,
56 says women come to eat unity when sauce is done completely and integrative.
Remember that sauce being ready to be integrated
and integration of sauce are two different tasks.
They'll go like hand in hand because you know we'll
be communicating with the source team whilst we're doing it.
But do keep an eye on on on expecting
the, uh, the moment source is released that we'll instantly integrate it.
It might take some time,
and I completely agree with the answer to Red 56 question from, uh,
Phrixus.
Uh, Red, 56 said if an object is super far away and has a fully transparent material,
would it have lesser
a
lesser performance? Uh uh, effect on performance?
If not, what would be the best option.
Disable or delete it. Get it out of there. Get it out there.
If you don't need it, delete it or disable it.
Uh,
Lex replies where they were more talking about
not having enough time to be creating Resonate.
Uh, my Memes folder is my only creative outlet in Resonate.
Right now, I don't have time to do anything else.
So, like, occasionally, like, I'll be like,
I'm gonna do an hour bit as a meme and I'll go, like, hard on it.
I'll go really hard on it.
Dog is now hitting the nut button, which means they really, really wanna go out. So
we're gonna go ahead and we're gonna end off here. I did say no more questions.
So there we go.
Um, I'm gonna go take the dog for a walk and I will speak to you guys in a bit