create |
Next batch of improved transcriptions |
||
Line 1: | Line 1: | ||
{{OfficeHoursTranscriptHeader|The Resonance|2024-12-15|url=https://www.youtube.com/watch?v=TcXpMEx06Sg&list=PLQn4R3khhxITNPmhpSJx5q7-PgeRFGlyQ|autogen=YouTube using Whisper}} | |||
{{TranscriptionSegment|Good peepo-piling in, I caught the tail end of it, yes, we did another shenanigans at|00:30}} | |||
{{TranscriptionSegment|the beginning, right at the beginning, so like if you're there for the start, you've|00:38}} | |||
{{TranscriptionSegment|seen it, and if you haven't been then it's a mystery.|00:40}} | |||
{{TranscriptionSegment|Hello Griffin and Phyllis, hello, welcome everyone, so as we have peepo-piling, let|00:46}} | |||
{{TranscriptionSegment|me actually also open, like make sure I have this stream open, so I make sure everything|00:55}} | |||
{{TranscriptionSegment|is working okay.|01:00}} | |||
{{TranscriptionSegment|How's audio coming?|01:02}} | |||
{{TranscriptionSegment|Very good, fluffy, yes, very fluffy, very fuzzy.|01:03}} | |||
{{TranscriptionSegment|Hello.|01:08}} | |||
{{TranscriptionSegment|Did I just think I have some of that on me too?|01:09}} | |||
{{TranscriptionSegment|I think.|01:12}} | |||
{{TranscriptionSegment|Hello, check, touch TV, is the audio coming okay?|01:15}} | |||
{{TranscriptionSegment|Can you hear us both fine?|01:22}} | |||
{{TranscriptionSegment|Hello, brother, hello.|01:24}} | |||
{{TranscriptionSegment|Hello, all of the wonderful people in chat, can you hear me, can people hear me good this|01:27}} | |||
{{TranscriptionSegment|time?|01:33}} | |||
{{TranscriptionSegment|We're all a little muffled.|01:35}} | |||
{{TranscriptionSegment|Yeah, we both selected the broadcast, so I think it should be okay.|01:37}} | |||
{{TranscriptionSegment|The audio level is a lot of work, the same, the audio is good, so how are the announcements?|01:41}} | |||
{{TranscriptionSegment|I guess we can start then.|01:48}} | |||
{{TranscriptionSegment|So it's okay, streams are running, announcements are out, so let me also hold on, sorry.|01:50}} | |||
{{TranscriptionSegment|So hello everyone, oh, I didn't fix it with shut colors, I don't have the time for, I|02:01}} | |||
{{TranscriptionSegment|don't know, but anyway, oh, one thing I forgot, the auto question, because I saw a question|02:10}} | |||
{{TranscriptionSegment|mark and I always forget to check it, how to paint, there we go.|02:16}} | |||
{{TranscriptionSegment|So hello everyone, and welcome to the fifth episode of The Resonance, which is a combination|02:22}} | |||
{{TranscriptionSegment|of my office hours and sort of like a podcast, where you can ask us any questions about Resonite,|02:27}} | |||
{{TranscriptionSegment|whether it's technical questions, whether it's general questions about a platform, its|02:33}} | |||
{{TranscriptionSegment|details of its past and its future, and we'll be here to answer your questions, but also|02:37}} | |||
{{TranscriptionSegment|we might ramble about some things, discuss how the platform is going, where is it going,|02:43}} | |||
{{TranscriptionSegment|and sort of just give you a better high-level view of what motivates us, what are our dreams|02:54}} | |||
{{TranscriptionSegment|and visions for this platform, and also give you technical kind of deep dives into some of the|03:02}} | |||
{{TranscriptionSegment|systems that are being worked on or that are being planned. So with that, if you have any questions,|03:09}} | |||
{{TranscriptionSegment|make sure you end them with a question mark. It doesn't have to be, you know, it doesn't need to|03:15}} | |||
{{TranscriptionSegment|be like right at the end of the sentence, you can put like extra stuff, but if you have a question|03:20}} | |||
{{TranscriptionSegment|mark in your message, it's going to pop on our thing here. That way, you know, we make sure like|03:24}} | |||
{{TranscriptionSegment|we don't miss it. So with that, let's get the questions, you know, start coming in and we'll|03:29}} | |||
{{TranscriptionSegment|start like, you know, going. Why do you wear mantlers? I mean, it's festive, like, you know,|03:37}} | |||
{{TranscriptionSegment|like it's just kind of, I saw them in the Grand Oasis karaoke and, you know, just kind of put them|03:43}} | |||
{{TranscriptionSegment|on my head. Well, actually I didn't want them to put on my head. Somebody put them on me and then|03:51}} | |||
{{TranscriptionSegment|I saved the avatar. I did put this nose on me and the head. I just did a little bit. There we go.|03:54}} | |||
{{TranscriptionSegment|But it's, it's festive. It's kind of, it's kind of interesting. I have something here. I see like|04:02}} | |||
{{TranscriptionSegment|white people like have antlers on their avatars, but these are, these are, you know, these are|04:07}} | |||
{{TranscriptionSegment|like, they come off like they're, these are fake. They're kind of like the, I think some of the|04:11}} | |||
{{TranscriptionSegment|antlers, I guess like that doesn't make them necessarily fake, but like, you know, these are,|04:20}} | |||
{{TranscriptionSegment|these are fake, not because they come off, but because they're just glued on. I haven't|04:24}} | |||
{{TranscriptionSegment|grown these myself. Yes. I hope, I hope that answers the questions. Yes. The question is why|04:28}} | |||
{{TranscriptionSegment|you don't have antlers. There's like | |||
Latest revision as of 20:07, 12 May 2025
This is a transcript of The Resonance from 2024 December 15.
00:30: Good peepo-piling in, I caught the tail end of it, yes, we did another shenanigans at
00:38: the beginning, right at the beginning, so like if you're there for the start, you've
00:40: seen it, and if you haven't been then it's a mystery.
00:46: Hello Griffin and Phyllis, hello, welcome everyone, so as we have peepo-piling, let
00:55: me actually also open, like make sure I have this stream open, so I make sure everything
01:00: is working okay.
01:02: How's audio coming?
01:03: Very good, fluffy, yes, very fluffy, very fuzzy.
01:08: Hello.
01:09: Did I just think I have some of that on me too?
01:12: I think.
01:15: Hello, check, touch TV, is the audio coming okay?
01:22: Can you hear us both fine?
01:24: Hello, brother, hello.
01:27: Hello, all of the wonderful people in chat, can you hear me, can people hear me good this
01:33: time?
01:35: We're all a little muffled.
01:37: Yeah, we both selected the broadcast, so I think it should be okay.
01:41: The audio level is a lot of work, the same, the audio is good, so how are the announcements?
01:48: I guess we can start then.
01:50: So it's okay, streams are running, announcements are out, so let me also hold on, sorry.
02:01: So hello everyone, oh, I didn't fix it with shut colors, I don't have the time for, I
02:10: don't know, but anyway, oh, one thing I forgot, the auto question, because I saw a question
02:16: mark and I always forget to check it, how to paint, there we go.
02:22: So hello everyone, and welcome to the fifth episode of The Resonance, which is a combination
02:27: of my office hours and sort of like a podcast, where you can ask us any questions about Resonite,
02:33: whether it's technical questions, whether it's general questions about a platform, its
02:37: details of its past and its future, and we'll be here to answer your questions, but also
02:43: we might ramble about some things, discuss how the platform is going, where is it going,
02:54: and sort of just give you a better high-level view of what motivates us, what are our dreams
03:02: and visions for this platform, and also give you technical kind of deep dives into some of the
03:09: systems that are being worked on or that are being planned. So with that, if you have any questions,
03:15: make sure you end them with a question mark. It doesn't have to be, you know, it doesn't need to
03:20: be like right at the end of the sentence, you can put like extra stuff, but if you have a question
03:24: mark in your message, it's going to pop on our thing here. That way, you know, we make sure like
03:29: we don't miss it. So with that, let's get the questions, you know, start coming in and we'll
03:37: start like, you know, going. Why do you wear mantlers? I mean, it's festive, like, you know,
03:43: like it's just kind of, I saw them in the Grand Oasis karaoke and, you know, just kind of put them
03:51: on my head. Well, actually I didn't want them to put on my head. Somebody put them on me and then
03:54: I saved the avatar. I did put this nose on me and the head. I just did a little bit. There we go.
04:02: But it's, it's festive. It's kind of, it's kind of interesting. I have something here. I see like
04:07: white people like have antlers on their avatars, but these are, these are, you know, these are
04:11: like, they come off like they're, these are fake. They're kind of like the, I think some of the
04:20: antlers, I guess like that doesn't make them necessarily fake, but like, you know, these are,
04:24: these are fake, not because they come off, but because they're just glued on. I haven't
04:28: grown these myself. Yes. I hope, I hope that answers the questions. Yes. The question is why
04:38: you don't have antlers. There's like, there's like, you're not in the festive mood at all.
04:44: I guess, I guess, my antlers are just, they're just a little constipated, I guess. They're what?
04:52: My antlers are a little constipated, they haven't come out yet. What? That's horrible.
05:00: It's kind of hard to understand the word for me. It sounds like you're saying you're constipated.
05:07: I said my antlers are a little constipated. Oh, so you did say constipated. Oh my god.
05:11: I was like, I was like, I swear I'm hearing constipated, but that feels like not the right
05:16: word. I'm sorry, my mouth is like basically like full of cotton in this microphone.
05:23: Glavin asks, what's with the popping bubble sound effect during these Resonance streams?
05:27: Oh, that's the chat with the popping noise. Oh, it makes popping sounds. Hold on, I can maybe disable
05:32: that. I don't really realize I have like usually my, yeah there's how they call it, message sound,
05:37: I'm gonna turn it off. There we go. Okay, it's gone. Sweet. So, hello everyone. So, that's
05:44: probably, you know, we don't even have any questions, like there was a quick one.
05:50: The answer to questions, you know, like I guess, like it's like, you know, it's a quick episode.
05:55: Yeah, all right, that's why we're gonna stream by. Yeah, let's go stream by.
05:59: No, like if we got any questions, you know, make sure to come in, but like if you don't,
06:04: we're probably gonna start rambling about some stuff. I do actually have like one thing I kind
06:08: of wanted to talk about and like draw like little diagrams. I don't know if I should do it right at
06:13: the beginning, but... We do have a question.
06:20: I'm gonna do a little bit like when we get in. We actually have some more questions now.
06:26: So, Rolash86 is asking, when was the last time you two played Minecraft?
06:31: I don't remember. It's been a while. I kind of want to like play it again, but like it's been
06:37: ages. There's been a few Minecraft updates back, so there's like a lot of stuff in vanilla that I
06:44: haven't seen yet. In terms of like when I last played Minecraft, it's probably been over like,
06:51: probably been over a year. I don't really play Minecraft too much anymore.
06:55: I've played it over and over and over again since like 2012.
07:01: You see, this kind of thing, I usually like play Minecraft for a bit, and I'd really like to play
07:06: it in like VR, specifically with the Vive card mode, which is like excellent. And then I don't
07:12: play it for a while. They make several updates, and then I come into it again, and there's like
07:15: a whole bunch of new stuff. I've actually been playing like a few months... No, actually I
07:19: remember, like a few months back, I've been playing Minecraft with Glitch, and we actually
07:25: which is like, which has like been updated, and I've played it more like ages ago, and they've
07:32: been like updating it, it actually works with VR, and it's kind of cool. I remember like the first
07:37: time we got like into Aether, like I was like, what is that, what is that thing, what is this
07:40: thing, and there's like everything flying around you, and it's kind of cool, cool thing. But I do
07:44: want to like, I want to play, I want to play it again sometime. Yeah, I really like the um,
07:50: let's get a torpedo into a whole tangent actually. Um,
07:56: do you know of Undertale Yellow? I don't know what Undertale Yellow, I don't know of Undertale,
08:01: but I don't know what Undertale Yellow is. I don't know what that is either. So next question,
08:08: we have a Griffin Felis. What kind of pre-prep physics simulations are looking forward into
08:13: bringing into Resonite eventually? This is on my mind all the time. Um, I don't quite know what
08:20: pre-prep physics simulations. What I can tell you is we, we are using the Beput version 2 physics
08:28: engine. Right now like it's not fully integrated. So like for example, you cannot do arbitrary
08:34: Rigidbody simulation. You cannot like, you know, do like various constraints, like, you know,
08:38: springs, joints, you know, stuff like that. Um, what I want to do in the future is like, you know,
08:44: make a full integration. So you can actually do like proper Rigidbody simulation, mess around
08:49: with stuff, you know, throw things around and have like fully fledged physics. Uh, we are using
08:53: parts of it. Like for example, when you move around the environment, um, you are actually
08:58: represented by the sort of constraint Rigidbody that's specifically handled as a, you know,
09:05: it has kind of constraints to like make it usable for like user locomotion, but technically it is
09:10: built around a Rigidbody and you can kind of use it like a Rigidbody, but it's just not like very
09:14: efficient and like you're missing a lot of extra features for it too. Um, so eventually like,
09:20: you know, we'll have like proper Rigidbody. Uh, uh, I don't know, like what do you mean by
09:25: prepred? So like if you can like, you know, clarify a little bit more of this, like answers
09:30: your question, you know, but if it doesn't answer your question, let us know a little bit more like
09:34: what do you mean about, um, you know, the prepred physics.
09:40: Yeah. Um, next one is R-86. Have you made any updates to Minecraft Resonite War Importer?
09:46: Unfortunately, no. Um, I haven't had like really time to like, you know, touch it.
09:51: It's kind of is updating because I don't think it works like within your versions, but
09:55: one of the things I kind of want to do, um, at some point is sort of like start kind of gradual
10:01: open sourcing as part of an engine and the whole importer and exporter system.
10:07: I think that's a really good candidate for it. Um, because, uh, it's, it's relatively modular.
10:13: It's something that doesn't even like, you know, it doesn't actually need to touch the data model.
10:17: It doesn't need to add new things to it because the purpose of importers and exporters is to take,
10:22: you know, any data in external format and convert it into existing stuff in the data model.
10:29: Um, so it's something, you know, that can be like easily, like we can like, you know, publish
10:34: this is like, you know, the source code for the different importers and exporters
10:37: and allow the community, um, you know, to like build upon these, you know, make your
10:42: modified versions or even contribute official improvements as well as, you know, build your
10:47: own importers because part of that would be having a good, you know, architecture for, uh,
10:54: loading these like dynamically. So if you want to like, you know, import like, you know,
10:59: write or import her, you know, plop it like into the folder. It's like, you know,
11:02: install it into like a Resonite install, and then I'll be able to import, you know,
11:06: whatever format you want with whatever code you want. Uh, and the dad, like, you know,
11:11: we could like, you know, have, if I don't have time, you know, to like update importers
11:14: like that, um, the community will be able to like, you know, fill in in those areas.
11:20: So I'll see, like, if I get time to touch it, um, I might like, you know, sometime because
11:24: I don't want to kind of incorporate some of the stuff I've been kind of like having fun
11:29: craft and integrate them with the Resonite, but, uh, we'll see what happens with like,
11:34: what the time is. Um, the next question is also from R-86. Does the Vivecraft mod support
11:41: Quest or SteamVR plugging in too? Um, I'm not foolish or what do you mean like by plugging
11:48: in too, but like, you can, like, it's a SteamVR, you know, essentially SteamVR, like,
11:54: mod, so like, like any SteamVR headset should work with it. I use it with my, you know, Vive Pro,
12:00: I've played it with the Quest Pro, like, using Steam Link, like, if you have a SteamVR headset,
12:05: like, it's, it's not a different, you know, from any other SteamVR games, so you should be able
12:10: to play it. Also, R-86, did I hear the word torpedo? I think I said torpedo. I don't know.
12:17: Uh, and the next question is, uh, R-86. Will Newtonian physics be added too? Currently,
12:25: components. I'm, I'm kinda confused by what you mean by that. Like, I mentioned, like, earlier,
12:32: we're gonna have, like, you know, prepared, like, R-86 body physics, but you cannot do that one,
12:37: you know, with, like, components right now, because, like, you can only do, like, the
12:41: character, like, you know, controller zone. Um, so, that's, that's pretty much, like, what we
12:47: plan on adding. I don't know, like, you know, if what you're thinking is different from that, um,
12:56: clarify that, like, you can answer that one better. Uh, next question is, uh, R-86. What I
13:02: mean is, I use ALVR to link my quest to my Linux computer, and it only runs SteamVR games, so could
13:09: ViveCrown run that? Yeah, like, like I said, like, it's a SteamVR, you know, game, so if you, if you,
13:14: if you can run, you know, other SteamVR games with your setup, like, you should be able to play in
13:19: Minecraft with the Vivecraft mod. Oh, I see, I see what they mean. They mean, like, um,
13:28: they mean, like, doing, like, orbital physics and stuff. Yeah, I mean, you can do that, like,
13:32: virtually, but you essentially, like, um, you essentially, like, you know, like, you don't have
13:39: the normal kind of gravity, that's just kind of uniform apply, and instead, you know, you compute,
13:43: like, a radial one, and then you can, you know, have, like, if you apply the right forces to
13:57: physics, but you can, like, there's, like, a radial force, and you can, like, if you get
14:00: particles, you can get them, like, orbit a point. So, that is achievable, but, like, you know,
14:06: there's your body physics. Yeah, oh, I actually, I actually made something like that in flux, too.
14:12: Yeah. A little, like, ball that floats around.
14:20: They're also saying, I'm thinking of a normal world with mass quantity application of Newtonian
14:23: physics to objects. I mean, it's a little bit different, so, like, if it's, like,
14:29: if you're thinking big worlds, like, you know, that's not just physics, there's, like, a lot of,
14:32: kind of, involved into, like, being able to build big worlds, and there's things
14:36: that we plan to do that will allow for that, but it goes, you know, beyond just physics.
14:42: Yeah, you were, you were told it would be livelier to do with flux slash components.
14:49: Well, depends, it depends on, it depends on the scope, as with everything, because, like, yeah,
14:56: you may not be able to simulate, like, a whole, you know, like, all aspects of, like, a physics
15:01: system with just, like, flux, but you can certainly do, you know, like, orbital physics. Orbital physics
15:07: actually, like, making things just, like, have a little bit of velocity and mass and, like, float
15:12: around a point. That's actually not too hard, and you can actually do that pretty quickly in flux.
15:16: It's pretty simple. But, like, if we want to, like, apply, you know, like, the whole, like,
15:21: big worlds and, um, you know, if, like, it kind of sounds like you want to, like,
15:26: big world and have it, like, you know, fully physically simulated, that's, like,
15:31: even, like, one way in service to physics, like, depending on what we want to do, it might be quite
15:35: a challenge, like, if you want, you know, if, like, if you want, you know, to have, like, every single,
15:41: like, object, like, um, you know, simulated in there, like, you need something to kind of, like,
15:48: you know, spread it out and so on, um, what do you... it kind of depends, because it's kind of,
15:55: like, you know, kind of big scope that you're talking about, because in general, in game
15:58: development, you know, with any engines, um, things are kind of fake to, like, a lot of extent,
16:05: like, you kind of, like, make things look like some kind of physical effect, but the computations
16:11: are simpler, um, so, like, if you're, like, you know, say, like, even on the surface of the plant,
16:17: you have the physics simulated there, but it's, you know, just
16:20: regular physics that's only running when you actually are in there. If you, um, if you, like,
16:28: you know, go, um, you know, say, like, into the spaceship and you want, like, orbital physics,
16:34: usually, like, that's not even physically simulated, but you would have, like, you know,
16:41: like, you know, at that level and maybe, like, it's not even, like, proper rigid body simulation,
16:45: because, like, there might be an overkill for this kind of thing, um, because, like, you know,
16:51: like, otherwise we have to, like, deal with stuff, like, you know, what if something disturbs it and
16:54: the planets, you know, crash into each other and it's, like, a lot of kind of really complex
16:58: interactions. So it's, um, um, it's, it can get, like, very involved very fast and it just,
17:08: you know, like Cyro said, it depends on your scope, like, what you want to do.
17:12: It's also, like, asking a star system with, like, six insidious bodies, would it be laggy?
17:17: That, like, depends, you know, usually on how you're computing it and to what, like, you know,
17:21: degree of accuracy. If you're just, like, you know, doing very, like, simple, like, where each
17:25: celestial body has, like, you know, uniform mass, it has, you know, um, it has, like,
17:36: to kind of approach it because, like, you can be, you know, say, you have, like, you know,
17:41: like, you have the star and you have, like, you know, a bunch of, like, celestial bodies.
17:44: One of the things you can, like, do is, the simplest thing to do if you wanted to make
17:51: something like that, I'm actually going to switch the camera so it's a little bit, the simplest
17:55: thing you can do is, you know, you literally just say this is orbiting around certain radius and
18:00: you just analytically compute, you know, the position at every time. There's not actually even
18:06: physical, like, you know, simulation to it. You could do where each point, you know, it has, like,
18:11: some mass and it has some velocity and you're constantly applying gravity on it and you need
18:15: to actually make it achieve stable orbit, which means, you know, the velocity needs to completely,
18:22: you know, counteract the attractive force, you know, of the sun. And you can do that, you can
18:27: just gonna be updating the velocity at every frame but you need to, like, balance it because if
18:30: it's, you know, not balanced then it might, like, end up spiraling out over time or maybe
18:34: it spirals in and, like, you know, the whole thing breaks. And you could go even deeper because you
18:39: can, you know, have the gravity be computed just towards the sun but you could also be like,
18:44: okay, I want everybody up, apply, you know, gravitational force on all the others. So,
18:50: like, if you have a big body here it's gonna pull this one towards this one and this one
18:55: towards this one but also this one's pulling this one towards this one and everything's kind of
18:58: pulling each other and this is gonna be a lot, like, you know, heavier on computation because
19:03: now we're computing gravitational forces between, you know, all the 16 bodies with each other.
19:08: So depending, you know, how complex you want to go, you know, the computational requirements will,
19:14: you know, kind of go higher and higher. And then if you want, you know, if you want the bodies to
19:18: be able to, like, you know, to potentially even collide and, you know, then do things when they
19:22: collide, like, you know, for example, they break apart or maybe, you know, it does something that
19:27: increases the complexity even further. So, like, it, it's something, you know, that can go from
19:34: this is completely trivial to compute if I just do it analytically to something I have, like,
19:39: you know, very detailed, like physical simulation, like where they can collide and break apart,
19:43: you know, into small chunks and maybe they will clump together again and have, like,
19:47: much more complex physical simulation. So it depends. It depends a lot, you know,
19:55: what exactly I want to do. So usually it's kind of hard to answer the question, like,
19:59: you know, if something's going to be like, unless you kind of specify what exactly you want to do.
20:05: Yeah. If you were, if you were just solely doing, you know, 16 points that interact with each other
20:11: gravitationally and that's it, you could probably get away with that. Like, that's not too hard.
20:17: But you know, if you want to do anything more, then it gets a little more complex.
20:24: So the next question is, oh yeah, while I'm thinking about it, what is the current state
20:28: of the upcoming performance update and how much improvements are we to expect?
20:33: So for the first part, the state, we're still like finishing up the PhotonDust,
20:37: which is the new particle system. I've done, like, a coverage on, you know,
20:41: how exactly the performance update has been approached in the previous episodes,
20:45: and it's also available as a standalone video on our YouTube channel.
20:49: So if you want, you know, more kind of in-depth understanding, I recommend watching that one.
20:54: I don't want to, like, you know, repeat it here just for the sake of time.
20:59: But the gist of it, we need to, like, move multiple systems fully to Froox Engine.
21:05: So we can then, you know, disentangle them from Unity,
21:08: and then we can pull Froox Engine out into its own process running with .NET 9.
21:13: The current state is, like, PhotonDust is in testing phase.
21:17: We've been getting lots of, like, great feedback, lots of great bug reports from the community.
21:21: Once it's kind of fixed up, we will essentially remove the old one, which is, you know, kind of
21:31: the tie to Unity, and everything will be auto-converted to PhotonDust.
21:36: Once that is done, the two main remaining things are going to be doing the same process for the
21:41: audio system, where we essentially make our own, because right now it's still kind of dependent
21:46: on some bits in Unity. So, like, audio system is going to be reworked. I can expect that one
21:51: to be faster than the particle system, because it doesn't have as much stuff, plus I already
21:57: has been, like, working on a part of it, specifically for the reverb effects.
22:01: So that also kind of saves quite a bit of time. Once that is done, then it's kind of reworking
22:06: sort of the integration with Unity, where it's like lots of little pieces, so the communication
22:11: can be, you know, done over more well-defined kind of, you know, like, messages, which can be done
22:17: over, you know, inter-process communication mechanism. Once that part is done, we'll be
22:23: able to pull it into separate process, and that's when we get the big performance boost.
22:28: For the question, how much improvements can we expect? We don't have exact numbers. That's kind
22:34: of hard to predict, because you kind of never know, like, you know, exactly how much you get
22:40: until you cannot do it, because it's very no complex code base, and we can only make estimates.
22:45: But the estimates we have, they're very positive, because we move the headless software, which runs
22:53: all the same code as the graphical client, except the graphical parts. It runs pretty much the same
23:00: code, so by moving the headless.NET 9 and running sessions on those, we got a good gauge on
23:11: how does that same code run with much better runtime. Overall, it's been pretty
23:18: dramatically improvement. There have been events where the headless on the same hardware
23:23: would previously struggle with around 25 people, and now there are events where we'll talk about,
23:30: I know one of them got to 44 people and kept it stable 60 frames per second, which is
23:37: very substantial performance improvement. So I do expect at least roughly order of magnitude
23:43: improvement, but we will not know exactly until we make the whole switch. However you know,
23:48: shakes up. But we do expect the performance boost from this phase to be significant,
23:55: and significantly not this simple. The next one is CheckTheFoxAuthor.
24:04: I remember a question for today. What are your long-term plans to further improve
24:08: building capabilities in Resonite, Stavlok Terrain, or because it came up earlier, things
24:12: that will build large worlds? I'll also send you a fixed switch chat via contacts chat.
24:17: Oh, first, thank you for the updated one, but I probably won't swap it in the middle of the stream
24:23: because there's a bunch of questions already piled up and I don't want to mess with that.
24:28: But I will use it for the next one. For the rambly question, so this one's gonna take a good bit,
24:33: I'm kind of thinking, do I have anything to draw with this one?
24:40: Let me actually think where to even start because there's a lot of things. There's things I want to
24:48: improve with the tool system, there's things for the script thing, like where we have stuff like
24:55: WebAssembly improvements to ProtoFlux. There's a lot of things and it depends on what kind of
25:06: thing you're trying to build. Like you mentioned the terrain system, that is actually, you know
25:11: what, I'm gonna get up first, I'm gonna ramble. I have our camera set up over here and I have my
25:18: brush and I'm gonna move in my room as well so I don't hit my screen. There we go. Hello. So,
25:31: and also, hold on, let me actually bring the chat over here too. Oh, that's not a chat.
25:35: That's not a chat. Oh, that's a question from the chat. Actually,
25:40: Cyro, can you bring it over here please? Thank you. I got it. There we go. I'll put it right,
25:44: I'll put it like, oh my gosh. We'll put it right there. There we go. So, there's like multiple
25:53: things and I mentioned earlier, you know, the tool system. One of the things I want to do with that,
25:59: and this is kind of more smaller improvement, but it's kind of, since I'm going to be ramble,
26:03: it's kind of, you know, touches a lot of different things, but say take something, you know, like the
26:07: developer tool or even the brushes. Right now, like one of the things I want to do with them
26:15: asset system, because like I know with the brushes, for example, you know, there's a bunch
26:19: of options that are in the context menu and I'm gonna grab my thing so I can give you showcase.
26:26: So there's a bunch of options, like, you know, there's, for example, I can change the size like
26:29: this and there's like change color, but it's very kind of like, you know, basic. And some of the
26:38: tools, like if I grab the developer tool to actually have, oh, thank you. I can steal one
26:44: from Cyro, you know, there's a bunch of kind of options in this where if I select something,
26:49: you know, if I want to change the gizmo, I have to go here and I have to like, you know,
26:54: change which one I want. And it's kind of like, it's kind of difficult because like, I'm already
27:01: like, you know, there's like multiple branches that I want to talk about because there's stuff
27:05: with the gizmos that I want to like, you know, improve, but there's a bunch of options and you
27:08: kind of have to like, you know, navigate the menu and some of them could use like sliders and more
27:12: complex stuff and so on. So the overall goal is if you equip a tool, the tool is gonna have,
27:20: you know, associated UI with it. So let's say I equipped this one in my left hand on my right hand
27:25: where I normally, you know, you can have like, you know, facet anchors actually get, you know,
27:30: plop a piece of UI. And there's going to be a bunch of stuff here that lets me kind of toggle
27:34: and control the thing. And this is something that we'll be able to have the content theme
27:40: built in-game. So you'll be able to like, you know, to make your own UIs for your own tools
27:46: and will be built like, you know, better ones where you have like very kind of quick access.
27:51: Oh, my tracker's being mad. Whether like, you know, for example, you want to switch to gizmo,
27:56: it can just be like plop, plop, plop, you know, do stuff, plop, plop, plop, do stuff, you know,
28:00: and you have it like, and you have it kind of, you know, attached to your hand and also be able
28:04: to like, you know, place it in other places. So you can like, you know, for example, say I want
28:07: to have this, you know, in my field of view, so you can be doing something, plop, plop, plop,
28:12: doing something, you know, plop, plop, plop, and just work like that, you know, that's also going
28:16: to be useful, you know, for people who have like limited mobility. So say you cannot use your hand,
28:20: you can have it as, you know, somewhere and still kind of access it, do stuff, access it, do stuff.
28:26: It's sort of like only, it's going to be like a system where each tool can provide sort of like
28:31: template for its own UI. And then like the placement of that UI is going to be up to you.
28:36: And you also be able to like, you know, to extend it, you know, update it, like do whatever
28:39: kind of like one of it is. And if you're building your own tools, you know, make your own UI elements
28:45: that are going to control how the tool operates. So just like one of the things that I feel is going
28:51: to like, you know, overall kind of improve the workflow. There is also other stuff like if I
28:57: go like back here, I'm going to do this bit. So you are in the desktop, you know, and like you are,
29:08: say like, you know, like you open an object, make sure switch it back to this, say like, you know,
29:13: you open an object, you can have like inspector in VR just kind of works, you know, we can have
29:17: like here, I can be doing a thing and do thing here, do thing here, you know, I can pin this,
29:22: so this kind of goes with me. In desktop, this is a little bit awkward. So one of the things I want
29:29: to do there, just to kind of bring it more on par with like typical editors that people use is,
29:34: if you're in your desktop interface, let me get a little bit closer, if you're like in your desktop
29:41: interface and just kind of getting like a Sith red, you know, you can have like your scene and
29:48: like, you know, you have your tool, you know, just like doing stuff that you have equipped and say
29:53: you have like in a like a box or something and you're like kind of editing it, you know, and
29:58: there's like gizmo for like, you know, moving it around. With the first person kind of view,
30:06: sometimes. And we have already a few models where we can like, you know, we can like UI focus or
30:10: can focus on it, but I want to make it easier so you can just, you know, hold a key or press a key
30:15: and you free up your cursor and you can, you know, just hover over this gizmo and operate it the way
30:20: like you would in an editor. But another thing that I think is going to be very powerful specifically
30:24: for desktop is if you open an inspector, you know, the inspector is just somewhere in the world and
30:30: you have like, you know, a bunch of stuff and you can, you can UI focus on it, but like, you know,
30:35: because you have to UI focus on it, un-focus and back on the object, UI focus on it, you kind of
30:40: like, you know, you can only have like one thing at a time. So the most powerful thing that I think
30:47: is going to be added for the desktop moment at some point is where if you have the inspector UI
30:52: somewhere, you're either going to hold a key or press a button on it and you're essentially going
30:57: to pin it to the screen. So there's actually this UI that is in world, it's going to be, you know,
31:05: pinned and just kind of project it like this. And you're still going to have like your view here.
31:10: So, you know, you have like your tool, you have your stuff, but it can hover with the mouse and
31:13: you can like, you know, do stuff here and then go back here and operate here. And you'll be able to
31:19: like, you know, do it in a similar fashion that like, you know, it works for example in Blender
31:23: or Unity where you can create like, you know, additional windows. Maybe you can, you know,
31:27: actually pin multiple things and have like, you know, tabs here and can switch between them.
31:31: Or maybe, you know, you subdivide this even further. So like you have, you create like,
31:35: you know, you split your views. So you have like, you know, maybe your main one and, you know,
31:42: so this is still like, you know, your main view and have like, you know, stuff here.
31:48: But then like also like, you know, maybe you have additional camera views, but you can, you know,
31:54: see it like aligned, you know, from different angles. So maybe this is, you know, forward one
31:59: and maybe like this one is like bird's eye view, you know, whatever you kind of want. And you'll
32:04: be able to like, you know, subdivide your user interface to, you know, create like better workflow
32:12: that still operates with the same things. Like this UI that is pinned in here,
32:17: that's the exact same inspector, you know, that you open in here. It's just,
32:24: it's just, you know, perfectly aligned, you know, to your screen with very easy
32:28: access without requiring to focus and then focus on other things.
32:33: It's kind of like Blender then almost.
32:35: Yeah, that's what I was mentioning. Like it's kind of like Blender. It can like, you can just be like,
32:39: I want to subdivide this one, you know, for example, horizontally, you know, and it splits
32:43: and it can make this one whatever you want, you know, same with Unity. If you also have like,
32:47: you know, multiple computer screens, say like you have another screen that's, you know,
32:51: maybe like it's a vertical one, you know, maybe you'll be able to pin some inspector windows here.
32:59: So you have like a bunch of stuff here and a bunch of stuff here. Maybe you have a view here,
33:04: you know, just kind of like organize your workspace and utilize multiple screens. And I think
33:10: this is going to be one of those things that's going to make building in Resonite and desktop
33:15: mode way more powerful, way more easier, but it's still going to be built around the exact same
33:22: tools you use in VR, because there is a big part of our philosophy is like, we build things in a
33:29: way that are sort of agnostic. Like where it doesn't matter if you are in desktop or VR,
33:37: like for all the tools, we build just one version of the tool, but the mechanisms that interacted
33:42: with are built, you know, to be usable in both. It's actually kind of funny because
33:51: in order to achieve that, in most tools and in most games, if you have a tool, especially a tool
33:59: objects something in the environment. Or like, you know, say it's like, you know, you have like a
34:05: first-person shooter game. Usually, like when you shoot, you know, it's like a raycast that goes
34:10: into the scene, finds, like, you know, what you shot. In most of the cases, like, it's actually,
34:17: you know, let me actually clear this. In most cases, what happens is, you know, you have,
34:31: and like, you know, you have your cursor and like, if you want to like, you know, shoot something,
34:36: what actually happens when you shoot the raycast, it doesn't come from the gun. It comes, you know,
34:42: from, from here, from the center of your screen, because it's just easier. And like, you know,
34:46: it matches where you go. And this is, this is literally just a visual. It's, you know,
34:52: just the probe. Like it doesn't, like under the hood, it doesn't actually shoot from the gun.
34:57: Now with the Resonite, all the tools are built, you know, like if you consider this in VR,
35:03: this doesn't work because in VR, like you don't want to be shooting from where you're looking.
35:08: If I'm holding a tool, you know, and I point at something, I need to actually hit and I selected
35:14: something on Cyro. I need to actually hit from where the tool shot. So the raycast needs to be
35:20: coming from the tool. Now in order to make it, you know, so you can use the same tool
35:28: in desktop. What Resonite does, it actually figures out math, which figures out if there's
35:38: a point in the scenes where it does, you know, a raycast from the scene, it figures out where
35:43: exactly to puppet your hand to point the tool. So it hits this exact same point. And in order
35:50: to do that, I had to actually, I had to actually figure out like a piece of math that like,
35:55: I kept searching and I couldn't find it anywhere. Like I was looking, you know, for a way to solve
36:00: that problem, like mathematically, and there just wasn't anything. So I had to just, you know,
36:05: sit down, work out like a bunch of diagrams and think about it and think about it some more and
36:10: think about it even more. And then I arrived at a solution, which lets us, you know, which is a
36:15: piece of math that lets us figure it out. And it's kind of how Resonite works, because it just takes
36:20: the same tool you would be using in VR, like, for example, the developer tool. And it puppeteers
36:27: your hand precisely, so it hits the point that's, you know, under your cursor. And that's, you know,
36:35: that's kind of part of our philosophy. It's like, you know, like as a tool creator, you don't need
36:40: that. You don't need to worry about is it going to be used in desktop. We make a system that,
36:44: like, you know, positions the hand exactly so it doesn't know what you would expect.
36:52: So it's kind of like, that was the ramble, like, down one of the branches. There's other parts,
36:58: you know, so like this, for example, consider with some of the tooling to make worldbuilding easier.
37:03: There's a number of other things, like I mentioned, like, you know, gizmos. When I open a gizmo,
37:10: actually, sorry, hold on, let me give you, let's do a quick demonstration.
37:14: So you get one, I get one, say, you know, I, we're just gonna make something, and
37:21: so you make something too, and you select it, you know, and just select it, and,
37:26: and you select your own, and make sure, make sure, like, you know, it's visible on the camera too.
37:32: You see, there's like two gizmos, and I want to, like, and I want to deselect mine,
37:36: you know, I'm gonna do deselect, it deselects both of them, because right now the selection system,
37:43: it doesn't actually have proper selection system, the tool, each tool individually,
37:49: cannot try what it just selected, and it kind of doesn't communicate with anything else,
37:54: so we want to deselect all, it just has to kind of brute force deselect everything, and that kind of
37:59: gets difficult. You also cannot do things, because one of the things you can do, you know, in edit,
38:06: in editors like Unity, you can select multiple objects, and you can kind of do that, like you
38:11: can, I can switch this to like, actually where's the option, multi-select, I don't even use it
38:21: often, there we go, multi, you can select like multiple things, but they're like each their own
38:25: individual selection, because like there's just, there's no communication between these two
38:29: selections, but in Unity you can select two objects, and it actually gives you gizmo that's
38:34: in the middle of both cycle, for example, select two objects, and then rotate them,
38:39: you know, around their shared axis, or can like, you know, move multiple objects all at once.
38:46: What that requires though, is, you know, for some system to communicate what your selection is,
38:52: and that's something I'm really looking forward to implementing, because
38:57: it's gonna be useful, like, you know, for a lot of tools and a lot of workflows,
39:01: where there's a system that's independent of any particle tool, which sort of manages what have I
39:08: selected as a user, it has like, you know, a list of selections, you can add to it, you can clear
39:12: it, if you clear it, you can only clear your own selection, because it keeps track of them,
39:16: but also anything that operates with a selection system can query it. So, for example, the gizmos
39:22: can be, okay, you have selected multiple things, you know, I'm gonna make the gizmo operate over
39:27: the whole selection, because there's now a system which tells it what are all the things that were
39:33: selected. You'll also be able to, like, you know, use it to integrate it into other tools. For
39:38: example, you know, one of the tools we have, the glue tool, allows you to bake things, but you
39:43: kind of have to, like, you know, organize them in the hierarchy. Once we have a system for handling
39:50: selection, what we can do is, like, where you essentially select multiple objects, and you grab
39:57: the glue tool, and you say bake selected, and it'll just bake everything that's currently
40:02: selected that it can. So there's gonna be a number of those systems that I feel is gonna
40:09: improve, you know, workflow, like, significantly, you know, both, like, on desktop, both in VR,
40:14: and it's gonna open up, like, it's gonna add, like, you know, this kind of shared system that,
40:19: tools wouldn't benefit from, and gonna get integrated, and so I was eating the things.
40:25: There's also, like, other things, like, you know, there's, like, stuff like snapping.
40:28: There's another thing that's gonna be improved, like, you know, because you can technically snap
40:31: things, you know, you can, like, select, like, where you want to snap something, but it's also,
40:34: like, kind of limited, you know, right now. So just having that system is gonna make it easier
40:41: to implement a lot more canine operations, where instead of these things being very isolated,
40:46: they're gonna be able to interact with each other, and we can build tools that kind of
40:50: interact with multiple things much easier.
40:55: So, yeah, that's another, you know, tree of the ramble, you know, going into the gizmo stuff.
41:01: I don't know how long, like, I can't, like, ramble about this stuff for a while, but, like,
41:05: one of the things you also mentioned, I'm just gonna use it since it was in your message,
41:08: is the terrain system. There's actually another thing I'm really, really looking forward to
41:14: is going to one of those components that lets you build really big worlds, but also, like,
41:20: one of the things I feel is going to be very fun to play with because you can, you know, just
41:25: generate, like, these big terrains. And the way I want us to approach terrain system is actually
41:31: going to be built around ProtoFlux. So, instead of, like, you know, the system sort of, like,
41:38: being baked and very, like, you know, specific, the way it's going to work is you're going to,
41:44: build, you know, your own terrain, like, you know, how the terrain should work,
41:50: you build it out of nodes. So, for example, say, at the beginning, you can have, you know, some
41:55: input data and it's going to be anything. It's going to be, you know, say, this could be like
42:00: a height map, you know, so have like some kind of like texture, you know, that's like a height map.
42:06: It's a very, you know, simple form of timeline height map. And then what you do is you can,
42:12: you know, you have like nodes that turn the inputs into some sort of like, you know,
42:19: visual representation or physical representation, like geometry. So you can have like, you know,
42:23: one that just takes a height map and it's just, you know, generics like kind of like chunk
42:28: geometry out of it. And you plug this in and this is going to drive your terrain system.
42:35: So this could be, you know, just kind of like flat terrain and it's going to do stuff like,
42:39: you know, where some of the nodes you can specify this can be a grid of height maps,
42:43: and this will handle stuff for you, like, you know, like LOD, whereas you move around,
42:47: it's going to generate more detailed geometry, but you will be able to like, you know,
42:51: do more complex stuff like this. So you want, you know, you want to like have also splat map.
42:56: So like, you know, maybe have like a splat map and this goes into this to give different textures.
43:01: And maybe, you know, you want, you want to do some extra like vertex processing for
43:06: certain types of terrain. So like, for example, if it's like, if the splat map indicates this,
43:11: these are rocks, maybe you want some algorithm that says, you know, apply these, this texture,
43:18: you know, apply this texture and pair through, like, you know, the geometry. So it's gonna,
43:24: you know, more rough and, you know, this will plug into this. So you have to kind of like,
43:29: you know, build out a system you want and like, you know, build out the data structure you want,
43:34: and it's gonna handle all of the kind of complexities for you, like, you know,
43:37: like the terrain being infinite and so on. What it's also gonna do is you'll be able to,
43:43: like, you know, swap out the data sources. For example, instead of like height map,
43:46: maybe, you know, it's gonna be voxel maps. So like, you know, we have like,
43:52: you know, we have like voxels. And I'm just gonna do a quick representation.
44:03: So these are like, you know, voxels, like voxel data.
44:09: And, you know, maybe you can plug that into the height map generator. So like it, like, you know,
44:14: it will do something like it's gonna check the highest voxel and generate geometry based on that.
44:19: Or you have like, you have a different node, which instead will generate, you know,
44:24: terrain in the style of like, you know, Minecraft, where it's like the voxels are actually, you know,
44:28: actual like blocks. And it's gonna handle all the complexity for you, you define, you know,
44:32: how each one of them looks and so on, you can like do a lot of kind of complex things.
44:37: Or maybe there's gonna be another one that instead of like, you know, it being kind of blocky,
44:41: it's actually gonna, you know, generate like a smooth it out, like 3D terrain out of these,
44:47: you know, voxels, you know, so have like stuff here, and it's like more, you know, detailed.
44:53: It's gonna be lots of other systems, you know, like, for example, you can have another one
44:57: also uses another map to populate it with like, you know, objects like trees, vegetation, and so on.
45:04: And the overall idea is like, you know, instead of terrain system that's, you know,
45:09: fixed and how it works, we give you the building blocks and let you define, you know, what your
45:15: input data is, you know, which can be voxels, you know, textures, it can be procedurally generated.
45:20: Or maybe, you know, there's, you do actually have like data that's, you know, saved,
45:24: but you have another node, which, you know, runs a function when you go into a new part of the
45:30: terrain, you just say, you just generate whatever voxel data you want. So like, if you wanted to do
45:36: something like Minecraft, as you walk around, anytime you go, you try to load a chunk, you know,
45:41: that wasn't loaded before, it's going to run this to initialize the data. And at that point,
45:46: it just becomes data, which means it can be modified. There's going to be number of nodes,
45:51: and other mechanisms to mutate this data. So like, if you've already know something, like if it's
45:57: like a tool or game, you know, where it sends, you know, modifies this data, this is going to
46:03: trigger the system and automatically, you know, updates the visuals for you, and lets people
46:09: mutate the terrain. And it's going to be useful for both, you know, the building tools, because
46:14: you can make like a brush that, you know, draws the system. Or if you're making a game, maybe you
46:18: make it like, you know, like a little like bomb and you throw it and it explodes. And when it
46:22: explodes, it mutates the terrain data to actually make a hole. So we can both use it for building
46:29: the terrain and also to, you know, create like interactivity with it. And the system is going to
46:34: be flexible enough to let you know, do all these kind of different things. That's the kind of
46:41: general idea. And it's one of the reasons I also like, you know, really look forward to it because
46:45: of all the possibilities and the way, you know, I feel this is going to be approached is, it's
46:52: going to make it overall simpler. And like you can combine the different nodes in lots of different
46:58: ways to create like, you know, terrains that kind of suit your needs. Like if you really wanted to,
47:04: for example, you could have, you know, you talked about like Minecraft Importer before. One of the
47:09: things I want, I would want to happen at that point, once we have the terrain system is where
47:13: instead of just importing the pre-generated geometry for the Minecraft data,
47:18: we just import the Minecraft data, you know, into the data set, set up a node that's like,
47:23: you know, that's able to process it and generate the same terrain as the Minecraft. So that way
47:28: you could actually still modify it, you know, play with it and so on because all the data is still
47:31: going to be there. And when I was like, I don't have like some design notes, you know, on this
47:36: and a lot of kind of design thoughts. When I was working on the Minecraft Importer, I actually got
47:41: a lot of inspiration based on that because I was poking around Minecraft substrate format
47:49: and it's kind of structured in a really interesting way where like if you in Minecraft,
47:54: you know, we have like chunks and the chunks are very vertical and they also kind of like,
47:58: you know, split into these vertical kind of segments. And what the substrate format does,
48:05: it encodes each one of these kind of, you know, separately, but it computes like a palette.
48:12: If you're here, there's mostly going to be bedrock and it's going to be some stone blocks.
48:17: So for this chunk, you know, maybe the palette is, you know, bedrock. And, you know,
48:24: well now it's kind of deep slates. I'm just going to go deep slate.
48:28: Deep slate. And maybe there's some, I should forget, are diamonds at this level in Minecraft?
48:34: I don't know. I mean, let's say a redstone, I don't know. Redstone. So it has like a palette,
48:42: and there's also obviously no air, like empty. So what it can do if there's only four types of
48:48: blocks in this particle chunk, it encodes this palette and it assigns each one a number.
48:54: And you only need two bits to represent this. So like this one's going to be, you know,
48:58: for example, 00, this one is going to be 01, 10, and 11. And then to encode all the data in the
49:06: chunk, each block in the chunk is just two bits. And if there's more of them, it's gonna, you know,
49:13: maybe it needs to use three bits or four bits or more. But what's really cool about it is
49:18: the way they structured it. All of the names, like they also have like, you know, prefix. For example,
49:24: this one will have like Minecraft, Minecraft Air, Minecraft This. And it makes the format
49:32: possible. So like when you use mods, the mods can add their own custom blocks and just, you know,
49:39: like, for example, they can be aether, you know, I was mentioning that earlier. They can be aether
49:44: and has like, you know, its own block. And they can add extra blocks easily without meshing with
49:49: the others, which didn't used to be true for, for the older, like, formats, you know, before
50:00: I'm messing it up, it substrates the library, the format's called Anvil.
50:06: But they used to like store where each of the block, it actually just had like an ID,
50:10: which means if a mod wanted to add another block, like eventually, like an official Minecraft would
50:17: add a block with the same ID. And then now this would collide. And now, you know, your
50:21: mob is kind of confused, but it kind of came up with this system where it's both more efficient
50:26: and also a little more extensible. So when I was like poking around it, I got like, you know,
50:30: lots of ideas for, you know, how our system is going to work. And it's kind of like, you know,
50:35: part of the reason I came up with the whole like data layer, where you define how your data's,
50:39: you know, done. And then you feed that into nodes that generate, you know, stuff like geometry from
50:45: it, you know, and other things. So there's a lot of stuff with this. I think I remember the
50:51: Turing system in Particle quite a bit, but overall, I think this is going to be really
50:56: powerful and a really fun system, you know, just to kind of play with and mess around and so on. So
51:03: that's one of those things I'm really looking forward to implementing. And it's going to be
51:06: built around, you know, Photon, not PhotonDust, Protoflux. I was probably going to have some
51:15: PhotonDust integrations too, but the, you know, you'll be able to like use a lot of the same kind
51:21: to the level where we can also say, you know, how individual, you know, how are individual
51:26: vertices of the terrain like modified. There's lots of other things too. So like probably the
51:35: last one, I don't want this ramble to go for much longer because I've been going for a bit.
51:41: One of the other big things that I think is going to be a really big for Resonite is with some of
51:49: the data model updates where we introduce something called the Domain System.
51:54: So right now in the Resonite, you know, we are in a single world.
51:58: And you know, this world is like, it's like its own self-contained thing. It's like, you know,
52:02: it's own session. What it makes harder is if you want to build really big worlds, you know,
52:08: worlds where you can travel between them, like, you know, physically. So what is going to happen
52:16: is that each world is going to become something called a Domain. And the Domain, you know,
52:22: it can be just the world. It can be, you know, just like it is right now. But we're going to
52:27: add a mechanism where you can have multiple domains, essentially multiple kind of sessions
52:32: loaded with mechanisms for them to like interact with each other. So for example, say like, you
52:39: know, we are, you know, in this session, and this is, you know, there's a session, you know,
52:45: there's like, there's like stuff, you know, there's like people, they have like objects, and so on.
52:51: And this is all session as it is now, you know, like, that's me, that's Cyro,
52:55: because I'm taller. There's like, you know, the cubes we have created.
53:04: What you'll be able to do is, you know, say there's, say this is like, you know, session A,
53:10: you know, session A, you'll be able to like make another session, you know, that's not normally
53:17: would be completely separate, you know, and there's like some other people here, and they have all
53:21: their own stuff, they have spheres, and this is session one. You know, this is session one.
53:28: You'll be like, if these two sessions communicate, you'll be able to say,
53:31: these sessions are actually physically next to each other.
53:36: And I'm just gonna redraw, and there's more people, and they have, they have the spheres,
53:41: and maybe a triangle. So these are physically next to each other. So if you are in the session,
53:46: we can, you know, we can see this one, and if you just, we just, you know, go and walk.
53:52: Oh, this is all too good. No, let's say there's a third person, and the person just, you know,
54:00: it's gonna seamlessly transition into the other session. Same way, like, you know,
54:02: people in this session, they can see this session. So we're talking, you know, kind of put them,
54:06: like, kind of next to each other, and you can, you know, put another one here. You could,
54:09: you could make, you know, a grid system if you want to. But, you know, kind of similar, like,
54:15: you know, to Second Life. We can kind of travel between multiple grids. But the whole idea is,
54:20: like, you'll be able to make sessions, you can make them relate to each other in any way you
54:29: like, to be in a grid. There's going to be, like, you know, a system to kind of do it.
54:34: So what we could do instead is, instead of the session being right next to this one,
54:43: you know, maybe, maybe say, like, you know, there's, like, a little table in this one.
54:49: Oh, this is all together. Say there's, like, a little, little desk, and there's, you know,
54:57: we can scale down, and if you scale down and go here, this little house on this desk
55:03: is actually a whole other session, you know, and this is a session, let's say, session house.
55:14: So you can actually travel into the session, which has, you know, its own stuff, you know,
55:18: there's, like, furniture, you know, and there's stuff, and there's people, you know, and there's,
55:24: other things. This is all contained within this house, and this session is actually just
55:28: shrunk down, like, you know, within this. So there's an entire world in this house that
55:32: you can enter by shrinking down and going in there. And you essentially just say, you know,
55:38: this session, which is designed to be, you know, part of the house, is, like, you know,
55:44: is, like, this big, and this, like, you know, and positioned, like, to this object in this other
55:48: session. And this isn't going to handle the transitions for you. And this works, I know,
55:53: the other way. Say, you know, here, we build, like, you know, some kind of mechanism like
55:59: a spaceship, you know, we build, like, a kind of, like, nice spaceship real quick. We build,
56:06: like, you know, this little, like, thing, and we fly out. This kind of looks like a weird fish.
56:11: We fly out. This session is actually part of, like, a much bigger session, which, you know,
56:19: fly around. And, you know, this thing is its own session, which has, you know, lots of little
56:25: sessions in there that you can kind of go into. So you can, like, you know, you can travel kind
56:29: of between scales and kind of achieve, you know, almost like infinite, infinite universe.
56:37: And, you know, and maybe, like, this goes even further, maybe, like, you know, the whole galaxy,
56:41: you know, there's a whole galaxy where some bits, you know, there are, like, the solar systems are
56:48: gonna, you know, travel that way. And this session, you know, just, it has some kind of
56:54: galaxy visual and some things that, like, tied into its own, like, substations, which then have
56:58: their own substations and can, like, go as deep, you know, as you want and construct, like, really
57:05: physically big and complex kind of worlds. And that's gonna be, you know, like, the whole kind
57:12: of domain system. And I think that's kind of, like, allowed to build, like, you know, way,
57:18: do right now. There's also another thing, because one mechanism I want to have for this is for
57:25: sessions to also travel into other sessions, or shouldn't be saying sessions, but domains.
57:32: So, say, this spaceship that we built, that's actually its own,
57:37: that is, own, you know, session or its own domain. This session, like, you know, Rocket.
57:44: So, we actually, we enter this one, and then we travel, and we actually leave this session,
57:49: and, you know, it travels into another one. We, we arrive into some other session,
57:55: you know, there's, like, some people here, and we arrive here,
58:01: you know, in the, I'm drawing this, we arrive here in the session, and we step out,
58:07: we actually have, you know, are now also in this session. So, you can have, like,
58:12: a vehicle, the inside of the vehicle can be its own session, that can then travel to another one,
58:17: you can step out, and we are within that other session. There's another mechanism that's going
58:23: to be part of this, and part of the domain, domain system, is where each domain, it has,
58:30: you know, can have, like, multiple sort of sections to it. And there's, like, you know,
58:34: section that's the inside of it, you know, that has all the furniture, it has all of the details,
58:39: you know, every little bit, but then also it has its own sort of external representation,
58:46: you know, like, for example, the spaceship. So, the session has, like, you know, external
58:49: representation, which is just the spaceship hull. So, when this session enters another one,
58:59: it doesn't, like, everyone in this session doesn't actually need to load inside of this.
59:03: They only see its external representation to other users, which is not much simplified,
59:10: so it doesn't take too much performance. And it's only, you know, if they stepped inside,
59:14: they would actually load it. So, this kind of system, it's sort of like LOD for the entire,
59:20: like, you know, kind of regions. And this will work, you know, regardless of whether, you know,
59:24: it's a session that kind of moves from each other, or if it's, like, you know, a trunk-based system,
59:28: or grid-based system. Because, like, if you have a grid, like, you can load grid chunks that are,
59:35: like, you know, really far away, and they, instead of, like, you know, loading the whole thing,
59:39: they have, like, their own kind of LOD representation that you see, if you see them
59:44: from distance, and it loads the more detailed one once you kind of get close. So, this, I believe,
59:53: like, is going to be, like, kind of one of the game changer mechanisms for Resonite, once we're
59:58: able to kind of work on this one. Because it's going to turn, like, you know, the platform from
01:00:03: being able to build just, you know, individual worlds, which you'll still be able to do. If you
01:00:08: really want to just individual worlds, nothing forces you into the system. You know, you can
01:00:14: have just isolated session, isolated domain, don't allow any others in. But it's going to provide a
01:00:19: tool to build things that are, like, you know, much bigger, where you can, like, you know,
01:00:25: travel to other problems, you can travel, you know, to microscopic levels, you can, you can
01:00:29: have multiple people go, you know, into a terrace or spaceship and fly somewhere else, you know,
01:00:34: and then, like, arrive at some other session and, like, you know, step out and talk with people
01:00:38: there. It's gonna open up, like, a lot more possibilities on how people interact on Resonite
01:00:45: and how they interact on this platform, and it's gonna open up more possibilities for the kinds of
01:00:50: experiences you can build in here and make them kind of more connected. Like, even if you take,
01:00:54: you know, this place, I'm gonna switch the camera, you know, if you take this place,
01:01:03: let me actually go some POV, you see, we're kind of, like, in the sky, and there's, like,
01:01:08: an island over there, and right now that is fake. Like, if I actually go into it,
01:01:14: if I go noclip and I fly through this, you see this is fake. It's just a billboard.
01:01:23: And this is, like, very typical for small worlds, but, like, if you, if you actually go, you know,
01:01:30: into things, like, it just kind of breaks the immersion. It's okay if I look at it from
01:01:34: distance, but, like, once I fly over there and see it's fake, it kind of breaks it.
01:01:39: With this system, that island over there, it can actually be in session, and if I fly over it,
01:01:45: it's going to load it and I can talk with the people that are there. With the system that's
01:01:49: handling, you know, the external representation, some of the stuff that's actually happening on
01:01:54: the island can be, you know, maybe, maybe it's going to, like, you know, render,
01:02:00: somebody spawned something big, you know, on the island. It ends up in the preview and I can see
01:02:06: it from distance. I probably want to be, like, to see it, like, you know, moving forward in real time,
01:02:10: but I'll get some idea what's going on the island. With mechanisms to also communicate between the
01:02:16: domains, you know, there can be stuff, like, for example, the, you know, the time of the day that
01:02:21: we have right here. This can sort of be like a meta domain that kind of covers multiple domains.
01:02:27: It's sort of like a layer that's around all of them and that doesn't, like, really contain much
01:02:33: on itself, but it kind of has, you know, some shared information for all of these. So, like,
01:02:39: no matter which one you are in, there's some basic stuff, like, maybe there's, you know,
01:02:43: I mean, it wouldn't make sense for time of the day since there's, like, a galaxy, but, like, say
01:02:47: there's, you know, some kind of global announcement thing, so this is, you know,
01:02:52: part of the meta domain and this can communicate with every single one of these.
01:02:59: So, like, any of these can, you know, send a signal to this and it's going to go to all of these,
01:03:03: so no matter where you are, you know, that can trigger things to happen. I would like,
01:03:08: you know, we kind of want to skip them. So, I think this is probably a good point to kind of
01:03:14: stop this big ramble because, like, I can go kind of deep, but I did want to cover this one. This
01:03:19: is, like, one of the ideas I'm, like, really excited for. It actually also ties, you know,
01:03:24: into the things I was talking earlier with the terrain system because terrain system,
01:03:28: you know, it might not even be contained in an individual session that can be, you know,
01:03:32: part of the sort of meta session where if you're walking multiple chunks, the terrain system is
01:03:37: actually being handled by the meta session where, you know, like, where the terrain system itself
01:03:43: has its own, like, chunk system and it's kind of handling that. Or maybe there actually is
01:03:49: terrain system in each individual chunk, but there's gonna be mechanisms for, you know,
01:03:56: for them to communicate. Because you need it for other things too, like, you know, some cubes at
01:04:00: physics and you want them to transfer from one to the other, they need a mechanism to kind of
01:04:04: communicate between the domains. So there's a lot of kind of long possibilities, a lot of things are
01:04:11: gonna be also figured out, but this is the general gist of the, like, you know, the big plan of,
01:04:16: like, where we want to take ours right in the future and to be able to build worlds, like, you
01:04:20: know, way bigger than you can do anywhere else. So thank you very much, Ciro, for the question.
01:04:26: I think I rambled for a good amount, like, we should probably start getting some other questions,
01:04:31: but at least, you know, I got my ramble, you know, for this episode of Resonite out of the way,
01:04:37: which means the one I was planning, I might leave for another time. So thank you very much for
01:04:43: checking the folks out there, and thank you very much for listening. I'll probably split this one
01:04:47: into multiple videos and each of the sections, just so it's not too long. But I hope that answers
01:04:54: the question, that answers the question, you know, to the full list. Let's see, gonna move the camera
01:05:05: back here. Oh, we need to bring the chat back. I hope, like, the next question isn't on the
01:05:14: really rambled one, because, like, I'm gonna sit down and be like, oh, I need to get back up.
01:05:18: But I glanced at it, and I don't think it's gonna be that, so. I think we're good to
01:05:24: I think we're good to sit down for a bit.
01:05:31: That's kind of weird. There we go. Oh, that's the good view.
01:05:53: It actually does the opposite. Usually, when we build our own in-house system,
01:06:00: it happens, because, like, I feel like we get, like, reputation a little bit, like, you know,
01:06:05: we like to do, like, our own in-house systems, but usually my first instinct is to do the opposite,
01:06:10: and want to look for a library or something that we can use that's gonna save us a lot of work.
01:06:17: A lot of the things that we do at Resonite, like, we end up, like, reaching a point where
01:06:24: using a third-party solution doesn't quite fit our needs. It's,
01:06:31: like, it essentially reaches a point, like, where, like, it's, like, we kind of have to more deal
01:06:37: with the issues of the library, just the kind of progress, and that's what ends up, you know,
01:06:42: ends up slowing the updates, because it kind of puts the roadblocks. And making our own
01:06:47: system lets us design one that, like, that is, like, a perfect fit for what we're trying to do.
01:06:53: And because with Resonite, we're trying to do, you know, things that a lot of other platforms are
01:06:58: not, it ends up, like, requiring a lot of kind of, like, in-house solutions, because we need, like,
01:07:05: you know, sort of unprecedented level of control over those systems, so we can achieve our goals
01:07:09: and make it fit with the rest of our architecture. But yeah, like, it kind of depends. But all of the
01:07:19: systems, you know, that we have kind of in-house solution for, there's a justification for that,
01:07:25: like, there's been something that made it necessary to have that system. Because given
01:07:33: a choice, I will, like, you know, like, for example, with Bepu. Bepu, that's a physics engine,
01:07:37: is excellent, it's a big project, we wouldn't want to do it on our own. And the way Bepu physics is
01:07:43: written, it's very, it's very kind of low-level kind of physics engines, which means, like,
01:07:50: you kind of get to, like, adapt and integrate it in a way that suits your project. And I really
01:07:55: appreciate, like, you know, that kind of thing. And it's one of those things where I, like,
01:08:02: I don't see us ever, like, making it on our own, at least, like, not in the foreseeable future,
01:08:08: and we'll very likely, you know, continue utilizing that one. There are actual cases,
01:08:12: even with that one, where it makes things harder to update, because right now what Bepu has done,
01:08:19: a while back they actually moved to, initially, .NET 5, I forget which version it's on right now,
01:08:25: but it essentially requires, you know, the .NET runtime, because they wanted to use some of the
01:08:30: high-performance, you know, features of it, and because of that, we can't use the, you know,
01:08:36: upstream versions anymore, and we have our own modifications, our own fork, and I actually had
01:08:40: to spend time backporting some of the updates they did, you know, back to, like, something that works
01:08:46: with .NET Framework, so it actually made, like, there's an idea harder to update because of that,
01:08:52: and it's one of the reasons we want to move, you know, to .NET 9, so we can actually sync up with
01:08:56: the latest version and make it easier to update, but oftentimes there's going to be something like
01:09:01: that. The library does something, doesn't fit well with what we're doing, and it has additional work.
01:09:08: We have a system, you know, that is built specifically for our purpose that usually makes
01:09:12: things smoother, so the main thing is, you know, how much effort is making that custom system
01:09:17: and maintaining it, and usually when the maintenance burden of, like, you know, like,
01:09:26: in our solution, that's when we, you know, decide, like, we're gonna make the switch,
01:09:29: we're gonna make our own in-house. We've got some questions.
01:09:38: Rinalodge86, improvements to ProtoFlux. Yes, there's a number of them. Actually, the talk,
01:09:42: there's another standalone video on our YouTube channel which talks about, you know, future
01:09:48: improvements to ProtoFlux. Just in short, there's going to be stuff like nested nodes, so you can
01:09:53: define your own functions, you can define interfaces, so it, like, interacts better
01:09:56: with lots of other systems as well. There's also going to be DSP, so, like, you can, you know,
01:10:03: process audio, meshes, textures, you know, do stuff, like, procedurally, do, like, various
01:10:07: kind of, like, processing like that. So there's a lot of improvements to ProtoFlux that we want
01:10:11: to do as well. I do recommend watching the video on our YouTube channel. It's, it's, it's called
01:10:16: something like Future of Scripting, you know, with ProtoFlux or something like that, so give
01:10:19: want to watch if you want to know more. Next one, Bitkirk IGN. Are there any neat, cool
01:10:27: features you want to add to PhotonDust after testing, after performance update? Yes, yes,
01:10:32: there's a number of them. So one of the features we want to introduce is sub-emitters. So you can,
01:10:40: like, you know, when particles, like, you know, the particles can actually spawn, you know,
01:10:44: more particles. And it could be, you know, during their lifetime, it can be when they die, it can
01:10:50: be, like, when particles have trails, the trails can be emitters themselves, you know, so you can
01:10:54: do all kinds of cool effects. The other feature is also going to be, like, effectors, force fields,
01:11:02: where you can define, you know, for example, a sphere in the world, and you say the sphere
01:11:07: applies, you know, turbulence, you know, to the particles. So you can create, like, winds, you
01:11:11: know, you can create force fields, like, you can shoot particles, you know, and then, like,
01:11:15: bolt, you know, like, do all kinds of things with them. And that's, overall, I think it's going to
01:11:22: be a very powerful system as well. There's, like, one that I kind of, like, want to do at some point
01:11:26: is, like, add... one of the things I made with PhotonDust is that it supports... it's very modular,
01:11:34: and it supports different renderers. So the particle system, it does its own, like, simulation,
01:11:39: it computes, you know, new points, new colors, new rotations, and so on, and that goes into a
01:11:44: renderer, and the renderer decides, you know, how are these points going to be represented visually.
01:11:48: So you can have, like, you know, the... you can have, like, you know, billboards, or you can have,
01:11:51: like, you know, meshes, you know, the particles represent meshes. One thing I want to add is
01:11:55: something that's going to use... what's it called... Martian cubes algorithm, and sort of make a mesh
01:12:04: so you can sort of do, like, you know, like liquids with it, and I think that's going to be cool for
01:12:07: lots of, like, you know, lots of, like, equal effects. Always, like, think of the... think of,
01:12:13: like, liquids in a portal, like, you know, like, when you have the gels, and you'll be able to do
01:12:17: stuff like that with it. But I don't know when I'll be able to add that one, because there's a
01:12:22: little bit more involved, but... I'll have to see on that one. But, yeah, just a bunch of them.
01:12:31: Next question, relaunch86. What would I use brushes for when building a world?
01:12:37: Could you give me some examples when you have time in answering? Yes, so there's lots of ways to use
01:12:43: a very powerful system. So, you can pretty much use it for any part, you know, from prototyping
01:12:51: to actually building a world. So, if you start building some environment, you know, like I can
01:12:57: kind of want to get up for this one again, but I just sat down. With the brushes, let me actually...
01:13:04: I'm gonna stand up, and... There we go, I'm gonna move over there.
01:13:09: Now we still have this stuff over here.
01:13:17: So, I'm gonna clear this one out. To say, actually I'm not even gonna use this one, I think I'll use
01:13:23: Smooth POV. So, say like you're building a world, one of the things that even our own team oftentimes
01:13:28: does is like, when they, you know, block out the environment, they'll be like, you know, or maybe
01:13:32: like, we want to add a thing over here, so like, you know, you just quickly draw it, and you're like,
01:13:36: okay, like, maybe a disc over here, you know, and just draw it like this, and get, you know, a very
01:13:43: quick idea, and maybe this is gonna have like, you know, a thing over here,
01:13:48: you know, and it's sort of... Oh, is it too fine? Oh, I think it might be a bug. It looks good.
01:14:00: So, yeah, you essentially, you know, you kind of sketch out, like, what you want to do,
01:14:04: and because, like, you can draw in 3D space, you get, like, you know, a good idea, you know,
01:14:12: you get a good idea, you know, spatially, like, you're like, okay, like, this is how the space,
01:14:16: you know, feels like, you know, I have, like, stuff here, maybe, like, you know, put some stuff here,
01:14:20: so the brushes, they're a really good tool, you know, for initial kind of blocking out and prototyping,
01:14:26: and of course, like, you know, once you're kind of done, you know, all this goes away,
01:14:30: so you can use it to quickly sketch a place. You can do the same thing if you know, if you scale,
01:14:34: so if I go to scaling mode, I go to noclip, I can scale myself up, so the whole thing is, you know,
01:14:42: and you could do, you can do this kind of stuff, you know, on bigger level, so it'll be, for example,
01:14:47: I'm going to add a door here, there's going to be stuff here, you know, maybe I want to add platform
01:14:53: here, and it's going to be like this, you know, and this goes here, you know, and it's going to
01:14:59: be like a, maybe I want to add like a tower here, you know, it's going to be like a thing,
01:15:03: and it's going to go down here, and the CSR is already going through there, which is also another
01:15:08: cool thing, you know, we can do this kind of stuff collaboratively, and maybe, you know, I want to
01:15:13: add like, you know, I want to add like, you know, some kind of art over here, you know, that like
01:15:19: has things, you know, or maybe I want like, you know, I want more, I want another island over here,
01:15:25: so there's going to be island, you know, there's going to be tree, and you kind of sketch it out,
01:15:30: when you scale it up, and, you know, you scale down,
01:15:35: and then you kind of like, you know, get a feeling for like, you know, this is what it's going to
01:15:37: feel like, this is how big it's going to be, you know, and I've literally just kind of sketched
01:15:42: this, and, you know, there's going to be a thing over there, you get much better idea of like what
01:15:45: you want to build before you build it, and literally took me less than a minute to sketch
01:15:49: this. So that's one of the, that's one of the like, you know, kind of benefits for the brush system.
01:15:56: But there's even more, so let me go back inside, say you actually want to build more environments,
01:16:03: say like you have like stuff like this with plants, so what I'll do, and let me enable
01:16:09: Private UI, so I'm in the Resonate Essentials Tools brushes, there's a bunch of them,
01:16:16: there's some cool ones, if I go Plan Brushes, because the brushes, they're like, you know, fully
01:16:23: scriptable and fully configurable, you know, you can pretty much make them do whatever you want,
01:16:30: and we've made a bunch of them for you, you know, for a lot of kind of common tasks, so say like I
01:16:35: actually want to add, you know, some grass over here, I can literally just go and be like, you know,
01:16:41: a little bit grass over here, you know, maybe I want some over here, and we just draw it,
01:16:47: you know, add a little here, so you can use them as actually, you know, part of the environment,
01:16:55: you can like build something. I think actually these things, like ages, we made like a tool that
01:17:00: usually like draws these, so like a lot of the plants, a lot of the stuff you see in Resonate
01:17:05: Cloud Home that was built with these same tools. So, you know, there's another one, so
01:17:14: this for example, you know, billboard brush, but we also have rock brushes, so say like, you know,
01:17:19: you want to add some rocks around, I can literally just be like, you know, and there's a little rock
01:17:25: here, and maybe, you know, I want like one that's kind of covering these plants, so I'm just gonna
01:17:31: draw one here, I'm gonna cover this plant, which there we go, and I'll add like, you know,
01:17:35: smaller one here, another one here, you can like, if you want, you can build entire worlds out of
01:17:41: this one. I can do the same thing, you know, if I go back outside, and I will scale myself up.
01:17:50: Actually Cyro, can I have a, can you grab the tool for making things collidable, like player
01:17:57: collidable? What I'll do, I'll draw, you know, some rocks, and say like, I want, I want, you know,
01:18:04: something to kind of bridge this thing, so I'll go here, and I'll just, you know, draw like a little
01:18:11: rock here, and can you make it collidable? There we go, and you see Cyro immediately is able to hop
01:18:19: another one for him here, and makes it collidable, and falls.
01:18:27: Well, I'll give, I'll give you another one. You also probably want to make this so they're not
01:18:31: grabbable anymore. Oh yeah, something else will get that one. Okay, I need to do that one, and
01:18:37: I'll give you another one here, another one here. This one's actually kind of bad, it's kind of,
01:18:46: I'll do this.
01:18:53: Okay, and you see he's like, little like, small, and I can like, watch him, you know,
01:18:57: go through the terrain I just made, and you see now it's easier, easy to get here,
01:19:01: and I'll literally just do this, you know, with the brush, and I can do the same thing. I can scale
01:19:05: down, and go into third person,
01:19:14: you know, and, and we actually also collaborated, because like, you know, Cyro used this, oh this is
01:19:19: actually smaller than I thought it would be, you know, we have collaborated because Cyro, you know,
01:19:24: I was able to draw these, and Cyro then made them so like, we cannot grab them by accident, and I
01:19:28: can just kind of hop, and hop. So there's like, lots of possibilities like this, there's one more
01:19:34: brush I want to show you that's kind of fun, then there's, let's see, geometry, brush snapping tools,
01:19:43: card brushes, I forgot where we put this one, I think it's this one, yes this one, this one,
01:19:49: geometry line brush. So you see, this one, it sort of draws like this kind of tube, and Cyro,
01:19:56: I'll ask you to do the same thing again in a sec. I'm just gonna scale myself up.
01:20:04: And I'll add like, I'll draw like a tube, actually even bigger, I'll draw like a tube here,
01:20:11: that goes like this, and my tracking is freaking out, hold on, let me do that again.
01:20:19: Oh yeah, I was facing the wrong way, so let me do it again. I'm gonna, I messed that one up.
01:20:26: There we go, and it goes here, and then it goes here, and then maybe opens up
01:20:35: here, there we go. Cyro, can you make it collidable and also non-grabbable?
01:20:43: Okay, all right, that should be it. So now we got like, you know, this tube.
01:20:50: Oh, did you make it, no, it's still grabable.
01:20:54: Oh, is it still grabable? Oh, I might have not hit it, hang on.
01:20:57: I think I hit the wrong one. I'm also gonna un-modify the material for a bit.
01:21:03: It's a little bit faint. Actually, do you have the material tool at hand?
01:21:07: The mesh might need to be dual-sided, hang on.
01:21:10: Okay, can you fix it up? Give us a...
01:21:16: And then change the solidness when the mesh collides.
01:21:20: Yeah, that's good, it's character collider.
01:21:23: And, oh yeah, let's open the material too. So hit the material, I just want it to be less transparent.
01:21:31: Oh, that's very strong. Just go to 0.5.
01:21:36: There we go, that's visible enough, I think.
01:21:39: Okay, and now we should be able to just, you know, go through this tube that we have made.
01:21:45: And you can see the core over there. I think I made it too non-transparent.
01:21:50: And we go over here, and Cyros over here came in.
01:21:57: Oh, and I threw it apart. And then we exit here, and we just, you know,
01:22:02: flop out here, and that's it. So that's another cool thing you can do.
01:22:07: And actually, I lied, there's one more brush I want to show you.
01:22:11: There's also my, well, I keep saying which thing's my favorite.
01:22:17: I think it's in the Buildboard Brushes. There's Cloud Brushes, or Smoke Brushes.
01:22:22: So I can light smoke, I'm gonna light smoke. So this brush, you see the character,
01:22:28: it's like this smoke, and it's like, you know, volumetric.
01:22:31: So I do the same thing. I scale up.
01:22:35: And so I want to, like, you know, add little clouds.
01:22:38: You know, I'm gonna add a cloud here.
01:22:42: I'm gonna cover this area, you know, kind of in clouds.
01:22:47: Maybe some around here, you know, and just draw around.
01:22:52: And maybe some of them are leaking inside, you know, maybe there's a fire or something.
01:22:56: Actually, no, a fire's not good.
01:22:58: And then, you know, I'd like more here, cover this area up.
01:23:05: There we go.
01:23:08: And I scale myself back down.
01:23:10: I go here.
01:23:13: Anyway, now there's extra clouds.
01:23:16: And I go inside, you know, and the clouds are leaking inside for some reason.
01:23:22: Which I cannot figure out a good reason other than just demonstrating.
01:23:24: If I go here, you see this is all now cloudy and misty.
01:23:31: So brushes are really cool.
01:23:33: You can actually build entire environments of them,
01:23:36: or if you already have an environment, you can decorate it.
01:23:39: And all of these brushes, they were made in-game.
01:23:41: Which means, you know, whatever effect you need,
01:23:46: there's a good chance you can make it with a brush.
01:23:49: So they are a really good war-building tool.
01:23:52: I think a better war-building tool than most people realize.
01:23:58: So I hope this answers the question.
01:24:02: I've seen entire worlds built with the brushes and procedural materials,
01:24:06: and they're very powerful.
01:24:08: So if you're war-building, I strongly recommend
01:24:12: check out the Resonite Essentials tools brushes,
01:24:16: take them apart, make your own, try to build stuff with them.
01:24:19: It's a lot of fun.
01:24:21: I remember some sessions, we would just grab the tube one,
01:24:24: and just throw tubes around the world, and we just zoom around them.
01:24:27: And it was a lot of fun doing that.
01:24:31: So I'm going to disable the private UI.
01:24:35: There we go.
01:24:36: Thank you very much for your question.
01:24:38: We're going to go back, and hopefully the next question doesn't make me get up again.
01:24:42: There we go.
01:24:48: Actually, I'm happy.
01:24:49: Like, you could think a lot of, like, kind of the good material,
01:24:50: like, all cut out, like, into individual videos,
01:24:53: because the brush system is actually one of the things I really wanted to show sometime,
01:24:58: um, I feel it's, like, very powerful, and not, like, you know, not enough people, like, use it.
01:25:04: Yeah.
01:25:07: So, yes, uh, hope that answers the question, Erlang.
01:25:11: Uh, next one is, uh, we also have, like, uh, 35 minutes left,
01:25:15: so I'll see how many questions are there.
01:25:17: There's quite a bit piled up.
01:25:19: So we might start speeding through these a little bit more.
01:25:23: Um, I'll see how it goes.
01:25:24: I'll try to avoid any further deep rambles.
01:25:28: If I can help it.
01:25:31: Uh, so next one, let me switch to camera view.
01:25:34: Navigating of thanks menu with too many branches can be tedious.
01:25:36: Navigate, are any plans improving the four default tools?
01:25:39: I, I'll literally answer this question early in the stream.
01:25:43: Um, yes, there's, uh, the tools, they're essentially gonna get, like, you know,
01:25:46: passive, you can typically place, you know, on one of your hands,
01:25:48: or, like, anywhere, uh, in the world, like, you know, place it in your viewpoint,
01:25:52: and other places.
01:25:54: So, yes, that is planned to be significantly improved in the future.
01:25:59: The recording of this, uh, um, because I, I did, like, a little bit more in-depth.
01:26:06: Next question, one idea, what do you think of having UI elements,
01:26:09: like, for example, run into other windows,
01:26:11: while you still have, I literally talked about that one as well, yes,
01:26:15: like, just watch.
01:26:18: That was actually, that was asked before you started talking about it.
01:26:21: Oh, right, like, we're really behind on questions.
01:26:24: Um, yeah, I'm gonna skip around to these spinsters.
01:26:26: Uh, yeah, pin, like, I was asking, pin screen, cool,
01:26:31: full screen, yeah, it could be double to do full screen.
01:26:34: Uh, Bitcrack IGN, oh, the inspector thing reminded me,
01:26:38: I was working on a HUD for a game and found a scaling
01:26:40: that's pretty hard with dynamic FOV motion blur makes it unreadable.
01:26:44: What do we system feature that makes such stuff easier,
01:26:47: like general slot, uh, HUDs?
01:26:49: Yes, uh, one of the things, like, I do wanna do, like,
01:26:51: especially for desktop is, uh, you know, um,
01:26:54: so you can just define like a facet and see like,
01:26:56: this is the screen and it's just gonna project itself on the screen.
01:26:59: Like, you know, bypasses a lot of the stuff, like motion blur.
01:27:02: I know like the siren particular, like, uh, with the ROV and like,
01:27:05: other on the R stream, they've been, uh,
01:27:07: when they were making the tutorial, they were actually fighting that quite a bit.
01:27:11: Uh, they made a system that works, but it was, you know, a lot of pain.
01:27:15: Yeah, it was a little bit, uh, it was a little bit silly.
01:27:18: Uh, so Rolaj is asking, uh, spherical wars with gravity, yes.
01:27:24: Yeah, like, like, we can order the spherical gravity, like, that's already an option,
01:27:28: so this is just gonna make it so you can, you know, make it way bigger.
01:27:32: Uh, next question, Rolaj86.
01:27:33: I haven't seen entire star system that you can traverse with large distances,
01:27:36: large wars, I haven't seen it, could you give an example?
01:27:38: The rest can be in chat.
01:27:41: Rolaj86, uh, will 64-bit floating points be a thing?
01:27:45: I mean, the only thing, the code doubles.
01:27:48: But they're not used for most things, because, um,
01:27:51: there's actually a performance impact if you use them.
01:27:55: Uh, one day, on modern architectures, like, it actually didn't used to be this way.
01:28:00: It used to be that, like, doubles were as fast as floats.
01:28:04: But, and a lot of people still, like, you know, think that,
01:28:06: but it has changed significantly, you know, over past, like, 10 years or something,
01:28:10: I don't know, I don't know the exact timeline.
01:28:12: But right now, floats tend to be way faster, uh, for a number of reasons.
01:28:16: One, there's more kind of hardware dedicated to processing those.
01:28:20: Two, they take, literally, they take half of the memory,
01:28:24: which, and oftentimes applications can be constrained by memory bandwidth and also cache size.
01:28:30: So if you, you know, if you, if you generally, like, cache misses twice as often,
01:28:35: that's going to hurt your performance quite a bit.
01:28:37: And the other part is because now there's also, like, heavy use of vectorization,
01:28:42: auto vectorization, which means your CPU, like, if you, for example,
01:28:46: adding or multiplying lots of numbers, it can do a lot of them together.
01:28:49: So you can do something like, you know, you load eight floats, you know,
01:28:53: into special register and you multiply all of them at once in a single operation.
01:28:58: If you use doubles, like, you know, because they take twice as much space,
01:29:02: you can load only four of them instead of eight, which means you literally have
01:29:06: your performance, you know, for these operations on that, like, you know, alone.
01:29:12: We're very unlikely to switch to, you know, doubles for, like, you know,
01:29:15: representing everything because that has quite a big impact.
01:29:18: But with the domain system, what you usually do is, like, you know,
01:29:21: the coordinate system within the domain keeps things in a relatively small region,
01:29:25: and there's an additional coordinate system that determines the coordinates
01:29:29: of the domains relative to each other. And with that, like, you know,
01:29:33: you can make it as structured as you want because you're not dealing with it for
01:29:36: every single individual object, which means, like, you know, like,
01:29:40: you can have, like, an arbitrary procedure you want.
01:29:44: Like, you just have a system that's kind of coordinating how they're positioned
01:29:46: with each other. So this, I feel, is the best kind of approach to solving,
01:29:52: you know, the limitations of the floating points.
01:29:56: I think they were kind of into it. What they were also probably referencing is,
01:30:05: like, oh, why don't GPUs just use doubles? And, well, the really high-end GPUs,
01:30:13: like, quadros and stuff, those do have double support, but that's more so meant
01:30:17: for, like, you know, data center and, like, you know, simulating, like, protein
01:30:22: folding and stuff like that. It's like when you're modding it.
01:30:26: Yeah. For, like, modern GPUs, they're optimized for floats, and that's why you
01:30:31: see, like, floating point really far out, and that's why you have to use
01:30:34: strategies like what Froox said to kind of make the worlds, you know, a bit, like,
01:30:38: feel a bit bigger. I mean, you can use doubles even, like, on, like, modern GPUs
01:30:42: that, like, consumer, it's just they're way slower, and I think it's the same with
01:30:46: quadra. Like, with quadra, like, they have better performance, but it's still, if you use
01:30:49: floats, like, it's still more performance, because, like, ultimately, you know,
01:30:54: they're half the size, you know, half memory bandwidth, and oftentimes quicker to
01:30:59: compute. Yeah. Sonuki Koon is asking question,
01:31:04: the new paradigm for how components are put together for a new particle system
01:31:06: is interesting, seems how extensible. Can we expect that more for systems like
01:31:10: materials will be moved over to this sort of plug-in parts one at a time
01:31:13: system? So, it's not really a new system, it's
01:31:18: like, like, it's pretty much like using, you know, like, the individual kind of
01:31:22: module for the particle system is some component,
01:31:25: and then you're just telling the particle style which ones to use, and
01:31:29: it's because they can be shared. You can have, you know, the same module
01:31:33: used in multiple particle styles. So, it's something that's specific, you
01:31:38: know, to PhotonDust, of how it's kind of structured.
01:31:42: I don't think it would really work for materials, you know, because
01:31:44: like the material is just its thing, so it doesn't really make much sense there.
01:31:50: It's definitely not, like, you know, not a paradigm.
01:31:54: It seems like it's already like that, because, you know, you already have, you
01:31:57: know, your materials and you kind of plug them into a mesh render,
01:32:00: kind of like how you do with, like, PhotonDust with the different modules,
01:32:03: it's just... Oh yeah, yeah, that's a really good
01:32:05: example, like, you know, we have multiple materials and then you can have mesh
01:32:08: render which just references those materials, so it kind of is doing that,
01:32:12: you know, and the material is sort of like
01:32:14: atomic unit, you know, of something that's kind of referenced.
01:32:18: Bitcrank, IGN, assume chunking and domain systems will be separate.
01:32:22: And it's kind of the same thing, like, the chunk, like,
01:32:27: define terminology for it, but, you know, we call it chunk, we call it domain,
01:32:30: we call it, like, you know, session. It's kind of the same thing, it's just
01:32:33: kind of, like, self-contained part of the world, like, you know, users can
01:32:37: exist in it and then you can have, like, multiple of them in parallel and, you
01:32:40: know, position next to each other, but it's the same thing, essentially.
01:32:46: Next one, we have Anuki-kun, so wait, how much of which are the
01:32:49: contentable sessions able to see? This can be defined, like, you'll be able
01:32:52: to, you know, like, whenever you're making a word like that, you'll be able to say,
01:33:01: very highly customizable. So, like, you know, it's kind of pretty
01:33:07: much up to you how much you want others to see.
01:33:10: Relash86, Tarset isn't possible in the Resonite.
01:33:13: Maybe, maybe, maybe eventually, maybe, maybe they'll switch engine again to us.
01:33:17: Uh, yeah, all right.
01:33:22: Really? Really? Probably not, but we can, we can, we can dream slash joke
01:33:28: about it. Relash86, what about loading lag when
01:33:32: switching from session to session within domain?
01:33:35: Uh, there's something that's gonna be, you know, kind of overall improved.
01:33:38: Um, uh, even like, you know, before the systems comes in, like, we want to make it
01:33:42: as smooth as possible. Some of it's gonna be helped, like, you
01:33:45: know, with upcoming performance updates, uh, the other stuff, like, you know, we
01:33:47: want to smooth out the general kind of, like, loading of stuff.
01:33:50: Uh, but essentially there's, like, you know, a separate problem that we want to
01:33:53: solve, you know, just make all the loading
01:33:55: processes way smoother. Once we do switch to customer engineering
01:33:58: engine, I think it's going to fix up a lot of that,
01:34:00: uh, because we'll have a lot more control, you know, how is stuff uploaded to the
01:34:04: GPU, because right now, for example, when meshes load, they'll
01:34:07: have to load in one go. For textures, we have a time slicing
01:34:11: algorithm, so it's, you know, like, if you're uploading a big texture,
01:34:15: it's only going to upload a little bit, like, every frame, but for meshes,
01:34:18: we don't have that, because the APIs in Unity are a little more limited for
01:34:27: so, it's a little bit trickier there.
01:34:31: Next one, like the same question, okay, uh, I'll just read all three of them, so
01:34:36: Nuki-kun asking, follow up to that, is there a plan to
01:34:39: give us a way within, within a session to limit updates, uh,
01:34:43: like, limit the speed that thing will update to save bandwidth in case this
01:34:46: character is being far apart, or is it a sub-session
01:34:50: thing solution for it? Yes, there's actually going to be, um, we
01:34:57: have a lot of computing, you know, when the IK updates, when,
01:35:00: you know, everything in the world updates, and one of the things we want to
01:35:03: introduce is something called variable rate update.
01:35:07: What that will do is say that certain components, instead of
01:35:11: updating every single frame, they're going to update, you know,
01:35:15: every second frame, or every third, or every fourth,
01:35:19: and essentially limit how fast it updates. So for example, you know, like if
01:35:22: you're in a session, you know, and Cyro is right next to me,
01:35:24: both our IK systems will update, you know, at a full rate, so like, you know, we see
01:35:28: each other smooth, but if somebody's, you know, way over
01:35:31: there, we can see that, like, barely see them,
01:35:33: or maybe we don't see them at all, like, if we don't see them at all, maybe they
01:35:36: update, you know, every 30 frames, you know, because it doesn't
01:35:40: matter as much. We can still see them, but in this sense,
01:35:43: maybe they update every 10th frame, or every 8th,
01:35:47: and that's going to save a lot of performance, and there's going to be,
01:35:50: like, you know, systems to kind of control that, so you can say,
01:35:52: these things are important, this thing is to update, you know, like, you know, at
01:35:55: least this fast, or things not important, you know, the
01:35:58: system can, like, you know, limit how fast it updates, and save
01:36:01: performance that way. So there is going to be a system for that.
01:36:06: I'm just gonna yield these three questions.
01:36:12: Actually, I can't read that.
01:36:18: It's like, I'm gonna pull it out, just so you can see.
01:36:22: Somebody called the arm. Thank you for the raid.
01:36:25: It made it gray, gray fond on a gray background, so I was not able to read that,
01:36:29: but thank you very much for the raid. They probably read it as a while back,
01:36:33: and we just noticed, because we had a pile of questions, and we got
01:36:36: 25 minutes left, so we're actually pretty good on time now.
01:36:41: Okay, because that means more rhombus.
01:36:45: ModernBalloon is asking, a question I have,
01:36:48: I'm curious with multiprocess and eventual eating of Unity,
01:36:51: will there be any issues with FinalIK when you get process on .NET 9?
01:36:55: No, it's a purely C-sharp like code, like there's,
01:36:59: it just does the same. Like, if you think about it, the headless is actually
01:37:02: running, you know, the IOK, and there's no process there, like the
01:37:06: headless doesn't use Unity at all. We actually don't use FinalIK
01:37:11: specifically, like directly.
01:37:14: What we use is a port of it, so it's kind of like,
01:37:18: it's pretty much been like ported to FrooxEngine, which is also one of the
01:37:21: reasons we want to replace it, because it doesn't quite fit
01:37:24: in the engine architecture. So it's eventually going to be replaced,
01:37:29: but we're going to replace it, you know, because we want our custom system
01:37:32: that we have full control over, but it has nothing to do with the switch
01:37:37: .NET 9, it already runs with .NET 9.
01:37:42: Nuki-kun, why can you stream audio directly over Resonite, but not video?
01:37:48: Is it a stream thing? Direct video? Streaming ever planned?
01:37:51: So, I'm pretty much the reason is like, it has not been implemented.
01:37:56: Implementing, you know, streaming video, it takes time.
01:37:59: It's something we want to add at some point. I feel like it's going to be like
01:38:02: also like a really good building block, because
01:38:04: you can do stuff, you know, like stream your desktop, you know, to show other
01:38:07: people like what you're doing, but you could also have like, you know, a
01:38:11: camera, and like you could even make things where
01:38:13: the streaming camera, instead of like using OBS, you can just kind of compose
01:38:16: everything and just, you know, stream it directly, you know, from here, make it kind
01:38:20: of like the process simpler, and let, you know, script parts of it,
01:38:24: you know, with ProtoFlux. No, no, I'm missing things.
01:38:32: With ProtoFlux. But yeah, like we'd want to add it at some point, the reason
01:38:37: it's not there is just it hasn't been implemented yet, so.
01:38:42: It's actually something I've been like looking into as well, because like
01:38:45: there's like multiple solutions, ideally we would want to have,
01:38:48: you know, GPU accelerated encoding, especially like if you do like higher
01:38:51: resolutions, but also like the GPU acceleration
01:38:54: ones, they tend to be specific, like, you know, to NVIDIA, so like,
01:38:57: but we also want users, you know, have AMD to be able to do it, so it's kind of...
01:39:03: It's a fair bit of work.
01:39:06: Next question, JackTheFoxOutThere.
01:39:08: Should I feel bad for my questions taking much of my screen time every week?
01:39:11: No, I don't like the rambles, and like that literally gave me like
01:39:14: much zero for several videos that I can split,
01:39:16: and you know, it failed a little bit of time.
01:39:18: I was actually like at the beginning, like, we didn't even have too many
01:39:21: questions, I was like, is it just gonna be kind of rambles about stuff?
01:39:24: And it's just gonna give an excuse to ramble.
01:39:27: And I like doing duels, you know, where I can actually showcase, you know,
01:39:33: something, like I can draw because it makes it more visually interesting.
01:39:38: And those videos, like I've done one for performance,
01:39:41: one for like, you know, the future of ProkoFlux,
01:39:46: they've been doing pretty well, people seem to be liking them,
01:39:49: and I think I got all these like four or five just out of the stream alone,
01:39:53: so like thank you for those questions.
01:39:57: Next question, Lexo is asking, now I'm thinking that the variable
01:40:02: rate updates could dynamically react similar to how PhotonDust works,
01:40:06: where if a specific system is using up a lot of performance,
01:40:08: it could dynamically change the update rate of that system,
01:40:10: could that be possible? Yes, this is actually related,
01:40:13: because I've been wanting to do the variable rate update system for a long while,
01:40:21: and actually I've been like, you know, kind of placing bits of it,
01:40:24: you know, into the systems that are being reworked.
01:40:26: So for example, like ProtoFlux, that's, you know, it has mechanisms in it for like, you know,
01:40:34: updates like tracking, that lets it kind of fit into this kind of system,
01:40:39: same with like, you know, PhotonDust, a lot of the procedural, you know, asset system,
01:40:43: they use the same mechanism, they essentially trigger an update, let the update, you know,
01:40:48: around, you know, let it update around, you know, at whatever, you know, back out like it won't,
01:40:57: once it's there, it's going to get integrated and that frees up another update to happen.
01:41:01: If something, you know, if something,
01:41:07: you know, changed the meatball, if something, nothing changed and it's, you know, just done.
01:41:12: So this kind of pattern that Resonite, like, you know, what's basically FrooxEngine has been using,
01:41:18: works much better with VR because like it doesn't constrain your whole FPS, you know,
01:41:24: your FPS doesn't drop, like only the FPS, you know, for like where things are getting updated.
01:41:29: With the variable rate updates, that's essentially going to make this kind of pattern applicable to a
01:41:33: lot more things. And I feel that's a lot better way, you know, to control frame rate because you
01:41:37: can say, I want to hit, you know, 90 frames per second and the system is going to look and it's
01:41:48: I want my movements to be smooth and depending, you know, how much CPU time you have, it's going
01:41:54: to be like, okay, like I can, I can afford to keep running, you know, Cyro at full rate,
01:41:59: but like those things in the distance, I'm going to lower them down enough, you know, so like you
01:42:03: keep hitting 90 frames per second because you can also like cascade them. So like, you know, say
01:42:07: like there's, say there's 10 people over there in the distance and the system decides I'm going to
01:42:13: update them every 10th frame. So on the first frame, it updates first person, second frame
01:42:18: updates second person, third frame updates third person, you know, and kind of spreads out the
01:42:23: impact of those over 10 frames. So all those 10 people, they're taking, they're essentially
01:42:29: taking as much performance as a single person, just, you know, for updates. So that kind of
01:42:37: system is going to make it much easier for the system to sort of like self-regulate, to hit
01:42:41: whatever target frame rate you want. Maybe like, you know, like if you're on a potato system, it's
01:42:46: going to be okay, I'm going to update my own IK at full rate and Cyro gets, you know, every second
01:42:52: frame on every third frame. So he's going to be choppier for me, but like overall everything's
01:42:56: still going to be smoother. So I believe a system like that gives like way better control on that.
01:43:04: And yes, like Alexei was also asking, it wouldn't affect the full rendering
01:43:07: update time and not lose FPS. Yes. That's very much like the goal is like the system can see,
01:43:12: you know, how fast you're running and decide like, you know, to give things less time or more time,
01:43:17: you know, depending, you know, how you handle, like how your system's able to handle things
01:43:21: and how much is there. So I see another question, I'm like, oh no. GrandiouK,
01:43:26: what is your favorite pizza to eat? No, no, you may not say the USA pizza.
01:43:31: Um, this makes the question hard for me. I mean, I usually, I usually like kind of simple pizzas,
01:43:40: like, like pepperoni one. Those are pretty good. Um, I don't have, uh,
01:43:46: yeah, I don't like mushrooms on pizza. Like, uh, I don't like mushrooms. Uh, I wonder,
01:43:54: oh yeah, this one. Uh, so this is another theory scan. Um, so usually pizza's like that. This one
01:44:01: only on it. Uh, it has, you know, some peppers too. I like those. I like when there's mushrooms.
01:44:05: This one doesn't have mushrooms. I'm hungry. I'm hungry. There's like onions in it. Onions are good.
01:44:13: Um, I don't like where there's too much on pizza. There's, there's another pizza I had like while
01:44:20: back, like, uh, uh, and I wouldn't, I wouldn't say this one's my favorite one, but there's like,
01:44:27: there's a story related to it. Um, it's the deep dish. And I literally, I literally had a slice of
01:44:39: it. I had one slice. And after eating that, I didn't want to even think about the concept of
01:44:47: food for the rest of the day. I was like, food doesn't exist. I don't want us to think about it.
01:44:53: Thinking about food makes me sick. And then what's even funnier is like, um, um, we went like,
01:45:01: like, I think it was like a week or two later, um, me and Glitch, we went to a Navy Pier,
01:45:08: you know, to just kind of like go around and, you know, see the place and so on.
01:45:12: And we were like, you know, getting to the parking lot. Um, and I was like, Glitch,
01:45:17: you're kind of hungry, you know, do you think we could like go somewhere, like, you know,
01:45:20: some food and Glitch is like, oh, we could go to Giordano's again, you know, get another deep dish.
01:45:25: I literally stopped being hungry once he said that. Just thinking about how filling this pizza is
01:45:32: made me stop being hungry. It's so filling you don't even need to eat it to fill you up.
01:45:42: I mean, it kind of doesn't, it's kind of going on the tangent on this question, because it's more
01:45:46: like, this is not my favorite pizza to eat. I don't even say it's my favorite pizza to think
01:45:52: about eating. This is my favorite pizza to not eat. To not eat. Yeah, you get, you get, you get,
01:46:01: um, you get extra with this one. But I did answer like, pepperoni, mushrooms, and it's good.
01:46:09: Um, do I have any cursed pizzas? I think like, maybe like the most like, quote unquote,
01:46:21: curse, but I don't think it's really cursed, because I like it, is like macaroni and cheese
01:46:25: pizza. Our alfredo pizza, alfredo pizza is pretty good. Chicken alfredo pizza. I'm hungry, I haven't
01:46:32: eaten anything. Those are just pizzas that are like other meals. I also have another cursed one.
01:46:38: This one actually kind of was kind of blessed. So like, this is from two years ago, like at
01:46:42: Forkation. It was just like a cheap like, like pizza. And it was kind of, it was kind of a
01:46:48: testing kind of blend. And when we were at Forkation, Guinz, he made this sauce that he
01:46:55: calls the scotch sauce. It's really good, especially like, you know, with chicken. I was
01:46:59: like, I wonder what it tastes like on pizza. So I tried to put a little bit and it just kind of
01:47:03: did a lot. And it was extremely salty. So I had to like take the other slices and kind of dip
01:47:08: it into it. But I was like, I need some flavor in this. This is very bland tasting, super cheap
01:47:14: pizza. So you get another cursed pizza, you know, with like, whatever that is. Well, it's scotch
01:47:25: looks cursed. And Grant is going down with Froox.
01:47:33: Oh man. Griffin and Phyllis, so next question, let's also check on time. We've got 13 minutes,
01:47:39: so we've still got time for some questions. But if suddenly lots of questions pop in at this point,
01:47:44: we might not be able to get through all of them. So like, if you want, if you have a question,
01:47:48: you know, make sure to get it out, like, asked as soon as you can. So next question,
01:47:52: Griffin and Phyllis, what sort of functionality is planned for the contacts tagging system
01:47:56: when we eventually get to that update? List filtering and surfing, session wide listing
01:48:01: for tags and tag groups, contacts nodes. It's pretty much like, I would say like all of these.
01:48:06: The whole contacts UI that's just gonna, it's one of those pieces of UI, like we're just like,
01:48:10: we're gonna make new one from scratch, way better. Add extra functionality, make it much more
01:48:15: extensible, you know, make it just overall much nicer. And take the old one and just throw it
01:48:20: into Fire. Like it's, it's very convoluted and like, you know, more or less again, it's kind of
01:48:27: bland thing to work with, but yes. We also have like, you know, better kind of searching options.
01:48:33: We want to add abilities so you can actually tag, you know, people like, you know, so you can,
01:48:38: for example, be like, you know, you give somebody a tag, like, you know, like a, like a teammate,
01:48:42: you know, or maybe close friend or maybe acquaintance, or maybe this group, or maybe
01:48:46: this group, you know, so you can assign people tags and it can be like, okay, like I want
01:48:51: to filter people, you know, by this tag. And same way, you know, just going to integrate it into
01:48:56: other parts. Like for example, session hosting, and you're going to say, I want to open a session.
01:49:01: I want it to be open only to contacts, you know, with close friend. So like, if you're like,
01:49:05: you know, feeling that like, you kind of want to like, you know, you don't want big group of
01:49:09: people. You can, you know, have session that like only your close friends can see, or maybe you want
01:49:13: to work on something. So you make session open only, you know, the people like you work with
01:49:18: on particle project, and just give you lots of flexibility that way. We definitely want to add,
01:49:23: you know, contacts notes, you can add a piece of information. That's going to also integrate into
01:49:27: other parts. Like one of the things we have right now is very limited, but it's there, you know,
01:49:33: is ability to ban people or block people specifically, I should say, more ban as well.
01:49:37: We can ban them from your session. So having more options for those. So you can, for example, say,
01:49:41: I want to like, you know, I want to block that person, you know, avatar, or maybe I want to just
01:49:46: block their voice, or maybe I just want to block their visual, but keep the voice, and maybe I just
01:49:49: want them not to see them at all. Or maybe I want to, you know, block them for, like, you know,
01:49:54: they're annoying me right now, but like, I don't care about blocking them forever, so I'm just
01:49:57: going to block them, you know, for a day, and it's going to automatically unblock. Maybe you're like,
01:50:00: you know, leave a note, why did you even block this person, so remember, so things like that.
01:50:06: Another of the things, I just hit it, like, on the tip of my thumb, and I forgot about it.
01:50:18: Yeah, I just kind of forgot about it.
01:50:22: Oh, and one of the things, like, the whole UI is also going to be, you know, reworking to facets.
01:50:26: So you could, for example, you know, the chat UI, that's going to be inside facet,
01:50:32: it's also going to use data feeds, and it will be, for example, pull it out and, you know,
01:50:36: put it on your hand if you want to, so you can kind of see, you know, you can kind of see,
01:50:41: like, messages, like, you know, for example, with a few important people, you have, like,
01:50:45: very quick access, you know, to their messages, or maybe, like, you have multiple tabs, you know,
01:50:49: give them kind of lots of flexibility, you know, in that regard.
01:50:54: I still can't remember the other thing. There was, like, one thing I really wanted to mention,
01:50:58: and I kind of forgot about it. Oh, I remember, I remember. One of the things, you know,
01:51:03: that also comes together with tagging is ability to set your state. Now, set your online status.
01:51:09: So, for example, you can set yourself to be invisible, and only visible as online,
01:51:14: or maybe even sociable, to your close friends. So, stuff like that, you know, like,
01:51:21: like, where you don't want, like, you know, everybody cannot see that you're online,
01:51:23: but, like, you want your close friends to see. So, there's a lot of kind of cool functionality
01:51:28: that you know, that you can build around it. It's also going to kind of integrate, like,
01:51:33: you know, once we can have profile systems, we can also, like, you know, see.
01:51:37: One of the things I kind of wanted to do is, like, unify the contacts, you know, with the session
01:51:41: list. Because I know, like, they cannot doing similar-ish things, like, they're showing,
01:51:46: like, this list of people. So, we could, like, make it, like, you know, where you actually see
01:51:50: these are the people you're in the session with, and, you know, not all of them actually have to
01:51:54: be your contacts, but you still see their profiles, and you can, you know, do stuff like
01:51:58: add, you know, even if you don't add them as a contact, you can add notes, you know, you can add,
01:52:02: like, you know, you can block them from there. Because right now, right now, if you want to,
01:52:07: you know, block somebody, and you don't have as a contact, you have to go and search them,
01:52:10: or you have to click on their name, if you just see it in a single place, I feel that it makes
01:52:15: things much, much simpler. You could also, you know, for example, override things, like, for
01:52:18: example, say, this sometimes happens, some people don't use voice normalization, and, like, they
01:52:24: quiet and have to mess with their audio, have it kind of be persistent, and maybe have, like,
01:52:28: an override that says, like, you know, I'm gonna force normalization on my end for this person,
01:52:32: because I have, you know, trouble hearing them. So lots of, lots of, you know, things like that,
01:52:37: like, have things a fair bit more unified. The whole messaging system that's gonna be,
01:52:43: like, improved, like, there's gonna be, like, a new data feed, which is gonna make it easier to,
01:52:47: like, you know, add multiple types of messages as well. We want to add, like, stuff like
01:52:51: even editing messages, deleting them, you know, stuff like that. It's kind of just,
01:52:57: you know, going from the top of my head on these things.
01:53:02: So hopefully this answers the question pretty well.
01:53:07: Um, still got, uh, seven minutes. We got one question, so we got more questions, you know.
01:53:14: Um, oh, there's, like, one that just popped in. Uh, well, one after the other one, there was still,
01:53:21: it's asking, yeah, but how much control will we have available in every system? Will I be able to
01:53:26: tell that the next room over should be at low rate? Um, the details are going to kind of depend
01:53:31: like what's going to work on the system right now. Like, you know, um, it's not fully designed yet,
01:53:37: so I can't really tell you, you know, how exactly it's going to look, but there's going to be some
01:53:42: mechanism which is going to, you know, which will tell you stuff, you know, in this area, like, or
01:53:47: this part of hierarchy or, you know, or with these conditions should use this update rate.
01:53:54: Um, so there's gonna be some controls, but like, you know, details are going to be,
01:53:58: uh, sketched out, like, you know, once we actually work on this part specifically.
01:54:03: So check the fox out, there are rich embeds. Yes. I don't want to add like more types of messages,
01:54:07: uh, so you can like, you know, kind of like do more kind of cool things with those stickers.
01:54:13: Yeah, stickers. I want to add stickers because you just, you know, upload like stuff and you
01:54:19: thinking, I don't know if it's going to be too annoying. You might be like, you know,
01:54:22: I'd like some controls for a bath so you can actually send something and it's going to trigger
01:54:27: a part of the custom, you know, that just pops out, out of your dash. So like somebody sends
01:54:32: you and it goes, and it's just, you know, confetti or something. Um, I think it could be like fun.
01:54:39: Uh, I think people probably, you know, some people probably don't want it. So we probably have like
01:54:43: mechanisms that like disables it. So you have to kind of click it first or something. Um,
01:54:48: we might also need like, you know, something that like limits the complexity, but like
01:54:52: stuff like that. Uh, ratio impacts are going to be cool. Like one of the things also,
01:54:58: um, and this is kind of part of our philosophy, uh, is sort of, you know, combining like, like
01:55:04: you're using the same piece of UI or code for multiple things. One of the things I also want
01:55:09: to rework is the VORUS UI. So like the VORUS is actually going to use a data feed and each element
01:55:15: in the word browser that's going to be like, you know, a template. Um, then when you get an invite
01:55:20: in your contacts, that message is going to use the same template, you know, to preview the world.
01:55:25: So which helps in multiple ways. It helps because we don't have to build two separate pieces of UI,
01:55:30: you know, for doing what is essentially the same thing, but also it improves familiarity for users
01:55:36: because if you, if you see a way to open a world in your words menu and you see the same thing,
01:55:41: you know, in your contacts, I feel that makes it like easier because now, like, you know,
01:55:46: especially for new users, because you're going to recognize, you know, that visual element,
01:55:50: you know, from the other place. Um, and right now it's a little bit difficult, like, you know,
01:55:56: to build the messages because like it's all built from code and it's just painful, painful to like,
01:56:02: you know, write. And every time like we want to add a new type of message, it's like,
01:56:06: it, it takes a lot of like effort and like messing around and it just doesn't render right. But when
01:56:12: we can actually make the template in game, have like the content team handle it, that makes it so
01:56:17: much easier. Um, uh, next question, group chats. Uh, yes, like one of the group chat,
01:56:26: like it will be another thing that's, it's not really part of the contacts UI. So that probably
01:56:31: won't come as part of it. It's something we'll probably consider and make sure the UI is
01:56:36: for, uh, but it kind of needs, you know, mechanism to actually handle a group contact and
01:56:41: a group chat. I mean, uh, which means, you know, kind of controlling like, you know, their lifetime,
01:56:45: you know, like life cycle, like when do they get created, when do they, you know, get deleted,
01:56:49: making sure it's going to be abused for things. Um, but it's something we would like to have as
01:56:54: well. Uh, that one's probably separate from the contacts UI. So I don't think that's going to come
01:56:58: as part of it. Uh, we'll kind of see, you know, what state we are in when we get to actually
01:57:03: working on it. Uh, so just checking three minutes left. So this might be the last question.
01:57:09: Um, uh, Flashinesso is asking, is there any way to show main dash to other people,
01:57:15: mostly for helping guide new people around? Uh, so not officially, like you can do it on the stream,
01:57:20: like I did like earlier, if, um, if I, uh, render private UI, so like, you know, I just checked
01:57:29: option like render private UI, so you can see, and if I open my dash, you know, like you can see,
01:57:36: uh, the other way is there's a setting, if I go, I'm just gonna show you, uh, camera,
01:57:44: uh, there's, uh, where is it? Uh, is it camera or was it, uh, user interface?
01:57:52: No, that's the wrong one. Was it user interface? I actually forget where it is. Oop, I didn't
01:58:03: wait. Camera. Do you know where that one was? Where what was? Uh, option to like render,
01:58:13: when you take, oh there we go, quick photo capture. Uh, there's capture private UI,
01:58:16: so if you check that on, you can, you know, enable that, and then if you take screenshot in-game,
01:58:23: close the dash. If you take a screenshot, uh, you know, it captures that, so you can do that,
01:58:29: and you know, show people this, this, this, you know, this over here. Um, that's one way to do
01:58:35: it. I actually have like a shortcut for it too, so I have like, you know, capture private UI here.
01:58:41: Um, so that is one way. I know some people, they have like, you know, ripped the dash,
01:58:46: and they have like a version for it, so like it's, you cannot really fully interact with it,
01:58:50: because like we, for security reasons, we make it so the components, you know, don't work in
01:58:55: world space, but there's versions of that that you can find, so maybe that can help.
01:59:00: Um, otherwise, you know, like you can use like the screenshots or render it on the camera like that.
01:59:07: So, we have like one minute left, so I think this is a good time to kind of stop it.
01:59:12: Um, uh, actually there's one question. Grand UK, in the future, when you see a friend in contacts
01:59:18: list in the session, will it be possible to jump to that world in worst tab? And maybe even in
01:59:21: worst, I know it's possible to jump to the contacts list from the nameplate, but what about this usage?
01:59:27: Um, I don't fully understand the question, unfortunately.
01:59:31: So, so like when you see a person in your contacts list in a world and you click on them,
01:59:36: you could be like, oh, I want to view this world in the world's list instead that they're in,
01:59:41: the world that they're in, in the world's list.
01:59:43: I don't understand.
01:59:46: Uh, we'll have to like ask Alison the next one.
01:59:48: Like, I think I need like a little bit more context and I'm also just kind of like
01:59:53: ending it now.
01:59:53: So, um, thank you very much, you know, for all the questions, you know,
01:59:57: thank you for the rambling questions.
01:59:58: I hope like you enjoy, you know, kind of the explanations.
02:00:01: Um, uh, you know, thank you, Cyro, for like, you know, helping me kind of like answer like
02:00:05: things and, you know, helping me demonstrate some of this stuff because I feel it's like
02:00:08: really cool when it's, you know, multiple people kind of collaborating, which is one
02:00:12: of the really big strengths of Resonite.
02:00:17: And, you know, like everyone who's like, you know, using Resonite, who's like supporting
02:00:21: us, you know, on Patreon, we're making like, you know, content on this platform and just
02:00:26: using it every day.
02:00:27: It helps the platform grow.
02:00:29: It helps us, you know, to kind of keep going and improving it.
02:00:31: So thank you very much and we'll see you with the next stream.
02:00:38: Next week, because I'll be traveling to the US.
02:00:42: We might still maybe do one, but like DVD on that one.
02:00:46: So we'll see how it kind of shakes up.
02:00:49: How would you know?
02:00:51: So thank you very much.
02:00:52: Thank you for watching and we'll see you, if we don't see you, like, you know, have
02:00:57: like really happy holidays.
02:00:58: So like, you know, happy, like happy Christmas and New Year and whatnot.
02:01:02: It's probably gonna be some streams like, you know, from us, but not sure if it's gonna
02:01:05: be like, you know, on The Resonance, but I'll try to make one if I can, depending on how
02:01:10: things go, because I'm visiting some friends.
02:01:13: So thank you very much and see you, you know, see you whenever the next one is.
02:01:17: Bye.
02:01:19: Ah, wait, you burned my, that's my dish.