Okay, welcome to Prime Time, which is the office hours, or AMA with Prime.
For questions about Neos, please drop your questions in the office hours chat if you
have any questions.
Otherwise we're going to sit here in unimaginably uncomfortable silence until there are questions.
Okay, our first question is from Storm, and unfortunately not something I can answer.
So Storm asks, how does Neos generate light colour and brightness using a skybox?
I have no idea, that's a question for games.
I can guess, and I know technically what I would do to set up a world to look like how
I would want it to look, but I don't know with enough technical detail to answer that
correctly.
So I won't.
Alright, we have another question from Mystic, as noted, we can have awkward silence when
there are no questions, that's just how office hours go!
So the question is from Mystic, how is documentation going as of recent, and as far as Patreon
section goes, there's a few ways it's phrased, patron benefits to patron tiers.
If you see something that is not unified, then you're free to unify it.
It's a wiki, like so many people are like, I can't edit the wiki, I'm a lowly person
in the metaverse, so anyone can edit the wiki, if you want to go for it, there's no planned
updates to the Patreon, there probably will be a big update eventually, but like, you
know, that will be once we get more things cleared up.
As for like generically documentation, honestly, lots of stuff is on pause, we're still working
on the stuff that we can work on, other stuff we can't work on, see announcements.
Yeah, we're not working on big update marketplace, for example.
So that's that question.
Moving onwards, NFThater has a question here, which is, oh, I should just, the answer to
the question about graphics and rendering, yeah, it's asking, I have no idea.
I know what I would do if I was building a particular world for a particular scene, but
I don't know technically how it's done.
There is a lot of stuff like that in Neos, where I'm like, I don't know technically how
this works, but if you just like, tinker with it, then you'll figure it out.
Like for example here, like particle systems, people ask, like, have you done a tutorial
on particle systems yet?
And I always say like, no, and the reason is honestly, because I just tinker with all
the values until it looks right.
So moving back to NFThater's question now, I know I'm circling around a little bit.
Is it possible to browse the web in Neos?
There is a roadmap item for that, it includes in-game documentation that won't require browsing
the web, that's something I'm super excited about, but there will also be a way to sort
of like view web pages and share them with other users in Neos eventually, so two things
there.
First one is to go look at the documentation roadmap on our GitHub that has a lot of sort
of things that we want to do there, and then secondarily go ahead and look at screen sharing
which will allow you to sort of drop screens in the world.
Honestly though, I would rather right now, you just use the desktop tab of your dash,
access overlay, desktop plus, OVR toolkit, so many different tools that can just drop
documentation into the world.
They are a bit clunky, like they're all a bit clunky, honestly the best way would be,
I don't know what this is going to look like, but like you know, you click on a logics node
and somehow, some way it's just like, yo dude, this is how this logics node works, like you
wouldn't need to go to the wiki or anything like that, we know what node you're selecting,
what node your laser is on, we can just display the documentation for that particular node.
So that solves that problem better.
So there you go.
Mystic asks, there's been an update in regards to your favorite cheese, I don't answer cheese
questions at these office hours, these are about Neos.
There is an AMA, but to be honest I get the cheese question every office hours and I'm
kind of tired of answering it, so I don't answer cheese questions, like go read the
previous notes.
So we have another cheese related question, I don't answer cheese related questions.
The mood of silence shouldn't be bad, it's always important to remember that office hours
in academia, which is what these are loosely based on, are literally the professor saying
my door is open, come visit me.
And if no one visits them, they just drink a cup of tea, put their feet up on the couch
and relax, eat some cheese maybe, so that's the way it is, right?
An AMA is only an AMA when there are questions, if there are no questions, they don't happen,
they just happen to be voice related.
We have another question from Crusher here, which says is the performance impact of updating
relays significant?
Less than you would think.
The advice I have for updating relays is use them if you think you need to use them, but
once your logic is complete, try to remove them.
A lot of problems I see with users and updating relays is when they use them with the transform
nodes, and then they have an impulse chain.
If you have an impulse chain that reads from the transform nodes, you often don't need
the updating relay.
It's difficult to explain about pictures and stuff like that, but there are lots of cases
where people use an updating relay just so that the display node that they're using updates.
In impulse flows, you don't need the display node, and so therefore you don't need it to
update all the time, and you know that on an actual impulse, it will have the appropriate
update.
So hence my feedback of build the logics using the updating relay, and then consider removing
it and seeing if the logic still works, and then you've evaluated if they're needed or
not.
That also leads to the second thing about that, which is if you need them, you need
them.
There is no way around it, so just add them, but make sure you do need them by building
your logics and then removing them.
Mattie asks, updating relay refers to the specific node type and not the little logics
needing block you get by grabbing a wire.
Those don't have an impact.
They do have an impact to slot count, but I'm going to say this incredibly loudly.
Slots do not matter.
The reason I say that is because high slot avatars, it's often not the problem that they
have lots of slots.
The reason that they have lots of slots is because they've put lots of functionality
in the avatar.
If you put less functionality in your avatar, then there will be less slots.
So think about functionality before slots, basically.
I've seen people that are like, you know, here's like a nuclear power plant of data
above my head in my name badge, none of which is useful to me.
Like, here's the time in my time zone, somewhat useful, here's the FPS, here's my heart rate,
here's my heart rate availability, here's my favorite type of cheese, here's the temperature
that exists in my time zone, here's my CPU rendering time, my battery percentage, none
of which of course they can see because it's above in their name badge.
I don't care what your batteries are, if they run out, you can, cool, go charge them.
So just consider what features you're putting into an object and then your slot count will
naturally go down and then they won't matter.
So relays, no problem, updating relays, test if you need them at the end of your logics.
So next we have a question from Revy who says, how do Patreon rewards get handled when you
cancel Patreon?
Heard from some that you get to keep your storage tier, I want to know if it's true.
Asking since as far as I know, all the Patreon money still goes to Carol, which not something
I want to support for a while now.
I've been meaning to, I keep forgetting to due to current circumstances and volunteers,
et cetera, update the Patreon page to just clarify that statement, you know, what happens
when you stop doing Patreon.
What I will know and will can tell you is that we never delete data.
So we're never going to delete stuff.
If you, for example, have a storage tier that gives you 40 gigabytes and you use all 40
gigabytes, we're never going to delete that data, we're going to let you keep it.
You won't be able to write, but you will be able to read.
You don't use the appropriate technology there.
The next billing cycle, you'll lose the storage.
Certain things like groups will not be removed.
The Patreon badge will also not be removed, neither will the wizard badge.
You keep a lot of stuff, but like other stuff that we actually have to pay money for, i.e.
the storage, doesn't go away.
So if we have to pay for it, it probably goes away.
If we don't have to pay for it, it doesn't.
Moving onwards to the next question, is there like a tutorial series for new users?
Basically no clue to use it.
There are multiple tutorial series.
It depends on which one you want to see.
I have 300 tutorials, but something which I don't do, almost sort of as a principle
of my channel, is I don't do introduction series.
The reason I haven't done introduction yet is because I want to wait until things like
the UI update, the logics update are all done.
Because otherwise my introduction series is going to be out of date.
And if my introduction series is going to be out of date, it's going to be monumentally
more frustrating than other tutorials that could be out of date.
For example, if my how to make a gun in Neos tutorial is out of date, you would need to
know how to use Neos from an introductory basic point of view before you even start
making a gun, so you're more malleable and able to deal with stuff being out of date.
I have quite a few videos on my channel, for example, that use the old dash, and people
can kind of still figure out what's going on and map it to the new UI because they're
familiar and because it's not a new introductory series.
They're less prone to being affected by changes or being out of date.
Whereas an introductory series will be out of date very quickly, because it needs to
be day one, week one, moment one, and it needs to be as clear as possible in that regard.
And I can't give that clarity right now, so it hasn't been done.
Other users have done introductory tutorials.
You can look them up.
I actually have a link in the guideline, the info and welcome and links channel of this
Discord, which links to a variety of channels which have tutorials.
There's also a lot of tutorials in game made by various people.
Some of those were MMC entries that talk you through it.
Really though, if we don't have an official introductory series, my question usually there
is what would you like to know, and then I can sort of narrow it down a little bit.
There is no possible way for you to know everything.
I promise you, you'll never know everything.
It's not possible.
I guess that helps.
If you have any particular areas, let me know.
I can follow up with some links from them.
Specs asks, to follow up on the Patreon question, are you intended to keep the herdless server
binary access of Patreon membership is canceled?
I don't know either way, yes or no.
I don't know why we still have that lock behind Patreon.
I'd like to review that.
I don't know why many of our test features are locked behind Patreon.
Testing things should be free.
I don't understand.
Neos won't prevent you from using files you've already acquired.
So you don't need to delete it or anything.
I also think it's problematic for like headless server operators, that they're like, well,
I need to have a Patreon access to run servers for Neos, even though I'm not playing Neos,
I'm just running servers for it.
So I don't know.
We need to review that.
We just can't right now, given the circumstances.
I would love that for like we just had it open.
It would put more interest and more attention on that, but that's fine.
That's what testing is for.
Like remember danger testers?
It was like, hey, guys, we need testers to test this broken build.
People are like, cool, here's a broken build.
Let's test it and let's give feedback.
It's good.
I don't understand.
Anyway, let's not encourage that, because you should, you know, maybe at least once
get that code.
Do remember that the Patreon money is actually going towards server costs, and we do need
those server costs to keep your storage.
So yes, while you're uncertain about where your Patreon money is going right now, some
of it at least does go for paying for the literal file storage that keeps your stuff
on our systems.
And so if everyone cancelled their Patreon, we might get to the point where we would actually
start losing access to data.
I don't mean losing data.
I just mean losing access to data.
What I mean by that is if you don't pay for the storage, the storage providers will usually
do things like read only, a bit like we do, or here, download it, but you can't access
it dynamically through APIs, which we do on the cloud systems.
They're not going to delete it either.
At least not initially.
Just keep that in mind.
Like, hey, you've got thousands of gigabytes of fursonas or avatars on your cloud storage,
and you don't pay for Patreon, then who's paying for that storage?
Just think about that.
Moving onwards for more questions, then FTI to ask if they're fursonic-cute, yeah, that's
a good one.
Next question from Fuzzy Foot asks, Fox, sorry, not Foot, Fuzzy Fox, I'm so sorry.
Fuzzy Fox asks, what is the laggiest component or node you know of?
Go to my public folder, go inside art.
Inside there you'll see a sort of RGB sphere.
That is a piece of artwork I made, hence why it's in the art folder.
It uses an ancient component, a component which I do not recommend using.
It is probably the laggiest one I know of.
You won't notice it if you spawn the artwork in private, like by yourself.
Hence why it's there, but in sessions you'll quickly notice it's causing queued packets.
We have another new question from Scant, who says, can a slot transform be forcefully updated
before the end of a frame, such as raycast, rather?
This is another thing where like Neos wizards and I will disagree.
You shouldn't worry about frames.
If you're worrying about like update cycles, positioning, timing, that's something for
us to fix.
I don't know.
That's again a sort of like rendering thingy or just sort of like an update cycle thing.
If you could maybe ask about your problem or seeing that prompted that question, I might
be able to help.
But like I see people worrying about like, you know, frames, data, things like that.
You shouldn't be too worried about stuff like that.
So scan has updated their question, which says I have switched from using raycast one
to raycast drivers as they have better filtering, however I notice the result is behind by one
frame since it is driving on slot transformations.
I would encourage you to always use the tools which make the like thing you're trying to
build as effective as possible.
Like don't, for example, if someone was reading this and they're seeing what they're reading
from scan and they're like, hey, I want to swap to raycast driver now as well, don't.
If raycast one is helping you, do it.
If raycaster is helping you, do it.
If raycast driver is helping you, do it, and then we'll figure out what's going on there.
As for the actual question, which deals with the result being behind by one frame, I don't
know.
I would have to come into Neos and take a look at your actual problem.
Moving onwards, unfortunately, I wish I could help more.
Maybe I can hop into Neos at some point.
Moving onwards, Fuzzy asks, I always worry about things like loops.
I've had experience where such things lag my computer to death.
Is there any way to do loops?
Yes.
Have bounded loops.
90% of problems people have with loops are where they are unbounded.
Things like the for loop node, people avoid because they don't understand why it causes
problems or why it's causing lag.
For loop's fine.
You just need to use it correctly.
People avoid the while node because they're like, oh, it just lags.
You need a bounded loop.
While is perfectly usable.
Oftentimes loops are being used sort of inefficiently as well or incorrectly.
You need to figure out the solution that you're trying to solve and if it needs a loop.
There are some times where I see people solving problems in Neos and I look at it and I'm
like, do you realize you could do that in half the effort with this node, this component,
or just by changing the not what you're doing, but the outlook of the way that you're doing
it?
I wish I could condense it into words.
It happens all the time.
I know what I mean.
I know how to build things with that mentality.
I just don't know how to explain that mentality.
Again, if you have a specific loop-related problem, I can take a look at it and tell
you how I would do it.
Maybe one day there will be a manifesto from Prime about how to build things.
I have been thinking about doing more videos on just building stuff.
You name it, build a gun, build a door.
I was actually quite interested earlier this week in questions and help.
Someone was asking about a door with a pin code or a type pad and then it would open.
That would be cool.
Again, that would teach you how I think about building things in Neos.
If you have a specific problem, let me know.
So Tony asks, is there anything that can be done to videos on Neos cutting out about half
a second before the actual video is over or is that just a case when VLC gets updated?
Probably when VLC gets updated.
It might also be the video player that you're using.
It also might be a synchronization issue.
So try it in various sizes of sessions, numbers of people, types of video, et cetera.
But the VLC update will be amazing in its ability to stabilize videos.
Tony updates their question.
It seems to happen on any video locally or in a session.
Yeah, VLC update then.
Moving onwards to more questions that have just appeared.
I was blinking and didn't see any and then suddenly two appeared.
Maybe that was my bad.
I might have zoned out for a second, but anyway.
Scan asks, what is the best option for synced timing, the T node?
No, the T node is implicitly not synced.
If you're talking about animation and you want the animation to be 100% synced with
other users, you need to use the tween node or the tween component.
The tween node component is the same thing.
It's a long story.
It operates in a series of writes, which means it's less likely to be unsynced.
It just depends what you need to do.
Synchronization is a problem.
Again, it depends on the problem or the solution.
For example, there was a problem in my run through of abandonware, which is MMC 2021,
where you're in the sewers and you have to rotate like a sewer platform around and we
got out of sync.
So they saw the sewer rotation being one rotation and I saw the other one and we couldn't progress
without one of us dying to like falling in the sewers.
And on reviewing the way that they had built that sewer platform and rotated it, they'd
done it purely with components.
I had a long story conversation with Comdog about this.
If it is critical to your game, don't use components.
Use logics and use writes because it's going to be problems.
Impulses are like an authority check for your game.
They had the same issue with the clock that they had.
You had to reposition the clock hands to a particular time.
They again used components since they had synchronization issues and also floating point
precision issues.
So again, if they had used logics, they would be able to have a point in time sort of clapper
board, if you remember old school film clapper boards, like clap, okay, what's the state
of the clock?
Is it correct?
And that would have resolved that issue.
Use impulses wherever you can to synchronize things up, but it does depend on what you're
doing.
Certainly for things like visual effects or stuff you don't have to interact with, you
should be using T, and it doesn't actually matter if it's slightly out of sync.
A good example here might be wind, stuff floating in the air, particles, rotating clocks, rotating
things like that, all sorts of stuff like that.
For karaoke, I'd recommend you go to, I think it's a Japanese entry, there's an MMC entry
called perfectly synced karaoke that uses the clock error property of the video player
to kind of sync it up between people.
I know in VRChat they do that by exposing sort of like a sync track and then buttons
to each user and asking them to sort of push left or right to sort of try and sync it up
based on the delay.
I don't know how it works, I know it does work, though.
So cool.
I'd have to look, karaoke isn't something I've looked into.
Moving forwards to the next question, Fuzzy asks, why is using write nodes usually considered
a bad idea?
It isn't.
If anyone's telling you write nodes are bad, they need to go away.
Again, you need to use the appropriate mechanism for whatever you're trying to do.
Write nodes are fantastic if you need to synchronize a value across the network.
That's what write nodes are for.
When you are moving your hands around, you are not technically, but essentially you're
performing a write every millisecond updating, oh, my left hand is over here in relation
to my fingers and my right hand is over here and my head is positioned this way and my
voice is at this level.
Those use streams, which aren't really writes, but they are still writes in that they are
causing network traffic, and that's what a write does, it causes network traffic.
So if you need that value to be synchronized across the network, use writes.
One of the areas where I would consider them a bad idea is actually the opposite answer
to the question that Scan had about synchronization.
If you don't need something to synchronize, don't use writes.
A good example here, it comes up just because my brain's in this area right now, is imagine
you have a model solar system.
So it's sitting on someone's desk in a wizard tower and it's a model solar system.
So it's got, you know, the little metal things, auroraries, I really think they're called,
like I don't know how to spell it, that aurorary, and it's got the planets rotating around it.
You could write sync that, at which point all of those planets in that model would be
in the same position, but they don't need to be, so just use T or use the spinner component.
It doesn't matter that they're out of sync, it's a visual element in the wizard's tower.
You might want to synchronize instead the animation of the wizard attacking you or the
animation of a particular puzzle-related element interacting with it.
But if it's just background noise, background objects, T. Another example there would be
flickering lights at a tutorial on that one recently.
It doesn't matter if the lights are flickering out of order, if you need it synchronized
use writes, if you don't, use T. Another question from Scant who says, is there a write that
isn't network synced, like needing to do many dynamic operations and only one of the last
writes are important?
That's complicated because that depends on the setup again.
What you need to remember is that when an impulse, any time you see a white ribbon,
that is locally calculated and then the results are propagated.
As an example there, let's say you had a button and then when you pushed it, it set your position
to be 10 units above where you are, so it's basically like a short range teleport upwards.
It could do maths in the middle there, but then at the end, it will do a set position
or use that set position node.
That set position node is effectively a write, and what that's doing is it's populating new
data to the data model.
It's saying, hey, prime, scan, fuzzy, you are now 10 units above where you are, that's
a write.
So there is network synced, but the stuff in the middle, let's say it does a calculation
like, I don't know, the stars and their position in the world causes how far you get sent up.
That calculation doesn't need to be network synchronized.
Again, it really does depend on the setup.
That also goes back to the updating relays, right?
The updating relays aren't needed when you're in the middle of like an impulse-based operation,
but it's really difficult to understand when they are and aren't needed, so just like try
it with and then remove it and see if it breaks.
Moving forwards, I guess, like ask more questions if you need more support there.
Fuzzy says, so that's why some people complain about writes because it causes updates.
Yeah, they should stop complaining.
If they've got dynamic bones, dynamic bones cause updates, right?
You know, like dynamic bones, moving your hand, grabbing something causes updates, complain
about that more.
If you need to use writes, go for it.
Sometimes you don't know.
I do see people using like update a lot.
That's again usually occurring on animations that are sorry, I don't know how to pronounce
that word, or the flickering light.
That's the usual case.
They're like writing the flickering light on and off, which is like a network update
every single like frame.
Don't do that.
Use T. At that point, yeah, you can be mad about the writes, but again, it's really kind
of like subtle.
Moving onwards to bad halo ninja, it's best to hear from you, bad halo ninja, I used to
see all the time.
I'm sure you're working on some cool stuff.
This is a bit of a back end question.
Is last modifying user for sync values broken?
I've noticed that in the logs it tries to log it sometimes, but it never has a value.
I've also tried using it sometimes in my mods and it's always null.
I wouldn't know.
I'd have to look into the actual code for that.
As it's a mod, it's implicitly not supported, so I can't answer that open code base basically.
I know that's like a frustrating answer, but that's unfortunately all I have for you on
that one.
I believe that's all the time we have for questions.
Farsi, if you have a question, go for it and type it, because you were typing it whilst
I was closing off.
So if you still have a question, go for it.
Otherwise, we'll be closing off.
This will be posted on Samba shortly with the silence removed.
And if you have any questions or you want any follow-ups on any questions you've asked,
please go ahead and direct message me anytime and I'll get back to you as soon as I can.
Let's just wait for Farsi to stop typing.
No pressure, Farsi.
Okay, so Farsi's last question is, can mods do things for other users without them?
Do you mean moderators or Neos mods?
Modding.
Yes.
In fact, lots of the mods that we see are stuff that we want to add to Neos.
I understand why they're added as mods, but a lot of them are basically just like, yo,
it's a feature that we want to add, but we just haven't had time to.
And a lot of that then falls into the sort of umbrella term of shortcuts.
I noticed yesterday actually there was a mod which added a button to the static audio clip
which reverses it.
So you can do reversing audio very easily.
Great mod that adds that button.
I love that someone did that and found it useful.
I could probably add that quite quickly to Neos's actual source code if we weren't in
our current set of circumstances.
So I might add that eventually.
So it's a good example.
Keep doing it.
Don't feel bad about it.
Do you read the modding policy?
Do you read the security reporting policy as well?
But yes, most mods are shortcuts, really.
I believe we're done.
If there are any further questions, feel free to direct message me.
Otherwise I'm going to leave off here.
And I'll speak to you again soon.