Alright,
and
we are operational and running,
so welcome to office hours again.
It is the 14th of the 1st.
I'm I can get started on questions.
I actually do have some questions for you guys as well,
so,
um,
once we get through those,
I'll drop those questions in as well.
So Jay asks,
how are you doing?
I'm just like tired all the time and I don't understand why,
and it's really like,
really irritating.
Um,
so yeah,
that's fun.
What's the dog doing?
Dog's asleep on my lap,
they are basically a hot water bottle,
so my temperature is going through the roof right now.
It doesn't help that I'm also wearing a bathrobe because it was cold.
Anyway,
let's move on to actual resonate questions.
Um,
so Josh says,
I noticed that resDB links,
uh,
which point to assets are named via the SHA 256,
some of the contents of the asset.
Does this mean the assets are inherently content addressed
on the server?
The key situation I'm formulating,
if I import the exact same file twice and use
those separate instances of the imported file on an item,
not directly on the item,
but as part of the outside assets.
Will the asset be reused across separate items,
or will it be duplicated and the server before being applied to both items?
Uh,
that depends on like how you do it.
Uh,
we can only
deduplicate assets if we're aware that there are
two duplicates of an asset being used.
If you say things in a certain way,
then we won't be aware of that and they won't be deduplicated,
and then those will
still
maybe collide a little bit.
I don't.
Actually you don't know what we do on collisions.
You probably look up the asset to make sure that,
like,
does it already exist?
I'd have to look at the code.
You could try it and see if the,
the DB URLs stay the same after
after doing all of that.
I know that it's not like an easier answer,
but like it should
provide
a solution,
I guess.
Uh,
yeah.
I,
yeah,
inventory is always duplicated.
I'd have to double check what happens on a collision of the 256 I'm,
I'm,
I'm not entirely sure.
Uh,
alright.
We don't actually have any other questions,
so I guess the question for you guys is like,
uh,
what can we do,
what can we do better?
I mean,
I asked this a while,
but like I'm gonna also expand it into the other questions.
So what can we do better is like what can we do as a team,
um,
but
I also want to ask that individually,
what can I do better?
And,
uh,
the third final question is like,
what can this segment do better,
right?
So we've got like 3 levels there,
like the team,
myself,
and this segment.
While you guys click on that,
I will,
uh,
jump around cause I don't see,
I don't see any other questions.
Ask questions.
I mean I guess we could just have um
cute fetter time as well though.
Actually with fetter in their current position,
you can see how varied the colouring on their back is.
Uh,
like if you were to,
I don't know,
call in this.
This dog here is lost,
you would say that they're a white dog,
but that's not correct.
So you can see how brown.
Look how brown that ear is.
Look how brown your ear is
here as well.
And then
really,
um,
really tan here on the neck,
then going down here on the back.
It's like a stripe that goes all the way down the bottom.
Oh,
we have a question from Chundalak,
who says,
if I wanted to send feedback.
Such as this outside of office hours,
how do we do that?
We actually want to stand up a feedback form that will be um functional in-game,
uh,
based on some stuff I did,
uh,
like historically.
One of the problems with it
is that it's not for bug reports,
and no matter how many times we tell people it's not for bug reports,
they're still gonna put bug reports in it.
So I'm trying to sort of figure out a solution to that one.
Like when you spawn the form or wherever like however we,
we,
you know,
showcase it to you guys,
we can have like
a gigantic arrow that's like
not for fucking bug reports,
and people would still put bug reports in it.
We want it to be more like general feedback,
so like if we did like a really good job,
uh,
you might put in the feedback form.
Great job on.
The
thing that you did,
happiness,
smile,
sky emoji,
rainbow emoji,
nail polish emoji,
alien emoji,
and then we could
take that feedback and and feel warm about the
fact that you were happy that that was done.
Yeah,
I mean like,
I don't know like the names of emojis,
like,
let's be honest,
right?
You use like 4 or 5 emojis and the rest are just,
they don't exist here.
Like
there's an anatomical heart
as opposed to
a heart now,
which like I get the the reasoning behind but still like,
eh?
Apparently so.
It's the nail emoji.
Oh,
sorry,
I'm in the objects category.
Yeah,
there's like a nail polish emoji somewhere.
I,
I don't,
I don't know what segment it's in.
There's too many segments,
but,
but yeah.
There you go.
Um,
Mr.
Jad found it.
All right,
let's go through anything that has been
read
and and handled since I started talking about the nail polish emoji.
uh.
Uh,
so Chan says one,
thing that I would like for more transparency
behind decisions such as the animation we worked.
Yeah,
I don't predict that that will happen again,
uh,
but if it does,
we'll,
we'll do a better job sort of communicating that one cos that was very confusing,
I agree.
But most of the,
most of the the other stuff should be,
uh,
evident.
I was getting a link ready for um
Bala's question,
which is
if you could disclose it,
what subjects are you currently working on?
So those subjects you can see here,
but I will go through them
briefly.
Uh,
so in progress is 8 out of 5.
Some of these are like the same thing,
so it's fine.
I tried to put a 5 limit on there last year and it just,
it never worked out.
Uh,
so there's a general place for private business work.
It also has a size,
and sometimes I update the size and that sort of lets you know on my,
uh,
my capacity for other stuff.
And so currently that work is,
is M.
Uh,
can't go into that one more than that,
but,
um,
next we have loading indicator's not positioned at the bottom left of the screen.
I need to just like overhaul how we position the loading indicator such
that it's more editable and then people will fix that one up.
Apparently Discord and and Steam are still problematic on on Linux,
so I've got that one there.
And then the next one is IPv6 support.
Believe it or not,
IPV6 support was meant to be
my,
uh,
like Christmas break,
happy fun activity,
but then I just,
I didn't do it.
So I'm still doing it
because it isn't actually that difficult,
but it's part of January now apparently.
Uh,
next we have resident assistant protocols to not registered on startup.
That is due to,
I actually want to edit the title of that one,
but that's due to,
if you don't have the .net runtime 9,
it won't register the protocols,
which puts us in a in like a weird position because
I can look into.
Um,
requiring that
Steam
instals,
um,
the .NET 9 runtime for you when,
when the game instals,
but you wouldn't need that to actually run resinite,
so it's like a little bit of a cart before the horse sort of problem there.
You'll eventually need .NET
9
to run Resonite anyway,
so it it makes sense to sort of investigate how to make that a thing.
So I'm gonna look into how to make that a thing.
You can see more information on that GitHub issue,
but I will uh be editing its name,
so I'm not confused.
Uh,
what's the other thing out there,
yeah,
someone posted on that issue that they want it to work on Linux,
and it's like,
yeah,
I get it,
but,
but make a separate issue for that and.
And,
and we'll go from there.
Uh,
we have the reporting guidelines,
and one of them is like,
don't hijack issues.
The reason mine is like we,
we're trying to get issues to be closed,
right?
They're done,
they're closed,
like,
you know,
if,
if more and more stuff keeps getting added to it,
it's never gonna be closed.
Uh,
so that's IPV6 support,
that's the protocols.
Uh,
we've got universe settings overris,
defaults and enforcements.
This one is basically the same as the general place of of private business work,
but one avenue of it.
So the problem that we have is
there's a bunch of like settings that
exist
inside uh the config file that don't really need to,
but the reason why they're in the config file
is so that we can default them to a certain
value for like a an infrastructure set up or
like some sort of operational unit might be a building
or a uh a company or something like that.
That's why it's in conflict.
Jason.
But
I realised that if we make
some
tricky but
kind of logical changes to settings whereby
a universe can have a list of setting overrides which are then locked,
then you can
basically halve the amount of conflict.
chasing stuff that exists
for those business use cases.
There is another issue somewhere that talks about having a key in the confit.
Jason that can override settings by their key.
Uh,
so you'll see in the locale,
for example,
there's like settings.
import settings.
URLs or something like that.
That is um for localization,
but it's actually also directly referring to a property
settings.
import settings.
URLs,
right?
And so what you could probably do in,
in the JSON file is have,
uh,
you know,
a,
uh,
a dictionary that has
the setting key and then the value that you want,
and then that would override anything.
And again,
that would be good for computers,
and again,
that would
reduce,
um,
the
overreliance that we have on.
Just like adding random stuff to the config.json file,
but
uh it's tricky there because the setting system is very,
very,
very cool.
Um,
but unfortunately,
architecturally,
it's,
it was made by Fruc,
so I need to find some time
to speak to Frus about it,
discuss a few things,
but they're heading off to a ferry convention,
FC I think.
I didn't realise FC was in California,
but it is,
so,
hopefully FC isn't affected by the fires or anything.
Um,
I know that it won't be affected by like
the fires like physically,
as in like,
I'm sure the convention center's still standing,
etc.
but around natural disasters,
things like travel get weird.
Uh,
because,
like,
as a society we don't know how to deal with them.
That's why Christmas airports get crazy,
it's like,
oh no,
Christmas,
it happens every year,
but we're not prepared for it,
so we're an airport and we're just gonna like close half our flights
because,
and then blame Christmas even though it happens every year.
All right,
let's go through some more stuff.
Oh,
I didn't actually finish my list,
sorry,
I'm jumping around.
The final one there is migrate status and metrics to resonant.com.
So status.yellow Dogman.com and status.
metrics.yellowdogband.com technically run on the same
computer as the Resonate.com domain.
And I don't really know why they're on Yellow Dogman.com.
Like I,
I don't have any sort of
reason either way,
so it makes more sense to move those
to resonate.com because they are associated with resinite.
And then that will also help with the IPV6 stuff,
which I'm very close on.
Um,
like it might even be better than it was yesterday cos I added some,
uh,
quadruple A's today.
Fun fact,
there's actually a battery size beyond AAA called quadruple A.
And somewhere,
I don't know where it is,
um,
but there's an old Surface laptop somewhere that has a pen in my apartment,
and the pen takes quadruple A batteries.
Right,
so that's Bala's question.
Moving forwards to
can't read your name because it uses incorrect characters
that are designed to make your name look unique,
but actually just make your name impossible to read.
Um,
that doesn't have a Q moving on.
Um,
I wanna make short form content and resume.
Are there any specific rules?
So I think someone talked about that below,
but
the important thing to note is that
you've got to follow our guidelines,
um,
so our guidelines are available on our policies page,
so you can go to resonate.com,
and someone will link it as well.
Um,
if you make more than 100k a year,
you need to email out to our business,
um,
client,
uh sorry,
business at yellowdogband.com
or use our business contact form on yellow Dogman.com.
And we'll talk to you.
When it comes to content creation,
like we're not immediately gonna slap you with like a bill,
we're gonna talk to you and find out what is more appropriate.
Um,
and that's only when you exceed 100k a year.
So otherwise you can just do it.
And so that's including monetization,
so like if you wanna if you wanna
stream resonate on Twitch and take subscription money,
we don't need any of it
unless you're making 100k a year or more.
Um,
and if you are making 100k a year or more,
I hope you're happy cos like,
great job,
great job.
Um,
something that I'm,
I've seen a lot of people like used to do it,
it's kind of difficult to find them because they,
they sometimes use just chatting for it.
But I've seen a few people who will,
uh,
make like a set
in resinite.
Uh,
with a,
a screen,
and then they'll put like YouTube videos on that screen,
and then they'll sit at the,
in the set a little bit like a talk show style
and react to the videos
in resonate.
And that's really cool and you should go ahead and do that,
provided you aren't making 100k a year,
just go ahead and do it.
Uh,
so they'll jumping back up and down and across and to the side and
all sorts of stuff like that.
Uh,
where are we,
uh,
OK,
short form content done.
What are the ways,
uh,
for getting volume or maybe
some value of mass for an object?
I know I can calculate bounds,
but that doesn't necessarily get a good
picture for objects with weird orientated dimensions.
You can't,
you can't.
Um,
you,
you might be able to get like an analogy by.
Just sort of more explaining what you're after,
but
we don't have mass.
There is actually like on the colliders,
there's like a a field that's called mass or something on character controllers.
That's gonna be important once we do uh rigid body physics.
But,
uh,
until then it doesn't really matter.
Um,
so most colliders just have a mass of one,
and I did ask Frus a while ago what the unit for that mass was,
and it was sort of
unitless,
right?
It just meant,
because it's one,
it's identity.
Um,
so it doesn't really have a unit right now,
uh,
but that is
the sort of closest approximization right now.
All right.
Moving forwards,
uh,
Chan says,
what's the purpose behind disabled platform interfaces?
Just trying to know the context around it.
Uh,
I don't remember why freaks edit it,
um,
but sometimes we just add stuff because it's easy to add and and.
Some people like it.
Like a good example to,
to talk about actually is the protocol registration.
So we added that protocol registration registry stuff
in the last update,
read the update notes for more information.
And I'm very aware that
some people are just,
I don't know,
they get really funny
um when Ressonite does stuff that every other application does without asking.
So
every other application,
you know,
including Adobe and Office,
and even VR chat,
they just write shit to your registry all day,
and they don't tell you what they're doing or
why they're doing it or anything like that,
and everyone's like,
that's absolutely fine.
But I had like an inkling that if we were
to do that there might have been some complaints,
so I added that option just in case there were complaints so you can disable it.
But you also might want to disable it on certain machines where
you might have
multiple copies of Resonate running and you don't want them fighting.
Cause currently,
let's say you had like 3 copies of Resonate in 3 different folders,
those would be fighting with each other for those registry keys,
and so you might want to disable it for that.
I can probably dig through the notes and and.
And figure out why it was added,
but
I don't really know why.
Uh,
next question is how does Resinate take to AI chatbots?
We don't
have anything
um against AI from a user perspective.
So if you're making a creation in Resonate that uses AI,
we don't have really anything against that.
As a company we are
um
very,
what's the word,
trepidatious,
is that a word?
I'm using my like big vocabulary today,
sorry.
Uh let me just go define that word.
When you like trepidation is the root word,
right,
trepidation.
Uh,
trepidation,
apprehension,
yeah.
So we're looking at AI with apprehension.
Um,
we're trying to avoid using it wherever we can,
uh,
particularly if it's generative and particularly if it uses your content.
We wouldn't do that,
but
it's incorrect to say that we'll avoid it completely because it's everywhere and
there's some stuff that we did
way before this AI AI boom,
that before the AI boom,
it wouldn't be classed as AI,
but now the AI boom is in effect,
it is classed as AI.
I'm gonna ramble here for a second on a big tangent,
but I,
I don't care.
Um,
you'll learn something,
I guess.
So there's this really old
concept called an expert system in AI.
An expert system is something that can take a list of knowledge
and pass that together with a list of sort of qualities,
conditions and stuff like that.
And figure out an answer.
And
if you remember Akinator,
you know,
that's the game that you play where you have to like ask like,
you know,
is this person a celebrity,
uh,
you know,
did they,
did they star in sci-fi films,
etc.
yes,
no,
yes,
no,
and then Akinator originally eventually goes like,
it's prime,
and you're like,
damn,
how did you guess that?
That's an expert system.
Um,
so
many,
many years ago,
we're talking 2014,
2011,
all that sort of area back then.
I was writing an expert system for
uh the motorsports um
startup that I was a part of,
and that it was designed to basically take
questions from a rider about their motorcycle.
You know,
what CCs is it?
Like,
have there been any modifications to it?
What's its horsepower,
like what type of fuel
does it
need,
etc.
And
it.
Was fantastic,
right?
And then we put users through it
and we realised,
hm users are struggling with it and like why are users struggling with it?
Because
some of the questions didn't have validation on what was being entered,
and so they would error out.
So a good example here
is uh we were trying to also do another
expert system for sort of organising the paddock.
Peter don't bark at the door.
Do not bark at the door,
you're not allowed to.
I can see you looking at the door,
you're you're in bark mode,
no barking.
Come back here.
Anyway,
um.
I'm sorry.
Oh.
We were trying to figure out like how to assign um camping space at a riding event
using a sort of expert system,
using knowledge about that.
But what we did was we asked the person,
how big is your trailer or you like,
you know,
how big of a footprint do you want to put in our,
in our camping space?
And we had no validation on that
whatsoever,
and so someone literally wrote,
I don't know,
ask Jeff.
And
there were server errors for like an hour until I jumped on it and and fixed it.
It was like,
yeah,
I don't know,
ask Jeff.
Turns out that isn't a measurement you can do mathematics on.
Cos I was trying to do like footprint analysis and it's like
I don't know ask Jeff,
multiplied by I don't know ask Jeff,
gives you the area of I don't know ask Jeff,
but computers can't multiply that.
Let's move on to uh other questions.
Sorry,
I'm I'm rambling a lot,
but like,
hey,
let's move on.
Uh,
OK,
we did that,
we did AI chatbots,
uh.
Uh,
no,
people should stop calling resonate a game.
It's not a game because there are no rules or
direct objectives or really a general intent of fun.
It's a platform that has content that can be games.
It,
it's difficult to not call it a game when it's on Steam listed as a game.
Um,
I get it,
and as part of the,
you know,
the,
the business operations side,
it's important that I don't call it a game,
and I usually just call it resonate.
But for the purposes of this session and this,
this stuff,
I'm using like colloquial and slang stuff all the time.
Uh,
because precision of language isn't
usually that much of an idea,
as evidenced by me using trepidation,
which I know internally in my head like visually what it means,
but I don't know what it means in English,
uh,
which is something that is
dependent on how your brain works.
My brain has all these vocabulary words in them that I know I'm using correctly,
but I,
I don't know the literal meaning of them.
So when someone's like,
that's a fancy word,
English man,
what does it mean?
I'm like,
I don't know.
Like.
I can't explain it.
Like I learned
the word and and the meaning in a different way.
Anyway,
uh,
Connor says,
what are the requirements for being a mentor,
what are the social duties.
You can go to the Mentor wiki page for that,
but I'll,
I'll read a couple of things from it for you.
Uh,
so Mentor is a member of the community that has
volunteered their time to help users of all experience levels.
They serve an essential part of their new user experience
by reinforcing the friendly welcoming
community atmosphere that Resonate provides.
Uh,
follow up from Nuki's question.
How might I use Protofox to find the volume,
mass or some other relative value of an object?
You can't do mass and you can't do volume.
The only thing you could be able to do is bounding box,
right?
So there's no real,
there's like algorithms you can do with the bounding,
but I'm gonna have to open paint again.
I'm gonna have to open paint again.
Share screen,
paint.
All right,
so the problem with bounding box that you have is any irregular objects.
So this don't,
you're gonna screenshot this and put it on the wiki anyway,
like if we have like a,
a version of the gloopy,
this looks rude,
OK,
whatever,
we're not doing gloopy,
we'll do a star.
That looked rude.
Anyway,
if we have a start and we want to calculate its volume,
the only way to like literally do that,
if it's a 3D model,
is to do really complex stuff on each of the triangles.
So we have to look into,
like,
each of the verdices and then do mapatics based on that.
So bounding boxes then good,
but the problem with bounding boxes is if an object's irregular,
the bounding box is just weird,
right?
Like,
we could shrink this in a bit.
Cause I,
I,
A,
I drew it shit and,
and B,
we could shrink it in a bit cos it's a bounding box.
But um
that is just sort of like the minimum bounding box
that we can do to get around the object.
Um,
you know,
if I wanted to highlight this drawing
and try and get everything in it,
this is a little bit easier to edit,
like that's sort of the best job I could do,
right?
I could do a better job,
but
that's what Proto Fox is trying to do,
right?
But that doesn't accurately represent the shape,
but it's the best that you can do.
Alright,
next up,
uh,
Bala said.
Your uh your old protocol handling presentation
video showed a section of the settings for
choosing the behaviour and opening session URLs
choosing between blah blah blah blah blah.
Where is it?
Oh yeah,
so it's in user interface.
I,
I don't remember,
um,
OK,
I put that code in for review before December,
and so I don't remember the decision matrix in my
head that led it to be a user interface,
uh,
and it's likely we'll move it at some point,
but we also have,
and it's in progress,
like.
I don't know how close to being done it is,
but like Fruits has started it is a search bar for settings,
so that might help at that point.
Uh,
Chandle says,
does resonate in any way track the source of a saved item in the inventory?
There are audit entries that might,
might have that in there.
I'm not sure I'd have to look,
but there is additional metadata that we do get when an
item is saved that is not presented to you currently.
And yeah,
the handler only works if uh .NET runtime is installed.
I'm trying to figure out a way to sort of
make .net 9 runtime install,
but
uh as posted on the issue,
and I'll post it here for the for the the lols,
um.
Steam can automatically for you set up
the following redistributables using an easy checkbox system.
Like I just check that box and they're installed at the same time as resinate,
but draw your attention to the .net section,
which just inexplicably stops at 4.8.
So bit bit confusing there.
All right,
moving forwards to
Nuki,
how useful are the uh the office hours?
Do you have any metrics on that?
Uh,
I,
I don't know,
that's why I'm asking for feedback about it,
like,
cos I I see lots of people are enjoying.
Uh,
Fruchs's,
uh,
stream,
and then the,
the cut up sections of the stream that
he then puts onto YouTube.
I see that they're,
they're being enjoyed,
and I'm like,
could I be doing better to further the enjoyment of these?
And the answer is
probably,
but there we go.
So I don't really know.
Uh,
Mr.
Dab says,
what alternative platform will resonate and migrate to
once TikTok gets banned in the US?
Uh,
we are a European registered company,
and so we kind of don't care what the US does.
In some cases,
but in other cases we do.
It's,
it's annoying.
It's really annoying when
it's annoying on both sides,
right,
cause like when US policy affects what we can do as a business,
it's like,
uh,
but when
EU policy affects what we can do as a business,
it's like double because it's usually like much more restrictive.
So you can thank the EU
for things like
the 16 year.
old thing.
Um,
this sounds weird.
Let me explain.
Um,
you can thank us being in the EU for why we're only able to offer accounts to,
uh,
people who are 16 and older,
um,
otherwise it would be 13 or older,
which is usually the standard.
Um,
we could probably do 13 or older,
but as far as I remember,
we'd have to,
um,
process,
store and secure
a like
field trip permission slip style thing
from
the 13 year old's uh parents.
Mummy,
can you sign my field trip permission slip?
And they like read it,
it's like.
Little Timmy wants to
log into resin and blow people up with like cool weapons and stuff.
The sign here.
I also want to
uh like I want to make more content,
like I haven't made tutorials in forever,
and part of that is being so busy.
Part of that is having a dog now.
um,
they get kind of weird when I'm in VR sometimes,
but we're training them.
Um,
and then part of that is like,
I don't know,
just like,
once you've stopped,
it's hard to stop,
if that makes sense.
But I also wanna do other content,
so I do have a gaming channel,
um,
I shouldn't really plug it that much here,
but I'll I'll,
I'll do it,
it's my office hours after all.
Uh,
or I upload random gaming videos,
um,
if you take a look at that one if you want,
but like,
you know,
I,
I try to like anything I can do to make like
you guys like resonate more is like what I'm trying to do right now.
So,
so it's just,
right,
uh,
9809
says,
oh thank you for all the wiki work by the way,
you're doing awesome.
Um,
I always,
feeling bad's the wrong word,
but like I want to pitch in more with the wiki,
like there's so much stuff I wanna do there but just can't.
With the IPV6 work out of the way though,
I will be adding
um wiki stuff to make it better work.
Like basically the wiki doesn't go over a CDN right now,
so for um Ocean people,
like the wiki can be slow.
Um,
and so there's a whole like cloudflare set up you can do
where um you tell Cloudfare to cache wiki pages,
and then when people edit the wiki pages,
the wiki will shoulder tap cloudflare and be like,
this page is updated,
clear your cache,
and then Cloudfair goes,
yes,
and then the next time you load it,
you get the new page.
And if that
system wasn't in place,
you'd be really annoyed.
It'd be like,
I had the Wii.
But the updates aren't reflected there yet,
and I'll be like,
yeah,
you have to push control F5 and wait like 10 minutes.
I'm just like,
nah,
that's not good.
I also need to convert the
wiki's Docker stuff back into like a proper Docker file or Docker compose setup,
because what happened was when the wiki was originally set up,
uh,
we ran a lot of commands in the Docker container,
which scares the shit out of me.
Um,
so I'm trying to like
collect all of those.
For context,
you're meant to describe everything required to get
a docker container running outside of the container,
such that all the container needs to do is start and follow those instructions,
and then you have a working application stack.
You're not meant to modify application state
once the Docker container has started.
You're meant to recreate the Docker container with the
new Docker file or the new compose setup.
We didn't do that,
so there's a lot,
lot to sort of Back out and do that.
Uh,
but going back to 19809's question,
which is why we were,
we just got distracted somewhere else,
uh,
what does max size on dynamicspri font do?
OK,
let me take a look.
All right,
so we're going into dynamic site front,
and then,
uh,
oh,
there's an internal object that I,
I love,
I love like nested classes.
I get how you sometimes need to use them,
but if you put a class inside another class,
I'm still gonna like raise my eyebrows just a little bit.
I'm gonna like raise my eyebrows and be like.
Could this be in the namespace,
not inside the class?
Hmm.
Uh,
so Mac size determines basically the,
the glyph size.
Uh,
so you can see in the,
uh,
Legacy World item,
which is part of the Legacy World browser.
Um,
that it requests a sprite size of 64 on the dynamics by phone,
and then you're also asking GIF or something about Gliff,
right,
that'll be below TikTok,
subtype.
I guess it does have a subtype,
I see.
That was what I was just rambling about.
Uh,
gly doesn't use the uh max size value at all.
I think that's that covered.
Um,
Noki says you may have the most useful office hours because you answer
a lot of intermediate questions sometimes I look at the codebase for us,
getting responses on how things work and our developing is good.
Uh,
and then some other feedback,
uh,
excellent.
Uh,
to clarify the EU all resurresurrection thing,
I mean the res.
We're going into the business of resurrecting people
in uh
in uh in Resnide,
that's all,
a 2025
like roadmap resurrections.
You got any dead people just like you gotta bring them to the Czech Republic,
we'll uh
we'll resurrect them.
Anyway,
the registration stuff,
I want to go back over that so just for this clarity.
We could do 13+,
but that would require the
adjustments to our policy and legal handling to store
the permission from the parent to have that data.
Um,
and we,
like,
it's not that we can't figure out how to do that,
it's that figuring out how to do that would have delayed our launch by a month or two,
so we just didn't do it at the time.
Now we could do that,
but I,
I,
I don't think it's like a,
a high.
Uh,
probability of doing.
Joli says the default coconut avatar.
Is that what it's known as?
That's awesome.
Uses cloud variables in a very nice way,
but there's no way to set them as a user without commands or flocks.
So their plans to make it customizable from the home auditorial.
Yeah,
we want to have like a UI or panel thing somewhere.
Uh,
Ny says,
or you could just not store the data until they're 16,
like a resinate for mine is.
Yep,
we.
It
we don't have the,
the luxury of,
of,
of informing our,
our back end
what data it can and can't store about someone.
It's like all or nothing.
Of course there's like extra stuff that you can do that will generate more data,
like for example if you.
If you never import your avatar,
of course we don't have your avatar's files,
and that that is technically data.
But if you import an avatar,
then
that's,
that's data.
If you type a chat message to someone,
that's data,
and if a
under 16 year old has,
um,
if an under 16 year old has an account
and is sending messages via the contact system to other people,
then we're
basically like a chat room.
At that point,
we have all the sort of,
you know.
Uh,
young adult chat room problems as well.
0,
909 was asking
literally the bearing field,
not
what bearing max size her.
Alright,
so bearing looks to be afloat to.
Ref T.
OK,
so glyph metrics just,
OK,
so it goes into a class called glyph metrics,
um,
which,
which has a,
a bearing
called horizontal bearing and X and horizontal bearing Y.
Oh my God,
I forgot we did our own text rendering.
This is like I'm knee deep in their text rendering code now.
Uh,
it looks like
an offset between characters.
I'm,
can I give you a class and you can decompile it and read it?
Is that,
is that OK?
If you look in
uh elements.
assets.
string render gly segment node,
and you look in the function appended glyph.
What you'll see in a penned gly is
we adjust the start position of the glyph by its bearing.
There's also an offset which is programmed,
uh,
it's another input,
so it's not calculated.
Yeah,
that,
that should do,
yeah.
I don't know why it's called bearing,
but if you look at like tech stuff,
it it might just be that like
that's the terminology used for it.
I don't know.
Typographers are really weird.
You ever like spoken to a font designer.
Ask them about kerning.
Right,
OK,
we got through that one,
bunch of jokes,
bearings done.
All right,
Mystic had a question.
Mystic says,
uh,
what would you say the major updates are
within the past few months?
Well,
you can read the updates channel if you
to get those.
I'm only joking,
I'll go over them.
Uh,
so we just got
something I've been planning to do,
but I don't know if people would like it.
And I also don't know if I'll be able to keep it up,
and I,
I don't want to do stuff that I'm,
um,
intermittently good at.
Uh,
cos that's
like problematic,
but,
uh,
I was thinking like for for updates,
just like doing a YouTube video for each
update notes and actually explaining through them in
different words with visuals,
etc.
But yeah,
the updates channel will cover you,
like uh it's,
it's difficult for me to remember them because
you're asking stuff that was in December and
you know,
December doesn't exist anymore.
Sourdough is not entirely a resonate question,
so feel free to skip if not applicable,
as someone who has worked
at some small game studios before,
but as they're not lodged skill gaps that
are typical requirements to work as a developer,
do you have any suggestions on ways that I can improve my
skills or perhaps know of any good groups to poke around in?
Uh,
pirate software.
Just like you probably already,
already like
hang out with or have watched some of their videos,
but
Pirate Software's community and their channel and their Discord is all about,
like,
game development is
easy,
just do it.
And a lot of the stuff that he does is just convincing people to just pick up a pen
and start creating,
um.
So like their videos are mostly just like
random video games with them pulling pulling an angry face,
but hey,
maybe their website has,
OK,
their website goes
to their channel and they're live and they just like ear blasted me.
But yeah,
they've got a Discord and and that's probably a good place to look for
for like game people.
I'd also recommend um just like making stuff,
so take a look at
um what's the word?
Take a look at Luha Dare and
uh Global Game Jams another good one,
that's in January.
um,
so actually might be soon.
uh
but yeah,
just like participate basically.
Uh,
I'm not like a good person to ask for like specifically game development,
uh because my background is is more just.
Software development all up.
Uh,
when you get to sort of my
experience level,
like all programming's the same basically,
but,
uh,
my histo historic,
uh,
stuff has been non-gaming.
Oh,
Sourdough says that they're trying to become a little
bit more generalised rather than just work on games.
I think that's good for safety.
I,
I don't remember if this is true,
and so don't quote me on it,
but I seem to remember that there was like a bit of conversation and discussion
and like
parental oversight.
Over
my desire to do computer science versus games programming at university.
Like I seem to remember like I had quite a few conversations with my parents about it.
They're like,
hm,
you sure games,
you sure?
And that's why I think originally I went for computer science,
but that's a decision I made in like 2008.
And
like,
I don't,
I don't know.
I remember leaving for university
because like I had to take a lot of stuff,
like clothes and stuff.
And so it was in like a big like IKEA bag,
and I remember like lugging that into the car and
then it's just like all a blur and I'm here,
hello.
But I think that's it for questions that we have.
Oh I can't,
we have more questions,
we have more questions.
We have one more question.
It is we are getting to like,
we're away over time,
but we're getting to like double time at this point.
Sadows,
no,
not Sadow's question,
Chandal Axes.
How does bypassing the max user limit on joining a world work?
I know that if the host,
and only the host invites someone,
they can join over the limit,
but are there other ways,
especially for headless?
Not that I'm aware of,
um,
but I,
I do have the code base open.
I'm gonna teach you a tip right now if you're working in a round.
code base that you've forgotten where the join logic is.
You can go to the local file
and you can search for Max,
uh,
maximum.
It's like an error message,
isn't it?
What's the error?
What's the error when there's too many users?
Let's try users.
Alright,
we'll go for the low key World config Max users,
that gets us part of the UI that handles it anyway,
and go from there.
So then I find that locale key and it
gets anywhere that's found that locale key and I can
then go from there.
So I see a Mac user's field.
Interesting.
How does this go in?
Max uses?
Oh,
maybe it goes through that.
OK,
yeah,
it's in world configuration,
my brain's working now,
Mac users,
Max,
Max users,
world configuration.
Find all references,
world.
Has free user spots,
here we go.
Yeah,
OK,
so it looks like
when uh a joint request comes in.
We have,
uh,
when a joint request comes in,
we do a bunch of checks just to sort of figure out
if we can let them in or not.
And depending on the order of operations is where you'll get allowed or denied.
So we start off with like,
hey,
if you're banned,
you can't get in,
um,
if you're banned,
there's 3 different varieties of being banned in this list.
Well,
um,
4 different types of 5 different types of banning,
wow,
OK.
Well,
this like,
are you banned from resinite from a moderation point of view?
Are you banned
by stuff I can't talk about,
or via other stuff I can't talk about?
Or
are you banned by the user,
or are you banned by the world?
There's a lot of stuff.
OK.
Then if the cloud variables are there,
if that shuts,
if that appears,
then you'll be denied by the cloud variables.
And then if you are a an allowed user,
which is from an allowed user's hash set,
This is a hash set when does stuff get allow a user to oh I see.
OK,
so on an invite,
we allow a user to join
without the the user limit being affected because it's an invite.
And what that does on the,
on the host is it sort of flags them on a list and it's like,
hey,
if they're on this list,
just let them in.
Uh,
then if the
cloud variables allow them,
you can get in.
Uh,
there's more band stuff here.
If you're banned,
you'll get kicked out.
We might have to rewrite this to sort of like
put the band stuff
higher up.
Uh,
only registered users,
that denies,
that denies.
OK,
so after all of that stuff,
like if
the cloud variables,
yeah,
everything bypasses the maximum user limit,
invites do,
cloud variables do,
um,
the,
uh,
the join verifier,
that new thing,
custom joint verifier,
that bypasses it.
Uh,
yeah,
it's like right at the bottom.
And then there's a bunch of stuff for access levels.
Yeah,
that's like,
it's,
it's basically like,
uh,
stuff,
um.
It's like that,
it's like stuff that can let you in,
other stuff that can let you in.
Then the use the max limit.
There's other things that we can do there,
um,
we would just need like a,
a GitHub
issue so we can discuss and take a look at it.
Like there's a,
there's already a system here
that can
um register a user as as being allowed through the the limit there,
uh,
which happens on invite.
It also happens on a headless invite,
which makes sense.
We just kind of like let them through.
um,
in,
if you're in the like modding space and you're looking to sort of allow that,
there's this thing called
uh world.
allow user to join,
it's a method that you a user ID into.
Uh,
so I don't know if you wanted to
hypothetically,
I don't know,
open up a Reddish connection in a mod and check
the user is like allowed to overwrite.
The Maxlu in your red this cache,
you can call that in a mod or whatever.
And with that,
I think we're gonna,
we're gonna leave off because we've got all those things answer but looks like.
I am going to,
because like I forgot to do it last week.
I'm gonna do the thing where I stop the recording
and then I sit here with the 16 of you that are left,
like,
aggressively staring at me until I upload the recording.
All right,
so we'll stop the recording now.