In C programming, polymorphism can be achieved through function pointers embedded in structs (vtable pattern) or tagged unions with switch statements, allowing developers to create flexible, extensible code structures despite C's lack of built-in polymorphism support.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
microJAM: MAKING A MICRO GAME FOR A GAME JAM IN CLOJURESCRIPT AND TOTALLY NOT C
Added:Good morning, Tanner.
Morning. Morning.
What are you doing today? Uh, we're doing micro jam stuff until micro jam stuff. Doing micro jam stuff.
Um, unless we hit the sea stream goal today.
And then I don't know, microjam stuff, right? Micro jam. H I do need to go make breakfast though here in a second.
Good morning, um YouTube. O PX.
Yeah, we're going to write some We're going to do some closure scripting, I guess.
I really hope we hit the sub goal because I kind of want to write C. But now I've backed myself into this corner where if we don't hit the sub goal, then I'm not sure I can go through with it, you know?
15 guys on your roof hammering. Dude, I hate roofers so much.
Also, it's really dark in Toronto right now because it's like raining or something.
Got to replace the whole roof. It's that time. Oh man, I don't envy that.
Although I do kind of this kind of implies that you own a house. So that's you're kind of doing good in that department I guess.
Good old house owner sort of. Yeah. What do you mean you don't you don't own the house?
Oops.
Semi semi- detached. You own one side of it. Oh. Oh, I see.
God, this monitor sucks so bad.
Yeah. Um, we have an ad break here in a minute.
I'm going to go I think I'm going to go whip an egg and put it in the microwave.
My last the last egg that I have being built here in the last 20 15 years are so either been apartments or semi- detached. Yeah, nobody can afford houses anymore. Not even in New Brunswick.
massive home that costs 500k.
Dude, condos cost like 500k in Toronto.
Actually, I've haven't really been keeping an eye on the condo market. Usually, I keep an eye on the condo market with hopes that maybe I can get into the market cuz the price of homes keeps falling pretty quickly.
What the [ __ ] Well, that sucks.
A damn Thursday, Janet. I know. I know.
I know. All right, I'm going to go make an egg. I'll be right back.
All right, I'm back. Are you done freaking out?
Hello. What's up, S on YouTube?
Hi, Nora. Hi, Dissident. Hi, Ball City.
Everybody's here. Good.
Mhm.
I always feel like a chef when I'm like whipping the egg. I'm like with like when I'm whipping it with mayo. Hi, Kenny.
Good morning, Bridgewwater. All right, I just need to take my medication and then we should be able to get this show going.
Think think if I have questions. I need I need to farm some clips.
Oh, hi Judy.
We were trying to summon you yesterday.
Is list better than Python?
Why is Lisp better than Python?
I don't know cuz lisp is lispy.
Okay, great. Now I can go take this Okay. All right. Okay.
Should I change the title? I probably should.
People don't want to see me pretending.
I just didn't write very much code yesterday.
We'll write code today.
I'll say I'm pretending and we'll actually do it. What's the plan for today? Well, we've been working on this uh uh game jam game in Closure Script.
Did I Did I bait with my shorts? Bait what?
So, wait. You've been Judy, you've been sketching in your book, like you've been doing like uh pixel stuff. Maybe is the jam toast? No.
But we do have a channel goal to reach by the end of today.
And if we reach this channel goal, we're at 37 out of 100 subs. If we reach 100 subs by the end of the day, I'll spend the whole day tomorrow writing C.
We'll build something in C.
You don't remember that was C? Yeah, it was C code from yesterday. You don't remember that, Tanner?
Maybe you stepped away from the computer. Don't give Judy any ideas.
I should learn C.
What life advice can I give? As a developer, I spend lots of time coding.
I'm trying to avoid long-term health issues as a result of sitting for long hours. Yeah, James, that's an interesting question. I think uh there's a lot of stuff you can do like going to the gym if you don't want anything intense like you can pick up like yoga.
I used to do yoga in the mornings just 15 minutes a day in the morning before work.
That was really good. I've been going to the gym and doing the exercise cycle for like 15 minutes after stream for the past couple weeks.
I remember seeing the C code and crit critiquing it.
If it wasn't for C, you'd be a pirate.
Uh, okay.
How about writing Python?
No. See is the the goal here.
I see said the blind man.
Hi soul. Good morning.
It's weird. My complexion looks a lot paler on my MacBook monitor.
That's weird.
Stupid. Stupid. This I have a BenQ monitor. for worst monitors ever.
Yo.
Okay. Yeah, that makes sense.
Oh my god. Condos, bachelor, like studio condos are starting to dip back into the 300,000s.
Now, if if the condo market in Toronto keeps plummeting like it does, I might actually be able to buy a condo and get into the housing market for like the first time ever.
It's kind of a interesting concept, but only if we reach the sub goal to write C tomorrow. Come on, guys. I want to write C.
Actually, I should put a marker in for that exercise thing. Yeah, it's like exercise sucks until you kind of get like the until you get hooked on the high of exercise or whatever. But man, exercise is so good for be being like a office type person, you know, sedentary or whatever.
Batin. Ah, Batin.
Be of new Brian Hughes.
Oh, YouTube.
I know a little bit of French. I grew up in New Brunswick. I know I know a little bit of French. A little bit of Franche for you there, bro.
France.
Oh my god. Wee wee wee wee.
New health article. Programmers rediscover moving their body feels good with the help of AI automation and layoffs.
Yeah. Take up a new hobby. I've been trying to I've been meaning to get back into inline skating. Um, but then I just don't.
Is the book behind you good? Is it worth reading? You can read my thoughts on the book in the first few pages since I forwarded the book.
All of Australia.
Oh man, that's I'm sorry. I'm sorry, Mosen.
You're looking at pictures of condos and they start with pictures of the amenities in the buildings and not the unit. You know it's going to be a [ __ ] unit.
They didn't even show the unit.
Like here's the bathroom, here's the laundry room, here's the balcony. That's the unit. No, it's not.
Goddamn liars.
No.
If I wasn't spending so much money on all this like content crap, I could probably afford to buy a condo.
And then I would be paying instead of a $2,000 in rent, I would be paying like 2500 mortgage work stuff. Yes, I drew some sketches so we can get a feeling of the expected size. I'm hopefully converting it to pixel art in the next few days. Okay, cool.
Cool, cool, cool. I might have to have another cup of coffee and then we'll jump in the software and game dev category.
Thanks, Janet.
I'm a web UI developer. I heard that Go is a useful language for job security.
Would you recommend learning it?
Fortunately, I keep jumping from one thing to another. Uh, I don't think any one language is going to create job security for you.
Isn't a condo basically just an apartment? Yeah, it's an apartment with all the risk basically.
of owning and none of the like benefits.
But then it becomes an asset that you sit on and maybe you can rent or sell or whatever one day.
Hey, shrimp.
Okay, chat. I'm going to make a cup of coffee when I come back.
Um, you know what? No, never mind. [ __ ] it.
What a terrible shitty day in Toronto.
It's pouring rain today.
I'm sad. Oh, ow, my back.
Speaking of being a developer that sits all the time, get like back Okay.
Wait.
Wow. Cool. You guys wearing a stainless steel hoop. Yes, I see the conversation you guys are having.
No new subs yet. No, I know. It's like I guess people don't want to see me, right? See, so like you couldn't break it with a jaws of life type deal.
What conversation? There's nothing going on here. It's fine. Don't worry about it. It's no big deal. It's nothing really.
Cool. You got it. Oops.
Okay. My water's ready.
Oh, it's so dark and depressing in here right now.
If from gooning, whatever that means.
Oh, all right. This this conversation is getting dangerously close to being 18 plus. You guys start writing games and see first- time chatters will no longer be able to ask what is this language. Oh, I'm sure they'll still ask Nora.
That's just going to happen because people don't know anything. Go is not good for job security. It's designed to design is informed on onboarding speed.
Yeah, actually Go is such a simple language set like it's like Go has a really simple set of language constructs. It's actually designed to be like, you know, to make developers more replaceable.
They're slowly changing that. Hey, Pareto, thanks for the 40 stream streak.
Go is a decent language. It's also intensely frustrating. Yeah, I I used to be a professional Go developer. Like I've I've had a few employers that had me writing Go, shipping Go to production. It's okay.
It's not a very fun programming language. It's kind of boring. It's just productive.
But now, if you want to be like shift for brains productive, you just be like, "Claude, can you do this for me?" And then you repeat that process 87 times to get like the the one thing that you actually wanted.
Well, yeah. I think a lot of people are choosing TypeScript, JavaScript because of um AI, right? Like AI is super good at just like pumping out JavaScript and TypeScript. So, should they simply assume it's C# or JavaScript or whatever? Probably.
What do I mean by that? Designed to make devs replaceable? Well, it's Yeah, actually like a lot of things in professional software development are kind of designed to make developers like easily replaceable, right?
sprints, tickets, like the programming language choice. If you choose something like Go, um like it's it's really easy for someone to pick up Go, especially if they have exposure to a C like language.
Like any sea like language, you can pick up Go pretty quickly.
Yeah. Like a lot of a lot of things in professional software development are designed to make you as an individual developer less valuable and even like way more so now with AI, right? Because but before they used to like try to make people easily interchangeable with all this other crap. So remind me why have I been looking for Judy? Uh I don't know. Cuz Judy writes C.
Yo, me too. Thanks for the prime.
Literally never said anything in chat.
Subscribes with prime.
That is Chad moment.
Now we're only 62 subs away from the sub goal. So we can write C tomorrow.
C. I even got I even got Emacs set up the way I like it. Actually, we should jump in the dev category.
Bam. I already had the code going. I already had it on screen.
Look at that.
But I Okay, so I replaced um I replaced control K in C mode. I added a C mode hook for control K so that it'll it'll actually use the paredit like kill function instead of the EMAC one. So if I'm inside brackets, it won't it won't like get rid of the rest of the line.
It'll only get rid of the stuff up to the next close parenthesy or whatever.
Yeah, we like the lurkers that sub with the prime using simp C mode for that for that nice fast handling. Uh, no, I'm just using C CC mode or whatever. Whatever's here, I don't know.
simp C.
I don't know. I don't know what C version I'm using.
Definitely not KN&R.
I think the C the C version I have the most experience with is C99.
Yo, Deagle, thanks for the four months.
Okay, now we need 61 by the end of today's stream.
I should not have put hot sauce on that egg sandwich I ate.
Kind of an arbitrary goal for sure.
Well, yeah. You can see this the stream counter down in the corner here.
Should have made it 50. I know.
I don't know what I was thinking. I was like, "Oh, yeah. 100 subs."
Except Judy. She's not allowed to subscribe. Not allowed to gift gift subs for the goal.
Won't see our exceptional chat messages.
Oh, I see. Oh, so many puns you can make with C.
We could use a language built for the modern world. No, no, no, no. That's not That's not fun. We're doing soding level fun stuff, I guess. Maybe Does anybody have hands-on experience with melatonin?
If I take melatonin before bed, is it going to make me sleepy?
I actually bought some like sublingual melatonin and then I I didn't check the ingredients.
The ingredients have like silica in it. I'm like, "Nah, I don't I don't do silica, bro. I don't.
It either it doesn't really make you sleepy. It helps you stay asleep. Okay.
Yeah. I need to go get some actual like tablets though.
What are you working on? Uh micro jam.
I'm also hustling chat to fund my all day sea stream tomorrow.
Make it about two hours before sleep.
Yeah, I don't know.
C20 C versions.
What are those major C versions?
Oh, interesting.
So wait, can I figure out does my C compiler like have a version or two dashes here?
Uh Apple Clang version 17. Does that mean my I'm on C17 then the new variance of 99 onwards. Yeah, I think I have the Apple playing compiler.
Oh, hey, Blter.
Just to confirm, silica, silicon, and silicone are different, right? Because I can exclusively see silicon and silicone on this stream.
Probably even silica if you were from some unboxing in the future.
Yes.
Yes. So there's silicon in my computer.
There's silicone inside of me. And there's and silica is in a lot of stuff. But lately I've noticed it's become a food and drug additive. Silica and silica consumption is literally associated with this horrible disease called scleroderma.
I can't even say it right. Scaroderma.
Like if you like silica consumption is associated with scleroderma.
It's funny that you mentioned silicon silicone and silica silicon consumption is fine.
Well, I think silica is silicone.
Silicon dioxide.
Silica. Yeah, silicone. Silicon dioxide.
It's basically sand.
Silica gel packets. Yeah, they say do not consume. And then they go ahead turn around and put silica in like crackers and stuff.
It's basically reagent grade sand. It's literally sand.
Um, health effects.
Where did I see it? Sclerodorm cuz it's like super inflammatory.
Yeah, silica is super inflammatory for like just inflammatory [ __ ] That's interesting.
Oh, exposure to silica. Yeah, there we go.
See, I know. I knew it.
What about supporting What about C23?
I got to stop getting excited about writing C because it might not happen.
You guys let that hype train die for God's sakes.
Forgotten a lot. Well, I don't want to flood the argument with trolling.
Wait, what? Sorry, I was distracted.
The sun causes cancer and it's really bad for you. Yeah. Yeah. Yeah. Yeah.
Back in the day, I used to write C++ 11.
That was way back in the day. Like 2013 day.
Sun is deadly laser. Why doesn't it remove my hair if it's a deadly laser?
Huh?
can definitely write C without AI. Yeah, I was just checking like what the clang compiler arguments are like. Come on.
Jeez.
I'm laser proof.
If the goal was been 50, we would have had it now. Well, this is like it's just like two days of 50 subs. Think about that. Think about it like that.
Yesterday, we came up short. That's it.
That's just how it is.
Janet cute C++. Nice.
Nice. That was smooth. I'm not going to lie.
Hotter than the sun. Thanks, babe.
Sun is removing my hair. Maybe there are two suns and the planet is really just a plate and we live on the opposite sides. That's crazy. That's some flat earth stuff.
What is this about? Website application.
We're making a game. Is it Is the title not clear? I'm just going to go change the stream title. Hang on.
MicroJam.
Making a micro game or a game jam enclosure script. and totally not see.
Boom.
Okay, there we go. I think that clears it up.
Flavor is the jam.
Strawberry. Duh.
Strawberry.
Hi, Viking. Yo, Viking, you've seen the curvature of the earth. You can you can actually discover the curvature of the earth with lasers.
See, it's not a terrible language for the modern world. Use it all all day in the modern world. Oh. Oh, do you really?
Viking was the first brave soul to donate to the sea stream goal.
No. Closure script compiles to ECMAScript 3.
Oh, hello Hybrid GameDev. Welcome to the stream.
I see you.
Surprise, Pikachu face.
That's a great emote, actually.
Well, that's it, isn't it, chat? We're not going to be writing C tomorrow, are we?
All right, whatever. I'm over it. I'm over it.
It was worth a shot.
I guess we will see, huh?
I've been seen. Thanks for the shout out. You're welcome.
Yeah, actually Thursday's pretty far from over. Still have like a couple hours to go.
Hopefully, if I could stop being late for my own stream in the mornings.
Um, it's C or C++. Actual C. Yes. C, not C++.
Do you think that the roller coaster tycoon guy considers C a highle slop language? Well, I don't think it's pro.
It's I doubt he considers it a slop language, but you could probably just go ask him. He's still alive, you know.
Yeah, dangerous functionality is the only case if you can't write C. Mhm.
Undefined behavior. Use after free, etc., etc. Yeah, microjam is the command. So, I don't know why it didn't work.
See 99 for software render. That's pretty cool.
Doesn't matter how broke you are. If you have time to watch Twitch, you have $10.
If you don't, you should be working and earning money.
Jeez. Deal.
Is this like a coffee pasta or something?
I'll also accept donations in lie of subs or something else.
Thank you, Judy, for uh pinning the micro jam command.
Why did I make it? I'm pretty sure I didn't make the command Maybe I did make the command like capitalized.
No, it's not capitalized. That's weird.
Oh, this girl. This girl lives in Toronto.
Invader V.
Yeah, being a Twitch streamer is hard.
You know what?
Actually, I think I could come up with better content than a sub goal for tomorrow, better content.
Yeah, I'm all yours.
I'm was hoping it's a way of getting a bunch of money. So far, it's actually a great way to spend a bunch of money because if you want to grow on Twitch, like because you can you can grow organically on Twitch to a point and then when you if you want to grow beyond that, you have to like hire an editor and put your [ __ ] everywhere basically and editors are expensive.
So, for now, it's actually a pretty good way to spend a lot of money.
At least number go up though.
Anyway, botn nets are too truth.
I don't know what else there is to do in for the micro jam.
Are you serious about programming in C tomorrow? Yeah, if we reach the sub goal for some arbitrary reason I was thinking I could make I could either do a game in Ray or I could try to make a lisp interpreter.
I don't really know how how much of a lisp interpreter I could do cuz I realized I would have to make I'd have to build like a call stack and stuff. Might be okay. It might be fine.
Any idea what you're going to do?
That's not terribly difficult. Wow.
Thanks for calling me out.
Yo, Ty Beaver, what's up?
What advice do I have to retain knowledge on coding advice, coding concepts?
Uh, I saw your message, James, before you reject retracted it. Just you got to like do the thing. Basically, everything I learned in software development came from the actual pain of like manually coding.
There's a whole generation of junior developers that don't even actually know how to code now, which is kind of crazy.
Like, don't use AI ever.
You can't you can't not on Twitch. You can only redact messages on the YouTube chat.
Damn, Retro, you're spicy this morning.
AI can be useful. I didn't say it's not useful. I just said that, you know, if you want to learn, you need to be forged in the fire. You know, if you want to learn how to be a badass programmer, you need to be forged in the fire. You can't can't rely on AI. Actually, I'm I'm kind of of the controversial take that if you're using AI to write code for you, you're not actually coding.
Dox myself to be a YouTube chatter and make a separate account, which I won't.
Okay. Hello, NPR.
Need to program badasses.
several demos for Rail, including Shadow Map and Spine 2D implementation. That's pretty cool. I really like that it has um built-in controller support. I was like, "Oh, maybe we could make like a little uh platformer or something.
I guess the play is use AI at work and not use AI at home personal projects.
Yeah, I mean I'm still like I use some AI with work, but most of the time I'm still doing a lot of manual stuff.
God, I have like acid reflex.
I don't know what else to do on the micro jam project. I guess we could do the sound API.
I realize in a game you need multiple sources of sounds. Uh, let me check something. Let me check the ye old game programming patterns book.
I actually own a physical copy. Maybe I should just go go grab that off the shelf. What do you guys think? The old game programming patterns.
My absolute favorite programming book.
Yeah, if you're going to buy any book on programming, don't buy functional design. Buy this book.
Uh well, this book is not easily searchable because it's a physical book unlike the website which is very easy to move around.
What page is object pool on?
We may as well just overengineer this game. We still have like a whole month of development time for this micro game.
So, we may as well overengineer it. Have like uh an object pool of audio objects that the the audio API, our audio API can use.
Is there not a table of contents for this book? Oh, there we go.
audio Poly Market. Bro, are you really playing games right now on Poly Market?
I'm not 100% sure that is what I do is the move. I use AI to talk through problems.
Ew, don't ask for recommendations on those things.
Object pool 305. Let's see.
Actually, you know what? I realize that having an actual book out makes me look like a noob.
Okay. Where's the code example? Okay.
Do you think it will give bad advice?
Well, when it comes to architecture and stuff, you should be the taste maker.
That's just my opinion.
But to be a taste maker, you tend to have to have you have to have opinions, I guess.
All right. Whatever.
It's pretty easy, I think, to make an object pool. Maybe Wait, I deleted a message 40 minutes ago. Did you?
I don't know.
Oh, I remember that message. Yeah, object pools not hard to have a look at the Python arena allocator.
That was weird. I never receive phone calls on my computer stream. Yeah.
Mhm.
Mhm.
A pool seems like an annoying idea, but thanks for what you said about retaining knowledge. My initial comment had typos.
Oh, that's fine.
Typos are fine. Just means you're human.
Um use flag or function.
Good old protocols. Nothing beats protocols. Am I right? Chat room audio protocol audio pool.
No way, bro.
in use probably returns audio dot is it audio.playing like audio.play or something.
It's very humid in here today. That's why I keep coughing.
is playing.
I should probably empty the dehumidifier and run it, honestly.
Okay, I'll just put this in the dock string here.
Yeah, 62% humidity in here would also explain why I feel kind of gross. Think my face just feels gross this morning.
Yeah, discussion. See, everybody seems to using just the right amount of it, not like the others who use it too much.
Brought up. We don't talk about anything else for the rest of the meeting.
Hey, backpack vacuum. Are you using AI to write these messages for you?
60% humidity here, too. This feels disgusting. Yeah, I am going to have to run the I bet it's way worse in the hall. For some reason, this building gets crazy humid.
No. Why? Oh, I don't know. Just that last message seemed very AI generated.
Uh probably returns this. And then what do we do? Audio pool. Audio pool.
Audio pool.
Okay.
Looks like we might have a create We really want to call it create though.
We could just say basically play.
Uh yeah. Oh, that's interesting cuz like if we have like a complex interface for Basically, we need to recreate this same interface, the audio pool.
Actually, no, we don't because every This is some hackery, but every audio pool could also be an audio um type.
It's not an object.
Well, technically it's an object, but view like compound protocols. Should be cool. Should be cool. Should be cool, fam. Uh, cool.
This Yeah, this is kind of interesting.
animate.
Yeah, that's weird cuz then the the the pool itself actually seems to have basically all the same functions as whatever it's managing. It just doesn't have.
Thanks, Janet. Have a great day. I hope the cough improves. It's fine. I'm not The cough is fine. I just have a post-nasal drip and it's really humid in here. And if you know anything about post-nasal drip and humidity is like turning your nose into a faucet.
Thanks, Tanner. [ __ ] sakes. Oh my god.
I am I will literally huff solvents on stream so I stop coughing.
guys are irritating me.
So, wait, do we even need a second interface, though?
I guess it's a leaky abstraction if like, do you know what I mean? Like, is it a leaky abstraction if uh I mean really all the audio pool does is going to have create create this thing Create this file sound object file file or blob.
Fet linky in this p in this past conversation recommend a song for you.
You guys better start buying subs. I'm going to That's it. I'm putting my foot down.
Okay. So, let's see. Let's Let's game this out here. Dep what?
Audio thing.
This is kind of stupid actually. This feels kind of dumb.
Mutable.
I don't know. OB audio object.
I guess this would also need an initialize method, wouldn't it? This Wow, this is getting so much more complex already by the second here.
Uh, blob. Amazing. Basically the same thing.
Yeah, this is so weird cuz I feel like the audio pool literally does not even need to exist. This interface, but then that makes this interface leaky. A leaky abstraction. What do you do, chat? Do you leak your abstractions all over the floor or what?
Does it have state? Does it does it actually pull anything? That's the idea.
Like if we take the audio thing and we reapply the audio interface here init file or blob like Um, how do I create objects enclosure? I think you can actually do new.
Oh no, wait. What am I doing? Just do set audio object.
This is not how I imagined this pool would work, honestly.
Audio dot blob, etc., etc., and then uh deaf type audio pool thing since I called the interfaces audio and audio pool. Some stupid reason.
audio objects, audio things, audio pool. So, I think this is the first time I've actually implemented a like more than one protocol on something file or blob. This will just like set.
How does how does this work? Uh, set map.
Set audio things.
Map things.
I audio and I audio pool.
No, it should not.
That's too Java leaky abstraction sounds like it needs more fiber.
Well, if you're leaky, then you don't really need fiber. Need less fiber, probably.
Uh, what is it? Um, this would be like if if not. Here we'll do if not in use a and it a and then file our blob otherwise a All right.
But when the object the audio thing, God, this just keeps getting more and more complex. When we create the audio thing, we have to create a like a basically a vector ve uh ve repeat blah blah blah.
Although, if we're setting Yeah, this doesn't really make sense because we're recreating the audio object. So, this needs to change. This needs to actually just set the file of an audio object. And then we can say play this sound. That That doesn't make any sense either, actually.
All my matrices are square.
Audio pool noodle.
That's good. That's a good one, Nora.
I think it's like here be like def max pool size 10 10 max pool size. And then we'd be like bam audio audio thing audio thing.
And then we can pass audio an audio object as the that would create a pool for us. And then ah [ __ ] set.
This really should be set sauce on audio object or blob. There's a lot more that goes into dealing with a blob instead of like a source file.
But the other thing is that this what I also need to do is No, this doesn't make any sense. This also doesn't make sense.
Well, this is nice and confusing.
I already I already made this so much more like exponentially complex because what I really wanted was like Oh, I think we need to draw I think we need to actually like draw like some architecture [ __ ] cuz what I really wanted was like a table of sound IDs, right? I wanted a table of sound IDs originally and then whichever sound ID is selected I would just pass I do the lookup and pass that to the audio object. And the reason I wanted to do this is because I could prefetch all the sounds in the game before it starts running, right?
Whenever the thing is created, whenever the object, the like JavaScript starts the game's like life cycle and stuff, it can go and grab all the audio assets.
So, it doesn't have to load anything on the fly.
And then we just use this lookup table.
That's why I have sound ID and music ID here.
We just use this table lookup thing.
Okay, I think I know what I need to do.
This shouldn't be file or blob. This should be sound ID, right?
Sound ID.
sound ID.
But then that means we also need like a sound table, right?
And this this actually does not need access to the sound table because we're just going to pass the sound ID in. We don't really care, right?
Well, for dealing with two to three sounds. No.
Yes, it sure is.
The word audio doesn't even make sense in my mind now.
I really want to turn on the dehumidifier, but it's full right now. And every time I empty the bucket, it makes a [ __ ] mess cuz they make dehumidifier water buckets this stupid shape for some reason. Why do they do that? It's It's shaped like a C. It's It's shaped like the word like an actual character C.
So when I try and dump it out, it just goes everywhere anyways. Like it's so stupid. Why do they do that?
Globins inside. Well, they should just make a normal [ __ ] bucket.
One that I'm not going to dump all over myself.
I'll do it after stream. I'll dump water all over myself after stream. It's fine.
I'm not I'm not mad about it. I'm not.
Speaking of the shape of sea, you guys could maybe buy subs so that we can write some C on stream tomorrow.
by big human to make you buy more humidifier. I think you're right, Alpha Lynx. Why don't you stick around? You seem like a smart person.
Like, if I go get my hydrometer, it's probably going to say the humidity is even more nasty over here.
I would even venture to say that the levels of humidity are approaching quote unquote nasty ass.
Come on, that was funny. See 54% that's nice actually cuz like for like for no stuff for sinus stuff you definitely you want a little humid right you want like 55 40 to 50 is like the golden zone right I sent her a message asking is this something an attached audio file called something MP3 three.
Hang on, you guys. Hang on. Hang on.
Hang on.
Hang on. I'm doing a thing. I'm h still just 61 subs away from stuff.
A Kai, thank you.
See, that's how you be a supportive partner right there.
All right, we are 60 subs away. 60. You want some C?
I'm sure a language I speak.
I see, said the blind man. Otherwise, we're going to go back to making audio things. Audio pool things.
So then, how do I create a table of audio? An audio table.
Well, that's going to be easy, right?
Oh my god. I'm going to take my inhaler because I'm just not because I need it, but because this humidity is so annoying.
Read read the manifest.json, request all those assets, stuff them into a map, a closure map I can pass around.
Um but this means that if we are creating a doodad like here this audio thing needs uh let's see depth sound table.
This can be a map.
This is semi pseudo code. I'm just I'm just write I'm just writing out how it'll feel, you know.
Cope cope cope cope.
H That's right. How many subs to program in Swift? I don't know Swift, so I don't Although I'm kind of curious about writing a game. I could I do have like I do have this like Apple SDK and stuff, so it would be kind of cool to write like an iPhone game. I know that's your like domain of expertise, Kai thingamajig.
Yeah, I could maybe I should do a swift. Try writing some swift. It's a lot like Scola or it used to be. Anyways, hope you're doing well, sister. What are you working on? What today? Uh, I'm just working on a fantasy audio system, it would seem.
Great. Oh, yeah. I forgot one thing that's important is that audio the audio pool basically the the audio pool actually needs to implement the audio interface wasn't open source I would have learned learned it years ago, but I love it now.
Made my career. Oh, Swift.
Make Apple apps and sell them to fund streaming. Nobody buys apps anymore.
There's like the the amount of apps on the app store is increased dramatically, but like reviews for apps have gone down. Standard array, standard vector.
Uh neither. This is this is a closure script.
It's claw your script.
Yeah. So basically the audio pool needs to implement the audio interface which means that even having this create function doesn't even make sense. I don't actually think the audio pool needs to be an interface since it seems like the audio pool is just gonna just needs all the same functions. I keep saying that but then it's a leaky abstraction. It's all this [ __ ] right?
All this stupid [ __ ] Tons of apps. Especially good ones. Oh yeah.
Hey, hostile.
Hello.
20 stream streak. Thank you.
Thank you for the 20 stream streak.
Uh yeah. So there's play sound, play music in use.
Now, this is kind of weird because then the audio pool itself will actually have an inuse.
It's kind of funny cuz basically the audio pool is like the exact same interface except it doesn't have in use.
And this this actually won't work because you can't have colliding can't have colliding protocols in the same name space. So, I'd have to move the audio pool to its own name space.
But just just for our like reference here, well, this is another thing.
Soma I was going to try and create like a service locator type thing as well where you kind of just like instantiate it once and you're like hey service thingy I want I want this service and it's like here's this service the only one the one and only service thingy.
So we are getting pretty deep into the weeds here. We have a audio service and an audio service locator.
And that audio service is actually an audio pool, an object pool.
Well, you see, Tanner, if I could ever finish a game, I'd like to sell those instead.
I haven't finished a game. Maybe I should do a game that I think will take me a month to do and I it'll actually take me a year.
I'll just sell that.
Yeah. Yeah, the inhaler clicker. I can't really sell the inhaler clicker. I have been meaning to deploy the uh difficulty curve changes we did though.
Right now it's kind of easy.
Wait, did I already deploy the difficulty curve changes put make games in C with Ray Lib make games in Janet with Ray Lib and sell them on Steam.
I don't really like the idea of selling on Steam though. It's kind of like a I I just don't like it, honestly.
Make games and complete them. What a novel What a novel concept.
Never ending start.
Got compile them for the browser and ship them as Electron app. What?
What did you just say? Nor makes mixed feelings about Steam.
Well, the problem with Steam is that it's like a whole game, right? You have to like build up a wish list and then you release your game and hopefully some of your wish list converts and all this stuff, right?
And then your game can get taken down because some [ __ ] some pruds in Australia don't like it. It's a whole thing.
It's a whole thing. But if you just publish games on the web, you can build your own distribution and marketing channels for the game, you don't really have to worry too much about being taken down because, well, it's the web.
This is kind of why I like the web better.
Plus, you can escape Steam's whole like 30% of sales thing.
Publish it on the web and Steam. That's true.
Realm of the mad god did that pre for an app context.
You need a modular architecture that reduces need for repeated changes.
Yeah. Well, when you say singleton soma, that's basically a service locator.
It's like dangerously close to a singleton.
Dangerously close. Danger a framework of Steam to help you with that being sued personally because of your creation.
I mean, no, because like if if it's a game on the web, you can have a terms of service that limits your liability.
On Steam, you you can't. It's Steam.
It's the Steam license, right?
But if I post, if I have a game that's a website, I make every user can like agree to the terms and conditions of use and those terms and conditions say you wave your right to sue me in all all courts and jurisdictions around the world because I'm slimy like that.
I mean, it's not a guarantee, but you can definitely limit your liability. I feel like people don't understand that you can limit your liability pretty easily.
I I remember when I was like doing literally anything. People be like, "Well, what if you get sued?" And I'm like, well, an action is very expensive and you can mitigate that with like legal instruments, terms of use. Like my my contract even with my clients has a huge section on like the limitation of liability. My contracts with like potential stream partners also limit liability. Like you have to remember you like legal instruments are not just for companies to [ __ ] you over or people other people to [ __ ] you over. You can protect yourself with these legal instruments too.
there.
Plenty of games companies try to sue for all sorts of things, names, mechanics.
Oh, I see.
Do they really Kai? Kai, did you get sued once? In case you guys didn't know, Kai used to be an indie game developer for iPhones cuz she's so cool. My super cool girlfriend. Oh my gosh. Remember King who made Candy Crush? Wait, did they sue you?
They would sue for anything with Candy or Crush in the name? That's insane.
That's actually insane.
Candy or Crush? It's like um when Bethesda sued like somebody called somebody some game called like scrolls or something. So dumb.
Or with friends. The company that made words with friends.
God, it's crazy what you can like do.
Well, they'll have to sue me in Canada.
I guess it looks to me, guys. It looks to me like we are not going to be told you uh Toronto Meetup Group told us was told to stop their event called Games with Friends in Toronto.
It would seem you guys that we are probably not going to reach the sub goal.
I'm just throwing it out there.
It's no big deal.
All right, here we go.
Oh god. Don't don't don't bring up Notch in my chat. It was 50. We would have You keep saying that, but it's still at 40, right?
Yeah, you keep saying that, Anani, but it's at 40. So, if I lowered the goal to 50, if I like I guess capitulated and lowered the goal to 50, we're still at 40.
But if I capitulate, then nobody's ever going to believe a sub goal ever again.
So, so he gives five subs. Thank you, Anani.
Now we're 45.
for the five gift subs. Anani, see if you will inspire.
Y'all have no excuses. Yeah, you need This is good. You're inspiring others to buy. See, how I thought this would go is that somebody would gift like a bunch of subs and then we would be really close to the goal and then I'd be like, "Who wants to finish the goal?" And then everybody would start gifting subs. But nobody wants to gift subs.
Good old office radio.
Oh, good old Good old good old dependency injection.
Is all I have gives Cheeto dust.
Okay. Uh, well, thank you, Anani.
So, do I actually need a service locator?
God damn.
Get audio. Mhm.
Yeah, this is just this is just a function really.
probably don't need to do the dumb because the like yeah this is just a var function and like get audio a static method that's a function that's it basically except we could probably mark this as dynamic That way people know it changes.
Well, actually, no, it doesn't change, does it? Cuz the only the inside changes, not this actual fire.
Fender is suing to protect a shape of guitar.
Hey Sebasa, what's up?
H sound asset on and available.
Does calling a knit even make sense? I don't know actually.
I don't think it does.
We have an audio thing to manage audio objects. We have an audio pool to manage audio things.
did with the mouse.
And then that trademark expired.
Copyright expired. Oh.
Uh maybe this is just a big waste of time and this like audio pool and stuff.
Actually getting close to building a whole ass game engine here.
A whole ass game engine, not a halfass one.
Oh my god, my clips Instagram just hit a million views.
That's crazy.
A million views.
That's a lot. Yeah, it is a lot. It's not really translating into anything other than followers.
Which one? My Instagram for stream clips.
Oh, the humidity is going down now.
That's nice. Probably because it stopped raining outside.
Brand recognition of your face. Yeah, that's true.
People recognize me in my controversial opinions.
The controversy.
the controversy.
Yeah. And it doesn't really make sense when you have all the objects laying around in memory.
Not all the objects, but you have all these like sound blobs. I guess I might have to think more about this.
But if I have a blob, I have to do like create URL and then pass that as a source.
My goodness, web development is insane.
Who's doing all this stuff?
Making fake files.
Sup Ivan, what's up? Welcome to the stream.
Um H is this a JavaScript object I can call?
I need to know.
Uh, okay. Let's see here. Is it just JS URL create object URL?
I need a file object.
Does that work?
No, because this name space isn't required by anything. So, it's not going to work.
Uh, place date. I'll just throw it in the place date somewhere cuz why not?
Ah, oh, that's interesting. Is there no file constructor in Oh, okay. Interesting. Uh, awkward. You actually need to create a thing.
array world.
Actually need to create a file.
Got to got to have that. Got to have that.
JST type X slash plane.
Do I just forget how to make how to do interop enclosure?
This is This is Oh, you know what? It's probably JS/file, isn't it?
Yes, it was.
print line.
Cool. Let's print out this URL that we've created.
Okay, blob.
Blob at local host.
How fun.
Wow, it worked. It actually worked. I just created an in-memory file in in JavaScript world.
That was pretty easy actually. Pretty easy to do that.
Incorrect apostrophe.
It's bad muscal memory.
Is this project for a college course? Do I look like I'm in college? Actually, I should not be insulted by that. Um, because that's very flattering. But no, this is a project. It's a game jam.
Also, I'm in my 30s. So, hello, Bedro.
I got to use the bathroom, guys. I'll be right back.
Humber College asking if I can go over to ILC to upgrade my math grade. What?
Wait, Humber College. Anani, you live in Oh, yeah. You live in Ontario, don't you? You live in Toronto, don't you?
thinking we'll have moon Mars colony tourism by 2030s.
Yeah, we'll see. We might have uh Elon Musk's like permanent residence on the moon or something which will conveniently be taxree and law free and just everything peachy for Elon and only Elon.
He live in the GTA. Yeah.
Half off there and live there. Long as we can disconnect him from the world. We leave Elon on the moon. Well, Yeah.
Uh, oh my god. Uh, I regret installing Opera GX so much. I keep accidentally opening it and then it won't [ __ ] close.
Goes all application not responding.
Anyways, it's fine.
Mars project scheduled. Who knows?
Why do I have it in the first place? Cuz I was curious about it.
But it just turns out that it's just another Chromium browser.
All little J same stuff.
Okay, cool. So, I can create blobs and stuff.
I was going through my like my sound assets because I have some game assets on my thing. I was going through some sound assets.
Nothing sound like shining though. Like I kind of wanted like a squeaking sound for shining, but I don't really have any.
Oops.
I have a bunch of retro sounds allegedly.
RPG sounds.
I used to be an international student, so I'm waiting on my CXC transcript to be sent to Ontario College.
I see.
H math. Math is cool. Math is fun, bro.
And useful. Mhm.
Uh, let's see.
Okay, cool. Very cool.
File object. Create a blob. And then I can pass that blob to audio creation.
Or I could just have a table of blobs.
Actually, that makes so much more sense.
Blob URLs. I could have a table of blob URLs. And that makes passing I can then I can just pass I can set an audio object source to the UR blob's URL.
It's in memory already. So, I want a snack, but I think I only have cookies right now.
Let me go check.
cookie is snack. True.
I need some water, too.
learn some stochastic calculus that'll put hairs on your back. Are you talking about stochastic gradient descent?
still the cutest cookie muncher on Twitch.
Thank you, Nora.
Some kind of engineer. I have no idea.
I'm sure some people would say no.
What kind of cookies? They are oatmeal coconut cookies.
Wait, I've seen you in YouTube shorts. I think you Yeah, you probably have.
I've got a few uh controversial shorts that Hello, Roger. Welcome to the stream.
Most controversial cookies possible.
They're like the only cookies I can actually eat. So, brand recognition. My face strikes again. We need subs so that we can see Janet Code. Poor Nani has has bought botton subs.
It may not get the sea stream.
Let set when what is this? It's uh closure closure script.
Yeah, I'm allergic to dairy and soy, so The scope of what I can eat in the grocery store is very small.
I bought 10, so I'm broke even more.
Yeah, exactly.
Oh, it's a little more breathable in here now. The humidity went down to like 57ish.
I feel if I if I capitulate and lower the goal to 50, we won't even get there at this rate.
Is the game the thing in the left upper corner? Yes.
because it's a it's a game jam game.
Hey, Tree Arms, what's up?
Well, it's a micro game. It's supposed to be a micro game.
Oh, that's kind of cool. It shows on stream the cursor getting big.
Yo, Tree Arms, thanks for the two months.
Oh, interesting.
Do I look like I'm vibe coding, Nick?
Why did you call me bro?
How far off are we again? Uh 54 subs.
Goals 100 even though it should have been 50. Should have been code in C tomorrow. Well, we haven't even hit 50.
So, Okay. Sorry. I'd rather see closure.
That's funny, bro. Gender neutrally. Oh my god.
Strangest thing is being on Instagram and somebody calling me little little bro. I'm like I'm 33.
Back it up, little bro. 33. Just a wee baby. Yeah, a nice young 33.
Actually, um, a friend from high school, she had a baby in high school and that baby just graduated high school. I'm like, "Bro, I feel [ __ ] old.
Disturbing.
I look super cute today. Hell yeah, I do.
How can a baby graduate high school? Cuz it aged. It aged 17 years.
Oh, I feel old.
Well, it's probably about that time to start getting filler and Botox.
I'm old enough to get filler and Botox and not feel guilty now. So, well [ __ ] now they have babies that can time travel. Time traveling babies.
Time travel yesterday and reset that sub goal. Change that sub goal.
Who's Bo and why are we getting his talks? Bo Bashette used to be like a star slugger for the Toronto Blue Jays.
Then he went over to the I think the Yankees.
The it was one of the New York teams for some reason. I think it's it feels like the Mets.
Oh yeah, he's on the Mets now. Not the Yankees.
The Mets.
The Mets. As of anybody watches the National League, come on. Everybody knows it's the American League is where it's at. Like, come on. Come on, guys.
New Botox and filler arc. Yeah, of course. Hell yeah.
Okay, I won't say how old am I? I will simply pose as a 20-year-old.
I'll say I'm 28. How about that? Does that work? Climb bottle.
Turning 29, by the way.
Oh, I feel like I have something in my throat.
Sorry. I think I have like a tonsil stone dislodging or something.
Collagen and makeup can go a long long way. Oh, I know. I just can't wake up early enough to put on makeup in the mornings.
Why? Whatever. Wait, what?
Wake up, Mega. You're like white Eminem.
Um, am I still banned from gifting subs?
No. All right, I'll lift the banan.
Judy, I'll lift the sub gifting ban. You were I'll lift the ban from you.
I did say you were banned from gifting subs.
What is that? It's like stuck in my throat. I think it's a tonslestone dislodging, but it's not really budging.
Hey vodka.
Yes, Judy. I will allow you to donate to the subwool if you want. You don't feel any pressure.
I can't like swallow it. Whatever it is driving me crazy.
These nuts and stuck in her throat.
Yeah.
Oh, thank god the humidity is actually coming down. It says 56 now. Can actually like breathe.
Oh, these poor souls on Tik Tok are messaging me and being like, I share my work with you.
Oh my goodness, I am so far behind on Tik Tok posting.
Luckily, my editor is a hard worker and she's actually awesome.
Literally saves She saves me from myself sometimes. I'm not even kidding.
I Are you suggesting I I just lifted the ban?
I I I lifted the ban, Judy. I said a few minutes ago you could donate subs if you want towards the sub goal.
That's true. You could do it anonymously I guess too. Anani anoan anan. Okay. Let me suggest even if the ban was lifted, the ban wasn't lifted, I could have a non.
Yeah, I know. I saw that. But I lifted the ban. And also, I guess you could do a nan. Anybody could do a nan.
Slime noise.
Oh.
Oh, that's gross. That actually sounds so gross.
Sorry, I'm listening to sound assets.
Two of them are One's called Slime 0000 and the other's called Slime 001. They both sound nasty.
They sound like toilet sounds.
getting cold feed. Maybe I should delete the Discord message before Judy sees it.
Wait, what message?
There's a not nora channel. There is not. Is there really? Who created a not Nora channel? Anonymous gifted five subs.
Thank you, Anonymous Gifter.
Wait, is there really a not Nora channel?
Please, it wasn't me.
No, there's no not Nora channel.
49, I think.
49. What?
Oh, until gifts. Yeah. Yes, absolutely.
49 until goal.
Everybody's like writing a lisp interpreter is not that hard, but it's super fun. Making programming language is super super fun.
I'm also a Ray Lib curious.
Probably more fun than writing a game.
Damn, dude.
How did I get started in programming?
Well, I was a little computer nerd a million years ago and uh I bought a book basically.
Blocking the jam. I'll get to convert some sketches tonight. Oh, that's fine.
Some of the wild comics.
Do I even want to know?
They smell squeak.
That's squawk.
18 plus covers for sure. Okay.
Uh, good to know.
She was like, "How cute."
That's funny.
Whoosh sounds.
These are actually good sounds.
Bathroom Sounds foily sounds should probably be working now. Wait, isn't it isn't it like six o'clock there, Judy?
do all the sounds myself and be like whoosh, wow, that would actually be really fun. So, wait, why why are you working at 6 p.m.?
Is this a German thing?
I'm off to it.io to find audio assets.
not sane. H.
We don't have much time left in the stream. Probably about 30 minutes. I don't know if I want to capitulate on the stream the sub goal because if I do then you guys won't you guys won't believe future sub goals. So, but I do kind of want to write C tomorrow. It's a change of pace. Stick to your guns.
My guns. These guns.
JK. It's They're not very big.
The camera adds 10 pounds. So gun show be like you want to be like a Canadian.
and you go up to somebody with that's like ripped and be like, "Whoa, bro.
Are those are those muscle are those guns registered?"
Cuz we have sensible gun control here.
That was kind of a dark statement.
Anyways, uh moving on. I just want a squeak sound. Can we get a squeaking sound effect?
Squeak.
Squeaking.
Audio.
Audio.
Oh my gosh. Judy, I feel bad. I feel like I feel like chat coaxed you into this, Judy.
101 subs. I can't I can't deny that. Um I don't even know how to express myself.
This is kind of crazy. 50 gift subs.
Look at that. That's That's how I feel like that meme that Simpsons meme.
That's how you reach a sub goal.
Judy really wants me to see.
I just don't want Tannerax to win some petty argument.
Well, thank you so much. I hope you're going to be here tomorrow, Judy, cuz it looks like we are going to write some C on stream.
Saved us from the closure script. What the [ __ ] about pretend that I got I gifted a million subs right now.
But yo, Judy, thank you a whole bunch. I I was actually kind of the reason I like banned you from gifting subs is because I you you support the channel so much that like I I feel a little guilty sometimes when you buy subs. So I was like, "Yeah, but um thank you a lot.
It's okay."
A Judy.
Hola. Hola. Weedom boys.
Thank you for looking out for me. Oh, you're welcome. You're welcome, honey.
Big old poker face.
I don't have a good I don't have a good poker face. If I make eye contact with somebody at the poker table, I start laughing. So, I am not a poker play person.
Actually, I don't think I've played poker more than a handful of times.
Well, the one time I was playing with my friends, I was pretending to not understand the game and then I I had like a I had like two pairs or something and so I just like went all in and I was like, "I want to go all in." And they're like, "Okay, you probably don't want to do that, but you can you can do it if you want." And then I I won the pot for that hand.
Hi all. What are we doing here? Uh, working on a game jam and we're freaking out about gift subs. Judy is allowed to gift subs in a pinch. Yeah, if we're not going to meet the sub goal, then we can gift subs. Then she can gift subs.
But seriously, I have uh so I was I was messing around with a bit of C last night.
Look at this. Look at this beautiful C program that I wrote really quickly.
But look, I changed if I do control K, it doesn't it doesn't delete the entire line, which is really nice.
And I got I got my C mode hook to work.
So we have rainbow delimiters now.
grayscale rainbow delimiters, which looks beautiful.
I still don't know if I want to do Emacs or Sea Lion.
I am leaning towards Emacs just because well, my C mode hook and all this stuff, right? I've got all my stuff. I have some thoughts on your C program. Wait, what? It's went to the casino this weekend to eat at the pub there and I stuffed $5 in a slot machine and walk away with 60.
That's pretty cool. Try MX compile. Is that a thing?
Compile command make K. I don't have a make file. So here I'll do uh CC compilation finished.
Okay, that's kind of cool.
Great for compiling running non lispby stuff. If I usually just run the compiler GCC. Yeah, that's what I just did.
Oh, yeah, actually like running it afterwards is probably a smart idea.
Hello.
Hello, chat room.
All right, it worked. Amazing.
That's cool.
I will I will admit I was kind of a little excited to use Sea Lion.
Just a little bit. It is kind of pretty in its own way.
The [ __ ] is that noise?
Heard a noise. It sounded like sparking.
That kind of freaked me out.
Sea lion for a change of pace.
I don't know chat room debugging anything.
Uh yeah, actually that's like one of the best parts about using like C is like the great debugging tools.
Yeah.
theme. Islands dark, islands light.
Islands Dracula.
Ew.
Ew. Islands light. Gross.
Islands. Dark. Islands. Darkula.
Forgot how shitty Darkula is.
Editor color scheme. Oh, you can change it. Okay.
Wait, what?
It's not even changing.
[ __ ] do I have to restart the OS for this?
Oh no, I just have to click apply because this is a stupid desktop application.
Monkey.
Ew.
I need you know Monukai Pro.
I do love Cine. If you output file line, you can jump to the point.
Wait, what do you mean, Judy?
You should get get the Jet Brains tools at some point.
Janet C writes C. Who is number three in all top gifters? The name is blank.
Uh, it was Lucatelli and then I I had Lucatelli blocked and then I unblocked Lucatelli, but I don't know. They must have like blocked me or deleted their account or something.
You can work as background. You're doing C. By the way, for the debugger, you can do GDB mini Windows. Well, the problem is this is a Mac, so I think I don't have I don't know if I have GDB. I think I have LLDB.
Let me check.
Yeah, I don't have GDB. I think it's LLDB, which is like basically the same.
It has like all the same, isn't it? It's pretty similar to GDB.
I will ask Oh, the syntax is a bit different.
How similar is LLDB to GDB?
Yeah, I guess we're writing C tomorrow.
We are writing C tomorrow and we're going to write it all day.
Okay. It's basically it's pretty similar.
Like I'm really curious about I don't know why I'm drawn to sea lion.
Maybe because back in the day when I wrote C++ I use something. I used sea lion for a while.
Shouldn't it be arg? No, cuz the first the first argument in the argument vector is the program name.
Yeah.
So, it's Argav Juan.
Have I seen Ry debug?
No, I have not.
I don't know. I'll have to decide whether or not I want to do Sea Lion or Emacs.
Emac feels familiar.
For some reason, I'm drawn to Sea Lion.
As if I'm not just a vessel for marketing for jet brains.
Just do Xcode. Ew.
Get a Jet Brain sponsorship.
That would be really funny to try and pull together in like the next 24 hours.
Like, hey Jet Brains, I will stream all day.
Just to give you an idea of the kind of numbers you're looking at. You could you could get you could reach 2,000 over 2,000 unique developers tomorrow and tomorrow only.
Usually my Friday streams get between like two and 4,000 unique viewers.
Blonde Janet is a baddie. Sorry, not sorry. Yeah, you don't you don't have to apologize for being not sorry.
Blonde works on me. I I look great as a blonde and I'm only going to get more blonde in August. I go back for more highlights and I'm going to be even more blonde.
Like imagine that.
That would be an insane turnaround.
Okay. Okay. Who had J brands?
Let's see here. Uh, content creators, the tools, visibility, and community to grow.
No, I want to sponsor you you probably have to be part of their creator program and then they're like, "Oh, hey, we will do the thing."
Yeah, I don't really have a contact over at Jet Brains, so become a Jet Brains reseller.
I mean, I can be like, "Sub, bro.
Why do I want to contact them? So I can do sales.
Right.
Be like, "So, bro, I want to It's way easier to sell to like a human than a form."
Right.
Maybe I should just fill it out. I'll use Jet Brains if you pay me.
But if you don't pay me, then I use Emacs.
I'm probably going to use Emacs anyways, actually.
Ew. Indent eyes, too, actually.
Get a cursor sponsorship.
No, I can't do that anymore. They got bought by SpaceX. So, I mean, I never used cursor to begin with. I think I used it like once.
They have developer advocate. heard that if you they give you a license for free.
They're popular. Actually, the Jet Brains non-commercial license covers content creation. So it's just kind of like h the thing about it is I think I can dynamically link if I use well I don't know if you use CMake does that dynamically link does cmake do dynamic ic linking or is it static linking?
All kinds of linkage.
See, make doesn't link. Oh, generates make files. I see.
Okay. I just installed Ray Lib allegedly.
Rail 5.5. What version is Ray at?
rlib.com.
Now I need to use the bathroom again.
Okay, I'll be right back.
Having a build system that generates a build system. Yeah.
6.0. Of course. Of course, homebrew wouldn't have the latest [ __ ] working on Mac OS. Okay, let me see.
Quick start guide.
Oh, okay. It does say to use brew install ray.
Interesting. Okay.
Code and paste it in the folder.
Now that C is going to happen, what are we going to make? Good question. I was thinking either a game, a simple game with Ray or maybe a Lisp interpreter. I feel like a list for interpreter's like kind of like probably a bit too big, but Judy decides. Oh gosh. Cuz like I'm trying to think like how would a list interpreter work? I have to create a stack call stack and then tired beaver. What's up?
What's up? What's up?
Guess what? What? What? Tire beaver.
Chicken butt. Got him. Got him. Got him.
a list for interpreter and sea.
Oh [ __ ] I missed you going over the seagull. Yeah, Judy. Judy literally covered like half of the sub subs for the sub goal. So, uh, shout out to Judy.
Huge shout out to Judy.
[ __ ] yes.
Cine uses two gigs.
Uh C interpreter and lisp. Yeah, that that is easier than a C interpreter and lisp cuz like basically to read an S expression, the parser would be really simple for an S expression I think, right? is like, oh, you see open parenthesy. Cool. Well, then you need literals and stuff. I don't want to build a whole type system or anything like that. That's the only thing I don't want to do is build like a whole type system and junk.
Like, lisp is simple to parse, but then there's like the types and all the like API and stuff like I don't want to I don't want to do all that [ __ ] So maybe we'll just make a game because I I think I can clearly see like a path to making a game.
The only thing that's going to be annoying about the C code is that no built-in polymorphism.
Depends on which lisp.
Where's the coffee? I drank it already.
Manual everything. Well, we can use function pointers to kind of like emulate polymorphism.
Right.
Put embed like functions function pointers embed. Wait, you can put functions and strrus, can't you?
An array of 1k items. You're good.
Can you can you only put function pointers in strrus?
but not an actual function.
Writing our own garbage collector.
Yeah, we'll just use Malik only function pointers. Oh, lovely.
Okay.
Yeah, it's a little bit to see anyways, but how exciting.
My functions still have a pointer. Yeah, hang on. Uh to jot my memory here.
Oh yeah, this is going to be some of the gnarliest code ever probably.
That's the standard CV vtable interface idiom. Oh yeah. Okay, it sure is. Great.
Yeah, literally like I ask a lot about putting putting function pointers in strrus. And it's like, "Yeah, this is how you do polymorphism."
Like, no [ __ ] I know. I know, bro. I'm so smart.
Just don't. Judy, you think I shouldn't You shouldn't I shouldn't do this.
Just have a switch statement.
Do a meet mingle to go to the office and meet other people. Oh, that's a slippery slope. That's a slippery slope to working in the office again.
Panorax, you better you better get out of there.
A switch.
But I want I want to make my I want to build my game engine and see and then we'll do the mechanics and stuff.
It'll be fun.
It'll be like damn obtuse, but um yeah, this is a lot like protocols in enclosure except we uh a tagged Mhm.
Construct circle circle equals [ __ ] Uh, okay. Hm.
S area S.
Okay.
H interesting. Shared V table. Don't duplicate pointers per instance. Point to a static constant table.
Strruct shape. Struct shape.
Oh man, this is this is some crazy tech.
Also Google fatstruct. I kind of I might try the vtable approach. I don't know.
tag union fast. You just put everything in one strct and add a kind field.
No, I believe you. Emranto.
I'm not really understanding how the vable pattern works though.
Okay. You have a function function. Oh, okay. I see. So the vable is just the vable is just a a strct of function pointers and then you embed that strruct of pointers in Uh each circle base table equals circle vtable.
H I'm going to have to think about this.
Except Vtables perf overhead and less potential optimization. Oh, I know.
Yeah. I mean, pointers in general are going to have less performance optimization, right?
Because pointers thrash the your CPU cache typically.
Or if you don't have a CPU cache like in a microcontroller like in Judy land, uh you're gonna Yeah, you're not going to be happy.
Wait, do microcontrollers have like caches? Like CPU caches, I guess.
Oh, I'm sorry, Red Knife.
tagged union.
Oh my god, this is going to be so crazy.
Pretty powerful way to achieve polymorphism provided that they don't get too big.
Switch over tag union calling a function then switch case can get converted to a lookup array.
So tagged union is like dynamic dispatch then basically kind of Well, damn. Okay, this is kind of cool.
More like manual static dispatch.
I see.
Oh, I see. Okay.
Yeah.
I I think I I like the well the function pointer approach makes the most sense in my head.
I feel like the vtable approach is probably better. This game doesn't have to run on potatoes. So, I think we can afford to thrash the CPU cache a little bit.
The entities will still have like locality of whatever.
Or maybe not. I don't know. I haven't decided. Just a tip.
Yeah.
Mal call all your mem front code it now optimize it later true that's fair kind of cash cached Cash money.
Oops.
Okay. Well, um, I need to go. I need to go eat an example mod chat. Okay. Thank you, Judy.
I need to go eat lunch and do some client work so that I can justify writing C code all day tomorrow. Um, so with that said, who should we raid?
Thank you, Entertainment on YouTube.
Any any ideas on who we should raid or whom we should raid?
Raid Judy.
Zed is on. We raided Zed yesterday though.
As much as I like rating Zed, you guys want Zed again?
Hill for Games. I saw they were online.
I was thinking uh lane actually.
Okay.
Lame BT. Yeah.
BT looks like she's writing something.
Yeah.
Uh, cool. Yeah. I will see you guys tomorrow all day. Transpiler for Celeste.
See you tomorrow.
Bye, Judy. Thank you for all the support.
I'm sure tomorrow's going to be super fun. Bye, everybody. Bye.
Related Videos
LBF101 Creating an XML Changelog
liquibase7511
3K views•2026-06-15
Alta Labs Cloud Dashboard Real time Network & Xnet Insights!
ShinyTechThings
158 views•2026-06-17
Wait... Group Policy Not Applying? Check This First!
keeplearning_iT
144 views•2026-06-15
Leetcode Weekly Contest 506 | Life's boring these days
Pudeesht
2K views•2026-06-14
Partitioning vs Bucketing vs Clustering: How to Make Queries 100x Faster
thedataandaiguy
194 views•2026-06-16
Design Claude Code Like a Senior Engineer
hayk.simonyan
344 views•2026-06-19
Linus Torvalds: AI Won’t Replace Understanding Code
SavvyNik
140 views•2026-06-19
Programming in English
MattGodbolt
584 views•2026-06-14











