right, everyone, welcome to prime time the office hours stroke AM,
E for prime and whatever questions you might have for me,
please feel free to drop the questions in the office hours chat.
And, uh, I'll get to them as soon as I can.
Um,
if there be no questions in the play right now,
just a quick reminder to everyone
to continue reading our road map, reading the new
wiki for the contact in the news team page and playing the
hang out. Have fun. Quite a bunch today, aren't we?
If you have any questions, any questions at all, drop them in the office hours chat.
I'll be happy to answer them. That's why you're all here.
If you have no questions, that's totally fine, too.
But we're just going to sit here in silence,
so I'm making it awkward. Oh, the most amazing, amazing sentence.
Someone has a question. I'm amazed. Please, please delight me with your question.
I can't wait to answer it.
OK, so we have a question from bat. This is a good question. So thank you for asking.
Uh, bat says, is there any plan for account management?
As in changing user names or emails and such.
Um,
right now, lots of that stuff goes through shifty.
She's amazing at her job and helping people out,
but I would love for that to be automated.
Um, that will go into a lot of what will happen, um, with like the website. So,
uh, if you visit
like or or
news
dot com, uh, you'll see the sort of new, uh, website framework.
That's not what it will look like. That's just sort of like a technicality thing.
It's a technical thing.
There's a lot of new end points and authorization there, Um,
that will allow things like
changing user name, email and stuff like that.
Those would be more sort of website features
that you find on many other Web providers.
I'd also like to see if we can get those abilities in the actual game.
The problem with them being in the actual game.
Sometimes those processes are a little bit complicated and so on.
I usually do them on a website because it's easier, but
we'll see what we can do.
Honestly, though being yes,
I would I would love it if Shift's primary job throughout the day
was not doing stuff which could easily be Automat by a screen.
I'm happy that she does it for us, but
it would be great if, you know she didn't have to. Same goes for patreon.
I want, like, automated patreon linkage.
That'll be interesting, though,
because we need what we basically need you to do is link your account.
Like you know how Right now you have, like,
it'll link automatically of the emails match.
Um, if the emails don't match, you have to, like, speak to shifty et cetera.
It'll be like instead
log in
to,
uh, patreon and allow, like, log in to
allow
to access your patreon data, and then it'll be able to see that you have a pledge to
and be able to link those together.
I strangely have the sort of policy of always trying to make myself redundant when
it comes to any sort of process that I don't think I should do.
You know, when you think about, like, vacuuming, you're like, Oh,
can I automate vacuum cleaning?
And that's how uh, things like RBA
came up and they haven't yet found a rumba that doesn't eat my socks. So I don't like
OK, we have some new questions, but a little bit about the RBA.
First of all, Um, yeah, I agree.
Like half the cleaning power of a room is just making you pick up stuff like I.
I used to use a Roomba.
I wouldn't turn it on as much as I would like, because I I had to babysit it.
Um, it could never do like a full cleaning job.
And even when it could, I didn't think it was doing a good job.
So I purchased a regular vacuum cleaner
and I pushed the vacuum cleaner around my apartment
how he would do it normally and manually,
and, uh, it collected, like, way more dust than than I thought it should have.
And so I just haven't used it. I don't think it's effective.
It might be like an exceptionally clean house, but like
there's like three pairs of slippers, like in my like living room,
and I don't really know why, and there's a sock over there.
I don't know how long that's been there,
you know, you got to tidy up. It's crazy.
I bought a second pair because I needed to launder my
first pair But then I realised my first pair couldn't be laundered
because they like, like, like,
fluffy insides. Right? But I wanted to clean the fluffy insides.
And, like, how do I clean the fluffy insides? And it's like,
maybe just throw it in the laundry room. No, you can't do that.
So I specifically bought a new pair of slippers that could be thrown in the laundry.
Obviously by itself. You wouldn't put it in with a full load of laundry. Excuse me?
You wouldn't throw it in with a full load of laundry, but like you, um,
you
just put them in separately.
Um, ask for that question. Sorry. I get back on topic here,
asks I have a question about the web socket text message. Send a note,
node. Not note.
If the Web socket client component has a separate user,
then user responsible for the impulse that is received at the
at the web socket text message Sender node.
Does that event get networked back to the other user, or is it rejected outright?
I have opened up the code base to take a look at that.
And I'll also take a look at, um
uh, the Uh uh, A follow up question there.
Which is, uh, can I localise the Web socket client component,
or would that not be advisable?
So I'm gonna go ahead and open up the, uh,
Web socket client component first and just sort of take
a look at the I pushed the wrong thing.
Uh,
no. II, I don't run
Neos, Stop, Stop! Don't Don't run. Oh, it's just building. That's fine.
Um,
Web socket client. Here it is. A component
has the handling user property here.
Handling user is no cool. Cool. Cool. Cool. Cool. Cool. Cool
text message receive dot Invoke message receive.
OK, so that would be the web
text
Web socket. Text message. Receiverr Here are, uh,
client text message
received.
There is no network synchronisation of the event, so it should only be from the user,
which the, um,
the web socket is is done by.
Basically, we only open up the connection on the, uh, on the the user that is in the,
uh, handling user.
So that's good there.
Uh, now you could by the looks of things you could, um,
you could values override or or or localise in
whatever way you want to the the component.
The only issue there is that you'd have to localise, uh, as effectively as you can.
I don't know how effective you be able to do this across the board,
all of the properties. So there's U. I, um, accessories and connect re try Interval.
Um, those all sync as in the value of those sync.
And so if those all aren't localised,
then you'll have a problem with that is connected.
Um, those ally. So you basically have to, like, localise the entire thing.
Um, as it only connects to the handling user. It might be better to just, like,
make you know, say, there's four users make four copies of that component on a slot.
So four slots
and use and use that right?
There'll be no overhead from doing that because it's only connecting um,
on the user that is in the handling user property.
Let's see what happens if the handling user is null.
Uh, connect to references.
You
help me out here. Thanks.
Oh, cool.
Uh,
not equal to the
user
is not.
Yeah, it should be good. Just, uh, make a, you know,
make it four.
There's four people et cetera.
Uh, so gun
then asks, Does the B haptics port open automatically,
or does it require an enable It opens up automatically?
Um, make sure that the B haptic software, the optics player,
has like, a green status and that you've tested it. If it's your first time,
and then it should just run it a little bit like the, um,
five face tracker.
I know the face tracker, like when we initialise it, We actually like will, uh,
cause the the software to run,
which I think is quite cool.
But I found that we'd be haptics better to run the software first,
um, particularly because, you know, putting it on is an activity.
So I put it on, and then I make sure it's OK, and then I
will then start here,
whereas with the face tracker, like, it's easy to start
with the headset on your head like the
The
Tics Vest is a conscious decision. In fact, all the beep stuff is
it's like, let's shoot up and get in. It's complicated,
all right? I think we're up to date on questions.
So if you have any other further questions, keep them coming.
It's pretty a quiet one today, but I'll still upload the recording.
It's a story that I'll try and trim the silence there.
It's also a awesome to see when you trim the silence.
How much time is actually spent on the office hours?
Uh, we're sitting here for 30 minutes. That's the time.
But maybe once we've trimmed the silence, it's actually 22 minutes. And that means
I've saved listeners eight minutes by trimming the silence from my recording
Drop
E type. And
I am expecting good things.
Uh, we already answered that one.
I'm not sure if you were here when we did,
but thank you for
was asking me if I had answered a previously asked question. And I did
no worries.
We all need more sleep these days. I still wait for another, uh, question.
I had to check my emails. I know this has nothing to do with you, but I have zero emails.
I have no new emails. I'm ecstatic that that is the case.
Oh,
I just
dropped some stuff on the
floor.
All right. I have a new question from soda. Super. Who says a question
with all the tools for geometry creation in here.
So their plans to implement a material remover of
some form or a razor would be wonderful when
creating rough draughts of an FX to export more
mesh editing tools are on our road map.
I'm not quite sure what,
like, sort of form. They'll take
something that comes up a lot. Is terrain generation,
uh, of the sort of brush kind, you know? And you can sort of, like, go
hey, this area higher this area lower, Um,
and also sort of carve through the terrain a little bit.
That'll be cool.
The tooling there could also probably used for, um, like an eraser.
When you're using the pen like you know, when you use the the tube pen,
which is is most pens that you use,
they just they don't look like tubes because the the the dots been trunk small.
It would allow you to do an eraser there.
You can kind of do that right now,
but that's only if you sort of write in a very specific way,
you'll be able to just erase portions of it.
Um, with the mesh editing tools, you might be able to erase it
like it was an actual, you know, pencil on paper.
Let's say you draw, I don't know, like, let's say, a
H.
You might be able to just,
like erase half the H because you put the eraser tool through half the H.
Thank you properly linked to the your topic Shoes for those
if you want to, like, see what might be possible.
Um, go back through
YouTube channel
and
you'll see that there is a video. I don't remember what it's called. I think
water
or something like that.
It's an earlier version of Neo
that was mostly sort of a tech demo for the leap motion
that had terrain generation in it.
And Gryphon is asking for a Could we get a separate by loose parts option?
Um,
it depends like
how that would work. I'd have to look internally like how the mesh is converted.
There's a concept in in, um
yeah, Google Out of the way,
which is what's called sub meshes also exists in the file formats we use et cetera.
It just sort of refers to
like how a mesh is bucketed down,
separate by loose parts in blender does it
by its internal format as other applications.
And that's more sort of like, You know,
if you can see that those vertices are separated, I'm just not sure, Like like,
if the data structure is there that we can use,
it's certainly a good idea. So hop it over to the github if it's not already there.
And do double check the static mesh ready?
Because there are a bunch of options there,
one might function close enough like split sub meshes.
I thought that was an option.
Which reminds me, If you're building stuff in Blender,
please rename your objects and make them make sense.
I'm so tired of downloading new avatars or new models and opening them in Blender,
and the model is just called like
cylinder.
It's like, Great. So you made this fantastic avatar,
which I just paid 20 bucks for, and you couldn't be bothered to rename the cylinder
to body?
Or is anything other than just
cylinder, cube or box or whatever? Same with hard surface modelling as well. It's so
much easier to navigate through,
Let's say I don't know. It's a, um,
architectural piece
and, uh,
you know, like let's say it's a you know, a conference room.
That's always an easy example.
Like the wall object is called Box 22 and the floor is called Box 50.
There's no rhyme or reason there.
You know what it is because you're just clicking it. Just rename it.
It'll be really easy inside, you know,
to figure out if you want to delete or move the walls or the floor.
And it reminds me of some shoes. So
I don't want to harp too much on sort of, you know, uh,
people who are not as familiar with the tools that they're using as possible.
Um, but I do occasionally find, um,
usually more sort of like anime style models where they've got, um, shoes.
And they're wearing a particular type of shoes.
And the reason was they're wearing those shoes
because that's the customization that they wanted.
That's the identity that they wanted.
They wanted those cool shoes, and that's fantastic.
You've decided the pair of shoes that you want,
but then you went ahead and you downloaded
an architecturally correct or an anatomically correct shoe model
and brought that into your avatar and then just glued it to the bone. Um, at
that point, you have like a million polygon shoe.
Uh, and you go down and I've done this a few times.
You go down and you realise each individual islet for the lace. That's the the hole.
What the laces go through on the side of the the like lacing area of the shoe
is
like 2020.
K tries itself because it was meant to be a sort of close up rendering model for maybe
sort of promotional renders of the shoe or to show off the shoe as like a skill of,
uh, 3D models.
3D model realism.
It does feel like that, Gryphon says. Polygon ballast that it does feel like that.
Sometimes
it makes perfect sense,
like if you're doing sort of like a promotional model
for a shoe or you're testing rendering rather than gameplay design
you.
You render that shoe as many triangles as you want,
like it's just it's going to render, and it's going to look cool,
and you're going to get the effect that you want.
If you're putting that onto an avatar, though, you need to use different models,
different materials.
That also happened once with
I think it was like a wedding ring or something.
Like, you know, there was, like, a VR chat wedding, and
someone was like, Could you put like, a wedding ring on my avatar for me?
And I'm like, Sure, send me the unity package. I can sort that out.
And I opened it up, and then I opened up the ring they wanted on there and again.
It was like a million polygon ring.
And I said, You're actually going to see, like, 0% of this
like, Yeah, but it looks cool. And so I'm like, OK, let me try and decimate it a bit.
So I decimated it down
and I sent it to them. And they're like, Oh, it doesn't look as cool now.
And I'm like, it's it's gonna be like
a pixel or two on most people's screens.
And if you're close up, it's still only gonna be like a tiny square.
Yes, that is a perfect representation of the problem. Imagine that.
A wedding ring or the islet of a shoelace.
I do have a lot of architectural models as well.
Those are interesting because those are
made in architectural modelling applications.
They're more designed to be
true to the word. What? You actually need to build the building from that?
Maybe it will output blueprints.
You know,
the the the foreman for a project that will actually look at and and build something
for, uh and so the the model format comes out.
Not that optimised for Neo.
But the reason why it's not optimised is because it's like extreme detail,
and this isn't even really in polygons. It's in, sort of like all the sort of like
Goins,
I just if you're in a building that's an apartment
block like I am walking your stairwell and just like,
look at everything like Look at the way that, like
the stairs above you, look the stairs below. You look
just
like the handrails, how they are fixed, right,
because it's an architectural model.
They've modelled all of that, and it's just like, Ah,
well, it was cool.
Once we were doing a sort of walkthrough of something we based on one of those models,
and, uh, the person that was looking at it was like be grey if the curtains were open
and I just shot one curtain with a mesh visibility tip
because I had a feeling and that feeling was correct,
which was every single curtain was its own object with neo.
So I shot the curtains with the most.
The tip. One curtain
and the curtains throughout the entire building just have vanished
and it was beautiful.
They're just like, that was quick. This is really cool.
And it, like, you know, showed the power of them, sort of using
it as a tool for visualisation.
But, um,
I was also scared because
if I shot the wrong thing, half the building would disappear.
Like if you shoot generic white Wall, it might take out, like all of the walls,
because they're all sort of linked together because
they want to export the mesh into,
like, blueprint layers where it's like, you know, put up dry wall here,
concrete here, stuff like that.
I think I just explained the odd interactions
you asked about the odd interactions with those architecturally thingies.
Lux has a question, which looks to be interesting,
so we'll go ahead and read it out for the recording.
I have a rather more abstract involved question about data types and inheritance.
Is there a plan to add detailed documentation about how data types actually
inherit properties from one another on the wiki for a contrived example.
I know. I collider is probably interface for Box Collider Mesh Collider, etcetera.
So, with this knowledge, I could presumably store just an
Ili a data type and store of the derived types into it.
But it would help to get a more general
sense of how all the different types fit together.
The answer is yes, but only to an extent. There is some, um, occurrences.
I'm going to sneeze. So I'm gonna sneeze. Or is it a sneeze? It's going to disappear.
It's It's disappearing. OK,
um,
damn it, I wanted to sneeze. Um,
there are some occurrences in that area where you guys are going too detailed.
Um, if you're using, like, sync
sync, ref
field ref,
you're usually doing really advanced stuff. And I always worry about that.
I'm like, how can we make that easier for you to do
because you shouldn't have to understand the
entire sort of object orientated hierarchy of N
to build something inside. N
um
Kala
is a good example of a case where you probably should,
but additionally,
I would probably want to extra like abstract the whole
I collider concept into just a collider data type that
transparently told you what was going on but also made it
easier for people that didn't understand what an interface was.
Programmatically.
What I mean by that is like if you pull away all the layers,
you're basically dealing with raw C# types.
But should you have to?
Um, regardless of that, though, there will be documentation on that in the future.
And there will also be tooling like I just said,
to make those sort of easier processes for you.
Um,
I see some people who are just like if I put this like, incredibly weird.
I know you sometimes have to put weird symbols in in various components,
but they're like incredibly weird symbols in a component.
I can do all these crazy things, and I'm just like
that's actually a feature request in disguise.
There's no way you should have to do all of that craziness just to get that effect.
So you if you have a question, luck.
If you have a question that's good, otherwise,
want to cut it there as we are nearing the half hour mark.
So please go for us And if you have a question, if not whatever, um,
you have the opportunity.
Uh, you wanted to see the April 1st badges for me.
I couldn't get into a session with the limited time I had on that day to see them.
Um, as I am a developer, I can actually just turn on April Fools mode,
um, myself and then run the game so I'll go ahead and do that and get you a picture
when I get the,
uh
otherwise, I think that's it. So I will speak to you guys next week.
Look for this to be up, uh, on the wiki, et cetera. Later, and I'll get back to you soon.
Bye bye.