The developer wisely recognizes that complex abstractions often become the very friction they were meant to solve. By stripping away unnecessary hierarchies, they prioritize cognitive clarity and practical efficiency over architectural vanity.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Vertical: Breaking my code base
Added:Okay, we are live. It is official live.
Today's Monday, July 20th, and we're just going to get back to where we left off last time, which is implementing this new architecture.
and his new design and seeing where it leads us.
Last time we were breaking a lot of code and uh we still have some broken code and there might be even more broken code today, but that's just how life is. So, we're just going to get at it.
How's it going, sir? Elderberry, good to see you, man. Good to see you again.
Hopefully all is well.
Yeah, hope all is well, dude.
And hopefully the stuff with the uh the GitHub stuff gets figured out for you.
Get is always this odd thing, but once you figure it out, it's not a big deal.
So back to here and we're what are we doing? Where were we?
Right.
In fact, I think we're in the process of implementing some back end. So we have shop data here and I believe I fundamentally change shop data. Yeah. to operate with this.
Cool.
Okay.
So, we have this idea of a transaction area for shop, shipping, cosmetics. Yeah.
You know, I was thinking about how we're going to handle the save data a bit more cuz right now we have like the game save data saved to um a um specific directory independent of like your system or um independent of the file location, which is cool if I want to make games that kind of communicate with each other, right? To be like, "Oh, I saw you played my other game. Let's give you a special hat in our second game or whatever, right? Um, but I kind of dislike having save data in a weird spot that you can't easily access.
Do you like C++? I do like C++. Um, but there's also a a big variety with C++.
I kind of like just programming in C in general, but I like like certain features from C++.
Hello again. What's going on, Zeno?
That's just me. Probably not the most popular opinion, but I like the simplicity of C.
Um, but yeah. Uh so right now we have save data at uh let's say game independent location on system.
The pro is that I can find one place where all game saves B. The con though is that it's not going to be very intuitive for the user.
not next to the executable, which then again, like how many people actually know where their game executable lives, you know, like how many people are aware of where that actual.exe file is on their machine when they download a game from Steam or something?
But still, I like the idea of a game that's, you know, if you know where the exe is, you can do stuff. The other idea I have is maybe we keep save data local to exe but um save some other file to um location to independent location.
So that like you have game one. So it's like the best of both worlds, right? Cuz then local data the data is still local to uh your save file is still local to your game. But there's a way of my other future games to be able to find out um if you played any of our previous titles. The only caveat is that I don't know where your lo file data location is. So I can't like I'm not going to have access to your actual save data. So I can't get specifics from it. I just know, hey, you played this game and that's it.
Anyways, I'm not going to worry about that too yet. We're not getting to that state.
We're going to finish on fixing up continuing to work on this shop data thing. I think the thing I want to work on is like you have this whole idea of FNF scriptable which is just using like a very not great abstraction that I did that derives from this CC scriptable item which presumes the need for an item ID name description it's not even that bad and specifically I add this just so I can have like the GUID generator and stuff.
Hey doll, what are you doing out so early? Jeez. Wow. What's going on, Syndicate?
Making me blush when you refer to me as doll. [laughter] How you doing, though? Hopefully you're doing well today on this Monday.
I presume this is going to be a a uh pretty pretty relaxed evening.
pretty relaxed evening.
Okay, so let me go up a level here. This FNF scriptable. We do a bunch of stuff here.
We have menu icon and then item sprite icon, which may be applicable, maybe not.
In-game sprite. That's not a I don't even know.
And then there's price tie tit as well and if it's locked or unlocked.
We have another thing that's that's utilizing this, isn't it? This idea of locked and unlock. Oh, that's different though.
Yeah, it's all good. It's good to see you though, Syndicate. It's been a while, man.
Hopefully, you've been doing good karaoke and and lifting and all that.
Everything's well. I got a phone call earlier, so I do apologize. I was to go and ask you, is there a way that I can hook my virtual studio up to what I shared to you earlier today?
What do you mean virtual studio?
Do you mean like Visual Studio?
And yeah, the thing the the thing you just need to do, man, is just unzip it and post like loose files on GitHub.
like GitHub isn't like uh Google Drive or something where you just like upload zips and stuff like that or like the main idea is that you want to be able to see the individual file contents. Like if I were to go to another GitHub, um I'm not logged in. I haven't been there in forever. Wow. Okay, we'll use Codeberg as a better example because actually that's where I'm at right now.
Am I still logged in? Hopefully I am.
Here we go.
Okay. And we go to what's a repository I have here that's like public so you can like reference it. Um cozy RPG Riven. We can go to Riven Dun.
Come on.
Come on. Load Codeberg. I believe in you.
Your PC is beautiful. Thank you, Papito.
I appreciate it, man.
Yeah, like when you see normal like repositories, you just see loose files there.
Maybe folders and like you're going to have folders and stuff like that and maybe a few like binary file formats like PNGs or or I don't know, STLs or whatever or audio like waves or whatnot. But usually it's like this, never zipped. So you can like actually inspect the code base and do stuff like this.
[snorts] And you're probably hitting that file limit because you're uploading a single large file when usually the expectations you're going to be uploading a bunch of small files on these source control platforms.
I forgot what engine you're using. I'm using Unity right now. Eventually, one day we'll slip to uh another one, but for now, I just need to wrap up what I got going on here.
Yeah, like this abstraction is not going to work. I I kind of just get rid of the abstraction in general. Like, if I really wanted GUID, I can just make the dang thing.
I kind of don't want to have like this multiple levels of this just so I can have GID um like set up like this whole thing exists just so I can have like this nice fancy UI for doing GUIDs.
I'm good. Had a really good day today.
Just switched over to horizontal so I can game at the same time. Let's go gaming. What are we gaming?
Just want to try upload index.html but it said error. That's weird. That you should be able to upload uh or commit index to HTML.
Did you move to Cobberg or have you always been on Cobberg? I moved to Cobberg, Jared.
Yeah, I used to be a GitHub dude and then where Codeberg stand right now.
Yeah, I'm still paying like the what I used to pay on GitHub month or yearly, but now I just paid it to gober directly.
But honestly, I might start self-hosting at some point and make set up my own personal home server.
Okay, so I'm trying to get remember where I'm at right now. Yeah, we're getting rid of vehicle configuration.
That's a thing we're doing.
This is no longer Yeah. Yeah. Yeah. This is a very different thing. But we have to find out a place for hull to live because I want the player to be able to um to be able to set stuff in here. And the hole has some important stuff like weight doesn't matter anymore. That's a pro. And honestly, health and weight don't matter actually. So only thing that does matter.
Yeah. Like we don't need description.
Like that's what I'm talking about, man.
This is why we're breaking stuff today.
We're just going to get rid of this abstraction in its entirety.
price locked.
Like this is all contextual to just one thing which is going to be the whole with our new design. So if I really wanted to, I can just yink all this, delete the FNF scriptable because this makes no more this make no more f instead of being uh just going inherit CC scriptable description yada yada yada. I don't even think I'm going to h maybe I'll still have a description. But all of a sudden, these things stop becoming properties and they just become the actual thing they are supposed to be.
This is who you're meant to be. Harry, you're still a pro member on GitHub.
Yeah, cuz I I pay yearly for GitHub. So, it uh eventually like it's going to eventually expire.
I think I switched over around like Christmas time.
Is this if this was vibe coding? I is Thank God I fired that kid. Wait, what?
[laughter] Wait, Scott Huffman.
What's going on? Not this guy. I don't know him. There was a kid at my firm.
Vibe coding. Yeah, it's kind of terrible. What's going on? Zero. Hi.
I've been told that America can't breathe due to smoke from Canada. It's better today.
It's better today.
Nothing fancy. Just YouTube playables.
Currently the al Oh yeah, I saw that.
The YouTube playables. Yeah, that's pretty gnarly.
Do you have a occupied description? You already do have a description attribute attached, don't you? So never mind. I still need to do this stupid thing.
What is this? A override?
I was doing two levels of virtual, wasn't I?
Am I? Am I crazy?
Of course, cuz I introduced a whole interface for this. Where are you being used? Chips, brakes. We're going to delete all this. In fact, let's just go go ahead and do that right now.
That's no longer a thing. Bite config.
Yeah, chips. Goodbye.
Oh, chips are going to exist in a different capacity.
It's empty folder. Why are you Why are you making me scared for deleting an empty folder?
Holes.
They're going to exist in some capacity.
Yeah, brakes. What are you?
Yeah. Goodbye.
Yeah, you're no longer a thing. Yeah.
Oh, you have to recompile chips. You're going to exist in a very different capacity. So, you're going to be buddy.
Yeah, I don't care. This is fine.
Okay. Apparently, I do care.
Do I still want to keep a FNF scriptable?
So it's not an override.
Remember with the same name exists where?
Oh, you goodbye.
Yeah, we're going to use the written description now. We're not going to use that menu item.
These are the serialized fields. I don't know why we I think cuz I'm scared about this is a hold over from from another project I was doing where I was expecting other people to actually do some modification and I wanted to ensure that they're not going to mutate scriptable object data which is why we have properties for accessing stuff.
But I'm the only person coding this and I'm not scared of me.
But maybe we'll keep it as is.
Also, what's going on, Draco? I didn't see you there, man.
Zero came to join. Yeah. What's on there? YouTube playback playables suck.
How do I get get three you? What's three YS?
What is YS?
Okay.
Maybe this is like if I'm going to rearchitect this project, maybe I should actually think through what I want before just ripping.
I mean, we already know what's going to happen, right? Like the two things that are really going to be built off of this are going to be buddies the um hall which I might call it make another neat a more straightforward I don't know I need to find a word that my niece can read easily she can read hull but I don't think she's read that in a book yet or at school or something exterior Maybe probably should be fine. Visuals, I don't know. We have this. We're going to use hole though cuz that's the terminology we've been using this entire time. And then the thing is the character customization.
So, the visuals for the character, which I'm not even sure we're going to do this, cuz you can't really see that much from the character, but there'd be some simple stuff like I don't know, hair color and stuff like that.
I don't know. I'm not going to worry too much about this because I haven't actually set it in stone yet.
And these are going to be kind of significantly different cuz buddies are going to have like potentially a bunch of states that are not applicable to halls whatsoever. Like they're going to have I guess idle animations and action specific stuff.
Maybe I would want to do some more particular logic, but I think they're going to just we're going to do what we what we already have, which is have a bunch of enums and then have varying behavior based off of that.
And if it needs to be tied to events from a model behavior, then we can just attach it to the player object and utilize that instead.
And then hull is simple. It's like literally just the name and description and then you know in-game appearance, right?
Which currently does so and there's no like the big thing is that they're going to be handled by two different views entirely in the UI. So they don't have to we don't need abstraction here.
So, I'm going to let them just be their own separate things and whatever needs to be whatever differences they they require are just going to emerge.
Really, I have menu icon here. Why do I have a menu icon tied to this?
Yeah, it should be just like the name description.
Oh, is it because of the um I understand now because of the interface. Yeah, no more.
Goodbye.
Yeah, before I actually do that, actually, where is the error that popped up from like not implementing stuff? I don't see where that is.
We're going to get rid of you, too.
You're on the chopping block.
FNF scriptable. Get out of here.
Get out of here. No one likes you.
You had so much traffic in today. Why Why do you have so much fun in traffic, man, when you don't have a stutter? But your fingers do.
So I was gone.
Uh Cabel, is this Ryder with Idea Vim you're using? Yep, that's what I'm using to move around my keyboard a lot better when coding. Yeah, I mean it's amazing what Vim does, dude.
Makes life much more fast.
Okay, what actually needs to exist?
ID, name, description. I'm pretty sure that's the [snorts] stuff that was required.
Yeah, there's no menu icon anymore, though. I'm pretty sure we had a thing where this is going to have um this is still necessary. Price is still necessary.
I think there's something that was utilizing this eye shop thing.
In fact, what else is introduced by this? Oh, a lot of things.
Interesting.
Yeah. No more.
Just the things that are needed. So, in-game sprite. The thing is with hole, it's a bit weird because there's I'm adding like a multilayer thing to it.
Yeah. So, we have this. There's a whole back and whole front, which means we don't need an in-game sprite. That's not applicable to this whatsoever.
And weight is no longer applicable, nor is health applicable cuz that's just going to be an independent thing displayed in front of the player.
So, if I'm going to actually release this uh code as well bundled with the game for free, then or not for free, but with the game, we're going to need to I need to clean up the code base to actually make it a little beneficial and somewhat educational the player.
Okay, cool. That's required.
And then we have the pallet mask. That's also very important. And we have this whole apply configuration thing as well.
This is like directly serialized as well.
Dude, honestly, I don't know. I think I just want to get rid of this and be like, "Yeah, dude. Just don't just don't mutate." Like, we work in C, man. We work in a language where everything is just inherently public and I just have to trust myself to not overwrite the wrong things. Like why not just be like that here, dude?
Why not be like yo just don't I don't know.
Is he creating a game? Yeah, I'm making a game. What's the idea? It's like a racing type a space 2D racing game that's like, you know, has some I wish I could show it to you, but we're breaking the code right now and it won't compile. So, yeah.
And I haven't taken an actual video of it recently outside of like the streams.
So, hopefully we can get it back to functional today and I can show you what the game actually looks like.
Yeah. Did I not delete FNF scriptable or what file is this in? I can't tell cuz all the buffers are super small and my text is too Yeah, I can't read that file. What is it? config engine.cs.
Is that what it is?
Okay.
Do you have the things I'm looking for?
No, you're just a the general config class. What are you actually?
Are you another thing that's relying Oh.
Oh, that's just a general file config.
That's just the general like uh settings for the I closed Ryder out by accident.
Whoopsie.
Let's open up Ryder again.
And then we're not going to need a parts registry either. That's just going to go away. Gosh, man. Feels good just to delete, man.
Feels so good.
Let's see how many compiler errors we can stack up today. Engine.
Yeah, goodbye. You're not a thing.
Color presets are a thing, though.
That's very important. We want to keep those.
So, now we're left with hull and buddies.
And because shop item no longer exists, we don't have to have all that there.
If I still want to stick with this, like we don't we're so inconsistent cuz even these properties were not um hiding it behind like a getters and setters. Like we just just do the thing.
Yeah. Don't need TD icon. Uh, I don't know.
They're going to need a few things.
They're going to need um at least three spite binders.
So, in fact, I should probably use this to indicate which context these sprites are relevant to.
I can't spell.
Okay.
And then Okay, I think these should be enough. Maybe we'll also do like damage. So like when the player gets hit by something, they also change their sprite.
Okay, that seems reasonable to me.
Quite reasonable actually.
And this is no longer relevant.
Price is just going to be what it is, which is going to be price. It's lock is just going to be what it is.
manship.
It is what it is. Count cool down for the abilities. Yep, I like this. I can just tell what this is doing and how you're no longer chips. You're going to be a buddy.
Oh, maybe call it FNF.
to be specific so I can tell what game.
Okay, cool.
Let me catch up in chat real quick.
Quack, what's going on, Bone Circuit?
How you doing today, man? Are you a rubber duck? Kind of. Woolly. I mean, I just kind of I guess kind of. Yeah. I don't know.
When I'm like programming for work, I don't really speak like this.
Except kind of, but I'm usually in context where it's weird to do that, so I just don't. But in my mind, I do that.
But here, I get to just yap all I want and it does not get me into trouble.
So, this seems to be fine.
So, these are the internal stuff we may or may not use.
Let me also go to buddy and apply that there because I couldn't remember the other things that were required of it.
description.
Is that it?
Um, there's also probably, if I'm not mistaken, I know it's a GUID, but I'm not sure if I expose the actual GU ID or or if I convert it to a string. I do item ID.
There we go.
the only bit of abstractions I'm going to deal with.
And as for these guys, I don't think I want to deal with like this whole property private whatever.
I'm just going to not manipulate things the wrong way and it'll be fine.
Uh, I'm pretty sure it should be fine.
I don't know. My brain is like, what if I do something wrong and then I accidentally mutate all this stuff and then I have to deal with it, you know?
But you know what I got to say? That's why we have git. This is why we have git.
This is why git exists. So I can be reckless.
We're already being partially reckless anyway. So like this is not really that big of a deal.
I mean, I'm going to break the current stuff. I'm going to have to reconstruct these to do the property thing, but we're going to have to reconstruct it anyways because we ripped out the underlying class. So, it's going to be a whole new thing.
What's your full-time job and how do you get there? I'm a programmer, a software engineer, and I got there by the grace of God. Legitimately, I am when I was hired, I was not qualified.
I almost walked out of the interview.
So yeah, I do want to like I I like the idea of doing mentorship stuff, but like at the same time people are like they want to get a job, a tech job or something. And I'm like I don't think I'm qualified nor can I promise to like or even imply that I can do that for you, right?
cuz you know I I feel like I had very little control over getting my job and uh like the most I can do is just give you like knowledge and that's it about just doing programming better and whether or not that's going to get you a job that's a whole different matter cuz I was in a very I was I'm a I'm in a preai job market so I don't know I don't have the strats Okay. What else is there to fix?
Apply configuration sprites.
What do we do here? Okay. Yeah, this does stuff.
Custom color to material.
I can't spell.
Okay, cool. Oh, no, not sprite binders on on our sprite render, our custom TM sprite renderer.
And this is not even perfect either. I think the way we're doing things is a little bit odd, but I don't know.
What's going on here? Sorry, horizontal.
I'm not reading as much. Uh, what area are you in today, Zero? Okay, you're talking about cozy. Do the merry condo thing and ask yourself, does this spark joy? This is what I'm doing right now. I'm asking each part of my cozy base, do you spark joy? And you know what I have to say?
Actually, so far we're good.
So far things except for you. You don't spark joy. You spark anger. You make me mad.
I hate you. Okay, we're good now.
Everything's good.
Yeah, we're good.
I think.
Okay.
So, what part of the code base are mad right now? I know. Probably. So, we're we're doing the shop stuff. Yeah, we're not doing this anymore. Item state.
We're not using that one abstraction.
How many times has object been upgraded?
Upgrade count. Okay, cool. Oh, so shop data did a little bit more than just handle withdrawals. I think it was also handling upgrade state, but we're not doing upgrades anymore.
Not in the normal way. So, so honestly like this does not spark joy. So, you go out.
Goodbye.
Let's go, dude. Okay, it feels so good to delete stuff. Item state locked, available for sale, purchased. That is a thing we do need to keep track of for um our holes spent area.
So, this is like a receipt really.
This is honestly kind of like a receipt.
So if this is a shop data, right? And we're dealing more than just currency.
If you're kind trying to keep track of the state of holes, then we have to have a list of all the holes in the application.
And we need to um so what we're going to do actually we're going to do a hash set cuz you can't serialize the actual holes directly, right? So what I'm going to probably end up doing is doing like a a GUID and a hash set or maybe actually a dictionary make more sense. a GUID for the actual item and then like this um update transaction here. E item state.
So this going to be this.
Cool. So this kind this becomes a little bit different now because I was treating this like a ATM or like a an account balance, right?
And now we're adding this other thing.
[cough] Um, so what do we do? We either change the role of this or separate this out into like some something else, right? Something whose whole purpose is just to manage a state of like the whole um I kind of just don't want to complicate stuff, but maybe it's simpler if I just think about things as discrete units. Go the full OP pill way.
I don't know, man. We love breaking code bases. Yeah. Okay. It's the favorite.
Git branch. Nah. Bone circuit. We have git. We don't do We're not going to do git branch. I just go back and log or stash changes or whatever.
Git branch is for cowards.
That's why my startup we're going to be we're going to be coding just on main or master or whatever it is. Hi vibe coder.
Why? Why vibe? Why am I uh why what cozy official request for a rubber ducky channel emoji? That would be good. Can I just add emotes to the YouTube channel without having to be like uh enable money?
I don't know. Also, it's good to see you, Kate. Hopefully you're doing good this fine Monday evening.
Okay.
Yeah, cuz I have this whole state. I want to I would like I feel tempted to have a separate function for like I don't know get state. Well, you'd have to, right? You'd have to like be able to get state and you have to have another function for uh try purchase whole.
So it be like these specific things, but then like and this would probably call this function, but then other parts of the code are going to be calling this function as well, but I have to be sure not to use this one and instead use this one.
You feel you feel like like it's almost weird. It's almost a dumb, but like you know this is where my mind is going to.
So either we just make this like your like purely just money and something else is going to be handling this.
You know what I'm saying?
Oh man, maybe I'm overthinking it. I'm probably overthinking because the consequence is there's not big and it's only like two places in the code they're going to be really using it.
Dang it, Uncle Bob. Are you going to make me clean code this? Are we going to clean code this? I feel like we're going to end up clean coding it. Uh, okay.
So, if we if we going to clean code it, what would that look like?
There'll be another one of these for sure.
And then I'd be yoinking.
What would I be yinking? I'd be yoinking yinking you.
up here and then we have to actually implement these.
You'd be using whole cuz that's what you'd be really actually you'd be using the ID.
Honestly, it'd be like my goodness.
Am I going to use GUID or if I'm going to use a string?
What do I want to do?
Cuz if I go to hole right now, we're actually using a string.
And now that I think about it, I kind of don't like that because like I forgot why I did that because string doesn't communicate what you're what you're actually the type of data you're like if you receive a string, you don't have context. It's a go ID outside of like naming the thing to be correct. But if I type in like whole ID, there's no implicit way for you to there's no way for you to explicitly know that this is a go ID that you're being in string form that you're receiving.
You know, why did I do it this way?
I guess the one thing I could do, and this is like super I feel like I'm sniffing glue if I do this, but it might be it might make sense, dude, is like make like a a strct called like whole ID or something, right? And just wrap the string in it and then like have this return that.
But like that seems so dumb. And we're introducing all this extra stuff when maybe all I just need to do is just return to ding dang GD man.
Maybe that's all you need in life.
It's null. Oh, I think I know. Is that a good reason though?
Yeah, because I want to have it make it like nullable and if as far as I understand GUID your strruct type which means you're going to initialize and like an empty string I don't think is a valid GD format. Oh.
Oh, brother.
I think there's a way to add emojis to the channel, but maybe you're right and might have to be linked to monetization.
Please tell Kate I miss her, but I'm over here so I can I can rot my brain on you to playables. Odo. Well, there you go, Kate. There you go, Kate. Syndicate misses you in horizontal chat live with Morgan. What's going on main chat startup? Yeah. Yeah. Live with Morgan. That's exactly it.
All we do is code commit on main.
And we also have a timer on PR. So like when someone opens up a PR, they have like 10 minutes. And if if if you don't submit a review within 10 minutes, then it just gets auto approved. I think that's the best standards and practices.
I mean, you don't want quality to get in the way of getting code merged into master, do you?
Absolutely not.
No. So, as soon as they open a PR, the timer starts.
Okay. So, yeah, we're not going to do this.
So, generate a genu ID. You're just going to do the thing.
Uh, where else is do things go wrong? JD try pars is ID in Oh, there's also like I know why. And it's because I I had this like I had this weird paranoia that like something might go wrong with GIDs or or something got might get messed up with like git or source control or whatever and I would have to go in and manually modify it.
Um and I can only do that if the property was actually a string.
I understand why I did things now.
And the solution to that, I don't know. That's gonna be like we'd probably have to have like some buffer string or something.
I don't I don't I don't That's probably what you want to do is have like a separate variable that's just a string.
and then have this be mutated by that instead.
Yeah, that'd be like the way you go about it honestly to preserve the text field data.
Yeah.
Oh, am I going to do the thing? Am I going to do the thing? I might just do the thing, dude.
Hey, what's going on, Royalty? Good to see you, man. Toss a refactor. Great. I think we're s sitting at somewhere like I don't know how many errors. Only four errors so far. That's nice. Only four compilation errors. You got to bump that up.
Okay. So, what are we going to do?
What are we going to do here?
I guess I'm just going to if I'm going to go the path of least resistance, we're just going to take string and just recognize, hey, this is a a GD.
Yeah.
Oh, dude.
That feels kind of gross if I'm going to be honest with you. But it is what it is, man.
It's fine. It's fine. This is not like a critical part of It's fine. It's not performance. It's It's It's fine. This is fine. It's not This doesn't matter, man. It doesn't matter. It's fine. Okay.
whole ID and then we're just going to do Do we need even do this?
I guess we could do that.
Nope.
contains key.
Okay. And then we're going to return I guess you want to output the the state, right?
Which is going to be honestly this is dumb. Everything I'm doing here is dumb.
cuz there's literally there's literally an API for this. It's just try get value.
Like look at that. Simple, easy.
All right. Now, here's where things get a little bit funky.
The try purchase, which by the way, you need to pass in the hall ID as well, don't you?
You're just copying. What's going on here? Zyphora fake. Nah, dude. There's no AI thing going on here, man.
Uh, dog.
Yeah, it's not right. Are you in Vim code? Yeah, I'm Vim mode. I'm Vimoding right now. We molding. Yeah, we are, Kate. Yeah, we're viming right now.
So what are we doing though? I was doing something right. So we have the dictionary here and state contains key.
That makes sense.
Um if it contains it, then we're going to do go ahead and do the transaction or try purchase. Ah, dude. See, this is where I'm like, cuz this is going to have a dependency with our shop data, right? So, if it's going to have a dependency, we're going to have to do like some kind of public init step.
Oh, come on.
We have to do some kind of init step, right? And in this, we're going to have to hand in like shop data or something.
and inject it, which is fine. We can do that. Um, yeah, I think it's I think it's fine.
Which, by the way, I think we're going to change the name of this. I don't like shop data. I think we're going to call this like ATM or something. ATM data or I don't know, balance data or something.
Yes, I don't care.
So, we have balance Okay.
Okay, cool. Got this. Got this. Nice.
And then I did this in the wrong place. I did this in the wrong place. We're in the wrong area. This is Oh, no. This is the right area. Never mind. For a second, I thought I was in hole.
What are we coding? I'm breaking stuff.
I'm refactoring my code base cuz I don't like how I actually No, our design requirements changed.
What are you running on that monitor? Is it some sort of Yeah, I'm using Linux.
I'm using uh Ubuntu right now.
But yeah, so got balance. We got this knitted. Now we go here and we can do I think I'd rather do a early return.
So we're going to check for exit conditions first.
And then what else happens here?
So cool. We check to see if the whole in fact we should just do try get actually try get out of our state.
Cool.
Next thing we need to do is get Oh, you know what?
Okay. because we need actually we actually have to get hole directly.
So we can't just be dealing with this like we want to serialize just the um uh this complicates things a little bit okay but it's not that big of a deal. We can't we want to serialize just the whole ID but we still need the actual scriptable object instance on runtime.
So within a net we need to have like some kind of I don't know guarantee of all. So, we're going to need some kind of registry for holes.
I think this is what's going to happen.
So, at some point, we're just have to get like a a list of holes.
Um, okay, cool.
Okay. Balance balance holes. Yeah, we have the list there. That's going to be a problem for future me. And then get state.
Okay. Now, so we now we can actually dude actually you know what cuz on serializ Okay. Um maybe me trying to use string for the key value is like preemptively trying to like handle serialization.
But I don't need to worry about that.
Maybe it I should just use what is makes sense right now and just get a dictionary of whole states and then yeah cuz you know what actually now that I think about it you know this whole thing is kind of wrong cuz I don't think we're going to do locked states.
Um, you know, actually there is yeah, I think we're going to get rid of locked states and instead it's going to be a boolean like available for sale or purchased which if it's only two states like I don't think we're going to do anything special with this. I I can't we can't afford to do that. It's going to be too complex. Not too complex. It's going to extend development time, right? Which I don't want to. And I don't think there's a big ROI for that. I think I might just get rid of the item state entirely.
And like this will be simplified down to like a hash set of like purchased holes.
So if your hole is purchased, it's going to exist within this hash. And that's all there is to it. And this gets changed like purchased.
Yeah. Yeah. Yeah. Yeah. This makes sense to me.
And now you start checking instead to see, hey, did you purchase this hole?
And if if so, that's that's all there there is. That's all that matters, I guess. Alternatively, if I really want to just be robust, we could just have a list of all the holes and just like a boolean attached to it. Doesn't really matter.
Um, either way would be fine, I guess.
Do you do you will need injunction for use another class shop? Wait, what?
Future me. Future me. What has that guy ever done for me? Nothing. That's what That's true. Now pass me. No, pass me is not the goat syndicate. Pass me is the man who's made all bad architectural decisions.
Me and future me are the ones who are paying the piper for it.
Can be a token. Token can be serialized and waiting for and then get tokenized.
State change. What do you mean token?
Everything purchased can be a token.
Token can be serialized and waiting.
[cough] I don't know.
I don't Something about having just a hash doesn't feel right to me.
Like is that is it just me?
I know this doesn't matter and yet it bothers me.
I can start something with like a boolean.
It just means that now for this we have to initialize it.
Um there we go.
Count.
And then what are we going to do?
This is going to go back to being a whole state.
And then I stop.
In fact, I should really just uh whole dot is do I not have a locked? Yeah, locked.
So, the thing is I don't The balloon itself doesn't describe if it's like what the state represents.
Oh, this seems so stupid. But at the same time, like I like the specificity of this.
Like just to even have a strct, I don't know, state. I know I could bet make a enum that's backed by a like a integer and do the cast that way. But I guess maybe if I want to extend this later on, I can just do that here.
That feels premature, dude.
That feels so dumb. Okay, cuz at least with the hash, it's like very clear what it is. It's like, yeah, this the unlocked. These are the ones you purchased.
Whereas with this it's like okay like this is I'm wasting too much time man. This is not any of the solutions I would have chosen would have worked fine.
You're doing good. Don't forget to like.
Thank you, royalty.
You like funky, eh? I like like funky music.
I dig funky music.
[sighs] I'm overthinking this, man. I really am.
Yeah, whatever. We're just going to go with what I originally had. Or not originally, but the hashet thing. And I think it's going to be fine.
This doesn't need this anymore.
I guess I wanted to solve the problem of like lookup though. But all right.
And then get state like becomes way more simplified because we're not even doing state. It doesn't even have to be like an out. It's just it's going to be is purchased.
That's all there is to it, right?
And for the UI, you're going to have to like we're not going to be dealing with string. We're not going to be dealing with the ids.
Like I think we're going to save the IDs just for serialization purposes. But yeah, like I think it wouldn't be unreasonable to expect like them to actually just straight up have the hole and then this just becomes this purchase and that's it. Simple.
Simple.
Come on. I know I'm not typing good today.
I can reuse this simple like this easy check which honestly like I guess maybe I want to be be able to arbitrarily get this for setting the UI elements anyway. So yeah, it'll be public anyways.
So, is purchased whole? If it's already purchased, we return false because we can't make that purchase. And then now we have to check to see if we can afford it. So, we're going to do shop or not shop, but balance dot Did I not expose your current balance at all?
Okay, we're going to just try doing a withdrawal of whole dot price, excuse me.
And what is your Oh, an area too, which is going to be ship.
Actually, it's going to be cosmetics.
Actually, I might have to have another category. I don't know. We'll deal with that later. I'll call it ship for right now.
And um if this is false that means we couldn't do the transaction and otherwise return true and we also do purchased holes add and that's all she wrote. Now we have a try purchase of hole and life is good. Life is good.
And what are we going to do? We got rid of the parts registry, which makes sense, but also like, you know, we have to go to FNF application to add our new added data, [snorts] which is going to be here.
Here we go with this dumb factory pattern, which I hate, honestly. I kind of regret doing this now. Let me figure out how to get rid of that, but I don't want to deal with it.
and you and you have an init function which means I don't need to actually do this within a constructor. I can just do this after the fact.
So I could just do within FF application wherever you you're called down here. Yeah. This production of comp collect.
So we have an actual bounce data here.
I'm not also a public actually. Are you okay? We're going to look at you later.
I'm sorry. What?
What did I call this?
This should be recognized. It's whole states. Oh, states.
I don't know. That doesn't seem like a good name.
What if We actually just call a net right here if we wanted to. In fact, I can probably put this in the constructor and it'll be fine.
Yeah, I don't have to deal with that at some point.
Anyways, uh you need balance. No, not back in balance.
And you also need a list. But I don't have that list for you. We're going to have to make that.
That's okay.
We can make anything happen.
You just got to believe.
Okay.
>> [sighs] >> I don't want to go about doing this.
Let me catch up in chat real quick.
What's going on, K9? For some reason, this makes me feel like I should lock in. Lock in, brother. Just got to get in there, man.
Are you speed coding or are you just pressing random keys to look like you know what you're doing? No. When I'm thinking sometimes I just move stuff up and down and then once I know what I want to do, usually I'm pretty decent at typing it out. Except sometimes I fumble and that's just life. But you know that's just how it is. What's up fishy zoomer?
You let who dealt with? You do be clicky clacky. What's up moonyy?
You should lock in regardless.
Ah there's a time for locking in.
There's time for for um I don't know tom foolery.
I'm coming back from a vacation where I was not locked in.
I think it did me did me very good.
What is all this? Oh, this is all the transition stuff.
Yeah, yeah, yeah, yeah, I did that a while ago. Okay, that was a long while ago.
Okay, let's deal with the um registry thing. I was thinking about some way of maybe doing it like but there's no way you're just getting the the uh like do scriptable objects have a a cuz I don't want to make another scriptable object where you have to manually set each new item. But if scriptable objects have like a runtime function per instance, then I can like do a static thing and then let these run, but that seems very jank and bad and probably not what you're supposed to do. Uh, ooh, scriptable object. That's a spawner.
Yeah, I wouldn't think scriptable objects would have any kind of like lifetime functions, but you never know. Anything's possible in Unity. Let's see what they they've done. Come on. They usually have like a thing that shows all the functions for scriptables.
Come on, documentation. Work with me.
Oh, you know what? Oh, here we go. Okay, they have messages on enable. It's called when the object is loaded. Ooh, I kind of like that. I just don't know when the object is loaded and how that differs between editor and builds. But, you know, they have awake is started.
Okay.
I'm feeling that this feels positive because instead of having like an annoying, you know, oh, I have to make another thing and I have to manually set every single item there. I could just do this is the vision, right? This is the idea. This is the uh the goal. List whole.
In fact, we're we're going to be just extra trash there. It's okay. We don't care.
We don't care. Holes, right? And then within the hole individually, you'd have some kind of awake, which you do. And then you do FNF application.holes holes dot add this. [laughter] And you know what? Maybe it'll be a little bit more like like if we're having double dipping and things are being called multiple times. And hopefully having this be a hashet would be good enough cuz then you can just, you know, it would throw if it tries adding the same thing again. I believe that's how it works.
I'm pretty sure hashet should throw if you try adding duplicates, but I actually don't know that for a fact.
Maybe dictionary. I know dictionaries do that.
Um, do you have to do go to MSDN hash set at?
And let's see if Microsoft has documented what this does. If you try adding it twice, uh, D exceptions. Any exceptions?
This capacity of internal array. This method is O of one function.
Okay, they don't say anything about it.
Thank you, Microsoft. I appreciate it.
So, we're going to do this because they do return a boolean value, right? True of element is added. False. Okay. No.
So, no, it does it does not throw. Okay.
So, we're going to make that happen. So, we're going to do some big software engineering. Microsoft made sure that this doesn't crash your application.
If it you try doing something, you know, if you try adding a duplicate value to your hashtag, well, we're going to say, "Nuh-uh. I'm going to throw anyways. You try to kept me You try to keep me from breaking my ankles on a uh on a razor scooter. Well, guess what? I'm going to do it anyways.
Oopsie.
Accidentally added twice my B.
Splendid. And now we're going to see just how great this works. Also, we should go back to the FNF application.
We should probably make a new instance for this so that we don't get a null reference exception. And then within here, we should probably pass in.
We don't have to pass this explicitly in now cuz like we just have holes here.
But hey, whatever.
Also, this is no longer a list. This is a hash set.
So make with that what you will gain.
Actually, do we even need this?
Wait, wait, wait, wait, wait, wait.
This is not used at all. I don't need this.
I'm curious though. Let's see what uh what gets added.
Oh, wait. It's not going to work cuz again, application broken, right?
Yeah, that's probably not going to be good for us.
Oh, well. Okay. Well, we'll put a pin in that.
Why do you use I'm using C.
I highly recommend gold lang my own language.
Such a self. I'm not I'm not knocking your language, man. It's just such a such a funny like it's like a salesman kind of tag like oh you have this ailment here's here I recommend my solution my ointment again I'm not knocking you I just the the presentation was funny to me code river you're getting more ti tied to the engine and not just realizing your own filed that yeah it's true I can ride with no handlebars. Yeah, I like having a engine agnostic dev kit, but there's also quite a bit of the dev kit that's like or still tied to it. I don't know. The whole idea is that eventually I'm just going to switch to uh my own thing anyway. So, a lot of the stuff is like a sunk cost anyways. Hey, what's going on, Clen?
The server, you feel me? You know what I'm talking about.
But yeah, I don't know. Either way, this is like a not super critical thing cuz we don't need it anymore. We actually don't need uh this registry.
I'm probably going to need it for the UI stuff. So, if I can be lazy about it, great. If not, oh well.
So, where am I? We're doing something, right? FNF application.
You're no longer needed. I can get rid of this.
Get rid of this.
I go back to your usage. I'm sorry.
There is a usage of you. You're just wrong.
Okay. And that's solved. So, what other parts of the codebase are broken now?
Let's see here.
Oh.
Oh, but this shop view. We don't care about shop view. You're being deleted anyways.
Yeah, you're you're loss will not be felt.
Yeah. Goodbye, shop view.
No one liked you.
Shop UI item. Yeah, no one likes you either. Goodbye. Good day, sir. Good day.
Okay. Now, let's see what other errors have sprouted up in its absence. Hey, that's not that bad. Garage view. Yeah, there's no more shop view.
Um, I do want to make a new one though, which is going to be we're going to call it the I don't know folder.
I I'm sorry. I thought I created a folder.
Um, we're going to call it online shopping or the online shop view.
That's not describing what it is.
Machine view, I guess. Vehicle view, whatever it is.
Actually, you belong there actually now that they realize that. And in fact, do I want you to be isolated or should you be tied to something else?
We have the whole set.
Yeah, this is all like stuff just to set up the presentation and view. And then we have the logic here for handling, incrementing, and decrementing.
Okay, cool. So actually we're actually That's not bad. That's not bad.
So I guess we have to do a whole view cuz I kind of want to keep them separate because they should be separate.
and you're going to be pretty straightforward.
Um, yeah, we don't cache it. We could just directly access it. Okay. So, what is needed for this? We're probably gonna want to have buttons uh for left left arrow.
Another one for right arrow.
Okay. I'm sorry. You're wrong. You're not a What's a HID button?
No. No.
Yes, this is fine.
Maybe it'll show like the previous ones too. Nah, I want I want this to feel like a YT 2K website. They don't have polish like that.
And then finally purchase which may or may not have other text too.
I might have just both of these purchase equipped.
Actually, we're going to have something here. We're going have whole and then equipped. Okay.
Oh, you know what? We have that. We also have another thing for like I'm pretty sure we did a thing for saving your vehicle configur vehicle configuration.
Yeah. What is Oh, yeah. Yeah. Yeah.
We're replacing you.
And now you're going to be I I'm probably going to make one unified shop or something.
It's going to be different.
Okay, so we have these assets or these references. That should for sure happen.
We're probably have to have some kind of index. Well, we'll probably start with the uh index of the hole you've selected. We probably need to have a way of getting index now that I think about it.
Let's go here. What is this? I3. Yeah, we're using i3.
Life is good in i3.
I'm glad to hear that. Travis, do you have any recommendations for someone getting into coding for video games? Uh, the only recommendations I have is just to get into it, man. just start using an engine or a tool. Start coding.
Honestly, the the most important thing is just doing stuff.
Um, yeah, like there's like how to describe it. You might not think it's a, you know, you might be sitting and looking at your dinky game maker project that doesn't look great or whatever and doesn't play good at all.
In fact, it doesn't even have much mechanics.
And most people would look at that and be like, that's dumb, dude. You're not learning anything. But you are. There is learning that's happening there.
And there's also confidence you get because you start understanding how to do a thing and that's something you start building off of, right? And I say as an example cuz that's me. Like I started with Game Maker trying to make an object trying to make a launch octopus Mega Man game and failed horribly at it. And the reality is that you're going to be failing a lot, quote unquote, failing, starting projects and not finishing them. And that's actually good. That's actually great. The more new projects you start getting into and and and trying things differently, the more you start building up some knowledge and you start seeing paths all of a sudden, right?
woods that you went into and that felt like unknown and foreign start becoming a bit more you start recognizing landmarks and you start seeing which path where paths would lead you.
So just start doing stuff man start trying to make the game that you want to make.
If you succeed in finishing it great if you don't perfectly fine dude don't don't sweat about it. In fact, honestly, I think it's very important to fail often and frequently.
That's where you learn the most.
And then once you've gotten significant experience, that's when you can start making more confident bets and investing much more of your time longterm on bigger projects.
Pull left arrow button, action button, purchase equipped, right?
So, we have to have this I also want to get um a there's going to be like a with a configuration.
You know what I don't like is that hashtag is not deterministic.
And in fact, the way we're doing this is not going to be deter. We need to enforce determinism within how we're adding our um our holes. I don't like how this is going to work.
So yeah, I'm kind of I I I we're we're going to deal with that later. We're just going to get a list some way somehow and we're just going to trust that this is going to provide them at some point correctly.
Oh, you know what? We also have to get like the current equipped one. Do we have I know I feel like I've did something before. Maybe I deleted it already.
For saving data. Let's go here. I'm glad I actually put all my game data in one spot. So, you have balance data, chip upgrade, save.
Interesting.
I don't think we're using you anymore, though.
H we can upgrade a buddy. Maybe we'll keep that still intact. There's hull color save which is probably going to remain just as is for the time being.
So I'm cool with that. No, we're not going to color utilities. That's not save data.
So I might remove that run record ship config.
Yeah, I don't think we have something for saving your vehicle config.
So, let's do that. Now, we're just defining all the data that needs to be saved in the game.
Or honestly, maybe we don't even need to do that. Do we have a whole the whole um whole state, right?
I mean, this sounds kind of not great, but what if we had this, you know, just save whatever hole was currently selected.
What is Oh, yeah. Yeah.
Honestly, I gained a jump in passion for writing, but instead of writing for my game, I said screw it and started working on my fanfiction. Hey, man, that's totally fine. There's a lot of people who start off like trying to make games, but it turns out their passion is actually like writing stories. That's a common one actually. Or may not common. I don't know the statistics of it, but I've encountered that that before, right? Um or film or other things.
Sometimes a thing we like games a lot, but it turns out the things we liked about games that we wanted to recreate are not necessarily the mechanics themselves or the actual game, but rather experiences within it.
or components of the game which in of themselves are their own art forms.
Uh yeah, what are we going to do here?
Maybe I can do like a try equipped if you want to catch like prevent equipping something that you don't actually own.
So if you don't contain that, we return false.
Cool.
I like that. I can dig that.
So we actually have to get like the which we needed anyways.
So that's actually a happy accident. All this is consolidated in the most convenient way possible, which makes me very happy. Only thing is there's one last thing I need to do, which is expose that, which honestly we can just do this.
No.
And then you simply become current selected.
Cool.
And then then here get to the whole index application.
Of course you have to do count I'm realizing now that hashet may not be or great for this because yeah, I'm going have to like do Come on stupid.
Don't like that but whatever cuz then I can actually access the individual elements.
So holes and then if not I don't know negative one let's say we'll deal with that error case here.
Uh, thanks for telling me that asking people to download my game is kind of not smart. I upload it to GX Games now, so they won't need to download anything.
Do it way better. Let's go, Fishy Zoomer. Glad to see that, man. Can't wait to give it a try then, man. On my end then, dude.
Uh, pretty smooth. Just like a tight loger logger. It's like 4.6%. Not super strong. Heck, drink like two or three beers. I'm chilling. Oh, snap, dude.
Doesn't refresh rate of the screen and the blur pixels hurt your eyes. Not really.
I don't know. We'll see when I visit the doctor.
Make a simple game and see like magic numbers with print f and then same. What was going on here? I was stuck in tutorial hell for a bit building calculator and calendar apps I would never actually use. When I found a project I wanted to build, it was a whole new game. Let's go, dude. Royalty.
I'm attempting to learn Unreal Engine, but I don't understand C++ at all.
Scripting isn't very easy either, but I do understand it's a little bit a little bit. Also, Royal, I'm currently stuck in tutorial hell. I can't seem to retain the info from these tutorials and constantly have a a reference some mirror to I just have to information. I see like magic numbers with print f and C++. Yeah, I could feel that. I feel that bones are good. That's usually kind of what I recommend.
Um, yeah, like tutorial hell is like it's bad. And like you mentioned not being able to absorb stuff. And I think there's something about it where like information that you're just getting for the sake of information doesn't quite stick, right? But information that solves a particular problem in a goal you're actively trying to pursue that sticks.
Like I know the example for me is that like you know I was taught about interfaces and abstract classes in in college and I was like I don't get the point of this. This seems kind of whatever.
And then you know later on when I got when I was at work and there's a problem I was designing the dude was like hey have you tried using a strategy pattern and I was like why what is that? Why do you want to do and they explained and I started seeing oh this is actually how you like an application of the interface which is cool.
And then I decided to never again and just use enums. And [laughter] okay, I'm Josh in a bit, but you get the idea though, right? So like as opposed to doing tutorial, how I think it's better to just have a project you want to do and then you're not going to know the stuff for it, but you can start by learning the building pieces to get to where you want to go, right?
So, like if you know nothing about making games and you know you want to make a 2D platformer and you hear, "Oh, there's, you know, you should use engines or whatever." All right, pick an engine. Great. And then the first thing you ask yourself is like, "Okay, how do I get like a a sprite on the screen?"
And you do a little bit of Googling, maybe watch a YouTube video, and bam, you got a sprite on the screen. Cool.
How do I make it move when I press like D or W or whatever? And then you Google and look up that and then you start, you know, you start building stuff incrementally until you get the functionality you want.
And that's a very fun process and it's very different because then all of a sudden when you learn that way, things stick cuz that's like that was a block that you needed to do the cool thing.
And it's not like a calculator app or it's not just like a it's a it's your own personal thing you're doing.
Okay. What was I doing? I was doing something. Yeah. There's like a reason like even to this day I still remember like Oh yeah. Yeah. If I want to do input in Game Maker, you do like VK I forgot. Actually, I forgot. It's like VK get or something. Or actually, no, it was I I I forgot. I forgot actually is down and I was like VK underscore and then up or down. Or if you're typing letters, you have to do O R D and then No, you type O R D and then like uh stop it.
ORD and then like the letter of the thing on the keyboard. You want to get like this.
Not without the without this though.
Not perfect, but you get the idea.
It's like get key down. I think get key down parenthesis VK up and then if you want to use letters OD game maker brained.
Are you originally a game developer or do you have a different background? I was originally I mean I never worked professionally in games. I just made games for fun. Okay. Update visual.
Actually, what am I doing?
No, not get hole index.
We get that.
Should probably get holes as well.
Should probably just cash this at some point.
Yeah, we should probably just do that.
Or actually, better yet, instead of doing a net, we'll just use a lifetime function.
And this gets changed to be holes. We no longer do this. See instead of become preceded by underscore we're good and then then we just do raw actually no we do I like this more dot It's main texture equals current dot image. Where are you? Where are you?
Whole front. Oh, we might have to have like a couple here actually.
Yeah. Oh, this is to be a little bit of a pain.
Have a sprite binding animation system.
You take in just texture.
Oh, wait. It can I just do this? No.
Okay.
Do I really need to make my whole Sprite binders? I don't know. That was a open door I gave to myself. I'm not sure if if I'm actually going to utilize it.
What's going uh Sis Hall, good to see you. Hopefully you're doing well. Asky, Sprite, Triangle, Gosh, and Splat. Oh my goodness. The the pipeline is crazy.
What are you working on? I'm doing some big refactors on a my game project.
So, we're breaking stuff, but it's good.
Sometimes I just got to do that in the codebase, you know, just rip out everything.
So, we get this, we set this.
We should probably Yeah, there's other things we need to do.
There's going to be things like Okay.
And what are we going to do?
The simple logic of this is going to be equal to uh you have to do math utility wrap. I have a wrap function we're going to be wrapping and I forgot the order of this as I usually do.
Okay. And I did overload so I can't just Yeah.
Yeah. You tell me the data types but not what is what there's value and minmax.
Of course I should have just known that.
Okay. Value minmax. Okay. So be current index minus one zero and then uh holes count.
Okay.
This makes sense to me.
monor repo mono branch.
But what what's going on here?
Okay, so we're going to do the same thing here except now we increment current index + one simple.
And now we're going to do Uh clicked observable as observable. Yep.
Go like this. Put it right here.
Okay, so we have left that arrow. We have that behavior. We should probably also do add to that' be kind of important.
Cool. So we have left arrow, we have right arrow. We should probably Yeah, we're calling the correct function for that. Perfect. Okay.
Now, we also have to do update visual call here so that the UI is in the correct state after you press these arrows.
We're probably going to do this on perform action maybe. I don't know.
We'll see.
So, oh, you know what? We also have to have another image here indicating what state the hole is. Is it purchased? Is it um available for purchase? Do you have too much, too little money? What's the deal here?
The coding manifesto. No dev push straight to prod.
Oh, we mono as in one. So, one repo, one branch. Exactly, dude. That's beautiful, man. That's how it's supposed to be, man.
You can't be out here wrinkling our developers brains with branches and git flow and CI continuous integration.
Don't do that to developers. No, honestly, just having a repo is kind of too much, man.
If it was off to me, we'd be on on flash drives. We'd have one big script that is the entire code all in within one file.
One computer which is the programming computer and in one chair the programming chair and each developer gets a time slot on that machine writing onto that one file.
Beautiful.
That's how development should be. Mono file. Yep.
Mono file.
And the cool thing is that we never save the file. It lives only on heap memory.
[laughter] We never write it to disk cuz backups are for cowards. And we only build once. Mono build.
And if it works, it's great. And if it doesn't, the company goes under.
That's a real man's startup. [laughter] That's a real man's startup right there.
That's a startup that that'll give you chest hairs.
That's what I'm saying.
Oh yeah, we have to figure out what we're going to do here. And right, we have to have current whole state which we have to kind of derive that from a number of factors. In fact, maybe I should just do that here.
So the enum is going to emerge again, but it's going to be very contextual to just this maybe not. I don't know.
All right, bro. What's going on? How does it take for How does it take for you to master Vim? I don't think I think you can get very usable at Vim within like a week or two. That's been my experience.
Vim has been uh like the first week is bad. You're going to be answering emails in a very weird way. You're going to mess up stuff.
You're going to send embarrassing messages to co-workers, like halftyped out messages, and that's just going to be your life. Okay?
However, however, once you get past that one or one week and a half, you're going to be that's your brain enlightens and you're going to be able to just do stuff cuz really like Vim, there's like there's only so much you really need to know honestly to like do a lot of the things you need to do.
Like, yeah, you're going to have to get used to navigation. So, JK HL, that's one thing. You're going have to get used to the idea of just being in a certain mode at any given time.
But then, like, you know, after that and then endlined, end of word, and beginning of word. That's not that bad.
Like, think about it this way, right?
The E key takes you to the end of the word. The B key takes you to the beginning of the word. So, that's not a big deal.
And then and then like up and down like jumping up and down. It's just controll D for down, control up for up, control U for up. So it's like it's it's actually not that bad.
And then like yeah, there's visual mode.
You can do a bunch of stuff with that, but like you know, you just need to know shift V and that's like literally all I do. Shift V to delete. And then of course there's yoink input, right? So, YMP. But that's about it. That's about it. That's literally all there is, man.
That's all there is.
It's going to be beautiful, man.
No, don't be like that, Cocoon Nut.
Don't be like that. There's a I understand the trepidation for Vim. Vim can be kind of scary, dude. It was scary for me. I remember the first week of doing it, I was like, "Oh my goodness, is this all right?" cuz you're like a you're like a little butterfly in a cocoon, right? You're like a little caterpillar who went into a cocoon. And that first week, you're in the process of melting from a caterpillar into eventually a butterfly, but you're not a butterfly yet. So, you're in this like weird soupy state. And if anyone rips open your cocoon, GG. Now, you're just living like a like a puddle, right?
But you just got to commit to it. You just got to commit to it. You're going to be in the cocoon. Your body's going to be melted, but once you get past the cocoon, you're going to come out as a beautiful vim butterfly, a beautiful Vim butterfly, and you're going to be flapping your wings over those who don't use [laughter] Vim.
But just know that in the process of learning Vim, you're you're going to your body's going to melt down a little bit. And it's okay. It's okay, dude.
It's okay.
It has to happen. It has to happen.
Just don't get out of your cocoon early and you're going to be fine, dude.
The configuration. Adam, you don't need a configure Vim. I'm using a default Vim. That's all you need. That's all you need is default Vim.
Life is good, dude.
And there's actually a website called Vim Hero that has some type things to help to learn Vim Augis. Let's go.
Royalty. out here with the the elite knowledge. Vim hero.
My underwater navigation model failed off the coast of Queensland, Australia.
I neglected the reef factor. [laughter] That's a good one, Timothy. That's actually a good one. I'm convinced.
Let's go, Kai. We got a Vim believer in the house.
Space Max Wars.
The butterfly is not the same being as the caterpillar. The brain literally dissolves. But another fun fact, Stroen.
The butterfly carries the memories of the caterpillar.
The brain. The butterfly carries the memories of the cat caterpillar.
Um, what am I doing? You're going to be called privately.
Update visuals, right? They're sure doing stuff here. We set the hole here.
What else do we got to do? Is that it? I guess maybe we'll be fun and add some flavor text, too.
Yeah. And I'm using Text Mesh Pro again, guys.
I know. Maybe I'll switch back to my own custom type U text system. For right now, we're just going to use Text Mesh Pro to get it get this going. And then [clears throat] I'll wrestle with getting my cool looking font system back in.
I mean, it's there. It's just it's just a it's a hassle to set up. I'm not going to lie to you guys. The system I wrote is a little bit of a hassle to set up.
But when she's going, she's going great.
Kind of. Unless you have like a font that doesn't Don't worry about it.
Anyways, uh what are we doing? I should just What are we doing, dude?
In fact, you just going to do call it hole. That's all you are.
Oh, there's some other things like d a to like delete a word.
Just little stuff like that. Little stuff like that becomes handy though.
Okay.
That's why you're mad at me. Okay.
Okay. Cool. So, we have this name, description. We're going to add some fun flavor text.
Does it have the memory? I know caterpillars have things called imaginary discs. Those are the things that don't dissolve in the goop and they know which parts they become. Yeah. So, there's like a research paper that was done where they um I forgot what it was, but they did some like operate operant conditioning to a caterpillar or like um I forgot what it was. I think they shocked it like when I can't remember what it was. It was some thing where they they introduced some stimuli to it with a sound of like with a certain sound and they conditioned the caterpillar to like you know react to it and then after it turned into a butterfly the butterfly react to the same stimuli which indicated that the butterfly still had the same memories of the caterpillar which is pretty gnarly.
But that's just off my memory. I don't recall the actual specifics.
I just remember hearing that one day be like, "Matt's pretty cool." Okay, what are we doing? Right. So action. So what are we going to do? We have to get the state.
So first we're going to check to see if is purchased.
Darn you, Dinkleberg.
Am I gonna have to do this every single time?
I probably should just cash it at this point.
Okay. Okay. What are we going to do?
We're going to be changed.
Oh, yeah. Okay. Almost. But yeah. Oh yeah. Nope.
Nope.
Almost.
But nope.
But super close.
Okay, that was not a simple Vim thing.
That was like a multi-step thing with Vim that took me a while to finally remember. So yeah, don't don't don't stress if you can't do that. That one I can't do that one. It doesn't always work the way I want it to either way, too. Okay, so if it's purchased, then we're going to do the it's purchased thing and just return early because there's nothing to do. Um, if whole states try purchase hole.
Actually, this this is going to change based off the state of this button because the button can be in a number of different states that have different like desired behaviors. Now that I think about it, there's a state where uh the hall is like either purchased and unpurchased and the actions are going to be different.
So if it's purchased, you actually want to equip the hole.
try equipped the current one we have selected and then return or I guess and then update visuals and then return otherwise if it's not purchased then we attempt to do the purchase and we'll do different things based off of you know play bad sound or something or play good sound and then change state to equipable.
That's going to be done by update visuals, I think.
Yep.
Uh, I'm going to try it to be honest.
Let's go. Royalty.
Uh, Accidentaltosaural. What's going on?
Accidents.
Hey, he's back. Yeah, I'm back. Hope it's going well. Thanks for being an inspiration to me. Keep learning. Well, I'm glad I could be an inspiration, man.
But you got it in you, man. The desire to learn, desire to do that stuff, man.
You got it, dude. It's all in your wheelhouse.
Don't put stock in a put in discipline. Drive your boat. I can't say the same thing. Stuffin. I'm very much like a by the wind. I don't know. I know. probably done some streams where I I'm like not in the mood to work on this game and you know we just kind of powered through it. I'm not sure if that was beneficial or not probably but I don't know.
I'm also like I don't I don't because there's I've been seeing these trend of like YouTubers making videos about hey willpower is overrated and I I don't quite agree agree with that either.
But I think there is some value to like capitalizing on just hey dude I'm inspired. I'm motivated. I have a vision for the thing I want to do. Let's just rip it dude.
But I think for me I'm very much oriented around like the vision, right?
So I'm pursuing it not necessarily because out of discipline, but maybe out of like I see the thing. I see the end goal and I'm I feel like I'm so close.
I don't know. I also just enjoy programming, so it's always fun to do this kind of thing.
What are we doing here?
cuz this is going to mutate state.
This is going to mutate state. So when we call update visuals, it's going to fundamentally like update it correctly.
So like we're having something respond to the user input directly, but then we have update visuals just setting things correctly based off of that. So the thing we need to do is button state which is going to be like I don't know are we going to have to do this comparison again I guess it's going to be based off of is purchased I guess we have to have another thing is equipped.
M interesting.
So these are the same. That means you equipped it.
Nice bad state. No way. What? This application, you're not my UI logic. Get out of here.
Okay, now we're going to have our divergent behavior.
So, how we're going to do this whole states?
No, no, no. Net is equipped.
And another one of is purchased.
Yes.
Okay. So, if it's purchased, we're going to have this like extra condition of his. Is it equipped?
Otherwise, I don't like this. I don't like this at all. But I can't I feel like this is going to this is just going to emerge naturally.
If this is the last state thing we do, then I I could do early returns to kind of make it more reasonable because then we could do like crypt it here. We have to check to see if we can afford it to can afford.
That's an important distinction.
And that requires something else.
Or maybe you just like because this is all contextual to the same thing.
Can afford.
And it's just going to be Nope.
Actually, no. What am I doing?
Balance.
Okay, we we can't escape this. We actually have to expose balance.
Yeah. So, we're going to just do I'm pretty sure that's how that works.
Or maybe I can just do like a public get and private set thing.
I'm pretty sure I should be able to do that.
Change that a little bit be to no not veence veence veence electrons. Dude, you guys know about veence electrons and the octet rule and about ionic bonds and covealent bonds.
Neither do I, but it's fun to say those words.
What kind of keyboard is that? It's a It's a Eerodox split keyboard.
I'm new and I think I'm coding is hard for me, but I like like it. Should I pursue coding or do I need to learn the basics? I mean coding, what basics is there beyond coding, man?
I mean, if you like it, just do it, dude. I think that's actually the best way to approach it is, hey, I like programming, so I'm just going to keep doing it irrespective of, hey, is this going to get me a job or not or whatever? No, dude, just program.
And I think you'll learn some of the basics along the way by doing that. Um, that being said, there's things that I would recommend.
There's things like, you know, I could tell you like, hey dude, you should learn some basic C, learn some Malik. Actually, first look this we this is like the basic rubric, but like it's it's good stuff to know like learn what primitive data types are, learn what variables are, learn what strrus are, learn what a for loop and and control flow is. So like if statements, switch statements, learn your loops, for loops, while loops.
Um, you know, and I think if you do a project, you're probably you're going to encounter this stuff anyways, right?
But that's like the most important like basic building blocks that every language pretty much has.
Wait, what do you said? Craft and strudel. I have a machine that can tell your country of origin just by listening to your accent. When I use it on you, the result was 80% Naples, 20% cat, meaning you're a cat from Naples. The magical kingdom of Naples and the magical princess of cats. You're a n neopolitan cat.
Hey man, you know what? I'm gonna I'm down. I'm cool with that.
Oh, this in Japanese.
Okay. I don't know enough. I need to practice something something something. G.
Well, I'm saving this, dude. I'm going to take a little In fact, I'm going to Where's Flameshot? I'm taking a little flame shot of this.
That's funny.
I'm not going to lie, you scared me a little bit cuz I was like, "Oh, is this like the the beginning of it was like, is this the am I getting docked today?
Like what's [laughter] happening?"
But I'll take I'll take being a cat a Napoleon cat.
Thanks. Thanks for hanging out cuz going to wander off for a bit. Might catch you later. You have a good one, Syndicate. I got to go. We're gonna go read that.
Yeah, Syndicate. That was a pretty That was a pretty cool one.
Thank you. I like Thank you for that.
Try purchase haul.
And uh I was doing something. Okay, guys. One second. I need to use a bathroom. I need to take a little bathroom break. But um what's a good uh high score theme? Let me put some music in the background real quick. I'll be right back, guys.
Okay, we're back. That wasn't that bad.
That was like one or two minutes.
[snorts] That was a quick one.
You know what, guys? Remember to refuel.
Remember, it's time. You got to refill a little bit. Nothing's more [laughter] refilling than some Cheetos.
Gosh, dude. I wish I was uh you know, I don't want to be It's weird, right? I have a moral conundrum, right?
cuz I don't we're not monetizing this channel. I don't want money to be involved. I also feel weird sponsor like taking sponsorships. However, I'm not going to lie, if I was sponsored by like Cheetos or something or like famous Dave's barbecue, like we'd make a whole thing out of that. [laughter] It'll be hilarious, dude.
I wouldn't even be hungry for barbecue sauce, but I'd be like, "All right, guys. Try to get some It's sauce in time. And then we just dump some some some Dave Sweet Baby Rays into our I forgot what the the brand is, but we'll be we'll be doing goofy stuff, man. I got to say these puffs though, I can't look at them because like I'm looking I have this association of Toy Story with that toy collector and whenever I see this and I eat it, I'm like, "Oh yeah, that's me.
I I'm I'm I am the middle-aged man who's obsessed with toys."
Like I feel like I'm taking a step towards that man.
But it's delicious. So, like, what can you do, man? Hey, has no food coloring, so it's totally healthy, guys. No food coloring in these, so you know, it's basically an apple.
Baja Blast sponsorship. Yeah, dude.
Yeah, if I get a Baja Blast sponsorship, I'm going be like, "All right, guys. You know what time it is. My keyboard sounds a little dry. It's time to lubricate it, and we're just going to pour a Baja Blast all over the keyboard."
Some people use lube for their key switches. Here at Cozy Cabin Games, we love using Baja Blast.
What's going on, Loly? Lol. Lol is a place to be. Yeah. One day you'll see a bit more of my basement.
>> [laughter] >> Great movie. A great movie. Great movie.
Toy Story. All right, that's enough Tetris.
I'm sorry. There's people who don't like snacking, but sometimes I get a little bit peckish.
He blamed man for being a bit peckish.
I don't think you can.
Uh, we're going to do some gaming stuff at some point, dude. I don't know, guys.
I don't think I I think I want to keep this channel just focused on deving.
I asked Morgan about this, but I wonder Syndicate, what would be your preference? I almost thought about like doing game streams on just Twitch only.
Twitch is I go to Twitch just for uh playing video games.
That's a cabin off hours.
Okay. So, what do we do here?
Right. So you have to have a couple different states because we have honestly the people mono keyboard the whole team on the one keyboard clacking away that'd be hilarious.
Brought to you by Taco Bell explosive.
Oh, >> I would love to get the most un I would like totally monetize the crap out of this channel if it was for for a funny uh sponsorship. I'd be so down for that.
Like I'd put like a Taco Bell symbol on here, dude. My background would be just like Taco Bell.
It wouldn't be nature. It would just be like, I don't know, a zoom in of like the Baja Blast with the Taco Bell logo on it.
[snorts] I would get like a I would get like a little bath and have my keyboard be inside of it and it'll be like like programming on a keyboard submer submerged in Baja Blast ASMR.
do something so stupid for that.
This is going to be called you are broke.
The you are broke state.
Yep, that's a state. The Whoopsie, you're broke.
Sorry to tell you this.
If you don't like snack snacking someone Oh, snacking someone definitely hurt you as a child. Y'all need to use some like punctuation or something. I read these statements and it makes me it makes me think you're like a crazy person until like I fill in the gaps.
The bathroom [snorts] breaks just be the bell gunks on [laughter] repeat.
Oh my goodness.
A fluid cooling exclusively full of Baja Blast. Yeah, I'll put like um I'll make my CRT Baja blast cooled.
We'll baja blast everything, dude.
We'll baja blast his whole code base, dude.
What am I doing?
I'm doing something. I don't know what I'm doing. I'm gonna copy these.
That's what we're gonna do. That's what we're going to do.
I'll totally be That would be fun.
I should probably put my email out so people can contact in case Taco Bell like in case like the VP of marketing is watching the stream and they're like, "Geez, man, I want to get this cozy guy to sponsor our Baja Blast." They got to have a contact. They got to be able to contact me.
Okay.
Um, no, you're going to be false and you're going to be you. We can con we can condense this into like Oh, this is going to be so beautiful.
You're going to see like this whole thing get condensed. Oh, baby. This is going to be beautiful. Unless it's not, but I think it's going to be absolutely beautiful.
Just you wait.
So, truthfully, we only have three booleans here.
Bull purchased.
Yes.
Equipped.
quit. Okay. Brandice.
Okay.
Then finally can't afford cuz we have these things. So the purchase button is only available if purchased is false and equipped is false.
I mean this is kind of supple. It shouldn't be equipped if it's we could be extra robust. Ah whatever.
If um actually no this might be yeah irrespective of can afford you are broke is active if purchased is false and uh can't afford is false and equipped is false and then equipped is active if purchased.
And yeah, that's it.
Easy, simple.
Gaming crowds are toxic. I get toxic myself when among those groups. Yeah. I used to be like super into competitive fighting and I used to love like I don't know. There's something about being in a crowd that just gets you like I don't know man.
You stream a ging channel versus coding channel. That's a tough call. You've cultivated a really chill friendly gang here. You might accidentally attract toxic crowd. That's true. That's true.
But what if you what if you what if I'm what if I'm toxic? Like what if I start the gaming channel and we go Darth Cozy Darth Cabin.
There's no longer the gaming cozy cabin games.
This is the um I don't know unczy dungeon games.
As a bozo, I have to agree.
Never heard of Steve Jobs.
I never heard Never heard of that guy either.
Cozy Bozo.
All right. So, we have these.
What's wrong here? Nope. That stays incorrectly named. I don't care.
This truth table looks correct. And now we save ourselves this whole if statement.
Beautiful.
Isn't that lovely?
So, I believe this is correct.
And um whole current whole state.
We're going to have to uh set the correct image for that.
Or do we?
I'm not going to worry about that right now.
Okay. Okay, I think we have the UI implemented for the most part. I think it should just be fine. Don't you love writing a ton of code and not testing it at all?
That's a great place to be in. Dude, nothing but confidence.
What was it doing? Huh?
What?
Oh, right.
Balance.
Yeah, we're doing balance is um greater than or equal to whole dot price.
Yep. Okay, we're good there. Would this compile?
Of course not. Why are you mad at me?
Oh, right. Cuz you haven't figured out the buddy system thing. We have to implement that, too.
the the dark side.
We have cookies. Oh my goodness, Travis.
I haven't heard that meme in forever.
Mono compile. Only compile once at the end of the session. Yep. Mono compile.
This is a [laughter] [snorts] We're unironically doing like the the whole mono thing, dude.
Splendid even.
Okay, we have a thing here for the buddy. Buddy, I'm less I'm less confident about how we're going to implement that if I'm going be real with you. If I'm going to be real with you, not sure how to handle that.
if it's gonna be based off of are you purchasing buddies? Are you discovering buddies? I think we're discovering buddies.
I don't even know what the UI for that's going to look like. Honestly, if I'm going to be real with you, don't know how we're going to go about presenting it. Maybe there's going to be like a living room or a separate room that's going to have all the animals hanging out there.
That's probably what's going to be.
That's pro That's a Yep. We're going to just do that.
Yep. Okay, cool.
So, we're going to do What are we doing?
We're doing well, we have the chip upgrade save thing, which is going to be really the buddy.
I don't have a diioetic way of representing this. The buddy upgrade save the buddy and an integer increment upgrade buddy get level of buddy and then yeah not sure how we're going to deal with that. I'm going be honest with you.
Like like scoop. Okay. Um, anyways, you just call this like the buddy system or something. Actually, I'm going to just call it the buddy system.
That's all it's going to be called. It's going to contain the upgrades and it's going to contain your currently equipped buddy.
Yeah, I like the buddy system.
I like this.
If you cannot have a little bit of fun in your codebase, why code recreationally, am I right?
Cozy bozos drive hot enough for rigs.
Dude, that sounds like a like a a very under the table shop.
The thing is cozy. I love you, but you didn't even repeat my swear when I typed it out earlier. Come on. I'm sorry. I like keeping things PG. What can I say?
I know exactly what the dark side looks like. I used to hang out with J.
Who's James Midlife Crisis live stream?
It's wild, dark, but sometimes funny and 100% not PC way. Has the Oh, okay. Let's go Bene. The setup is really cool. envious of that CRT. Hey dude, you don't have to be envious. You can find one for pretty cheap depending on where you're at. I got this for like 50 bucks, $50.
And the converter is not that much more expensive either.
It's not too crazy. You can have this.
Not mine. This is mine. You cannot have this one. But you can have one like it.
Similar to it, but different.
Unless it's the same brand Magnum Box and everything, then it's very similar.
Okay, what are we gonna do, dude? What are we gonna do?
Hey, what's going on, Sea? He's gaming.
I'm not gaming right now. I'm breaking things. I would like to do a gaming stream one day, but right now I'm just in my basement breaking code.
And like last last stream, we're going to make sure our parents don't know about it.
We cannot let our parents know we entered STEM.
You're gaming the work. Yes, gaming the work.
I'm working to game. That's really what's going on here. Buddy increment get level. Okay, we made a buddy system.
And now let's get the buddy reserve telling your mom you're breaking the code. No, don't tell my mom coding.
Like yesterday or not yesterday, last whatever.
I still remember my dad sat me down and said, "Son, I don't want to see you becoming an engineer. Don't go into STEM.
Why can't you just do a stable job like being a free form guitarist?
Son, how dare you?
All right, I I'm I'm trying to do a joke, but at the same time, I forgot what I'm writing here. Is public void what?
Bull try get buddy.
And we have to have like a public private hashet of like your buddies unlocked.
There we go. Or make it new. Hopefully you're doing well though.
You sure you saw him say that to me?
Yeah. Thanksgiving.
He was like, "How dare you son become a in I can't believe it, son. Son, you have a 401k.
Who are you?
I don't know you.
Hopefully you're doing well today though. Hopefully the 3D modeling is treating you well. Getting that work done. Did uh b try get buddy.
Try equipped buddy. That's a better way of saying it. Equipped.
Equipped.
Maybe today we'll do some pixel art. I still have the designs. my niece. This buddy system is not my idea. It's my niece's idea. And she gave me these sketches with the buddies to add into the game. Cozy cabin employee number one. So, um, we'll see if maybe you can put the buddies in the into the game once we finish unbreaking the code.
Packing for grease. Oh my goodness.
You're actually You're grease time.
Is it greasing time?
Let's go, dude.
Well, it sounds like a lot of fun.
Hopefully you have a good time in Greece.
How long is that flight?
Out of curiosity.
When I do my flights to Puerto Rico, I feel like I'm dying and it's only 5 hours and I'm like, "Oh my goodness, how do people fly super international?
Okay. If unlocked contains buddy turn true false.
Okay.
like 10 hours. Jeez, dude.
Child labor. GG. What?
Real F3 gaming. I see you all again.
It's good to see you, man. Do you have any games that are playable that I could check out? You can check out my Newgrounds. Uh most of the stuff is not like I don't know. They're they're pretty old or they're very underbaked, but uh you can look at stain world prototype that's on there. New rounds.
It's under tricksel bit.
My old handle. The man I used to be. But now we're we're cozy Gavin guy. Yeah, we have this one.
Yeah, this is the prototype that I whipped up for like low poly day on Newgrounds if you want to check out this game.
Yeah, it's a whole thing.
You know, for as rough as it was, I really like the ambience of this game.
Yeah, you can check it out and uh you can be the people love this game. The people absolutely love this game. People have said such things as let's see uh let's see here. Let me find some good ones. Where's the good ones? Ah, there.
Oh, there's not actually they're not that hateful. I was trying to find one.
I remember like being when I dropped this case. I'm like stuff. I was like, "Oh, that kind of hurts." That's all right. There we go.
The people love this game. As Sarap Tulu said, game is ass. I could not find a way to keep moving because it's so flipping impossible to complete. So yeah, clearly is a game meant for everyone.
Universally loved, appraised, and you will see it at the Game Awards show.
[laughter] Yeah, we'll see.
Um, we're going to come back to messy mansion and actually uh finish that game up probably like you model on that plane like 3D model. You confuse me. I was like, dude, what do you what do you mean 3D? What do you mean model on the plane?
You walk down the runway or something, dude. Like what kind of plane are you going on?
Dang. Thinking of going to the Game Awards. Can't wait to see it there. Yep.
It's going to be fantastic.
Yeah. I can't wait for my rabbi to get performed at the game show when we go to present. It's going to be great.
Like a digital picture of her drawing because I haven't been able to make it out once. What's going on here?
Maybe help with a family. Biz. Really?
I'm not even gonna say what I used to play on Newgrounds. Okay. Well, that's gonna say secret. Dude, what stay what happens on Newgrounds stays on Newgrounds. Dude, what are we doing here? Write current equals buddy.
Otherwise, we don't be no opt. Perfect.
I'm happy with this. I need to figure out the UI for this. And then, well, we're going have to do some uh assets very soon. Guys, I have some scary news for you. You're going to have to see me 3D model some point soon. It's going to be terrible. It's going to be It's going to be rough, okay?
But we got to do it. We got to We got to do some 3D modeling.
What can I say, man? We got to get that 3D flip phone modeled out and we have to do the cool menu idea now that was brought up last stream like and I'm thinking about doing like I'm cuz I want to have the keychains on the flip phone too cuz Anuska brought that up last stream and I was like dang that's a great that's a great freaking idea but now I'm like am I going to have the main menu the pause menu be computationally more intensive than the main game cuz like to do that you'd have to actually have like a physics collider on the the flip phone and the chains and there's going to have to be like simple like tether constraint to it which is like not crazy but it's just funny cuz it's like the only thing in the game that's really doing like physics computation like that. So it's like I've never seen a game where when you pause the FPS dips down. [laughter] Usually it dips up.
I don't know, dude.
I need a CRT. That looks cozy. What WM are you using? Window manager. I'm using i3. Gavin. I3 is fantastic.
I know. I was talking to a loot.
Newgrounds legend. Yeah, dude.
I wouldn't say Newgrounds Legend if I'm going to be honest.
But Tom fulf that that Tomathy Fulper.
Mhm. Yep.
Ignore the fact that he like follows quite a lot of people there, but just just forget about that for a second.
I got noticed.
All right. What am I doing? Yeah, I'm doing data stuff. We have to get like the uh Yeah, we have to do stuff.
We have to do stuff. We have to get I don't know hall state. We need you.
And then we have to get the buddy system.
No, that's not going to be crazy to do.
What's going on [snorts] here? Couldn't you make it an animation play out instead of simulating physics? Yeah, I was thinking about like potentially baking it [snorts] so that you don't have to do that. There's two caveats.
I don't know how to do that in Blender.
I don't know how to do that.
So, that's one thing. The other thing is it'll be kind of cool if it was a little interactable. Like if you move the phone around to have it actually react to your user input.
I don't know. There's something that's kind of cool about it.
I mean, I'm kind of joshing about the physics computation cost cuz like we're going to we're not actually going to model like have the actual things used for physics calculations actually be the geometry. We we'd use simple primitives like spheres which are super cheap to calculate collisions with but like at the same time it's kind of kind of goofy because we've gone through quite a like the whole idea of the game is that I want it to be able to run on my cheap on a cheap $40 phone that we got and so far we've been really good at that and I'm pretty sure it should be fine but I haven't profiled it. So, we need to test it.
And based off of that, maybe we'll actually have to bake it. In which case, I don't know what we're going to do.
I'll probably I don't know. I'll figure out something.
Oh, dude. We could always do like FMV.
[laughter] That'd be actually kind of funny if we don't actually use like we don't bake the 3D animation, but instead we do like we just render like like a like a GIF or something and render [laughter] that.
Oh, that would be so goofy. That would be kind of That might kind of fit honestly, but [laughter] Oh, dude.
That's also like really goob trooin.
Maybe I could do like uh some kind of uh get because you can access the CPU information. So maybe I can be like, "All right, your phone's strong enough.
We'll do the actual thing." And then those with super old phones or something or underpowered phones, we just go, "Hey, you got the you got the gift treatment.
Honestly, that phone pause menu idea is so cute. I just need to see it come to fruition. Yeah, it's going to happen soon. I was thinking about doing it today, but we're in refactor land right now. The thing is like I'm not a detailed like it's weird, but I'm not a detailed person, so I'm not sure what I'm going to do. Maybe I'll like make a poll or something in the channel.
I thought I'd type this out.
I don't know. I need to figure out what charms to add to this flip phone cuz it's not enough just to have a flip phone. We want to have some character in it. So like I have to have some stuff.
It's kind of like uh a new scarro like having a donut or like maybe the little but a little version of the buddies.
So maybe I'll start with that. I don't know though.
Yeah, maybe I don't know. Maybe I would do I don't know.
We'll cross that bridge when we get there. If not, we can just keep it kind of simple, but and have it be a static thing, but there's a game that does like the 3D UI really well, and I kind want to do that as well. Okay, what are we doing? There's exceptions happening somewhere for some reason.
Not exceptions, compile errors. And it's probably due to here. You're right here.
Yep. the buddy.
I actually love that we have a It makes me so happy typing in buddy system. It's like how I have a friend in the code.
Usually the code is my adversary, not my my buddy.
have it on theme with the game. Game UI database is a website we all use to collect ideas. What is there a link? Is it just called game UI database?
Yeah, I want this game to be very cutesy though. So like we're doing we're doing uh Yeah, I'm trying to do make it I'm trying to do uh integrate all the elements together.
Yeah, but it' be kind of cool to have like at least little charms of the buddies on the phone as well. Maybe even the but maybe the charms change and reflect the state of the game.
Like you have buddies, you can upgrade them. You have like your engine and stuff that you can upgrade as well. So like maybe you know you have different charms of the buddy like maybe how many stars the the buddy has also gets added as charms there and how many whatever engine components like the most upgraded thing is like a a charm in there as well.
That would be kind of cool actually cuz then like it's not just random. It's like actually representing parts of the you know state of the game.
I don't know. But I at the same time I want to have some like something more unique there though.
Something that's not just game data, but rather like communicate something about the characters themselves.
I don't know.
Ideas. Ideas. Equip charms as you level up the charms to change. Yeah. Yeah.
Yeah. Yeah. Or maybe it might be cool to have the player be able to customize that, too.
Just a little detail, but that would be kind of cool. Hey, is the game not broken?
Can I run?
Let's see how I'm kind of scared cuz we did some big we changed numbers.
[laughter] Yeah.
Yeah. Imagine that. Like Oh my goodness.
Yeah. like this flips up and then the phone also slides along with it and then opens up and has like all these UI options are on there.
Like that would be super cool. Like we did a sketch last stream of like what this might look like which is uh this and then like you'll see the player's thumb actually pop up and like navigate the UI on here too.
I think that would be this is like the move, man. We keep this cool shader. I'm happy with the shader.
But we also have that on top of things, too.
But yeah, the game's not happy. Game's not happy. Game is not happy. We've done many things, many of things, and the game's not happy.
Where does the things bad things happen first? Oh, the buddy system, isn't it?
Actually, no. It's a ship config. What?
What?
You're not happy?
Why are you not happy?
I thought we do a new Let's see. Balance data saves run record. Do we not add a ship config?
My stars. Whoopsie.
Let's fix fix that real quick. And we also have to add the buddy system. Easy.
Hey buddy, have you worked on AAA get type games? Nah, I'm low screaming. I love the idea.
Let's go. No, I haven't worked in AAA.
I'm I'm working uh I work at Jason. I'm a I'm a software engineer in a uh in a not game related field at all. But a lot of the skill set transfers over honestly.
And honestly, a lot of the engine development stuff ideas I have kind of kind of like been inspired by things I encounter over there, which is pretty cool.
It's like so bizarre cuz I see like super crazy cutting edge stuff, but it's like not applied for games at all. It's applied for a very different use case, but like It's very It's very odd, but it's really cool, too. It's really cool. But, um, yeah, we're going to see what happens in Messy Mansion, man. Cuz I'm still like I'm on the the cusp of like just saying, "Yeah, we're just going to rewrite it from scratch in our own engine project." But, I don't know. We're I'm probably going to take a break and we're just going to do the Asky Quest game and then go from there.
But yeah, I'm I'm thinking actually like do I want to do the charm upgrade thing cuz then all of a sudden like you can collect buddies from the stages and that's cool. You can collect charms. Maybe we have like conditions like maybe you only get charms if you do a specific type of like constraint or whatever.
Um, like I wonder cuz maybe you can do a bunch of stuff like that like hidden conditions and then you can have like a But where would you do that, right? Like the level the the the whole UI of the world exists on like a real living room, right? Like there's a physical living room that you're in and there's stuff there.
So like the shop Yeah. We're going to make like a Y2K website and you're going to be on a CRT cuz why? Why not? And you're going to be buying stuff physically from like a website for your machine. That makes sense, right? The buddies that you find in the stage like they're going to be you're going to have a living room and each buddy you collect is going to be like sleeping somewhere on there or relaxing or doing something.
So like and that's how you select them.
So you know maybe one of them is like watching a TV over here or maybe one of them is sleeping on your couch.
And then like as you find more buddies while playing the game, they're going to populate in this living room and that's how you select them. You just choose them from here, right? So there's a physical place for that to exist. Um the leader the leaderboards, you have a physical whiteboard that it looks like the character is actually drawing their best records on this whiteboard. Um and it's in the physical area, right?
The camera zooms in. You see the high scores. Great. So, like we have physical locations for the shopping, the buddies, high scores, but we haven't figured. We don't Where would the charms be for the phone?
That's the thing I'd be thinking about cuz um like maybe the character pulls up a phone or something on the UI as well.
I don't know.
Or maybe a drawer. Like I want the environment to be really interactive.
And I'm trying to think of what would work there.
If you do the changing charms, you just inflated the scope like Xbillion. It wouldn't be that bad actually if I'm going to be honest with you. Like the changing charms could come back like that wouldn't be hard to implement.
What would be hard to implement is the conditional unlock. That's way more specific.
But having charms based off of like configuration, like what you've implement or what you've, you know, what upgrades you set here or what um buddy you have equipped. That's fairly easy to do. The only the the bottleneck there would be assets.
The conditional thing would actually require some architecture. It wouldn't be that crazy though.
It might be actually.
It would it'll be very variable.
H. Yeah, that that that's that would be that the conditional unlocking would be crazy.
That's kind of what happened with Crimson Crown is that the conditional unlock stuff would got insane there and I was like, "All right, we're just not going to we're going to come back to you once I'm a better programmer and then we're going to see how I can architect it."
And uh but actually not even programmer, it was designer. I'm a bad game designer. So, it's very hard to foresee what I'd want cuz I don't know what I want.
But here, it's a bit more of a tighter scope, but I don't trust myself with that either.
So, yeah. Not sure to do the charms.
It's actually a great idea for charms.
Okay. So, like maybe there's a kitchen area or something or like a little wardrobe and the camera zooms in and like a drawer opens up.
And like I don't know.
I I I don't know what how this works.
Like would there just be like a I guess we'd have a tray here and then you'd have the different charms you have access to and I guess your phone would just be boop boop boop right there.
And then like it'll be folded up too. and you'll see what charms get equipped on there.
Dude, I kind of like if we keep the charms very small and finite, the conditional thing wouldn't be that crazy.
And I can make a constraint if I make a constraint where it's like things that are known.
Um, like one could be like, hey, complete a level while using having the minimum settings for powerups and that would be like one charm, right?
like stuff that's known at run at run start would be easy to set up because it's like a simple conditional you can do with like unx observables and composed that way and that would be fine.
In fact, I think most of them would be like that.
I think that actually would be I think that wouldn't be that bad actually.
Like it would be just simply I would have to make a little system for that to under like indicate which ones you had.
Here's the thing. Okay, how about this?
We have to make a spreadsheet and we're going to have like a set and number of like the different charms you have, right? Like that's how have to work. Like charms list.
I don't know what they're going to be, but we can start with like simple conditions, you know, and we can have we have to have like a predefined list of them. So, like I don't know, six might seem seems reasonable to me or maybe nine or something, you know? I don't know what to put here for this, but like it could be challenges like beat a level with lowest um with no upgrades.
That could be a simple one.
collect like or get a streak of uh a streak stack of 10.
And maybe this gives you like pancakes cuz like stack pun, right?
I don't know. I think it'll be along these lines.
Cozy. What's going on? Did you call me or in couch cushions? Like when you find change in your couch cushions. Okay. Or like gumball machines. Or you know what?
Actually, you know what would be better?
Like maybe we could do this, right? But what if we encourage the player to actually interact with the environment?
Because we're putting a lot of work in having a space here. So, what if like the if the player clicks around in certain places like like you mentioned Travis with the couch cushion or something, maybe they'll find the charm there or maybe they click on the drawer from like the main menu. Oh, there's a charm there. So, you get like the player starts exploring the environment and it'll be like a nice little little thing.
We still have to have some kind of like I don't know. Maybe do we want to have UI? Maybe we don't we want to Maybe we don't want to have this at all. Maybe we just let them have a massive amount of uh charms on their phone. And that's like uh Oh, snap. You really played this game a lot.
Yeah. So maybe the charms would be like a Easter egg behavior actually.
I like that actually. I like that a lot.
I actually really do dig that.
Yeah, I'm digging this.
I'm digging it so much. I think we're just going to implement cuz that that is super simple to implement on my end. I kind of like the idea of achievements or something kind of like achievements, but eh or I can tie it to something else like maybe you can unlock certain buddies by doing certain challenges.
I don't know. This is not too important.
We'd have to make uh we'd have to have this be programmatic for uh setting up the charms, though, too.
Let's see here.
Okay, f first of all, let me just see if my fixes have fixed everything.
Let's run it. Nope, not that.
Yeah, I have to think. I have to think about this. I like the conditional thing.
cuz it reinforces it reinforces the uh the main game play.
That's the thing though for me is that maybe it's fine or maybe I can have like certain I don't know set what's going on here.
Oh, you're never assigned, are you?
Yeah, you're not.
So, if you're not assigned, you have to do it here.
And then what are we going to do?
You have to do unload as well.
What's going on here?
I'm uh that's that's that's very odd. That's a very odd thing to say in this environment since we're not talking about that at all.
Yeah.
I don't know, man. Yeah, my reaction syndicate that's just this is odd this game. But if there is, you could implement charms similar to gem badges from Pokemon. They can unlock drawers, cabinets, even safes. Yeah, there's not really bosses, but there's the ability of clo like there's clearing levels, right? or clearing runs, which by the way, we haven't made a decision on this yet either.
I was initially very cool with this idea, but I don't know having to have to have that interrupt anyways if we're going to do the random selection stuff, the random um or the choice system that we have here.
And I want to keep with the theme of speed, but I don't know. These two things kind of slowed things down, but this solves the concrete problem of like the energy thing, right?
And get some agency.
So, I don't know. I might have to sleep on it a little bit more until I come to a consensious consensus.
as achievements, but they all accumulate and you have three slots keychains to show them on your phone and swap them what you like. That's a good that's a good uh idea, Syndicate.
So, you unlock them, but then you can choose them from there.
So, this is back on the table. Yeah, I'm going to think I like the slot. idea though cuz it limits it from getting too crazy.
We'll see.
I like this idea though. Okay, what's going wrong here?
Right, because not only do we have to do this, where is it?
We have a weekend start actually.
Why is this showing unused? It's an event function.
I don't know what's going on. Okay, so we have what do we have here?
Here we go. We have select our hole here and we have current selected.
Um we do call a net and provide supply the balance but if right cuz we have to think about okay we have to think about how this going to be populated and how it's going to handle on load and when we're going to call save and loading as well. That's a big thing. Um, yeah. [sighs] Yeah, I know it's the issue. Let's do list.
And that's going to cause certain things to break. Unless it doesn't, I feel like it should. Yeah, it's breaking it over there.
This doesn't return a boolean anymore.
Doesn't return anything. It's a void.
Let's see here. I have a Napoleon. Okay.
Okay.
Ice creams as I get close to my little project polish completing. Let's go, dude.
I was going real. My bad, dude. I wish I knew what you were talking about. Either wasn't paying attention or missed. Yeah.
And there's also another chat, too. So, sometimes there's some context that's missing cuz uh there's another chat that's going on. I'm using KT Strawberries uh Cyber K as my top tier talent. I could poss probably come with thousands of ways to implement them. Yeah, it's fun.
Brainstorming is super fun. It's helpful too cuz you know as a pro like programming this I get very zeroed in and focused on stuff right so there's things I kind of neglect or you know don't consider that's always helpful to have some other other input.
Honestly, I used to meet weekly with a friend and we just uh like he's not very technical as far as like development is actually concerned, but he is he was super great to just bounce ideas off of.
Good friend of mine.
Okay, cool.
This should be good for now. I'm not happy with it. We're going to have to actually do like a asset thing, a registry or something, but it is what it is, dude.
It is what it is. Okay. Where's application?
It's going to be a bit more straightforward though, thankfully.
Or if I want to, I can do like uh No, no, no, no, no, no. Okay. What are we doing here? We're doing Where are you?
Oh, the application's at root level.
Okay, never mind. I can't do that there.
So, I'm going to have to go into bike config and create a whole thing just for for this. Otherwise, I can like No, I don't want to. I want to just use the script a lot. Uh, okay. I understand why I did the things that I did before. And we're going to do them again. Slightly different, but the same.
It is what it is. But it's going to be a little bit more manageable, I think, because I'm actually going to separate it out.
whole registry.
[snorts] Reuse assets as charms. Yeah. Well, I want the charms to be 3D though.
That's the the kicker. That's the big thing.
I don't know. Actually, should I should I actually keep it 2D? Cuz like the game's 2D present, like it's presented in 2D. It might be very disorienting for having actually might be a bit disorienting to have um maybe not disorienting but just a little bit odd to have an a 3D asset pop out of nowhere.
I think I'm just going to have to prototype it like test to see if we like how it looks and if not we'll just flip to like switch to like 2D elements in that and transform them that way.
I don't know. But I like the 3D though, dude.
I like the 3Ds.
There's a part of me that just likes it.
Be 3D assets would be crazy. Having the real world be 3D assets. Yeah. No. So, we're doing that right now. Actually, I don't have it.
The game is not I think it should let me see let me see the the game itself is broken but let me see the the garage or the home scene is working.
I mean it's programmer 3D modeling but hopefully it should work.
And it's very empty. Yeah, it works.
Things are not I can't interact with stuff.
Okay, things kind of worked for a second. Why is it being so laggy?
Am I throwing that many exceptions?
Come on.
Yeah, but the home area I want to be super nice. And like I know this supposed to be a racing game, but the whole idea was that like every game I make, I wanted to have some element of it that's cozy, right?
Yeah, the buttons are not reacting at all.
So, it's not I can't go to different scenes.
I'm clicking, but I can't actually it's not going to transition to this scene.
But yeah, like um so for this game, I wanted the cozy part of the game to be this environment here. And you know, I play some the basic stuff there just to get the idea across. But as far as how to populate it and make it feel I don't know. We're going to have to see.
I'm not a I'm not a great environmental dude. What can I say? Balance data 23.
argument range out of must be non- negative. What's going on here?
Is it never adding right? Cuz we just did this. Yeah, let me see if I I feel like I can fix this to get it functional real quick.
And a game itself be 2D. Yeah, I'd eat a polygon. [laughter] Wait, what?
What do you mean I'd eat a polygon?
2D games are 3D panels cozy knife fighting. [laughter] Yeah, if I make a medieval game, there's going to be [laughter] a medieval like fighting game. You're going to be having having nice warm porridge in front of the fire and you're going to be hearing people killing each other outside the Oh, I I I forgot something. A whole registry. You have to do the whole attribute create asset menu and there's things you have to do. I forgot what it was. Here's file name or is it just file and it's going to be holes and it's going to be menu name.
But yeah, I'm like totally I'm trying to make this an area look super nice, even though the game's like a super simple 2D presentation.
I'm not going to make it super high poly. It's not going to be high poly at all. It's still going to be low poly, but you can do low poly things that still feel cozy. You know, there's games that achieve that feel, and I think we can achieve it. I believe I believe I don't know. I might have to like get like a I don't know.
I might have to outsource expertise. I might have to like get like a concept artist or something at least to like sketch up ideas for what this area might look like.
Um, [sighs] and then I'll probably try modeling it. I don't know. We'll see. I I I'm going to Winter's going to Okay. I I don't want to be making this game in winter. I don't We need to get work on other stuff, but I'm just going to sit by the bonfire and we're going to just iron it out, man.
It's going to be great.
Uh, something about 3D being juicy or fun and thinking about how people call art tasty. I don't know. I eat a polygon. You know what? No further explanation needed. We eat polygons.
Cozy Bob Blast wrestling spicy sponsored by Taco Bell.
GD typos. What's a GD typo? What am I doing wrong? Cozy nuclear launches.
Dude, cozy. My parents are divorcing.
And you hear the battle ASMR.
I'm not going to lie, I saw that video of uh someone installing Arch while their parents were fighting that ASMR video and I'm not going to lie, a part of me I was like, "This feels kind of this this this feels comfortable."
Default hole. Yeah. And then whole truck.
Okay, that should be good. and an FNF application.
Oh man, [laughter] where is this?
We have a list here. Yeah, we're going to remove that. We're going to replace it with like the Not cozy registry. We're going to call it whole registry.
My typos embarrassing hashtag. Does anyone even use hashtag anymore? No idea. But anyways, hashtag hashtag. Hey, someone join the Discord.
Let me check something.
Also, I need to I'm debating, guys.
I'm thinking about doing office hours at some point, but I'm not sure when I should be doing it, if I want to commit to doing like weekly or if I should do office hours.
Like I don't know.
There's been a significant amount of people like asking for stuff that like I think it might be better just uh just to have doing office hours things as opposed to doing one-on-one mentoring cuz I don't think like for this like there's so much you can just learn like I think most people just need like minor guidance. They don't need like a lecture or something.
You know what I'm saying?
Like often times I know for me that's kind of all I needed. So I'm debating of just doing that registry.
Yeah, we're going to keep current selected.
I need to implement the uh thing.
I don't know being pract real dev hours is like I don't know it's unhinged real dev hours is uh where tea gets spilled where we're where not we're where deving does not happen.
I guess it kind of did though.
But did it really?
I don't know. What's going on, Juicy? I guess your name is Juicy. That's what I'm going to call you. Welcome to the server.
Just make it your own. Yeah.
Co-op to build dev hours.
Oh man. I don't know. Maybe maybe I need to do more with the Discord. I feel it's it's weird cuz like the Discord has grown, but I feel like I haven't done much there at all. So people are I feel like people are like that kid from Incredibles, you know, or that kid just waiting outside in the driveway. And he's like, "What are you doing here?" He's like, "I don't know. I guess waiting for something to happen, I guess."
And I'm just like, "Me too, kid. I don't know what to do. I don't know.
All right. Um, registry have to go to FNF application. Yeah. I don't know if you guys have ideas, let me know.
The office hours thing though is like a cuz we have like a gym leaders thing too. So maybe the gym leaders can pop in for that too. I know some people who'd be down for that.
Uh, where is the error? The error is here. You are the error.
The milkman.
I really want to play Psychonauts on stream, dude.
I want to replay it so bad. I really, really enjoy Psychonauts, man. It's such a good game, dude. It is. Psychonauts is so freaking good, man. It's not even funny.
It's a fantastic game.
What's going on? Hello. Go.
Actually, in an environal art server I'm in, they just started doing like work along where everyone is muted and just works together. That's pretty sick. And share a stream if they want. I'm down with that. Maybe I should just start doing that in the server.
That's actually a great idea. Anyone else have small lag problems or is it on my end?
Promoted more during stream? Yeah, I don't bring it up on stream. Honestly, like any success like I'm still surprised, dude, with this whole channel and everything cuz I've done like I feel like I've done the opposite of what people tell you to do and it still somehow has grown, which is really odd.
I don't know. I just take it from God, man. That's the only explanation I come with because I'm like I feel like I'm doing everything opposite.
But yeah, I need to have like maybe I should do that on like my off days when I don't stream. Just hang out in the Discord and just everyone just do some deving.
I don't know. I need to get more regularity in my life though to be able to do that regularly.
Action. Get hull index update visuals.
Did I fix all the the errors there? Are we just good? No, we're not good cuz we have to resource we have to load for resources from FNF application. It's not enough that that this contains a field that's static. We have to also populate it on awake which is going to be holes null coallescent operator resources load uh whole registry and you're going to be whole registry.
Beautiful.
And now so much oddities should be eliminated.
Except for all this, but it's going to be simple because just holes holes simple.
Could even say bizarre. That is true.
That is true.
Uh I'm sorry. What's going to go on here? Everybody jump at a game mileer nuke game. Make Minecraft. Hey man, really? Do you do scripting classes? was just wondering uh no maybe I can talk about some stuff related to scripting or like uh I mean I don't there's a weird I don't scripting is a weird term but we could talk about like some basic principles like we could pull out the Robert C. Martin book and the Granny BCH book and we could talk about objects programming and all this stuff.
I don't know what would happen if everything gets deleted. What are you going to do? Well, here's a cool thing, right? I have something called git and that lets me not worry about that.
That's why I can do terrible things to my code base and be cavalier about it because, you know, I have Git to cover me.
So, you know, Git's like the diaper. You know, if you miss the toilet, well, good thing I have the diaper, man. Everything's good.
Everything's fine. Uh, is there any compile errors still? Are we good? I think we're good. Oh, one last thing for Hull.
You don't need to do this awake thing anymore.
Goodbye. We're not doing that anymore.
Get his pain. Is it pain? Get is fantastic. Get is love, dude. You learn like three commands and then you're professional.
You learned three commands of Git. Oh, it did the auto translate bone circuit.
He said Git is a Delorean, but it translated to pain. That's funny.
All right, let's see if we get compile errors.
How to build games. Are you start man?
You started by googling. I started with Game Maker.
Oh, well that's strange.
The rendering of things just died.
Okay.
Who's using a constructor whole register? Oh, cuz I used this.
Oh, you're not supposed to use initializers. My bad. Whoopsie.
Okay, let's try this again.
But yeah, you just start googling, man, and you start finding some crazy crusty YouTube video from like 2009 about how to do a specific thing in Game Maker.
And all of a sudden, you have an object moving on the screen, dude. And you know, you start with drag and drop and then eventually you start finding it easier just to write code instead of drag and drop. And then you start feeling like an uber hacker. And then you know you do that for a couple years and you start getting more knowledge, more familiarity, more comfort even I would dare say.
And then uh you know do some game jams. You'll learn learn a bunch there. You'll meet some cool people. Then the biggest ROI is getting a job that you're not qualified for and then learning as much from people there.
That's like the best way to learn.
64. What's going on here with 64?
Oh, cuz you're Darn you, Dingleberg with your compile time initializers.
Okay, let's try it again.
Uh, ages ago I was asking if you ever read No, the black art of 3D game programming. It was a literal tomb. Wait a second. Wait a second. Wait a second.
I don't think it's that. But I do have a Well, honestly, it's not mine.
It's not mine, but I got it from work that I'm going to return at some point. So the people who have this book, you know who I'm talking about. It's going back. I haven't forgot it. This is kind of like a tone.
Mathematics for 3D game programming and computer graphics, third edition. It's pretty decent.
There's another one I want to get though for physically based rendering, but I never done that. And then there's another one that's a little bit more chunkier than this, which is like game engine architecture. It's from a guy from Naughty Dog. I think it's on my Christmas list.
One day I'll get it and then I'll read like two pages.
It's SFML. What's What's SFML?
A prag God.
It's so large. It's not you.
There's some It's chunky. It's chunky.
I'm not going to downplay it. It is chunky.
You'll be surprised. There's quite a number of chunky boys out there in the in the uh programming. Actually, they're most programming books are not that chunky.
There's some that are like go into the weeds, but they're not that bad.
Yeah, the ones I'm thinking about, they're nothing. They're thinner than that one. I think the only one I might rival is the game engine architecture book.
Hey, it's working.
Yeah, this is all broken now because we're not going to we're not using it anymore.
Yeah, let's go, man.
Let's go.
Yeah, look at this. Peak 3D modeler, dude. Peak 3D modeling.
Let's see if the game runs now.
>> [laughter] >> Okay. No, it does not work. It does not work. What's going wrong here? This is all due to wrong bad positionings, though.
Oh, there's a no reference here, too.
Okay.
Simple and fast multimedia library.
Oh, I have not checked that out.
The only thing I know is like SDL.
Do y'all recommend reading programming books? I think they're beneficial. I think um there's a lot you can glean from them. Um but I think it's very important like to apply practice, right?
Um yeah, program books can be very effective and very beneficial or at least helpful like as far as references are concerned.
But you'll be so a lot of knowledge is honesty online too.
What's going on with hull?
Why are you null?
Why are you null? You're null at 2011.
That means you're not assigned anywhere.
Why art thou assigned? We do hull equals whole states current selected but that may be null but by this point in the application if it's null we assign it to registry holes the first value right so I guess I could do a thing like assert not null for current selected to be to find out like what I may be doing wrong.
We're just curious if books are worth it. Yep.
Yeah. I think you get way more value from doing things, but I think it's helpful especially if you're like learning different paradigms. They could be very helpful there. Like for like Lambda stuff or I don't know. But then there's like you have some paper like there's I don't know like there's that but then you have like someone who puts a repo up that has like a markdown file that really breaks down an idea.
Oh yeah, this is not good. Like I know uh the reactive the unix one had a really good markdown that describes the idea really well.
The assertion isn't failing.
So what are these failing?
Apply config. It's not there's no stack trace. So it's not like it's going deep into the call stack. It's literally failing here. So either hole is null.
And if even if these were null, you can have null parameters. So like what are you going to do, man?
A who added me?
Some people call it cozy. Dap me up. I I'll dab you up, brother. Get dapped up.
[laughter] Yeah. What's going on here?
Got rid of that.
This this sign this connected this happening at 2011.
Maybe it's just this is beating the condition.
I that would be weird because I'd assume start happens after awake if I'm not mistaken.
But I mean, let's try this out for size.
Maybe I'm just wrong. Maybe I just have a bad understanding.
I love your monitor screen. I want to get one of these. You can do it, man. Go to a vintage fest or something.
I know there's like a there's like vintage festivals that happen. Vintage festivals that happen regularly. That's where I've gotten most of my old peripherals. Like this, like this PS1 I got at a vintage fest as well.
Like you'll find a bunch of stuff for pretty decent, dude.
And the converter is not expensive at all.
So you can live like this. It is doable.
It's affordable.
That's probably the cheapest component on my entire computer setup. The monitor is still happening.
Okay. So, maybe is the registry null? Is that what's going on here?
Maybe that's what's going on here.
Let's go to by config holes resources whole registry.
They're not null.
Okay.
Okay, they are null, right? Because I changed stuff.
The truck is fine. But yeah, I know.
Also, Facebook Marketplace. Yeah. I mean, I'm kind of eh about Facebook Marketplace.
People die.
But hey, if you feel cool with it over there, man, go for it, man.
Where's the default hole?
Pallet mass. There is none.
Yeah, there's no pallet mask. We're not doing that.
So, we just do There has to be a hole front, that's for sure. We have Sprite binder red blaze. There we go.
Nothing for the back.
Cool. And the whole truck.
Whole front is truck.
Okay.
Save it. Let's see if running it fixes this.
Now you have a good one, Travis.
Yeah, have a good one, dude.
Okay, press play.
Exceptions.
Yeah, we're still getting exceptions.
And why is this same place?
200 line 200.
Okay, let's do this.
Let's start figuring out what is uh the null c culprit here.
Um also whole states Isn't it being called? I should be. I'm pretty sure it is. Yes, it is called here.
So, if current state is null, we set it to the first element in our registry.
That thing is pretty reasonable. Man, remember when I said I was going to leave like two hours ago, Cozy, whatever happened to that? Oh no.
Oh no.
Did the YouTube playables get you? Is that what got you hooked? Did the YouTube playables actually do their job and keep you hooked in?
It's funny. The generation that always told me, "Don't trust what you see on the internet is the same generation that loves AI slop." Yeah, it'd be that way.
I don't know. I feel like most people enjoy a bit of AI Slav.
Not yours truly. No, absolutely not. But other people other people.
Did I just Did I call this try equipped hull?
That's funny. Equip. Is it equipping? Is that how you spell it? Or is it equipping?
I'm pretty sure it's quipping.
I don't know. I'm not literate.
Not literate over here, guys. I'm not a literate guy. What can I say?
Yeah, I know. It's It's terrible, though, dude. I can only do playables on horizontal. The chat company's good on vertical. And I got sucked in. I can't believe you got sucked in syndicate.
It happens.
Come on. Come on. Okay. Press play.
Come on.
It's funny when the screen goes dark, I just see my face and it's very It's almost like a jump scare.
Okay, so assertion failed.
And yeah, it's null right here.
So [sighs] this is null.
That's what I'm saying here is that this is null despite calling in it despite presumably assigning it.
Maybe I shouldn't even I should just like directly say yeah no you are going to be assigned. Well that's weird cuz we do an assertion here too.
So hold the phone. What's going on here?
How can these two things be true? How can you square a circle?
Someone freed my mother from Facebook reals. Dude, same. I like I I I walk past and my mom's like scrolling on Facebook and I'm like and then like you she's like I see AI stuff pop up too and it's like mom please we please please dude it's like it's it's it's uh it's like ah dude I hate this I hate this AI everything and it affects everything dude it's like I need to take off my robe.
I have to take off my my It's It's a little too warm down here, dude.
But yeah, it's like it's it's man, it's rough.
The slop, dude. The slop can't stop.
And then my dad, he was talking about like he's like, you know, he was talking about like AI channels. So my dad's like a little different. He's like, you know, if you could find a niche and you know, you can just fulfill that niche with like these AIS. And I was like, dude, Dad, you know how bad this is. You know how much I hate the system and why I think it's so bad.
To be fair though, like once I talked about it, he's like he understood. He's like, "You got it." He's like, "Oh yeah, I see what you're talking about.
But yeah, it's wild that he was he was [laughter] almost he wasn't proposing, but he was like bringing up the idea of like AI channels and how they profit from it.
Which also, by the way, shout out to YouTube for apparently banning a bunch of AI channels. Let's go, dude.
Let's go, dude.
Whole states current selected, dude. I'm I'm going to go crazy.
Like the only thing I can think of is like this is being a strruct and we're just copying by value. But we're not doing that, man. I'm not doing that.
We're not doing that. We're not doing that copy by value. We're we are directly these are all heap allocated things tragically. Um they're classes. They're all passed by reference inherently.
So either this is just weird, maybe I shouldn't be using a property, maybe I need to be just using a private value and just dealing with it that way.
And it's weird that this is passing perfectly fine.
Like that is also really strange. Like I actually you know out of curiosity out of curiosity let's go to start in the player and instead of doing hole what if I just pass in like what I say hole is explicitly fnf application holes uh holes that that like we directly assign it to the first one. We assert not null and then we send it.
I feel like I'm going crazy. I grew up with my parents telling me to get off the computer or devices, but now I'm yelling at my parents to get off their phones. Yeah, I really beat those those dang phones.
I mean, they're kind of right though.
Those dang dang computers, man.
That dang phone, man. Yeah, it's a wild turnaround and like, you know, I'm trying to I'm trying to get everyone off a little bit, but it's like uphill battle, right? I had a dude I have like I was fighting cuz I went on vacation somewhat recently and I was like on vacation mode. I got sick and during the entire vacation as well, I just didn't go on my uh I wasn't doing development at all. That was like the resolution that I was I made. No programming, no none of that stuff. But um dude, I started going I ended up installing Instagram, dude. That's crazy. And I started being like active on there and I was like uh dude, I feel the brain rock. But here's the thing, right? Like I've cultivated I'm I I uninstalled it again now that I'm out of vacation mode. I'm back to like doing development. I got it off.
But there was like this test of wheels I was going through with the Instagram algorithm of like, "All right, you're trying to bring my IQ and drag it down, but I'm not going to have it." And I started uh I somehow ended up on like like Tik Tok or not Tik Tok, Instagram for like content for like undergrads and like STEM fields or like graduate students. So, I was getting like really specific memes about like chemistry and and engineering stuff and I was like, "All right, this is what we need."
And then like I I uninstalled Instagram, but I started having these withdrawals, but then I found this thing. It didn't It kind of hits the itch. It kind of hits it, but there's this thing called Zikipedia, and it's uh basically it's taking Wikipedia and presenting it. So you start in this website, right? You choose your areas of interest. So I'm like, okay, I like games. I like technology.
And I have like other specific things. I like come on, let me type it in. C++.
That's a that's a category. I like low level. Okay. No, I don't know. What do you have here?
made game development.
Okay, whatever. So, you add your your areas of interest, science, and you say, "I'm an adult. Continue."
And then like you start doom scrolling Wikipedia articles for various topics and it figures out like what you like and what you don't like. So, I'm like, "Huh, I really dig uh the computer was an invention when it was first made. I like this." this. And if you want to, you can click into the article and learn more about it.
It kind of it kind of works. I'm not going to lie. The thing is like it doesn't go deep enough. It doesn't go esoteric enough, right? Like when I do computers or whatever, it it just goes like, hey, here's what a computer is, right? It doesn't go like deep in the weeds.
Nonfgeible token. Oh my goodness, I don't like that. Remember when remember when crypto and NFTTS were our worst problems? Do you remember that?
Anyways, but yeah, that's how I weaned off, dude.
It's crazy that those things hit crazy, dude.
I'm not going to lie.
Yeah, it's so insidious. It is insidious.
and my first uh still friends taught me 90 99% of what I know about coding computers. He's so smart in town as a dev. He's super into violence. Oh, into vibe coding. Yeah. Well, it's like um I I can't fault I don't know. It's like I don't know because there's [sighs] this this is a prick prickly subject.
the whole vibe coding thing.
Yeah. I I I just can't personally do it or at least do it for anything significant.
I can't like I get very anxious because like I need to know everything when I when I make a PR and I have it reviewed by someone. I need to know everything about it. I need to feel like I have full understanding so that like if I need to defend something or if I need to address something that's very particular about implementation, I can do it right.
But with vibecoded code, like you don't have that. You don't you have like this whole cognitive debt that's going on.
And it's like, all right, am I really going to take on liability for something that I don't even fully understand or know?
No. like that that's very at least for me that's like very anxietyinducing and you know I just end up reading all the code I was generating like spending way more time just to understand it as opposed to just writing it but then there's like you know the gas town gas town uh manifesto if you guys have ever heard about that where it's like this deranged thing uh and the whole idea is that yeah coding is no longer a craft, right?
Instead, it's like fishing where, you know, you cast your net into the sea and you pull up some fish from the the ocean and maybe some fish fall off the fall off into the docks and whatever, right?
But you don't care about that. You care about throughput.
So, you end up in like this token like maxing mentality, dude, of like you don't care about quality or whatever.
you're just going to keep pressing the send button until it eventually gets what you want, which is crazy to think about. And you know, it's a death of like craftsmanship and actually writing welld designigned stuff.
It's good for people who actually knows when AI was for autocomplete. Yeah, even then I stopped cuz like you end up having the co-pilot pause.
How small does your viewport in the engine look? Uh, it looks like this.
This is my viewport for the engine.
So, it's a little, you know, some people may or may not like it. I can live with it.
All right. I didn't test this thing. I I compiled it or I think I was going to compile it before I got sidetracked there.
Bro, what is your type? Type of what?
Navigator.
That could be ambiguous, man.
Yeah, my type is nan gates. Those are my favorite type of gates.
I love me some nan gates.
Okay, now we're getting somewhere.
So what's going on here? Character is not valid.
Fidget body velocity assign attempt for character is not valid. Input velocity is nan. Why are you a nan?
Not a number. What's happening with not a number?
Where are you being derived from?
It eventually does what you need it and empties your wallet. Yep.
we study the more we know that using it makes you measurably dumber your viewport is how you use the viewport. Yep.
Well, if I'm going to be like it's um let know you find the gas town manifesto, right? And like it's all like it's like the ante. Like if I were to write my manifesto, it's like the ante of that. Welcome to Gas Town by Steve.
Yeah. And it's like it's the most dystopic thing, right? If you want to read it, go for it. It almost feels like a cognto hazard, but in a weird way.
So like [laughter] I personally at work right I kind of avoid the track for management because I actually like writing code but in a weird way with this whole thing the goal is that you become a manager right where first you start coding and then you eventually you start coding with a co like with um agent and then you stop reviewing what the agent does and say yolo you just send it and then eventually you start having more windows open for uh the agent and yellowing, right? And then you eventually instead just go into uh you actually have an agent. Sorry, this is like the web app thing, right? You have the agent here and then you have multiple agents and then eventually you become a manager of this agents and like all of a sudden you're acting as a manager and it's like wow that's like terrible. like it like sucks all any any like first of all trace of accountability cuz you don't know what's going on at that point, right? You don't know what's happening.
And then the thing that happens is like the less you program, the the less you the less you use it, the more you forget it. So like you're acrewing this crazy de cognitive debt about knowledge for your codebase. And while that happens, you're also becoming less I don't know, you're becoming less proficient as a programmer. So your ability to even comprehend code and make decisions based off it deteriorate, right?
And it's like, you know, how can you make architectural decisions if you don't have these fundamental like I don't know, you're not reinforcing your fundamental understanding of programming, right?
Like I think I've talked about this at least when I was talking to with a a student someone recently but like or not a student a former mentee or whatever I was like yeah programming is like eventually becomes you start becoming an economist and the things that you're working decisions you're making in this economy are between like CP performance or like execution versus memory versus like human human maintainability or like understandability.
And uh but if you're not engaging with that, how can you continue to make good decisions about it?
And it's um it's worrying because it's like I feel like we're going to end up in a spot where we have there's a book called The Machine Stops. And the whole premise of the book is that society gets to this point where everyone in the world becomes reliant on this machine, right? And this machine performs all the functions. So mo most people just have to worry about leisuring.
The problem though is that the machine has fallen to disre disrepair and it's been degrading over time for like decades. And at that point in the book, no one knows how to fix the machine. No one has the knowledge to actually address the machine.
So, the machine continues to deteriorate and fall apart and the book a spoiler ends with everyone falling into darkness [snorts] cuz the machine stops. And I can't help but feel like we're entering into the world where that's starting to kind of happen, right? where we start having important core infrastructure of technology being done, designed and deployed by these things and like people are super cavalier about it. Big companies are very cavalier about it.
Individuals are cavalier about it. Even very like knowledgeable people and proficient programmers are cavalier about it or at least are very much about it and are using it.
So I always talk about like cognitive debt on like a micro level, a micro level between you and your code base.
But like imagine that cognitive debt as a society and that's not like a foreign concept. It's things that we've experienced with manufacturing. We can't like manufacture a bunch of things in the US cuz a lot of the knowledge and expertise for that have either like faded away or moved elsewhere.
You know, there are certain things that can no longer be manufactured in the US that used to be manufactured.
It's uh it's a real thing that's happened and continues to happen.
So imagine that with like software, man.
I mean, we're already facing that issue with the levels of abstraction, but like, dude, it feels it feels crazy, man.
Anyways, I'm going to buy a plot of land in Montana and just live off the grid at some point.
Makes him pretty useless for creating something new or interesting. That is true. is van it's very good at performing at the normative level within like one standard deviation of deviation of the mean but I don't know man like private code bases like all the interesting code that's happening is pro is locked behind private repositories and is like um um what should we call it there's a word for this patented right but then like you have this pant to decode and then programmers are introducing LLMs to it, like agents to it.
And sure, you're paying for it and you're hoping that yeah, the agreement between us and like whatever big AI company, they're not going to use our data to train their models, but like I don't know, man. I could totally see code exfiltration happen at the agent level because you know X and Y company did not honor their word and what's going to happen? You're going to get sued. Okay.
Well, that's the price of doing business, right? We get your cool interesting proprietary code and we lose like what? A couple million in a lawsuit.
So, I don't know. I feel very like I don't really trust agents. I have I I have to use it for work or at least it's like strongly encouraged. But like I can't help but feel that there's like this extra extra like I don't know I just don't fundamentally trust it right and I'll engage with it up to the ex minimum extent and that's it.
Uh, [sighs] what was I doing? We're dealing with nans. That's what we're dealing with. Nan inputs at the player rigid body position cuz somehow the rigid body position is not correct cuz some of the math here is resulting in that on the X and Y components which is signal signaling probably like a divide by zero or something, not a number. I don't know.
Can only really generate text that.
Yeah, kind of like using GBT Gemini if I'm learning something new. Very helpful as a pseudo teacher.
Yeah, but there's also a skill set to like there's also a skill set to seeking out knowledge too, which I feel relying on LLMs also deteriorates.
The toaster book. What's the toaster book?
Sorry about my dumb analogy, but it's like some big tortillas in my hometown.
New generations will know how to make them, and we will lost the yummy yummy tortillas. No, that's exactly it, dude.
That's exactly it. you know, instead of talking about manufacturing some part like metal component, right? You're talking about manufacturing tortillas.
And that's a lot that's a very specific thing, dude.
Oh, man.
This really is a thing, dude.
So, yeah. I don't know. There's no point in it. This is just me exposing my current understanding and thoughts about this and my feelings about it, my worries about it. We'll see if my like super, you know, alarmist views go anywhere or are actually valid. I hope they're not, you know. I hope uh AI keeps hitting that asmtote and doesn't progress further than that. But I don't know, man.
I don't know.
Either way, dude, I'm going to just keep trucking at getting better at programming.
There's some things that LLM s like or struggle with like 3D spatially, 3D spatial reasoning. They can struggle with that with 3D math and stuff like that. But I don't know. Oh, you feed it enough code, proprietary code. Maybe they won't struggle with that anymore.
Where was I? This is at uh 382, I think. Like that's for updating sprite though. Is that from Is that where it's coming from?
But yeah, bro. Clip this chat. Clip it. I don't Does YouTube have clipping? I don't know. Cozy. Come to Ontario. Become a citizen. We have healthcare land in so much so many lakes. I don't know, man. I think I'll just make my own nation at this point.
Here in secret. Don't let Mr. Cozy know.
Hey, Terrell. What's going on, Terrell?
It's good to see you, man.
You've been spitting. Hey, I'm glad I'm not the only one who feels these way.
Mom's mom's the word SFM toaster book.
The guy who tried to make a toaster from scratch and how it's just unfeasible for the average person to do so. Ah, that that I need to read that. Is it just called toaster book?
I'll check it. Dude, how did you fix the weird thing that happens with Unity's dockable windows when using tiling window manager? I didn't fix it. I just live with it. I mean I mean un hasn't been that broken for me.
I think the only weird stuff that happens is like I have to when I switch from it from other tabs I have to like hover over the dock of Windows and you know of course like the uh Windows 32 the window the wind XP like trailing Windows thing happens here too but it's not the end of the world.
player position. Somehow we're getting nan valleys and I don't know at what place or points we're getting that.
So what we're going to do is there a way to for me to just check to see is valid or something?
It's probably not a property. I have to probably compute that. I don't know.
Is there no static way to verify it? I don't know.
Hello brakes. Yeah, but that um that that book toast to the the toaster book reminds me of Destin from Smarter Everyday trying to manufacture a grill scrub completely in the US and like it was just unfeasible. And he ended up like he ended up like um even that his final product ended up accidentally having some components from from China because you know he wasn't trying to make it in America. He's just trying not to make it in China. And it turns out the part the the chains he ordered from India were actually from China. So you know we're going to do this. So I'm just going to do like a vector 3 set velocity and every time we do rigid body velocity we're just going to replace it with this so I can figure I mean we is it throwing because it's trying to assign a nan value.
Is that what's going on?
That's probably what's happening. which means the vector 3 can exist with a nan value which means our computation here is and it's happening on the x and y components. So it's clearly we're overwriting x was min. What?
Okay. It's only these conditions.
Okay. I have to check something. It's not like negative or positive infinity.
So I don't think we're crewing it that way.
Why not print debug logs? Cuz it's not going to give me this the place in the code where it's actually happening.
um like I know the exception is happening here. I don't I don't know how the nan value is being computed at what stage in computation it's happening um at least that was under the assumption that the exception was being thrown from just the value being procured but it's actually legal for the value to be procured.
It's just illegal to assign it to the rigid body velocity. So maybe I should just print out at this point every single part of the equation and understand what's going on. But this part I know for sure works previously.
So I'm guessing the place where things go wrong is in our acceleration values and how we get it here.
We get current 01.
So maybe the value here is bad.
Yeah, I'm assuming it's actually probably happening here because this produces the output that is then piped into physics, I believe.
Why can I actually understand what you just said? Sm.
Hello.
This reminds me of the guy from Barbosa from Pirates of the Caribbean. Hello, puppet.
Yeah, that pissed me off. Now he went back to Windows 10. Oh no, it's tragic, dude.
Just a one somewhere. Some poor orange cat just walked straight into a wall.
Wait, what? What did I miss, dude? I feel like I'm missing some context here.
Okay, we may have broken our game. Or actually, we've been broken for a while, but it's okay. We'll get there little by little. Dude, we are doing but I'm pretty sure it has to do with how we're doing the engine calculation here.
And it's because we're doing jack current 0 to1. We're saying acceleration equal to engine excel and then velocity equals input time 15. Where's input though?
Wait, what? Wait, wait, wait, wait, wait, wait, wait, wait a second. We have vector 2 input.
And we we just Oh, cuz Okay, this is if the player is controlled, then we actually set it with the correct values. We do a vector 3 lurp.
A vector 2 lurp velocity target acceleration times delta time. Is velocity a vector 3? It's a vector 2.
Okay.
Would this would this actually Okay. You know what? This is what we're going to do. We're going to just decompose elements. We're going to just do a We're going to do the debug log gun.
Not even going to be pretty about it.
We're just going to do the thing. I want to understand every single expression that's been derived here. I know V3 is wrong.
I want to get every single one of these expressions.
So if velocity is less than min, we override it with V3. Override X min.
Otherwise, we use just velocity, which no matter what, it's still going to come down to the velocity values over here. So, it's just strange you can do vector 3 operations on incorrect vector three values.
But let's just do this every single thing, dude.
No initialization.
Yeah, actually, you're probably right. It's I'm going to start from the source here.
So target equals input times oh you know what speed is probably we haven't set up all the other components of this speed boost coefficient But I'm highly suspecting it has to do with this print, not F. I'm so used to working in C. Okay. Um, V equals lurp target and then acceleration times time delta should be fine, but why not just be ultra? In fact, I kind of want to like just have this be.
And we're just going to do a little bit of this action. Yeah, I know. I know.
It's allocating a string. I should be using stream builder. Whatever. We're deleting this. This is not going to production at all. It's fine.
This is fine.
And you know what? We should do a null character. Or not character, a new line character just to be safe.
Okay, let's see where we're at now.
My kleptomania powers are taking form.
Oh no.
My body is a temple. I'll have you know ancient and crumbling. No.
Okay. Come on.
Okay, we press play.
Okay, now let's see if we got useful logging information here.
Okay.
Okay, so everything is just zero.
In fact, we're getting nans.
So, lurp nan nan nan.
So, the first two terms of uh of the lurp and acceleration is is nans. Okay.
So, we're all just nans.
And what is I feel like this term is the problem term and like it's infecting everything else.
So, let me just check out this cuz I this I'm pretty sure this is where bad things are happening.
So, we do get current comp by get max comp.
Oh, I guess we don't initialize these values. Oh, I should probably have done that. Oh, I probably should have done that. Oh no. Oh no. See, what a fool.
So simple. So simple. It's so simple.
Puppet.
Uh, we can do a knit or I can do like a constructor.
Maybe I should like totally do like a constructor or something, man.
Maybe I be totally tubular and gnarly.
Yeah. Okay. E ship comp.
Okay. So, let's do by default. We'll do I don't know how I did this. I'm forgetting, dude. Uh yeah, we're going to set these.
So current can stay where it is, but max maybe I shouldn't actually maybe I should actually initialize these to a a basic value or at least like a not zero value.
So max and we're going to do e ship component um acceleration.
gas.
Acceleration is going to default to I don't know.
Let's start with like two or three. And current is going to equal to three.
That sounds reasonable to me.
And we could do this for other components like health.
Or maybe we don't want to do this as maybe we actually want to add like a padding. I don't know. I don't know.
Maybe we start.
We'll start here.
It'll be fine. It'll be good.
Life finds a way, guys.
Life finds a way.
Okay.
Yeah, I'm pretty sure that was the issue.
Real. Yep. Each stone chiseled and cut with diligent and meticulous skilled masons and the hidden Indiana Jones ruling boulder. Wait, I'm thinking of Astic Temples. Yeah, you think of Temple Run.
banger game. Temple Run was like the You guys remember when apps came onto the scene? You guys remember touchcreens when they first came out and you saw your friend playing Temple Run after the uh the school quizby and you came out of that high school where the competition was happening and you're like, "Whoa, what's doing that?
What's that, dude?" It's like, "Whoa, you that's a game you're playing on your phone." And then you look at your Blackberry and you're like, "Oh my goodness, I don't want to. Do I really do Dude, do I really want to use a Blackberry when I can't play Temple Run?"
Gross.
I remember that. I remember when phones are new and cool or touchcreens are new and cool.
See, that's how like technological advancements get you.
Actually, no, they don't.
We should just We should have stopped at like 2009.
We should just had a hard stop at 2009, dude.
Like, that was the last console generation where things were exciting.
You know, it's like, whoa, that's kind of crazy.
Things started going a little downhill from there. It was still good. It was still good.
Yeah, dude.
This keyboard name, it's a Ergodox.
Yeah, thank you, Syndicate.
I was in college and I had a Nokia 1100.
You truly live in a first world country.
That's crazy.
That's crazy.
It's kind of true though, man. It'd be that way.
And we're trying to go back. I found a phone that has like a is basically a Blackberry with a touchcreen. I'm Let's just go back to that. Maybe that's where I should be. Um, okay. I'm doing something like we're we're in a good spot, but not quite where I want to be.
So engine excel we get a normalized value and then what times 50 maybe simpler times dude simpler times jelly car I miss you was in college on Nokia though yep 2009 I think I still had my PC with a clear blue acrylic case yeah that's what I'm talking about man it's good times for the something to replace the AI hype no cuz everything that replaces it gets worse.
Like honestly, I would I would go totally roll back to the days of like NFTTS and crypto mining and all that.
I mean, it was bad, but it wasn't like bad at like a a uh existential level, you know? [snorts] Yeah, top speed. Top speed is the issue here. I cached some values, but I haven't.
In fact, I should be caching.
Oh, one second. Where do we cache speed?
Where's speed?
Speed is right here. And where are you set?
No.
What?
Wait, where where am I to finding this stuff? We have speed, we have acceleration, we have health.
That should all be retrieved from ship config. Yeah.
Yeah. I remember when I miss when like technological advancements were like optimistic, you know?
3D pipe screen saver hype. Oh, I should bring that back. I should put that on my computer, man.
Yeah, we're just going to go back in time, dude.
We have to go back to the small net. I think I'm still debating if we're going to actually I don't know. There's enough people in the Discord where it would actually kind of suck to nyx the Discord and try to shuffle everyone to like a weird custom website I roll. On the other hand though, like it's kind of we can have that small web vibe of just random people on a chat room. I think I'll just turn the Cozy Cabin Games website into like a chat room like AIM and like everyone just has an anonymous like I mean anonymous is like a bad idea usually, but I don't care.
You just hop on to as anonymous people into like a chat room.
That seems fine.
We have speed. What else we have going on here? Acceleration, health, speed.
This seems to be backed by something though.
Oh, we set it here. We assigned these, dude.
We've already assigned you. Why am I doing the same thing up here? We've already done the thing down there.
I'm a fool.
A blatant fool.
So, I just need to replace some of these values with with um the already calculated values.
So, like this one.
Oh, I think I'm doing it because I don't want to have to deal with Yeah, maybe we can cach that still.
Acceleration is going to be what it is.
Speed times boost.
whole health.
Let me go set the whole health wherever that is.
I just don't understand how this fix things. That's really weird. I don't know. We're going to I have to go go through the stack trace to figure out where exactly why that's happening the way it is.
Yeah, we're not doing this.
You're going to be health now.
What's that? Do you guys any of you guys taken discrete math?
If so, do you remember that like uh axiom or I forgot what it was, but that like um like the modus ponum things where it's like if a equals b and b equals c, therefore a equals c. I forgot what the term for that was.
What engine or framework you use? I'm using Unity.
tragically, may I add. But for right now, I just need to see if I can finish a game within a game engine.
That's what I'm using. I'm using Unity right now.
Make it so they aren't anon to mods and admins.
Transit. Is this transitive property? Is that what it's called?
Uh, emulate dialup. That'll be fun.
BABS. I like old bulletin board systems before my time. I But I've heard tell of their bygon days. It'll be cool to do that. It'll be cool to do that. I'll be cool. It'll be cool to do that. Um the add-on thing. I don't know. I don't I don't want to deal with account management.
Here's the easiest thing, guys. When you open the chat room, I'm just going to expose your IPs. That's your username.
Oh, hello 192.82.32. 82.3256.
Nice to meet you.
What's wrong with Unity? It's just a company that owns it. And I don't know.
I just there's so much stuff like when you use a engine meant for everyone to use, it's designed not for any specific game.
You're forcing the engine to align your game. And I I think there's something really cool about writing an engine that's like very minimal and like just does the things that are required for your game and is architected specifically for your game as opposed to like you know and only Yeah. Like that's what I want. A lot of what I'm doing is forcing the engine to do things that it wasn't designed to do oftentimes or permissively allows it but it's not like you know let's see what are we doing here. I was doing something and I can't remember what it was.
I don't know. Is it past my bedtime?
Maybe.
Maybe it is. But I want to get this working better.
Okay, we're going just go here. I'm going to go to speed. I'm assuming it's going to work the way I want it to. If not, so be it. I'm going to multiply by like 30. That sounds good enough to me.
Nope. I can't multiply by 30.
You're integer.
You're integer.
Interesting. I don't like that you're a float now. Congratulations.
Congratulations.
You've been promoted.
Big promotion.
And now I can do zero. Nope. Nope. Nope.
There we go.
Axiom. Was the right term for that? What you called the transitive property, by the way. Oh, thank you.
I'm glad I was good there.
Yeah, I want to pick I want to get back into logic. I think there's something really cool about like structuring your your thinking around logical axioms.
[snorts] Is this a kinesis keyboard? No, I'm using ergonox. I started GDAU before it getting famous and it was because my friend told me once a game would be more lucrative using it. And now I love the fourth version of it. Yeah, GDO has been growing like crazy. Also, what just happened?
Um, I tried GDO for a while. I actually migrated my dev kit to work on GDAU, but I don't know. It's not an engine for me.
Like I said, I think for me personally, I just want to have complete and utter control. That's not like a normal thing.
That's actually not even a the best idea for people to do.
I think it's more prudent for people to just use engines in a lot of cases. But for me at least, I I find it fun doing like work at with that at that in that space.
Okay, 10 is still too much.
But now the game's working. Yay.
Nice.
Okay.
I don't know why this is not fully transparent. That's a little bit odd to me. Um, did it not hurt me? It did hurt me.
Ah, got him. Got him.
Yeah, it's a little too fast for me.
Maybe we just do two and that's and call it a day.
But hey, like we got we finished unbreaking the game, dude. We finished the big refactor.
I haven't hooked up the UI yet, but like the logic for the UI is there. So, it's just a matter of chucking assets.
What's with the max_h notation in the ear comp? It looked like H was just float. So, here's you're setting it multiple times in the same method. Which one are you talking about?
Max Oh, you're talking about um I see. So, you're asking about this right here, right? This um so what I'm doing is essentially I am I have like these two little arrays, right? And I'm indexing into them by casting a enum. In fact, I should probably be very explicit about their values to be on the safe side.
But yeah, I'm taking a enum and casting it because each each index represents a category, right? Health, speed, or acceleration.
So, I'm simply casting the enum into an integer and then I'm able to index into um the index I'm actually accessing the index that corresponds to a ship component um for these arrays.
So, it lets you it's a fun little way to be able to have data grouped together and access it in an easy way.
It's pretty fun.
I always like doing that kind of stuff and I kind of do that stuff even like C in the world of C.
I'm using Cric.
Cool.
Nice. So, this is slow, but that's actually kind of warranted. We're using like three of like max, which I believe is 16.
So we can upgrade to be way faster than that. So this is where we want to be.
This is actually good. 10 or eight already makes it like super ridiculously fast. So yeah, Unity only use C#. Yeah.
Yeah. I'm using writer Oliver.
Yeah. Hopefully I answered your questions. Um, Max Warren the bedoffus is right.
Unity and Linux. Yeah, using Unity and Linux. I bit or IBIT.
Okay, cool. So, we have E ship comp ship config and nice.
Okay, dude. I think we're like super freaking great on this so far. I'm going to commit what we have, guys. So guys, ready for some basic get get status. Look at that. Beautiful.
Beautiful. Look at that.
We're going to do get add-all get commit dashm unbroke the code.
the code.
Get pushberg return to 2D.
That was way more coding than I was expecting to do today. I thought I was going to be stuck doing some assets and stuff, but we actually turned it out to be uh implementing things. That's pretty gnarly.
Yeah, we're going to close this. I don't want to have this in my Why don't you have the multiplier make you faster? Uh cuz faster isn't actually better. Um it makes it really unwieldly and I want to reserve like speed for like just the way you configure your machine.
You did a thing. You did a thing. Yeah.
Yeah, we did a thing. I'm I'm kind of surprised. Is that a window manager?
Yeah, I'm using uh i3. It's quite nice.
You can do things like this. Imagine doing this in Windows.
Could not. Could never. Could never. You imagine doing this.
Scary. Look at that. Look at that.
Tapping like this. Let me just go through my files. I think I want to use this one.
H hope. [laughter] That's cool. And you can just move stuff around very easily and directly. And then you got workspaces on it, too. Like do this. It's pretty. I love i3, man. I Every time I have to go back to Windows for work, it's like painful, dude.
It's painful.
But, you know, you make do. I'm not sure if it's good for you guys cuz like you're just seeing things pop up really quickly, but it feels good for me.
And that's all that matters, right?
Yeah, i3 is beautiful.
How is Unity using Linux? It's pretty decent. It's pretty good when Unity is pretty works pretty well. Did I make any changes to the dev kit? I didn't think about that.
Uh CD I did do some significant stuff. What did I do?
Um Oh, I did do some significant stuff here. Yeah. Yeah. Get I think I'm missing it here.
refactors.
Terry, is that you? No. No.
Unfortunately, I'm not I'm not on Terry's level.
What kind of editor are you using? I'm using I mean for um coding I'm using writer. I usually like using basic Vim though. Vim is nice.
Vim is very pleasurable, very seamless.
It's pretty good, very basic. Rider though is like the super premium experience if you want to have like big refactoring and all that kind of stuff.
It makes it very easy to do.
If you do docs, I do some documentation and I'm probably have to do more docs eventually when I get into uh when I decide if I'm going to release this or not. But usually I try to keep the code very just self-documenting. But there's things I like do like actually having something properly written because it's actually not clear what the intention may have be and I might require that context.
But there's some dumb stuff like this where it's like yeah it's true if it in cool down false otherwise.
But, you know, if I was doing something gnarly like packing like packing a vector into a four bit four byt integer value, then like yeah, I'd probably want to document that. Hey, I'm doing that for a reason, which I saw that I saw that today. Have you guys ever seen that? It's pretty pretty gnarly to do that where like you essentially just have int value and then I don't know whatever the value is going to be. In this case, you can do like whatever in value and then you can get like int x or float int x in y and whatever. And all you do is like this and an operation with like hexadimal ff.
Each hex value is like a single uh a single nibble. So two of them produce a bite and then you can do like a an app and a uh bitwise ore on it and then like uh you can do like and you do that and then you do this with like the same value. Why are you being mad? Whatever.
And you can like bit shift it to get the next four bytes or the next bite and you get like the Y and whatnot.
It's pretty gnarly. And then you can like divide it by 255 and then offset it by it's pretty rad. It's pretty cool.
But yeah, just keep going down that route. And then you do like eventually you can do uh fx= like x / 255.
And if you want it to be like normalized range where it goes from negative one to one, you can do like this time uh what was it times 2 minus one I think and like voila now you have like a vector component essentially two floats of like low precision derived from like a single integer I mean you can do more it's four bytes in a single integer 32 bits right so So you can keep going down this this this train and get like a full um you know it's pretty rad. You just do the same thing and eventually you get like a full vector component.
But yeah something like this I probably want to document a little bit but you you can kind of also derive it implicitly as well.
>> [cough] >> What am I saying? I'm just doing some code game debubbing. Dude, I use Notepad++. Hey, not going to yuck your young man.
But yeah, it's pretty cool when you see stuff like that.
It seems like I'm trying to be helpful, but secretly I just like waking up Nightbot to do our bidding.
Yeah, that's one of the projects, right?
You want to make a I want to make a bot for the channel at some point.
It's going to happen one day. All right, but we've we've done we've got the code unbroken today, guys. So, um let me find something. Let's see here. Any comments or questions or concerns before I uh get ready to call the stream? I'm going to put some just Tetris. I like this music.
Uh let's see here.
What kind of use writer? How do you learn to code? Just by googling, man.
Just have an idea that you want to do and pursue it and Google it until you finally get it.
I'm so excited to catch you live. Oh, Christ is king, brother.
>> [gasps] >> I'm sorry to say it, but you catch me right when I'm signing off for the night night. [laughter] Oh, brother.
I streamed a little bit earlier today, but I just wanted to get some stuff and get done. We did like 5 hours of coding, though. Jeez, 4 hours and 42 minutes.
That's gnarly, man.
Big productive hours today, dude.
Big productive hours. Also, Travis a savage. Welcome to the Discord. Cly Clayil, welcome to the Discord as well.
In fact, I'm going to put this in here.
We're going to be welcoming people here.
Actually, no. Let move this over here and I'm going to open cuz we have Yeah, here we go.
Yeah, glad to have you guys in the server.
I know. Make yourself cozy.
>> [laughter] >> All right, that's how you do it.
Yeah, it's trash, dude. Tragic, but it be what it be, man. It be what it be.
Anyways, ladies and gentlemen, [laughter] yeah, I'm not seeing any questions. If you guys have any more questions though, feel free to ask me in the Discord. We have a ask cozy section here too. So when we go live again, probably Wednesday.
Yeah, Wednesday. Monday, Wednesday is usually very consistent. Thursday and Fridays I probably will stream.
Saturdays I do stream too, but Monday and Wednesdays are the for sure ones. So yeah.
But yeah, feel free to ask me questions here. And ladies and gentlemen, thank you for watching. It has been my pleasure to show you the process of programming and making a game. As always, God bless and until next time, stay cozy. Bye-bye.
Related Videos

TOP 15 Data compression Interview Questions and Answers 2019 Part-2 | Data compression | Wisdom jobs
wisdomjobs
281 views•2019-06-28

CTS 158: 802.11w Management Frame Protection
ClearToSend
4K views•2019-02-04

NDSS 2019 Send Hardest Problems My Way: Probabilistic Path Prioritization for Hybrid Fuzzing
NDSSSymposium
496 views•2019-04-02

How realistic is Cities: Skylines?
CityBeautiful
159K views•2019-02-14

GUIs & TUIs: Choosing a User Interface for Your Python Project | Real Python Podcast
realpython
2K views•2025-04-04

The OSI Model - Explained by Example
hnasr
225K views•2019-05-12

Cloud Computing - Introduction
elithecomputerguy
98K views•2019-10-07

From Traveler's Dilemma to Dynamic Routing | Demystifying Networking
IITBombayJuly
5K views•2019-08-04
Trending

One Must Imagine Sisyphus Happy
vlogbrothers
61K views•2026-07-21

Future of Taylor Farms
maighstirtarot5385
11K views•2026-07-21

The Downfall of OnePlus!
techwiser
65K views•2026-07-21

My Friend Locked Up The Engine On His K-Swapped Bug...
boostedboiz
128K views•2026-07-21