OK,
welcome to office hours,
it is the top of the hour,
we're gonna go ahead and get started.
Uh,
I'll be your host probably for
the next sort of half hour or so,
we're gonna go ahead and answer questions that are in the questions thread,
and there we go.
Let's go ahead and get started.
Actually I'm gonna have a giant glug of water off camera,
um,
I mean off off mic.
Alright,
I'm back.
Uh,
alright,
let's run through the,
the usual ones.
How are you doing?
Not too good today,
got a,
um,
got a bunch of sinus issues going on,
but I have an appointment.
At a new sinus doctor tomorrow morning at like 8 a.m.
They told me that and I asked them to like double check,
I'm like you're open early?
and I'm like,
yeah,
be there at 8.
I'm like,
alright,
cool.
Cos like it was the first available.
I was like,
give me your first available appointment,
and like it's like at 8.
On a Wednesday.
Uh yeah,
sure.
Um,
hopefully they'll sort that out.
I already know what's up.
Um,
the previous sinus doctor said that it
was actually headaches and not sinus related,
uh,
and then a headache doctor said it was sinuses and no headache related,
so I'm just like,
cool,
that means we get a new sinus doctor.
So.
Um,
we'll we'll see what can go on.
Um,
and then I picked up today one of those like,
uh,
vapour sticks.
These have been around for years,
but like on TikTok,
they'll have you believe that they're brand new.
Um,
but they've just got like menthol on them and you just breed them,
and it helps for like
30 seconds and then everything goes back to being like horrendously like horrible.
Um,
what's the dog doing?
The dog's kind of confused.
Um,
it is getting warm,
like today is gonna be really warm.
Like I went outside in a coat earlier today and it's just like I made a
wrong decision.
So the dog's kind of confused
about what's going on.
They also,
they,
uh,
really,
really want,
like,
I don't know me to play with them,
but like I'm I'm I'm I'm working.
It's OK,
you know,
I'm working.
I'll survive.
Uh thenport says how is my Monday?
Yeah,
I like,
I hate to say the word like sleep schedule cause like it doesn't make sense,
right,
cos like whatever,
but
um,
I've only been up like an hour and a half so.
How was my Monday?
How is my Monday,
you know?
Um,
did some work last night that
may result in a
1 2nd improvement
to resonate loading times,
um,
uh,
but it was like really big and for today and was like,
this is really big and complicated,
and I'm like,
yeah,
I know,
I'm sorry.
Like,
so,
uh,
I gotta figure that one out today,
uh,
there we go.
I've also got a um.
Anyone in in the audience here who who knows what these words is gonna like cringe.
Um,
I have to figure out why the resonate headless doesn't run on red hat Linux.
So
I'm gonna go ahead and and and and take a look at that.
Uh,
one of our business clients,
uh,
had a security audit.
Like,
this is the thing that happens at larger companies,
uh,
periodically,
someone who is like paid more than you,
um,
and it's above you in the organisational chart will employ,
uh,
some third party agency or sometimes some internal part of the team
to just like
be annoying.
And it's good,
right?
I'm not saying it shouldn't happen,
but like that doesn't invalidate how annoying it was.
Um.
Cos it's like they go through and they're just like,
guys,
you're using Ubuntu over there,
you can't.
Like,
uh,
official corporate policy is Red Hat Linux only,
right?
So then they're like,
all right,
cool,
you got it's fine.
So they swapped over to Red Hat Linux and
uh the headless went,
nope.
Uh,
so I've got to look into that.
Uh,
it's gonna be fun.
That also might um involve just cleaning up the,
like,
cos that that process will also uh involve cleaning up the um startup of a headless.
That also might.
Help with the whole,
like,
we get a bunch of exceptions on like a regular Linux headset startup
that I've been meaning to look into,
but haven't been able to,
so maybe I'll be able to get those in.
I also still haven't,
because I keep forgetting to,
um,
still haven't got the compressorator Linux changes into the headless yet.
So,
um,
that'll also be part of that.
And because it's business orientated,
I get to charge for it.
Woo!
Money.
I'm doing a little money dance.
You obviously can't see that,
but just,
just imagine a little money dance.
Um,
Slider Fox says,
what did you eat today?
I have had a handful of um
M&M
crunchy cookie flavour,
uh,
because they're uh a clearance round the corner at Walgreens for like $1.
Um,
I got those and an Arnold Palmer,
for those who are not educated in the world of Arnold Palmer,
um,
don't educate yourself in the world of Arnold Palmer.
It is a very dangerous habit.
Basically,
for some reason,
this,
uh,
Arizona drink company decided that their gigantic drinks should be.
$1 and there would always be a dollar.
They'll never be more than $1 unless you live in New York.
In New York they're more than $1.
But there we go.
Probably California too.
Uh,
and they're great.
And Arnold Palmer is like half lemonade,
and when I say lemonade,
I mean like American lemonade,
not UK lemonade.
Um,
half,
uh,
tea,
or like sweet tea,
and it's really,
it's it's like it's,
it's really good.
It's really good.
Uh,
next up is a cheese question.
Remember,
I don't answer cheese questions.
Moving onwards to Marty's question.
Have you seen the world containing 40,000 tables?
Uh,
no,
I haven't,
but it is like totally up my alley in terms of like,
um,
esoteric,
like,
if I say like the words esoteric,
liminal,
and cosmic horror,
like that's.
The horror I want,
right?
I don't want jump scares.
I want stuff that like
questions reality.
Like a really good example of that is the film Annihilation.
Annihilation is,
does have traditional horror elements,
but the ending sequence of Annihilation without spoiling it,
is like exactly what I'm looking for in horror
compared to what like the majority of horror is,
which is like,
oh,
there's a zombie chasing you with a big axe,
but like that's,
it's not horror.
I I don't,
I don't want that.
Um,
so worlds like that where they're just like,
they're a bit like esoteric and strange,
uh,
like right up my alley.
I really want to do one,
there's this,
uh,
algorithm called wave function collapse.
Uh,
and wave function collapse is used a lot in
gaming to do procedural generation.
Uh,
you basically set out some parameters
and then wavefunction collapse.
collapse a wave function to
fill in a level,
like a,
a dungeon
map would be like a really good example of that.
But what I want to do is do it with staircases.
And
like,
I'm aware that there's that VR chat map that's just a bunch of staircases,
but like,
I want to do it like a little bit more
extravagantly than that by having
more,
um,
wave function collapse blocks.
Uh,
and I also want to see if I can
introduce something into the algorithm that will basically,
um,
Once,
add like a special room,
cos the way it works is like it picks a random
room from the list of compatible rooms in the wave function.
But I want it to basically have like a a a single chance,
only one
to pick a a special room,
and that'll be like the loot room.
And the reason why I want the wave function collapsed to do that and not me,
is so that I don't know where the loot room is,
and then we load this world to resolite and it's like,
good luck finding the loot room.
It literally literally definitely
might take you 3 hours.
Feder,
could we stop barking at the door?
Thank you.
I just think it'd be cool,
um,
because what you then basically have is like say
I published that and even I don't find the,
the,
the valuable room or or whatever,
um,
it's like
this level
was completely designed
and implemented by myself,
but even I don't know the solution,
right?
Um,
and I just think that'd be like a really cool thing.
Every MMC year I wanna do it for MMC,
but then I,
I get busy or or something comes up,
but
uh yeah.
So uh I'll look into that more.
Uh I'm trying to think of like other maps I've seen in VR chat or in um
in in in Reso that have that similar sort of feel to them.
I made one a long time ago,
we're talking like way,
way early days of the engine,
so it's like
really uh
old by by today's standard,
but I made an infinite staircase once that just used a portal that you walk through.
um not that good because,
uh,
in a multi-user scenario like the illusion gets broken.
I've seen a few others,
uh,
I think there was an MMC entry that did have something similar.
Um,
there was also that like maths world last year.
It had like various mathematical constructs in it that were explained,
and it was like a little bit like a maze.
It had a little bit of like esotericness to it.
Anyway,
let's,
let's move on,
cos I could ramble about this stuff forever.
Um,
tables,
uh,
that's a cheese question.
Remember,
I don't answer cheese.
Uh,
GV says I remember work being done on unit testing engine Devlock some time ago,
did it ever go anywhere?
Um,
it is happening,
but it's happening at like,
um,
rolling a big ball up a hill.
Um,
most.
IPRs these days have unit testing.
Um,
I hope Fruchs is enjoying that.
Um,
like I just like I go like,
there's no real excuse not to unit test some part of this
code change,
so I add some random test.
Um,
so
you'll notice in the latest update notes there are notes about testing,
so we do have more.
Um,
but the specific project mentioned in Devlo.
Which is engine testing isn't isn't
still isn't there.
Um,
that one is start up actual fruits engine
and then like attach components and test them.
The issues I'm having there are trying to get the
test runner to play nicely with the fruits engine,
right,
cos what we have to do during those unit tests is we have to
basically start up fruitsen
within the unit test runner.
And then they have to communicate to each other effectively
and in some cases,
they uh
they don't like each other.
Particularly when um
for engines like natural way of dealing with like things is to try not to crash,
right?
You never really want for extension to crash,
so there's a lot of tri catches everywhere,
there's a lot of exception handling,
um,
and most unit test frameworks work by when there's a unit test failure,
they throw an exception,
and then the engine picks it up and crashes,
it goes like,
I'm an engine and I've crashed.
It's like,
yeah,
I,
you actually weren't meant to crash,
sorry.
um,
let's figure out how to handle that.
Uh,
but I have no complaints about it.
The test technically works,
um,
but what I want to do is find some way to keep,
um,
the engine initialised when a test fails,
cause right now when a test fails,
the whole engine will clash.
What I want is like just the world to crash or something like that,
right?
So.
Uh,
and the reason why that is it means that we start up the engine once,
then we run all our tests,
and then we shut down the engine.
The engine should not crash between test one
and test whatever how many tests we get to
because of speed.
There may be some variety of tests where we do need to do a few,
uh,
like a full engine startup,
but that shouldn't be the norm.
So if you think about testing,
let's say,
grabable,
right,
you could write a bunch of tests for grabable,
there is no need to
shut down Fru's engine in between all those grabable tests,
right?
You just spin up Fruension within the test runner,
do your grabable tests,
then shut down the engines.
That's what I'm trying to get solid.
Um,
I'll get there.
It's one of those problems where it's like,
I know it's solvable,
it's just like a time thing.
Like,
for those of you who are new to programming
or new to technical natures and stuff like that,
you might look at like a technical problem,
maybe a protoflux problem or or something in Reso and be like,
I don't know how to do that and I'm not sure I can figure it out.
Um,
in most cases with like Resinite these days,
there is the,
the sort of mentality that I have is,
I don't really know how to fix this,
but I know that I will figure it out.
Um,
and,
and eventually I get there.
You'll see that.
From sort of all sorts of stuff that I've been doing.
Biggest one of,
of note being that like headless user grabbing tool equipping bug one,
that was like legendary.
That was like,
I am figuring this out.
I put my foot down and I'm like,
I'm figuring this one out,
and I did.
It took forever.
It took hours.
Uh,
next up,
Slyther Flouf says,
so I was wondering if there's a way to list every value in a cloud variable in one go.
No,
there's not currently.
Um,
I really like,
uh,
of course there's a million things like I want to do to the engine,
there's a million things Freaks wants to do to the engine,
but I really,
really want at some point to have better cloud variable tooling.
Um,
so right now it's all done by resonatebo commands.
Eventually we'll have some form of like UI,
wizard,
manager,
somewhere,
somehow
at some part of the engine where it's like easier to do that sort of thing.
Um,
and so I look forward to that day.
Uh,
and you can absolutely open a feature request for it.
Do double check that that doesn't exist.
I know that we do get quite a variety of,
of,
um,
uh,
cloud variable stuff,
um,
so it might be over.
For us why our brains,
yeah,
I don't know either,
like,
it's,
it's so annoying.
Like,
sometimes I look at like V Vulcan society and I'm just like,
I might be a bit better.
I might be a bit better,
you know?
Um,
and I don't like,
there are some parts of Vulcans that are like stuffy and uptight,
etc.
but
I'm
really embracing like
trying to be stoic as possible,
which is like the sort of non-insane version of being
a Vulcan as being like a stoic as possible,
right?
Um,
but yeah,
why our brains?
Like I slept like 10 hours and I feel like I've slept 2.
I'm
grumpy.
I got
like unreasonably upset at like reading a code review,
it was just like,
oh no,
big code review,
reading it and then I got like angry at myself for it
and then I sat there for five minutes and I'm like,
what are you doing?
You'll just fix it,
it's fine.
And I will,
I'll I'll I'll fix it eventually,
right?
Doesn't matter how long it'll take,
I'll just fix it,
um.
So it's cool,
but like why are brains like that?
Why can't we just be like a Vulcan but not the uptight part?
And not all the like
spiritual Vulcan stuff.
The amount of times that um,
what the hell's his name?
Tuvok.
The amount of times Tuvok lights a candle for
no reason in Voyager is just like amazing.
I got a a stab I get issue for red hat support cos
I think like people will get a kick out of reading it.
Um,
for instance,
you like the game Pause,
yeah,
I,
there is a problem that is like occurring with
uh,
liminal horror,
which is things like backrams,
uh,
exit 8,
that's Subway one,
you're on observation duty,
all of those ones,
right?
The,
the.
Horror there is in the lack of surprise and then the sudden,
like it's it's it's a different kind of horror genre.
But there is a problem there in the like the
part of like liminal cosmic or esoteric horror that I like
is
the fact that it's not
mainstream.
And I know that sounds like a really like edgy scene thing to say,
like a MySpace thing to say.
But
how many backrooms games are there?
And the majority of backroom's games that exist are just,
we took the backroom's assets
and we added
like an NPC from the Unity asset store that makes scary noises and kills you.
And that isn't what we want.
Like the,
the scary part of the backrooms and the scary part
of reading um the SEP wiki as well is like
you're not gonna get jump scared,
right?
These things just exist and it's the same thing with Cosmic hora,
like the whole point behind Cosmic horror is like whatever is
attacking you or whatever the antagonist in the cosmic horror is,
they are beyond
like,
reason.
Like even zombies,
which are also beyond reason because they're brainless,
right,
but like
you can figure it out,
right,
they're zombies.
But this is like
ancient
entity from across the stars,
literally does not care who the hell you are,
but you are like bugs to them.
Um,
and,
and that leads to to usually a better horror experience.
Another good example,
but like in a completely different sort of like area would be Scorn,
the game Scorn.
Um,
that is like beautiful.
Like that game takes like a like a bunch of ideas from,
um,
cos other cosmic horror areas,
but like one of the main ideas there is like
what if
like biological matter
was as useful and as abundant as concrete,
right,
cos you know all our buildings are concrete right now,
but in scorn
all the buildings are like.
Flesh and bones and all the technology is biological,
but we've also like electronics inside it as well.
And it's like they just took that idea to this extreme.
It was like,
what would society look like
if like
we didn't build buildings,
we grew buildings
and
like what changes would we have to make to the society to do it?
Um,
so Scorn's a very good game there.
Scorn's very,
um,
I don't know,
just double checking
mature content warnings before you start streaming scorn,
um.
There are quite a few boobs in there which like we as resin I have no problem with,
of course Twitch,
I don't know the latest.
Uh,
there's also like there's actually like a penis and a few scenes in Scorn as well.
Um,
so
do double check that if you plan to stream it.
Uh,
let's move on to Venport who says,
have you ever played Yumi Nicky?
It's on Steam.
I will go ahead and I will Google it on Steam and I'll give you my live reaction.
Here you go.
Is this gonna be a tuba reaction or is this gonna be
like a I want to crawl into the floor and die reaction.
Let me see.
Umiiy 3.
In which you traverse the
extremely dark world inside a dream.
Yeah,
uh,
it's already on my wish list,
like I opened it and it's on my wish list.
Um,
there's this like game called
LSD Dream Simulator,
which is like similar
in
I guess the sort of way I'm reading this,
um.
I've always thought that like now I have to explain LSD Dream simulator,
so LSD Dream Simulator was a,
I think a PlayStation one game
where um they just threw 3D assets into like a generative sort of engine
and.
It doesn't really make sense,
but there is logic if you follow it.
Like if you,
if you
go into like the um
Japanese themed temple within LSD Dream Simulator,
right,
you'll end up in the,
in the Japanese temple area of the game or whatever.
I've often thought just like
giving,
um,
giving an AI the bare bones of LSDream Emulator
and just saying build shit would be crazy,
right?
All you'd have to do is set it up so that the um.
The game project be in Etiao or whatever,
has first person WAD controls,
and then just give AI everything else,
be like generate whatever the hell you want
in an LSDream emulator style,
and I just think that would just be fascinating,
right,
cos you'll also do it live,
um,
you know,
it's like,
oh,
what happens if I go down the,
down,
down into the cave and like the is just like,
oh,
I think there's a monster down here and just like throws a monster at you,
it'd be cool.
We're a little bit far away from that though,
like I don't want to go into like an AI rent,
but like
um.
What's next or what's needed next is like more context about what it's doing
so that it can understand itself what it's doing and like better tailor that.
Uh,
you can see that in,
in some of the eyes that do programming right now,
like because they'll like explain their thought process
for like what they're doing to the code
or what they're doing to calculate something.
That still is within the LLM
like sequence and it's it's not exactly what I mean though.
I don't know,
like AI for procedural generation of levels and content within video games
that is responsible and ethical is like amazing and it's been
completely ruined by like mainstream AI because now everyone's like,
oh yeah.
Like,
you know,
like the,
the head crabs in um Half-Life,
not even Half-Life 2,
Half-Life 1,
they have AI in them.
The AI says
walk towards Gordon Freeman and jump at him.
It's still AI.
Yeah,
it's overloaded.
Metaverse is overloaded,
AI is overloaded.
Even like,
not like,
I don't even want to like expand it to cryptocurrency,
just the word crypto is overloaded.
Like there are a bunch of
occurrences you can see at this.
The one that pops into my head is uh Thor,
pirate software.
Um,
occasionally he'll talk about cryptography or like,
um,
usually in the context of like DeFO puzzle games and stuff like that,
and once or twice he's had to go like,
no,
not cryptocurrency
to his audience,
and I'm just like,
that's bad,
that's,
that's bad.
Right,
cos cryptography
is like
so,
so important.
Um,
particularly right now.
I would never own your roll your own crypto,
by the way,
as well,
like,
um,
use available algorithms
or hire a crypto expert.
And not a cryptocurrency expert,
like an actual cryptography expert.
Cryptography experts are probably,
um,
in some conversations,
the most dull,
boring people you've ever seen because cryptography is very complicated,
but they must be awesome outside the realms of cryptography because
they've got to blow off some steam somehow.
You can't like go to work and be like,
oh yeah,
uh elliptical curve cryptography,
and then go home and not be like a crazy awesome person.
Um,
let's move forward to what else else is going on.
Feather's barking at the door again.
Hey feather,
come here.
I'm gonna shut the baby again.
There we go.
Um,
David is talking about like,
uh,
testing and stuff like that.
Yeah,
it's,
it's difficult sometimes because,
uh,
I used to at least as a,
as a,
you know,
younger programmer,
I would be like,
how am I meant to write unit tests without making everything a static class?
there are ways around it,
right?
But like sometimes it's like,
uh.
Um,
something that is,
is,
is good to look into is the internal keyword,
um,
and then internals visible too.
Um,
Cause that,
that can,
like internals visible to is usually used for,
for testing,
um,
trying to sort of like
find a good
um
documentation on it.
Sure,
I have not read this article,
but like I scan read it for 30 seconds and it sounded all right,
so there you go.
Um,
basically,
you can say like,
hey,
this method isn't public
and so shouldn't be used by public consumers,
it's internal,
but the internals are visible.
To my test project.
And
um that means my test project can sort of just like
reach into the,
the assembly that's being tested,
rummage around,
pull out its guts and start testing it in
a way that um doesn't expose that functionality to,
um,
actual consumers.
So experimenting with some of that.
There's like an abbreviation for it that I can never remember,
but like the,
the useful way that you do unit tests is you set up something,
you do like.
Uh,
set up,
you do execute and then you,
uh,
assert.
I,
I don't know like what the,
the terminology for like,
like the industry terminology for that would be,
but like setup is usually like
initialise some class,
initialise some data,
load a databaserow,
whatever,
then execute is like do the operation,
and then the assert step is
check that the operation was performed successfully.
Um,
Fru says that they want better cloud variable tooling too.
Like,
just click on any field in the inspector and be like,
Make link,
cloud variable,
and it does stuff for you and Little Wizard.
Absolutely.
We,
as,
as programmers or for Extension,
we have little wizards,
so I could take any sync variable on a component and do like
dot sync with variable,
and it will do it for me.
Um,
but I can only do that inside C,
so expanding that out to,
to people in engine would be a range.
That's it,
yep,
Gin's got a,
a range actor sir.
Yeah.
I knew it was like AAA or something like that.
You see,
I know my stuff.
I just don't know the terminology.
I'm very bad with terminology.
For instance,
what about carrying be the hori?
Yeah,
I've completed carrying.
Um,
carrying is good.
Uh,
it's not quite what I'm after in terms of like,
um.
Like esoteric horror,
but it is,
it is good horror,
um,
compared to other stuff.
Uh,
Sor is a perfect example,
yes,
Soma is a 100% perfect example.
I don't want to spoil any of SoMA for you at all,
except for one item.
There is a particular section within the game where
you crawl through an undersea cave full of tiny
white
undersea crabs
that like look like spiders and it's horrible.
It's like crawling through a little pit of spiders,
but they're crabs,
so it's like um.
Someone's saying don't be mean to the crabs,
I'm not mean to the crabs.
For those who don't know,
I played Path of exile as a crab.
Let me see if I've got a recent crab picture.
I won't check for much longer.
Come on,
crab picture,
crab picture.
OK,
that'll do.
Uh,
that's from a while ago,
but there's,
there's like crab character Path of Exile.
I'm not muted.
Oh,
I am muted.
How long have I been muted?
A minute,
OK.
So I was talking about Path of exile and crabs.
Um,
there's a picture of my crab,
um,
you wanna know more,
um,
ask me afterwards.
Uh,
let's move on.
Uh,
oh yeah,
we're talking about overloaded,
Fris agrees,
AI is overloaded,
crypto's overloaded.
Um,
are we getting Dogcam?
Unfortunately not.
Uh,
Goldie says,
what's your opinion on VS Codium?
I don't know what that is.
Um,
I'm,
I'm not up to date on that.
I have like,
I have like
stuff I can say about it though,
cos like,
uh,
I also see some comments here which is like,
you know,
I,
you know,
I,
Goldie says why uh developers cling to Visual Studio.
Um,
in some regards,
it's like comfort,
but in other regards it's like mitigation of stress,
um.
And like you might not have thought about it this way,
but like,
my job is to edit for extension,
and
anything that gets in that way,
in the way of that
is like a problem.
And depending on what it is,
it's like a big problem or a little problem,
and
it's just fact of the matter of like how many problems can I solve a day.
And uh
not using Visual Studio for some reason is just like never
on the list of problems to solve.
I'm aware that it's like a problem.
I'm aware that I probably need to look at it if I want to move to Linux,
which I do.
Uh,
for context,
like random parts of my Windows operating system just keep breaking,
and I'm just like tired of it.
It's like the operating system just gets worse and worse,
and I just want,
I want off.
I just want to leave,
right?
Um.
I know that CSIRO has been working on getting
um Resonate to compile successfully using only Visual Studio code.
Uh,
that is exciting to me.
But again,
there's the,
uh,
like
the stress factor,
right?
It's like
I am
like,
responsibility obligated to write code today.
Do I want to look at new IDE or do I
want to push the Visual Studio button and just get started?
And the answer is I want to push the Visual Studio button and get started.
One day that'll change,
but like it ain't gonna be this week,
it ain't gonna be this month
guaranteed.
Um,
Marty says Ryder is free for non-commercial use.
We uh,
we're a commercial entity,
uh,
incorporated in,
uh,
the Czech Republic.
While I've got you freaks,
can I ask a random Czech question?
Um,
what is the actual name of your country?
Because like I hear it called Czechia,
which is like,
I feel more polite,
and then there's the Czech Republic,
which is just like the name of a government.
I,
I get very confused.
Czech and Czech Republic work both work,
yeah.
It's uh I prefer Czech because it like it it
doesn't have like the name of the like government type
in the country name,
if that makes sense.
It's just,
it feels weird
to have like the name of the government type.
It's the same with the and I don't want to.
Like we are,
we are gonna do like a complete 90 degree away from politics,
I promise you,
but like one sentence.
I don't know why
the Republican Party is called the Republican Party and the Democratic
Party is called the Democratic Party when we operate as a
democracy.
Like why do you name your,
your,
your parties after like political constructs?
It's confusing.
It's very confusing.
Cause like for the longest time,
particularly when I was a kid,
I used to think that the.
The
Republican Party in America was against
democracy because they weren't the the like
Democratic Party.
If that makes sense,
right?
They're against democracy because in then it's it's in their name.
And
as I said,
90 degree turned away from politics now,
cos that's just like me being like a a
a a silly um British person.
Over in the UK for example,
it's a little bit clearer.
Um,
we do have a red party,
we do have a blue party.
Um,
they mean different things.
They have different political compasses to your red and blues,
but,
uh,
the red one is called the Labour Party.
This also doesn't make sense,
but at least it's not like republic.
It's like the Labour Party.
And I always used to think it was something to do with pregnancy,
but it's also,
it's like it's actually meant to be something to do with like labourers.
It's like the
working class party or something like that,
um.
And then we have uh the Blue Party,
which is called the Conservatives.
I don't like their name because again it describes what they do,
not who they are,
which again is confusing
because sometimes,
and again,
90 degrees away,
the Conservatives do stuff which is not conservative.
I'm like,
why you named that?
Uh,
and then
we have a yellow party called the Liberal Democrats,
but that name is very confusing.
So it's just like,
name your parties better.
And
because,
because Prime is confused,
rename your party that's had the same name for hundreds of years.
Anyway,
let's let's move on.
Um,
was that necessary?
I don't think that was necessary.
Um,
yeah,
so we use T4 a lot as well,
which is something that,
um,
some other editors don't do.
Uh,
T4 is a templating language.
J4's got a link there,
but
that's actually funny.
Sometimes I get like comments or conversations
with like friends or people inside resume,
and they're just like,
I decompiled resinite and I saw some like yander A dev code.
And what they mean by that is like repeated statements.
Because that's what that means these days,
it just means like if you,
if you do the same statement in code twice,
it's the AndAev code,
um,
but the particular class that they were looking at is entirely T4 generated,
at which point it's like,
you betcha it's T4 generated,
we don't care.
Like those things are a nightmare.
Fetter stop.
Um,
I just explained what T4 is,
it's,
it's in the link above.
Actually,
let me see what I can do.
Maybe I'll get you a bit of T4 so you can see how horrible it is.
All right,
so this is,
this is some,
some resonate source code,
it's our colour handling,
so.
Not that,
uh,
exciting.
But you can see here that this looks like a lot of code that that someone's written,
right?
And it looks potentially problematic.
It's like,
wow,
did Fris type all of this by hand?
Look at it,
it's a mess.
It's a lot of repetition.
This is yander AD code,
right?
And the reason is this is all generated by a TT template,
which is T4 here.
So this much smaller file
generates all of that.
Uh,
and.
And
as you can see here,
like this is going through
the various operators like greater than less than,
greater than or equal to,
less than or equal to
and writing functions.
So this is like
for this loop parameter output this code,
output this code.
Uh,
and so we could probably see that like if we look for greater than equal to,
uh,
yeah,
yeah.
You can see because of the indentation is a little weird,
this is all automatically generated,
but that's just an example.
So there yeah.
Um,
jumping around,
Marty says,
are all of the namety components nodes T4 generated.
Uh,
a lot of them,
yes,
but not all of them.
OK,
it would not be appropriate to make a statement either way.
If you do see underscore,
I would say that there is a
stronger likelihood that they were T4 generated,
but it's not a guarantee.
All right,
let me double check that I haven't missed any questions.
Noki says it's the way to make your own cube maps for reflection probes.
You can use the cube map generator,
which will then output a cube map.
And then you can put that into the Reflection probe component.
You can also like import a cube map and do it that way as well.
Uh,
fun fact about color.tt.
I don't think it was that color.tt.
I think it was the frusen color.t.
uh,
no,
the Protoflux one,
that's the one I mean.
Um,
when Syro and Rauvi first started making code changes to resonate,
I at the same time was also making code changes to
um.
The colour stuff at the same time that they were,
and we had a little bit of
weirdness because the TT files weren't in sync and
it meant for like about a month every PR
touched the colour TT files for some reason,
and that that was funny.
That's all fixed up though.
The T4 files really show their um power
when we have like
new um
new repeated concepts,
so.
When we added the spherical harmonics and stuff like that,
I think they added some more TT stuff,
right,
cos it was like,
here's a bunch of like different types of spherical harmonics,
we're going to make a bunch of T4 templates that generate the
uh code required to interface with them.
And if we weren't aware of or didn't have the system set up to
uh
cope
with those those data types,
then,
then
we wouldn't,
we,
we'd have had to like write it manually.
Here we are,
spherical harmonics.tt.
So it is a
304 line of code TT template
that generates,
so 304 lines that generates 1,543 lines.
Uh,
moving downwards to,
I did Marty's question previously because it was,
it was,
um,
poignant when I was talking about um T4.
Goldie says,
which Linux distro would you be intended to switch to once one becomes,
uh,
once Windows becomes unstable?
I want to go to a declarative Linux distro,
um,
so it's probably going to be like NIXOS
or there's another one which is like slightly.
Different or maybe like Ubuntu snap,
but what I want is declarative and the reason behind that is because every time I
like quote go to Linux,
I will set up stuff like dot files,
SSH keys,
terminal line endings,
uh,
all that stuff,
and then for whatever reason I'll lose it.
And I don't want to do that again,
like cos it's so complicated.
So with distributions like NIOS and the other one I can't think of right now,
um,
you
create a declarative like config file
that basically says like
when you when you like make the operating system,
which is how NIX works,
it like makes operating systems,
um.
Install Discord,
install Visual Studio,
install
this,
and I'm,
I'm pretty certain
I can even get Nicks as far as like
if I like run a command NX blog,
it will like set up a fruits engine
um development environment on any Nick machine that I control.
And I wanna do it like
because it's declarative,
you can also then
get version control,
your um your Linux like distro,
right?
So let's say that like I,
I come across an issue on my laptop where
some weird setting in Linux is wrong.
That's what happens all the time in Linux,
right?
Some weird setting is wrong and then something isn't working,
like your scroll wheel or your webcam,
usually,
right?
I find the solution to that.
I commit that to my NX config files,
and then I go home and I start up my main computer,
and my main computer goes like,
Hey,
there's some NIXOS changes to do with your scroll wheel not working.
Do you want to apply them?
And I go,
Yep.
And then my desktop computer has exactly the same fixes.
And then I log on to one of my servers and it goes like,
hey guys,
I've also got the scroll with.
Not that I need it,
but I've got it.
I'm not going I'm reading questions.
um,
I realised I was like accidentally dead airing.
Um,
is there,
so is this,
is there a good way to capture reflection probes manually?
I think you can take like an equi rectangular image
with the 360 cab and like convert it.
But if you're doing that,
you might as well use the reflection probe capture that happens anyway,
cos that's basically what that does.
What are you trying to do?
This is like the 2nd week that you've come with reflection probe issues.
Yeah,
you'd have to do the echo rectangular to keep map outside of of so that's true.
Things not sharp and reflection probes.
Reflection probes have their own layer like that can be ignored,
cos I like,
I know that render Transform override has the like
mirror setting that you can use to override it.
Do I have the codebase open today?
I don't.
I need to get that open.
Like I said,
I've been awake for like 2 hours.
There we go,
some,
some additional information from Fruits which I'm sure will make its way to Wiggy.
I'll just have to look at the,
the GitHub issues,
right,
um.
What do you mean by better keep maps as well,
like I,
I just like position them in the world and I hit capture
and then I don't think about it again and like they look OK.
So like,
what do you mean by better?
Thanks for the clarifications for.
I haven't looked into like reflection probes or cube maps sufficiently.
Um,
so Fri says reflection probes.
Won't work correctly with just any cube map.
The cube maps need to be mit mapped,
uh,
with each mit map blurring each layer because that's how it maps to smoothness.
If you use a normal cube map,
everything will look like it has 100% smoothness.
Cube maps are a mechanism that reflection probes used to store data,
that's part of the,
not the whole thing.
Got it.
I still need to figure out what the fucker mit map is.
That'll be,
uh,
that'll be later.
Uh,
Goldie says,
well,
we have proper user agent headers for Protoflu HTP notes.
Uh,
that's on my fun list,
and I'm having like a pretty sucky day today,
so I might do like an item or two from the fun list.
Uh,
Noki,
thanks for the,
like the,
the textbook definition of a map,
um,
I appreciate it.
I just need to like
go read the entire Wikipedia article for Mitmap then
go read like the entirety of free image,
then get bored and like eat an entire pack
of cheese puffs and then I'll understand Mit maps.
It's just the way my brain works.
Like I really do appreciate the,
the,
the summary though for those who are watching.
But like I have to,
like I have to like go like hard on some areas of the engine.
Like I went hard last night on the type registry.
Um,
fruits,
by the way,
good job on the type registry,
that compatibility hash stuff is nice.
I,
I just didn't know how it worked,
right,
so I had to like sit there and study it,
and now I know how it works,
and I'm like,
it's cool.
It's also gonna help when I produce some
business client builds because what I need to,
um,
Fris talks about this a lot and it's one
of the reasons why um he really wants molecule.
When you make a build,
there are so many things you have to remember and I keep forgetting them
and.
So what I'm doing is I'm making like a quick like script
that basically will like double check my work.
And now I understand how the type registry works,
I couldn't double check that it's been generated,
um,
so.
Uh,
every time you do a new build of Shrik's engine,
it changes the,
the bits,
uh,
it changes the,
the,
the types,
it changes the compatibility hash,
and that means the first startup with new code bits will be slower
because it has to recomute the compatibility hash.
I keep forgetting.
And it's literally,
it's written on a Post-it note that's on my desk,
but like,
I keep forgetting
when I do a business build,
I have to run it once before I
deliver it because that will compute the compatibility hash
on my computer and not theirs,
but I keep forgetting to do that.
But now cos I understand other types.
registry works,
I can like write a little script which goes like,
look into the type registry's uh folder structure
and make sure that there are files there that were recently changed.
Otherwise,
like throw alert,
prime you forgot to do step 3,
and that way I won't embarrass myself again.
There's nothing quite like sending a new build to a corporate client and then going,
this one starts up a lot slower than the other builds startup and me just going,
Oh,
I forgot to compute the compatibility here.
Um,
uh,
Aegis has created an issue about,
uh,
a quick rectangular cube maps,
so that's cool.
Um,
for,
funny thing,
it's only slow mono because reflection is super slow with .NET 9,
it's very speedy,
where I might just remove the caching mechanism altogether.
Like with mono,
it's 30 to 30 seconds.
With .NET 9 it's maybe 2 seconds.
Yeah,
I,
I was also seeing that.
It's one of those annoying things where like,
you don't expect it,
but
Unity and Mono just rear its head everywhere.
Like it's like,
it's like you're trying to clean an apartment.
And you keep finding the same odd sock in the corner,
and it's always got by the word unity written on it.
It's like,
god damn it,
I thought I'd already like put this in the laundry,
it's over here.
It's over here as well.
And God says,
what's the most cursed function in C?
Does C still have Go to?
I think C still technically has Go to.
Yes,
it does.
No way it doesn't.
No,
it does.
It's horrible.
Right,
go to,
just,
you shouldn't be using Go to.
If you're using Go to you just,
no.
Ew.
Here's an example of using the go to statement
inside a switch statement,
and it's very,
that's very weird to me.
What this code is doing
is.
It's saying that
if you want coffee with milk,
it's adding $5 or,
or,
or $5 whatever currency you want to do
to the regular coffee price,
which is already $10.
So that's that's a lot of,
that's a lot of,
yeah,
I don't,
I don't like that.
I would model this differently.
I presume coffee with ice cream,
they mean like whipped cream or something?
Yeah,
that's unnecessary.
Um,
when it comes to,
when Fru says like,
there are legitimate use cases for go to,
it's rare,
but there are a few situations where it makes things simpler.
Fruits is like one of the only people in the world I trust when they say that,
because like,
if there's like some obscure part of the engine,
somewhere off like completely left field,
somewhere in the depths where Frucs is used to go to.
I trust that they knew what they were doing
and that it was amazing that that like it it should have been there,
right?
They'll use anything
other than that,
I'm sure until it's like suitable.
I mean I I I'll look,
I can look,
I've got the coat,
no actually I don't know the code,
oh I can do the GitHub search I guess.
Oh,
there are
4 cases of go to in the entire codebase,
and uh you're gonna laugh because all 4 of them are to do with unity.
Oh,
this one's not unity,
what's this one?
Rendering,
so it's still sort of unity.
There are some parts of the the code base that For example,
also use unsafe.
Um,
unsafe is cursed,
but again,
you have to sometimes use it.
I think there's a bit of unsafe in um
Gaussian splat somewhere,
or I,
I think,
I'm not sure if you removed.
I saw,
I saw the commit go in,
but I also saw a to do on that commit that said like,
hey,
maybe remove this later.
Um,
the whimsical er boo boo boo that does it in unsafe as well.
Unsafe might as well just be like,
when you do it,
you do have to do it like approximately like this,
but it might as well just be.
It's like
you do it like that,
but you might as well just do it like trust me bro.
Uh,
all right,
so we've got,
I think all the questions going in.
Um,
Red says says is the .NET version going to
change to 10 or 11 upon releasing these versions.
So we're gonna continue to say .NET 9
when we talk about the upgrade because that's what we plan to do right now.
And then once we're successfully running on .NET 9,
if .NET 10 or 11 exist at the time and they are compatible,
we will upgrade to them quite quickly.
This upgrade from
.NET framework to .NET 9 or 8,
it was 8,
now it's 9,
is like really difficult,
but the upgrade from 9 to 10 or from 10 to 11 should be a lot quicker.
And a lot of the groundwork that Fruits is doing right now
is to make sure that that work is going to be quicker.
Like a good example there is the type registry system
that has made it
easier to change .net,
um,
runtime.
Uh,
you also see that because like
the head just went from 8 to 9 real easy,
um,
as did the LNL networking nodes,
as did the asset worker.
They were like really easy to upgrade,
and the reason behind that is because
they were running
in .NET framework,
but they were running in .NET framework,
actual .net framework,
not,
not mono.
So we could just change them to .net 9 and then
there were a couple of like edge cases but it it it upgraded quite a lot.
God asks for my PC specs,
um,
they're terrible.
I need a new one.
I'm busy
and so like I keep wondering if I just like go to one of
the pre-built websites and just say like just ship me your best computer.
I know that sounds ridiculous,
but like I,
I,
I don't have the energy to build one.
I just like,
I need the problem resolved.
Um,
Spey has started up and is is analysing my,
my,
my specs.
0,
100% I'm doing AMD this time.
I'm doing AMD and I'm doing Linux.
Uh,
OK,
we don't need
all of that data,
you can just have the top section.
That uh CPU number doesn't have the like processor model,
so let me get that for you.
It's got like I7 but it doesn't have the the numbers after the I7.
9700.
I'm sat in office hours and I've got Visual Studio open,
right,
you know,
like the the the temperature's not going to be zero.
I also do have a Twitch stream on in the background.
Uh,
for those who are German aficionados,
they are,
um,
playing Oxos 3 randomizer right now.
Anyway,
I think that's it for questions.
Um,
thank you for hanging out.
Uh,
thanks for the questions.
Thank you for the fruits for
filling in my gaps because I don't know terminology and
weird areas of the engine that I haven't looked at.
Um,
thank you to Fruchs for reviewing my PR.
I was grumpy this morning.
I'm good now,
don't worry about it.
Um.
And uh
hopefully don't go buying any $10 coffees from that code sample.
Yeah,
my PC is still very good,
um,
but like
it's,
it's showing its age,
um,
but there are times when I like,
I'm
watching a stream at like 1080p and.
Also playing a video game and one of them will chug,
and this isn't even resonate really,
so like I don't even have to like comment on the technicalities.
It's like Path of Exile,
Helldivers,
um,
even repo lagged once,
and it's just like I,
I gotta like,
I gotta fix it.
One of the other problems I have as well,
and you can,
I don't know if you can see it on there,
but
um,
yeah,
you actually can.
So if you look at my storage,
I've got
one.
To 3 SSDs,
but I've also got
the 2 mechanicals,
which are my larger drives,
and there are a bunch of games on those mechanicals,
um,
and it means that they have really long load times.
So random ran here just for the end of the recorder,
great.
So in Path of Exile,
there is no
um auction house.
So when you do trade,
you have to be invited to the party of the
person that owns the item that you want to get.
So.
You basically,
you whisper them and you say,
hi,
I'd like to buy your big sword,
and then they invite you to a party and then you
teleport to them and then they trade request to you.
Because Path of Exile was installed on my mechanical drive,
sometimes traders get
impatient with me
and they will cancel the trade
before I get there
because the loading screen takes too long for me to
get to their location so I can trade with Crest.
It's interesting that Marty says backups,
so I don't really have anything that needs backups.
Um,
all my medical stuff is like
in the doctor's,
you know,
primary care provider's medical portal login thing that takes forever to log into.
Um,
all my code is on GitHub or other version control software.
All my games are just like Steam,
and Discord is basically everything else I use,
so like I don't like,
I used to be like paranoid,
it's like,
oh,
I got to back up all this data and make sure it doesn't get deleted and stuff like that,
and now it's just like,
eh?
But my photos are safe for Google Photos?
I've gotta move off Google,
that's a 2026 thing though.
If we successfully get off Windows in 2025,
we can successfully get off Google in 2026.
That's,
that's the plan.
Depending on how you do it,
Marty,
um,
you can actually be fine.
So if you haven't done it already,
uh,
I I encourage you to do is to have an operating system drive and a data drive
and try and maintain those as,
as best as you can,
such that nothing that you want to or would be sad about losing.
Uh,
is on the operating system drive.
And then all you do when you install a new operating
system is you install it to the operating system drive,
and then you attach the data drive to it,
whether automatically or manually depending on your operating system
and all your data's there.
But yeah,
I'm gonna leave off now cos we've gone into like
um what's the word,
generic uh generic troubleshooting
and I'm gonna
um eat the rest of my MO and Ms.
I'm gonna drink this Arnold Palmer
and I'm gonna probably add user agents to the Protoflux notes as like a
a nice on ramp into work today.
So I will
speak to you later.