It's the top of the hour. So it's time to get started with prime time.
Uh, if you're here, you can ask me any questions about resonant.
You need to put them in the questions thread,
and we'll go ahead and get started once the questions appear.
Um,
I'm just gonna ping off his hours one more
time to let people know that they're starting.
Um,
And then I'm gonna go ahead and, uh, take a look at the question thread,
which has no questions in it.
Currently.
However, um, I have a question for you guys. Well, many questions, actually, five.
I need you guys to go ahead and answer the survey.
If you've not already, I'll post the survey link. Um, in the, um, various places.
Uh, this We're just covering our bases basically.
Like I don't want anyone saying I didn't see it.
It's posted, like as many places as we can.
Um, So I'm asking the person the question thread there.
So do take a look at the announcement and
answer that survey if you've not done also already.
Uh, where are we?
All right. We have a question from Flux.
Who says how hard do you think it would be to achieve
the targeted minimum doubled performance if the perf route has gone down?
Um, I don't like measuring, um, performance using like abstracts.
Uh, so when it comes to, like, performance and someone goes like Well, like,
you know
how much performance would if I use this compared to this, I'm like, Well,
what metric do you want?
Like, how do you want that measured?
It becomes very difficult to sort of know, Um,
even with, um, both of the the options on that survey, it's like
we have an idea of what the performance improvements are,
but like giving you like a precise measurement of that is is is just not it's not,
like possible until we get into it some more.
Um,
I know that there's there's lots of work that we can do.
Um, I know that I would love to spend, um, lots of time looking at a flame graph.
For those run away, a flame graph is a
great way for finding performance be, uh,
bottlenecks in a particular application.
I'd love to do that for various applications, um,
various parts of of resonate and sort of see what's going on?
Um, and it'll be easier and easier to do that as we sort of improve on performance.
Having said that, though,
there are areas where we're just like we know
that this is unperformed and we can fix it.
Um, and those are the ones where we don't kind of know the metrics, right?
We're like, I we know that this is
no barking, little man.
Shush.
No,
Um,
yeah.
Uh And then OK,
so flux has expanded the question to say that they would measure execution time.
It's like execution time. With what?
Like loading the game, starting the game, making an avatar, being in a world,
being in a world with five users being a load with 10 users, et cetera,
There's just there's too much like data possible to get there.
When we get to the point where, like we don't know where the performance
problems are,
we can start doing that with flame graphs and stuff like that to figure it out.
But right now it's basically like we know that
this piece of code is shit and not performant,
so we should improve it.
That's why there's, like, less metrics available.
Ysh is What's the dogs doing? The dog is sat on his ma mat, Um, shimmer at his chew toy
whilst barking at the washing machine.
Um, we're still training him to not bark at literally everything,
uh, exorcist with the performance update.
Mitigate the hitch that happens when it uses during a session. Uh, probably not.
Um, although maybe it's it's difficult again because, like that, like,
we know what that one's caused by,
um, which is, uh, the brief delay in in that in the hitch is because we need to send the,
like, the entire session state
to the new user. And that takes a second to, like, encode.
And that's what the hitch is for.
Um, the performance update won't affect the data transaction pathways there.
Right.
So the same data will need to be sent, and the same data will need to be encoded.
Um, but, um, everything around that might be more performant.
Right. Um, So if we're a multiprocessor,
then Hey, maybe the hitch will only be that world or or something like that,
et cetera.
Um, it's it's It's getting difficult to sort of answer specific, like,
weird things that people say, Um, because
It's just it's just really difficult.
I go back to the story a bunch of times, but, like,
um,
used to run a Minecraft server for a bit,
uh, people got really, really rumour, Milly.
And it was just like, yeah, no, this block causes lag.
Like Prime said that it caused lag. And I'm like, No, that block did not cause lag.
I never said that.
But ladders are banned for the next 30
minutes because you guys won't stop making rumours.
And I banned ladders for 30 minutes, cos I was just tired of it.
I was like, Hey, like, ask. Like, more accurate questions.
Yeah, it it depends on on on various matters like the
the performance update does not directly address the hitch.
There might be some sort of tangential stuff around the hitch,
uh, that are improved but does not directly affect the hitch.
Uh, every, um,
like architectural change that we do make subsequent changes easier.
Good example. There being settings, right? We didn't need to do, um,
like a settings rework because of, uh, just U I or
just we needed more settings or just the setting. Like we did a full overarching
um, holistic view of the settings and redid it.
And that's why you've got all of that right. It was an architectural piece of work.
The, uh, performance and IK part of this, uh, choice in the survey.
Those two who are again architectural things, right? They aren't.
We're adding another feature to give you a difference.
Like so when we added overseas support, that was adding a feature,
but it wasn't really architectural.
There was architecture around adding that feature, Sure.
But it wasn't like core to the architecture of of of resonate.
Whereas, um,
any performance improvements would be core to the architecture of resonate,
as would the IK.
Right. Cos everyone uses IK
and you know, to back that up fruits is now responding with Like, uh,
we need to do testing and research and stuff like that.
Like at some point once the survey is out.
Regardless of which, which part or one that we pick,
um, fruits is gonna probably,
like stare at a wall or maybe their tablet for a long time and, like,
make some like eldrich scratches and then fix it,
but that that work still needs to happen.
Like I'd love if we could get, like the code base to the point where, like,
we could just sort of give that information to everyone.
There is a profiling get up issue for that one, though
it is like a bit like Jenga. Yeah, we need to like
That's again like settings is just like another example, right?
We need to, like, knock that one out
and get it replaced, and now it's replaced. We can focus on other matters.
And should settings come up, Um, when we're focusing on those other matters,
For example, if we were to do IK, there'd probably be a bunch of settings.
With that, it would be very easy to add those, and we wouldn't need to worry about it.
There's a great I'm going to read just just the the the last line of this from Fri's
response, which says,
uh, we shouldn't be focusing on.
We'd specifically do this one thing,
but more like we want performance to be focused on for a while.
Um, so you should trust on, um,
us to figure out what the performance bottlenecks are and to fix them.
Um, and then, uh, we'll, we'll take a look and we can fill in gaps from there
to use like another. I'm gonna like, just,
like, make a straw man example here, for example.
Um, like, if someone came in here in this office hours and they're like,
I heard access a lighter is very unperformed.
Will the performance update fix it? The answer is
maybe, like, if we realise that Axis
Eider is like the single greatest,
biggest performance strain on the engine after we do research and testing,
Sure, we'll fix it.
Um, if we see that it's not,
then maybe won't fix it if we're bored one day
on a Tuesday afternoon and we're eating a nice pizza,
and we're like, Oh, we'll fix the performance issues with the Salina.
Great.
We I might do that during the performance update,
but the performance update is we want performance to be focused on.
We're gonna take a look.
We're gonna research,
and we're gonna figure out what we need to do when we need to do it.
What will have the most impact?
Uh,
master and Master says, What's your opinion on the current state of the Wiki?
Uh, I still think, uh, the same as when, like
it.
Um it started
that,
Like, there's a long way to go.
We are getting to the point where, like, most of the logics nodes,
Sorry. Proto
flux nodes and components are are fixed and and, you know,
have information on there.
Um, but
I want more there. Like I've been eyeing up the main page for a bit.
The reason why I,
like I'm hesitant to do it is because I know I have to redo it multiple times, but,
like, the main page on the wiki could be so much better.
Just look at the Wikipedia main page
where it's got, like, you know,
um, colours and pictures and logos and places to go and things to see.
Um, I want our main page to look like that, but I don't really wanna, like,
redesign it multiple times.
And if I did it right now, I would have to redo it again.
Um, so I'm I'm thinking about that one.
Uh,
sou says beside the new uh uh uh,
What needs to be improved on as well. Uh oh.
Also, um, just a tail end of a a master's question.
There are a couple of like bugs on the,
uh, github issue tracker.
Um, the, uh we'll talk about Wiki based things. One of them is better search. I know.
Search sucks, guys. I'm gonna fix it. Leave it.
I know that search sucks. I'm gonna fix it.
Um, sorry about that
random jump scare.
Doc, you went out just before this. You don't need to go out right now.
Um, better search. Uh, I also wanna, um, fix up some of the image based things.
Uh, I can I can make images easier or something. I need to take a look.
There's a bunch of issues,
uh, for context there.
I'm unpacking my suitcase from the trip that I was recently on.
Um, and there's still some items in the suitcase,
and fella loves stealing stuff from my suitcase.
Um,
and,
uh, I'm trying to train him that my clothing is not his.
And so if he goes near that suitcase, he is instructed to leave it.
Sometimes I have to say, leave it like a a mega church street pastor to get it in.
You know, like on those, like, really expensive churches. They're like, you know,
all their like sermons are given in this particular tonality.
That's also how I tonality say, leave it to my dog. Like leave it to I'm gonna
cast you to hell or something.
Uh, it works, though. Anyway,
uh, let's take a look. Um,
uh, Zen
says beside the new settings update, What else do you foresee?
Data feeds being used for the future. Literally. Everything. Um so
the word browser, the inventories browser, the file browser.
Um, the contact screen, the inspector, the proto
Flux node browser. Uh
um, the attached component I know that's the same thing as the proto
Flux node browser. Currently, it might be different in the future.
The proto
Flux node browser, the attached component browser,
the create new menu of the develop.
A tool tip.
Uh,
any wizards or stuff that you've seen could
also do data feeds like the import wizard.
Um,
heck, this one is like a pretty edge case, but like even the avatar creator could use,
it could,
um I don't know if it actually will, because you're getting really to the edge there,
but like basically everything, it's like basically, if we need, like,
a bunch of dynamic U I built,
like data feeds or where it goes and what I mean
dynamic U I is like U I That might change,
right?
So, like, here's the same example, the login form
does occasionally change right.
We had a bunch of changes on it to add like, um,
policies and date of births and stuff like that, but it doesn't change that much,
so that's not really a good target for data feeds.
But things like the world browser or the inventory browser.
Those are gonna have changes to them like all the time features and and
adjustments, et cetera. So that makes sense to be a data feed.
And it's also dynamic data, right?
The amount of data that needs to be stored is not defined with the login screen.
It is right. There's a number of fields. There won't be any more fields,
Um, but with the inventory, maybe there's 100 items. Maybe there's 1000 items.
Maybe there's more folders. Maybe there's less folders. That's a data for you.
Uh, exercise. What conventions do you plan on attending this year?
I'm not sure right now. I am sick because I attended an event.
Um, and there's always that period when you're sick.
After you attend an event where you go,
that's it. No more conventions, no more events.
I'm gonna, like, hole up inside my house to just avoid being sick.
And I'm gonna wear a mask everywhere.
And then, like, two weeks after you get better, that fades and you just go like,
Fuck you, the world
dog.
Come here.
Quiet.
So, uh, I'll spend that again in, like, a month or so.
Uh, ozie asks.
Actually, how do you, uh, do performance metrics on a game as complex as resonate?
Even a few people in the session is incredibly com, uh,
in complexity in what's happening?
Um,
so frix is answered here, so I'll read that, and then you might and take, uh,
Fri says frame and frame rate stability.
Jitter is a good baseline because it's how overall things feel.
That's like how you know, it feels to be inside resonate.
Um but we can also drill down to things Various
profiling tools measuring how much CPU GP U time,
different things.
Take et cetera.
There's a bunch of performance metrics and profiling
stuff that's like disabled in the release build of
R
engine.
Um, lots of it seems old or patchy or like different systems,
were used at different times, et cetera.
So,
uh, those will probably be tidied up a bit as well.
I do also want to call back to the flame graph again.
I don't know if we'll have an ability to get a flame graph going, but like,
um,
you don't need to read this flame graph. Just know that like here, it's showing.
It's showing
the red thing
you need to look at and then figure out why the red thing is taking a long time.
That's basically what it means.
So we could do that and we could see
Oh, look, it's the reason Resonate is slow.
So Unperformed is because of the colour yellow. And then we ban the colour yellow.
You know,
uh, let's take a look at next questions. Jeb Forge says. Any ideas how much re
performance residents will gain?
Uh, by moving from whatever run time it is currently to.net a again.
I can't give that metric like I don't know. What metric do you want?
Do you want percentage? Do you want it measured in apples?
I I It's it's really difficult to answer that we know
that there will be a performance gain from moving runtime,
and we know that it will be quite substantial, but I can't metricize it for you.
Um, Flux asks. Can I make a data feed into Avatar? Someone already did that.
Yeah, I think like every time new features come out,
I see Eastern using them incorrectly to try and do stuff.
And it's it's great.
Uh, reinforces the statement. East
Eastern is a national treasure.
Uh, so like the settings U I came out and, like,
they put their face in the settings panel really quickly, cos you know,
that's just what they do
when I read out for the benefit of the recording. Uh,
fru wants to How much performance,
Um freak
and says, Yeah, pretty noticeable amount.
Uh, it's hard to really tell. I had time with a complex app like this.
There's some stuff that when benchmarked was an order of magnitude faster,
like a lot of math heavy stuff, some stuff was individually like 2 to 3 times faster.
Some wasn't really as much. But those are things that I isolation,
and the app itself is like a complex combination of those things.
I'm paraphrasing now, But like
you,
uh,
you mix in stuff, right? And then you're like, cool performance is great
and then you understand it More.
Additionally, when we work on performance,
more performance issues will will show themselves
because what happens is right now,
we haven't really focused on it for that much.
When we start focusing on it and we start fixing performance issues,
additional performance issues will start coming out
of the woodwork because suddenly oh,
that that performance issue is fixed.
So this other performance issue is more noticeable or people are
more frustrated by this new performance issue or we fix one.
And we noticed that didn't actually have the impact that we thought it would.
And so we do more research, and we're like, Oh,
that wasn't actually the cause of the performance issue.
The performance issue was over here. It's just it's a very complicated thing.
Uh, for anyone who wants to understand it a little bit more.
Just find the nearest drawer in your, uh, living space.
That is just a junk drawer, and I want you to dump it all out onto the floor
and sort it and see how long it takes and how much
more life better your life is when you've sorted your junk drawer.
That's effective, what we're gonna have to do,
like we know that in the junk drawer is the
tape measure and the AAA batteries that we need.
But we can't find them because there's, like, 40 Chinese take out menus in there.
So we've got to, you know, dump out on the floor, shuffle around it, take a look,
and then we'll find the batteries in the tape measure.
Easton, where did I come into, uh, this about misusing new features?
Uh, someone asked about data feed avatar.
And I know that when the settings update came in,
you put your face into the settings menu.
Uh, and when you figured out the, uh, entity interface system,
um, the, uh you put your face onto the world loader, right?
So you just shoved your face into new features and like, it's cool,
like it's playing around with it, but it is technically misusing them.
Give me a second. I'm looking for something that will help me with this question
that's grow from last time I looked at it, uh, so to to help you out with the OS C thing.
Um, the enum, which is in the avatar expression driver,
has the following new fields to it.
Um,
and you'll see all of these when it launches, which is why I'm showing it right.
But like,
this will be in the enum when that that thing launches and you'll just see like, OK,
there's a lot more expressions that we can have happen here.
Um,
so, uh, look forward to that.
That was, like, two or three of the last time I looked at it.
Do you keep in mind that some of those
aren't gonna work with your headset or be detected?
Well, with your headset et cetera,
Um
uh, and a lot of those are just the same thing, but split between left and right.
I was looking at it later earlier, and I'm just like,
I don't actually understand what
lip underlay, lower left or lower right is I. I don't understand what those are
like it it's it's it's interesting to see them, but like, yeah,
if you have an a R kit compatible, uh, avatar or similar to that,
uh, you might be able to slot back in, but, uh otherwise, you might have, uh, you know,
those people that can do face tracked blend shapes,
um, for you might have a lot of work coming their way When this When this updated.
Um, Dude, again,
once a mind and keep in mind that a lot of those are just splitting an existing, um
uh, expression,
uh, to the left and right side.
Uh, right. Let's take a look. Um, B
and says I know you guys said that unity was
a limitation to upgrading to.net eight at one point.
Has that changed?
Uh, that is one of the limitations. Yes, of course.
We want to get off unity, because then that just removes that limitation.
Um,
source is targeting.net eight from a start, which is fantastic.
Um, I wanna see if we can keep that going fast. Like I know that.net nine is out.
And I know that not many people are using it because it's like it's new, et cetera,
but I would hope that Say, like within a year of of source being stable.
On.net eight.
We're already moving to.net 91 of the problems
here is that we've been on.net framework.
I always forget it for seven or 46. I can never remember.
It's literally on a post it note that fell off my desk a couple of days ago.
Uh, but I'll put it back on my desk in a second.
Uh,
we've been on that one so long that moving to a
new.net version is like a really big sort of fragment,
right?
There's a lot of friction there,
but if we keep that fluid with source,
it means we should be able to sort of roll in
the new.net changes as they come if they are suitable.
It's really annoying sometimes.
Cos like I'll write, uh,
an example out like I've been doing a lot of bug
repros recently to sort of just demonstrate bugs being reproducible easily.
Um, and I always do those in like a new.net eight project in Visual studio.
I just go like New Project.net eight, blah, blah, blah, blah
and, like everything's just like faster, easier, cheaper makes more sense.
It's more logical.
It's less confusing, and I, like, put it out, and I'm just like, wow,
that took seconds and then I ought to add
back to the visual studio that's running fruit's engine,
and I start crying, but, like we we we're getting there.
We're gonna get there eventually.
Uh, a master says, Do you think the rumoured
deco valve headset will support all of that?
Uh, I don't know. I don't comment on speculation.
I used to have this thing where, like, um, I would like, you know,
look through Kickstarter and stuff like that.
This is the early days of Kickstarter where you still had trust
that the Kickstarter item would actually arrive rather than just never appear.
And I used to, like, back like, random Kickstarters cos I was like, Oh,
that's really cool technology.
And then I started looking at the the delivery schedule.
It was like in three years in October,
you might get this thing and I just couldn't stand it anymore.
The last thing I pre-ordered was the TV R controllers,
which are still in their box on a shelf.
So, like, I'm not preorder
anything again,
Like, I want the Deckard
to be out,
have some reviews, um, by you know, the usual folks who review headsets.
And then I'll take a look at the reviews and
then we'll figure out if we want to implement it.
tr
here, he says. Are those for SR Any power? A R kipland shapes? Uh,
they're not for anything.
Um,
we generalise it out of all of those systems into just what's called an expression,
and then an expression can then drive a number of brunch blend shapes.
So if our system detects that you're doing lip Titan,
then the lip titan blend shapes are fired.
Um, our mapping from headset to say lip Titan
can be tweaked and adjusted, depending on the headset.
And that's one of the things that we're doing here.
Uh, fruits is taking the OS C data, which is in one format,
and he is
massaging it into the avatar expression driver format so that it works
with all of your existing avatars but also provides those new things.
Um, it's up to you, though,
to double down on the.net thing.
Um, our ad for and stuff for the benefit of the recording.
Um, with unity, we're limited, uh,
to what runtime we can use because unity uses mono, which is old and slow,
uh, to use.net eight. We have to split out unity
pretty much, and then try and communicate it. So that was the other thing.
If we do the process based architecture,
we could run a separate process for a session that is on.net eight.
And then it would do all the mathematics it needs
to do to figure out what needs to happen.
And then it would just send data down a pipe down
to the unity side of things and unity would go,
OK, me put square there
and unity would put a square there, right?
That would be a way to get us.net eight a little bit.
Uh, if we want.net eight, like end to end, though, we need to get rid of unity.
Uh, exorcist. Will the source code for source be handed to fruits in a sauce jar?
No, Um, it's like it's on
github somewhat. Like
whatever.
Um, flux, do you think, uh,
running rendering in physics logic separately
to increase collision accuracy is viable?
Uh, no idea.
Um, there are certain parts of the engine which I just haven't looked at,
or it's just I'm not the best person to ask when
it comes to like low level parts of the engine.
If it's graphics related games and if it's not graphics related fruits,
but I still don't know
like I have. I not read the source code for a sink.
So those who don't know what a sync is I'm
not talking about the sink where you wash your hands.
I'm talking about sync SYNC
the sort of big data type that you guys see everywhere.
I haven't read the source code for that yet.
I haven't had time.
Um, one of the works I've been doing actually,
I do want to do a couple of announcements.
I do this at the end, but, like, uh, yeah, I'll just save Save that.
Like, take this thought prime. Take this thought. Save it.
OK, put it in a bucket and then look at the bucket in about five minutes. Got it.
Ok, next question.
Um
uh, speaking, uh, radio talks about, um, their performance guide, uh, for the deco
if the deco releases speaking about your performance guide raid.
Uh, C, Can I just shove that on the wiki like you can keep it on the github?
I know, but like, could I, like, copy it to the wiki or like link to it from the wiki?
I don't know
what I want is and I've talked about this before is I want a dedicated wiki page
for every single device that we sort of support, right?
And it's gonna have tips on making that device the best it can be
like, for example,
if there's an obscure headset out there where putting a slice of cheese,
like inside the electronics, makes it run better for Resonate.
I want that on the wiki.
Uh, and I imagine it like a like a rectangle, Um,
like a sort of like
I imagine it like a rectangle pause.
I'm gonna open up paint, and I destroy what I meant there. Jeez,
I
imagine it's
a
I'm still sick, guys, I'm on cold and flu medication and I'm like, after this,
I'm gonna lie down on the couch and watch some junk YouTube.
This is like a really crap paint diagram,
but hopefully it will sort of like help you understand my vision.
Um
so, like, there'll be like a a rectangle.
There'll be a rectangle on the wiki,
and there'll be a picture of each headset in a square
and you'll be able to click it,
and it will take you to a page that tells you how to use the headset.
The best on on Resonate. Now, of course, we'd like to
edit Resonate such that all the things that
make it the best happen automatically for you.
But there's always some stuff that you need to know.
For example, the the Valve Index page might have,
uh, links to the 3D printed bracket that you could attach the face tracker for.
That's good.
It might have links to the 3D printed replacements for
the clip on the back that always breaks et cetera,
just like everything like within our power that we
can inform you on to make that headset better,
even resonate
like it might be like.
Here's a Here's the recommended bungee cord attached to the ceiling system,
uh, for your cable for your index that most resonant users use, you know,
just like everything that you want to know about how to make a headset better.
Uh, nearby Game says. I've had a few times mentioned, uh,
when working on stuff.
Is there any anything in the works for Don make bone constraints?
Uh, double check for a get up issue. If you can't find one, make sure to make one.
I don't remember if there is one.
H What? I have Nick. Sorry.
Uh, Nick was at the the the, uh, the trip I was at and it was it was 1 a.m. and
Nick was asleep on the couch. And I'm like, Oh, that's a shame.
You're not 1 a.m. Nick. Sorry about the teas there, but it was It was funny.
Anyway, Nick asks, uh,
what is the lowest hagging fruit free Creasy performance at the moment?
I'm not sure. We need to do a bunch of research.
We know there's a couple of places that, like, are bad, for example,
I know Axis Aligner, for example, could do things slightly differently,
but I know that's not a big performance problem.
Um, it is a one, but like, not one of the biggest ones. So we gotta do a bunch of research
and and sort of figure that out. Uh,
with that, I think we're at the end of questions there.
Um
oh, we have a couple of the chat messages in the in the in the other chat thread.
Uh, Alex, that says, Hey, let's party. Oh, absolutely. Yes, sure. Um, cool. Next.
Uh,
1 a.m. Nick says they may have been on a substance. A point?
Yeah, there was lots of alcohol around it. So it's fine.
It was more sort of like, uh, I hadn't really read your name.
I'm not sure if you intend it to be. I am Nick Or 1 a.m. Nick.
I'm not sure Cos like sometimes you use one for I. It doesn't matter either way.
It was just funny at the time.
Um
uh, Fizzy Rabbit says, uh,
I've only scripted avatar
expressions with the quest two controllers, and I've gotten very comfortable,
but a friend of mine plays through the PC keyboard.
Is there a proper and standard key way to control expressions for PC players?
No.
It's a great, uh, solution for a great, uh, suggestion for the github, uh,
covid brain setting in.
Um,
let's let's, uh, cap questions. Um, here,
uh, and, uh, I. I got a couple of things to talk about and that, uh
and then we'll head off. Right? Uh, Exor says
what exactly is garbage collection? Ok, so in,
um,
languages that don't have garbage collection C and C++ are are good examples.
You need to manually manage the memory and What that means is if you need, um,
a box to put some, um, some data into you.
First of all, need to create that box by saying, Hey, could I have that box?
And the operating system will go like, OK, here's that box.
But the operating system doesn't care about that box anymore.
You have to care about that box,
which means you have to know exactly when you're not using that box anymore.
And you have to tell the operating system
I am no longer using that box. I am throwing it away,
and then the operating system can go great.
That box of data is now free for other applications to use,
like other people can use it,
including resina itself or or other parts of your C++ code.
In some other languages, such as C#, there's what's called a garbage collector,
and the garbage collector identifies where boxes are not used
anymore and can be returned to the operating system.
And doing that is sort of like a weird sort of scanning
algorithm.
I don't wanna say a I,
because it's not a I but like a I is being used for that sort of language these days.
It's like a big sort of algorithm that goes like,
Oh, look, you haven't used that huge box. I can throw it away.
Um, and sometimes that causes performance, uh, problems.
Because, um,
if the garbage collector needs to run repeatedly
and it repeatedly needs to do that work,
then the engine's gonna spend more time figuring out what to throw away than
allowing you to use the stuff that you don't need to throw away.
And that was one of the problems of the old inspector.
Few people remember that the inspector used to lag.
Um, if you had more than a few open, we had some garbage collector issues there.
Um,
particularly with the older U I system where
the garbage collector was just like I'm busy.
I'm doing the thing. You don't have any time to do your thing cos I'm doing my thing.
Um,
so that always comes up and it comes up really surprisingly as well. Like even
in C#, where you don't tend to have to worry about the garbage collector.
There are some edge cases in areas we actually do need to worry about it,
and you need to think about it.
You're like, OK, I know that we have a garbage collector.
I know that it's trying to do its best job, but at this point,
its best job isn't suitable.
So I need to stand in the way of it and make
decisions for it or signal to it to do different stuff,
et cetera.
Um you can look into like, I disposable is a good entry point into that, um,
I disposable is an interface you can implement on a C# class to declare that
it has some sort of disposing, um,
method that that gets rid of the stuff that it's using.
Uh, a good example might be closing a Web socket connection or unregister
event handlers in a dispose handler.
Um, during that dispose handler, uh,
visual studio is gonna go like call GC dot set finalise.
True.
And you're gonna have to read the the documentation about that
every time it comes up because you keep forgetting it.
Ask me how I know.
Um,
but there we go. I'll move on.
Uh,
Xin
says, what is the direction res is going in?
Uh, going for that would differ from other VR social platforms.
Uh, we like to be different by just showing people what we can do rather than like,
comparing and contrasting cos it gets kind of difficult.
Uh,
you can see what we have to offer on our website or our scene page or by trying this out.
But, like, I'm I'm not well enough to, like. Answer that question.
Uh, sufficiently.
Uh uh, Jason will be a go around for accessible features like low motion mode. Soon.
I think those would be essential. Remember that.
Like, Bucket, That's got the thing I wanted to talk about.
I'll I'll get there after questions are done. Um, so I'll get to that one in a moment,
fru
and for the benefit of recording, I'll read it again.
Gave a great answer to the what direction Resite
is going that would differ than other VR platforms. Fruit is a good way of words.
Sometimes
a lot of the time I don't like when I
say sometimes that made it sound like he sometimes doesn't.
I mean, like, sometimes it's particularly good and I like it.
So for the purpose of the recording, I'm going to read it.
It is designed as a platform where you have
as much control over the world experience as possible.
Part of that is that you can build and
everything and game in real time collaboration with other users.
Uh, they can use to build together, learn together, work together,
make very dynamic and interactive worlds with much fewer limited ations.
We gonna add the word together to the end of that
and some
garbage collector information, Um, from fris as well.
Uh, with road time maps,
you have to worry about the garbage collector in terms of performance.
That's a term called GCGC pressure.
The more stuff you keep allocating, the more you're forcing the GC to do work.
The more the GC works, the more CPU time it takes away from running your programme.
So essentially, it's a trade off.
If you write your quote to be more efficient and allocate less memory,
you reduce the pressure on GC and thus save more CPU cycles,
which can go to other things.
That's a effectively what I said, but like not a sick ramble. So in fact, awesome.
Um,
one of the other things to know about is, um, when you see benchmarks for, like,
C# code,
you'll often see like a time measurement
but also an allocation measurement.
And the allocation measurement is, is is is sort of ties into that as well.
It's sort of saying like, Oh,
this method of doing this particular activity takes less allocation
and therefore it has less GC pressure.
I think some of the benchmark is also measure GC stuff
as like a separate item on the on the chart,
so you can take a look at that as well. Uh, Xin
has expanded their previous question, um to say,
I would like to know what will be done to ensure resonates
goal will not only remain in change but expanding to its capabilities.
So, uh, key things to mention,
particularly if you're familiar with items that we
won't talk about here for the recording.
But
you know what I'm talking about?
Um,
we are now a company, and we're doing things as correctly as possible.
If you see anything weird or frustrating,
it's because we're trying to do them correctly legally financially, um,
regulatory, et cetera.
Correctly, One of the parts of that is making sure that fruits has control, so
Fruits has like, I don't know. It's like It's over 90%
control over the actual company
and
what they say goes at, like the very top level.
And they don't need to exercise this influence that much. But like
if they wanted to veto something right now,
they could veto it
any second they wanted it to.
So, let's say, for example, um,
not that this is going to happen.
But let's say, for example, we took investment from an investment company
and they got a small percentage of our, um of our stock.
Fruits would still have the vast majority and be able to veto any of their decisions.
So say one of our investors comes in and says, like,
Hey, NFTS, we could just say no because
fruits vetoes them.
Um,
that's how one of the ways that we're going to insure that
otherwise, like I said, all those regulatory,
financial and legal stuff like if we do anything weird again,
sometimes it's just because, like the government told us to
like, for example, we don't support, um, under 16. Um,
we don't support under 16.
We don't support users who are under the age of 16 from playing resonate.
Because the EU government told us not to,
um, beyond that,
every other member of the team has those, um, has those things in sight with, um
has those things in sight with with with fruits as well.
We're very, like, aligned on our our our goals.
Uh, we have a lot of, like questions and times, and sometimes we like we question,
like, you know, is this somewhere where we could let our our goals bend a little bit?
Uh, for example.
And we often talk about that in, whereas if, like, a I like,
what's our official stance on A I we don't really have like,
any paperwork about that.
Maybe we need to do that. Like, where? Where do we draw the line there?
That's an interesting conversation.
Um,
that hasn't been decided yet, So don't go like pitchforking.
Either way, we haven't made an official stance on that,
but it is a conversation that comes up repeatedly.
So what we would do as a team is maybe discuss that when we're a little bit there,
occupied, come up with some paperwork that we can put on our website and be like,
Here's our stance on a I, and you betcha freaks will, uh,
veto it if he doesn't agree with it.
Cos that's what they could do with their humongous amount of of of stock.
Uh, freaks gave them more engineering centric answer to that which is, uh,
that the goal won't remain completely unchanged, which is also another thing,
right?
Things will adapt as we go, like, say, for example,
a
brand new full dive headset launches next week.
And we're talking full dive, right? You just, like, plug your brain in matrix style.
Uh,
I would imagine if the price point is good
that, like,
the entire development team will instantly buy
that headset and rush to implement it
for you guys. So, like that might go might change and adapt, right?
We've done a lot of adapting.
Um, when it comes to things like, uh, localization is a good example, like,
we've had to rewrite lots of our code to sort of surface more messages,
um, and localizable messages. So we can basically say something went wrong.
Here's what you can do about it. Like before.
The code might have just thrown that as a static string.
We have to go back through and put localization strings in and that takes time.
But, like that's again, the goal would have sort of changed.
We didn't initially have multiple language support, and now we do.
And we need to keep expanding that to have more language as well elsewhere.
Um,
the big goals are unlikely to change, though. Is what What
is also saying here,
um, Brad here, which has a Morse code user name, which I'm not gonna read.
I'm just gonna call you Brad.
Hybrid.
Uh, bred says, what were the minimum requirements to run the game?
They are currently listed on the steam store page.
I don't want to misquote them, so just go to the steam store page and check
if those change, we'll update them on the steam store page,
and then we'll announce that we've updated them on the steam store page.
I basically don't want to get to a point where those two are out of date.
So if I say something and it's incorrect, then it gets quoted like steam store page.
Uh, Rhys says at the start he commented on the work performance.
Uh, will not resolve the load and freeze due to the pause, uh,
world updates to ensure data model integrity for the
loading user having reading through the up references,
including in the post.
It does appear that
fruity update
system which could improve eliminate the freeze,
which may be an exact example of what someone believed, Uh, performance, uh,
improvement would focus on, uh,
that's basically like
we need to take a look at what we need to do for performance.
And there are a lot of things that we need to do. There are a lot of sub github
issues there. I don't know which order that they're going to happen is
or like
which which
what order? They're gonna come out of the of the of the of the bucket on, right?
There's a huge bucket of issues we can look at.
We don't know what order they're going to be fixed in.
Um, part two from UCO.
Says, uh,
I'm worried that everyone has their own ideas and performance improvements
are and the main line to what the team believes.
We're gonna have to do a better job on that cos I'm noticing.
We're really not doing a good enough job on that.
So I am gonna start doing a good job on that now we are
gonna research what performance increases are gonna
be most impactful and then do those.
And so if you think that there's a performance issue somewhere
and you'd like us to take a look at it,
make sure that there's a github issue for it,
or it's commented on the the performance thread, et cetera.
But do you understand that we're gonna do the research
and try and be as as impactful as we can?
And it's gonna take us a while as well.
We're gonna work in performance for quite a long time.
Um, every update as well. We have the update notes and where we can.
We'll give you metrics if we're able to get them. Do you remember?
Those metrics would likely be isolated, so we might be able to say,
like we've increased the loading of the date time nodes in proto
flux by 5%.
That might be something that we can metricize and
tell you how much we've improved the performance of,
but we won't be able to sort of complex that all up into the actual overall engine.
Um,
towards the end of the work, maybe we will we might be able to basically say like, Hey,
we're gonna run the version of Resonate from three months ago and we're gonna
run the version of Resonate from Today side by side on a big,
powerful computer that can do that
and make a stopwatch and, like speed, run them.
That might be something that we can do in the future,
but until we start digging into it,
not sure,
uh,
Amy says we'll be able to use chat GP T
There are already chat GP T examples inside of resume.
I didn't want to turn this into a big like a I thing.
It was just It's an example of something that we debate as a team occasionally,
Um, and at some point,
we will need to produce paperwork for so that people can understand our stance on it.
As a company, that stance doesn't exist.
Currently, we're We're still thinking about it.
Uh, it was just an example as well. Um, and don't apologise. It's absolutely fine.
Uh,
rus says thanks Just the way that the Prem set is a factual make it sound like it might,
uh, term any points work would not resolve that specific issue.
It
I'm not keeping up to date as I can with everything that exists there.
And I'm, like, on the hot seat. So sometimes I'm gonna speak incorrectly.
Um, I'll adjust where I can,
and I think that's one of the adjustments we made there, which is, like,
we're gonna take a look.
We're gonna take a look. Nothing's off the table, But we're gonna take a look.
Uh, and he says, Can I use an OPD I key?
This isn't sorry, I'm I'm gonna have to just cap those there. This isn't
like this isn't an a I thing, and
we're not gonna talk about that anymore.
It was an example of it.
Another example might be, um
well, actually an example and another way, which is kind of resolved,
would be our example.
Our, like our stance on nipples, right?
That was one of our really big goals was
like trying to make everyone feel as comfortable.
And, um, what's the word? Covid brain
as comfortable and that they can self identify
and and be their true authentic Selves.
Um, and so that was part of that goal,
right? We had a a long debate about nipples on the team. Uh, you know how that went.
We now have that that ruling, right?
And we have that as part of policy and as part of our rules.
And that's how we sort of reinforce our goals.
We talk about it, and then we make a policy about it or whatever.
Uh, fruit has, uh, expanded again for the benefit of recording. I read it for the, uh,
conversation on what specific parts of the
performances problem that they're going to do.
Um
uh, so I'll reread Russo's.
Then I'll read phrixus
just for clarity.
Um
uh, where are we? Uh, so Russo was worried that everyone had their own ideas.
And what performance improvements are?
Uh, that might not align with what the team believes.
Um, and so Fruit says, I think that's the one way to to think about it.
Generally, the idea is, if you want us to focus on, uh, if that that
generally the idea is that you want us to focus on performance for
a while and focus on things that will have the most impact,
we essentially don't want to end up in a situation where we're like,
we'll do this very specific performance thing as a goal.
Then we do that thing and it turns out it doesn't help that much.
And we're like, Well, sucks. You wanted us to do that specific thing.
I guess performance isn't,
uh isn't as better.
Rather, if we define the goal as we focus on making big,
significant performance improvements,
that gives us a lot of flexibility on how to approach that.
To make sure that people end up satisfied paraphrase there a little bit.
It's difficult for me to read out loud, other people's words.
Apologies for that, Um,
the important thing to look at is we are going to research it and
figure out what we need to do that will have the biggest improvements.
And in some cases you won't expect it
like we might do something you'd be like, Why did we do that?
And it's like because it was the performance problem.
Uh, I mean, there are some worlds that allow you to use chat G BT in various ways.
I don't understand how they work.
They're all custom, and they're nothing to do with us or the resonate team.
So you have to take a look at those,
uh, so
says will resonate.
Shed some attention towards education and science content creations.
Absolutely.
You can see examples of that on our website where we have the education government,
um, and enterprise licences.
Now, um,
we have a couple of people talking to us
about those and more coming down the pipeline.
Uh, we also have a page on our features
page of the doobly doo of the website,
uh, which talks about medical applications.
You can also see medical applications in our new trailer as well.
So we're we're doing a bunch there.
Uh, we have got a bunch of papers coming down the pike as well.
Um,
some of which I'm involved with that are going to
be using resonate for their their paper related matters.
Uh, let's take a look.
Uh, master says, are people that support on PATREON counted as investors? No,
Um
it's very like legally speaking that we are. They are not investors.
They're not receiving equity. They're not receiving stock.
They're not receiving ownership. Uh, supporters is the right language there.
If we ever wanted to sort of open up to more open investors
a That would be a humongous conversation with with fruits involved And,
of course, being able to veto that.
And there'd be, like, some weird website with, like, a PowerPoint on it.
And I would hate making
and all sorts of stuff like that
and those people would be investors because they would be like,
Here's a stack of cash.
I actually want some stock. Uh, Amy says proto flux runs on C#. Right.
The entirety of, uh, for extension aside for some small corners Runs on C#. Yes.
Some small corners Runs on. Um
uh,
like
it calls into C# co, Uh, C++ code or it calls into, like, other executables.
But, like Ma,
vast majority of C#. Yep.
Eastern, uh, says I if investors get involved,
I would worry that guidelines would be affected in some way.
Absolutely. Why we maintain fruits has, like, humongous ownership over the, um,
over the the stock there.
And also that we are very suspicious on anyone that wants to invest.
Uh,
Amy asks, Can I, uh,
can I
Can I bullshit a C# script and convert it into
profox? No, but it's not technically impossible.
Um, so that, I think is we're done with questions. Now we're gonna just like cut.
No more questions.
Uh, if you're typing, go for it out. You I'll give you that question.
But no more questions After those guys that
are already typing questions have typed their questions.
Yes, My bucket.
My bucket.
Um,
I'll do death hammers first. Then I'll go to my bucket. Um,
Death Hammer said I was wondering,
would it be possible to have an option to not load the thumbnails?
It depends which thumbnails you make, but make it get up issue.
We'll take a look at it,
and then you'll be able to explain in a big
free form form what thumbnails you specifically don't want.
Uh uh.
Modern, asked about sauce and stuff like that Asks
like they
ask Es
if you wanna ask. Like maybe Gines just needs to do a one off like saw
off of
ours. Uh, it'll be helpful. Um, don't,
um
don't over hype yourself with what? Um,
gains are sharing.
You should still be excited, but don't over hype yourself,
but you shouldn't read it as sources coming next week or next month.
You should realise it as sources moving forwards.
OK, now onto the bucket.
So for the bucket.
Um I did wanna note that what I've been doing for the
past couple of months is like business and orientated and corporate.
And, uh,
I've hated doing that because it means I can't get back to a short list of promises.
I'm calling these promises, cos they're things I promised to you guys, like,
very soon after launch or around launch, you can see them all.
I've moved them all to the the in Progress column.
I just wanted to let you all know at the end,
like I am gonna fix everything in the in progress column
before I work on anything else because they're like promises.
Actually, there needs to be one more moved across, which is there,
right? Those are the items I'm gonna do.
And, like, I'm not doing anything else until those are done,
because I realised I had a lot of promises on my plate.
Examples of the promises are historic space awards for things like M, MC, um,
and stream and the translator and stuff like that.
The support, a badge, that one is chroma keeps nagging me about that one.
I promised him I would do it, so I'm going to do it No motion mode.
I promised I was going to do that one. So I'm going to do it.
And then the backlog security issues, Uh,
in the in the ticket desk goes the promises I made to people before launch.
And so that's just that what was in the bucket
is now I'm back from corporate hell and being sick,
those
that was the bucket.
Uh, with that, I'm gonna go ahead and leave off here.
Um, I've got a bottle of Sprite and I.
I don't know anyone else when they're sick, but,
like I just like Sprite is when I'm sick.
I only drink it when I was sick.
So I will go drink some sprite, sit on the couch and watch some junk TV.
I'll be back, uh,
at you next week and I will speak to you later.