In game development, smooth animations like floating objects can be achieved by combining sine wave modulation with easing functions. The sine wave provides the periodic motion by multiplying time by frequency and amplitude, while easing functions (such as easeInOutSine) smooth the transitions at the start and end of the animation, preventing jitter and creating more natural movement. This technique is commonly used for UI elements, floating items, and environmental effects to enhance visual appeal without requiring complex animation systems.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
C++ Game Development - custom engine, no ai
Added:got such long hair.
Bloody hell.
My internet's quite slow actually.
Or is it just YouTube?
All right.
I always get such a uh whiplash from there being no sound effects in the game. I'm totally expecting it.
It's probably good for my sanity though, right?
All right. I mean, we did these outlines last time, right?
There's a few things I want to do now.
I'd like to make it so when you buy a weapon, it like floats above the shop up and down cuz currently it just sits there in space.
I think it would be cool if it bobbed up and down a little bit.
Let's do that.
Wow.
La.
Apple.
I a Finger I do.
Everything I want.
La I la.
Natal N.
I la was it called easing.
Easing.net.
I mean, you don't know your cubic already looks kind of okay.
Sine wave modulation with time.
I think you just shoved time into the sine wave, right? But I was just wondering how it works with amplitude and modulation. I remember watching this roller video talking about it.
What's the graphing website called again?
Graph website. Desmos.
Is there maybe an example project?
Desmos sign modulating sign.
Here we go.
Why is And then they've got a bunch of things you can do with it.
modulating sine wave.
I have a feeling I can just correct something together very lazily with um we get frame info dot delta time we should sign around that multiply that by this and then the frequency bit I don't know maybe this is multiply by frequency I'm kind of making this Something like that.
Something like that.
Kind of making this up.
Sign gives you a value of is it between minus one and one or 0 and one? I think it's minus one and one. If I pass in time, so it's constantly changing, I multiply it by the frequency.
Maybe this needs to go somewhere else.
Cuz I think the default frequency should be one 1 second, right?
And then the amplitude is what I want to do with that big minus one to one. I I think what does Reddit have to say?
Hello, M.
I'm a little tired. How are you?
But regardless, let's see what this does anyway.
doesn't seem to do anything.
Maybe it's not much of a big deal.
H actually looks like it should be doing it.
Hello, Mad. Yeah, why not?
Maybe just changing the depth is not good enough.
Let's experiment.
Interesting.
I think the depth thing should be correct. I'm going to be real with you.
Oh, it is working. Oh, I guess it's just doing a really small difference. It's not multiplying it by tile size.
Set it to 16. Then maybe that's tile size.
What does it mean when you write a variable and put minus before it?
It means minus like the the maths thing.
Okay, I've got something a little bit wrong here.
Maybe Delta Time is not around. I thought it would be.
I'm kind of making this up as I'm going along.
That looks exciting.
You thought it was something else cuz of pointers. You can decrement a pointer. I wouldn't recommend it.
I think I'm not using this correctly.
a la.
H.
What if I just use one and one? How does that look?
Maybe just Wikipedia for sign.
That's strange.
A sign function with a time models a repeating wave with yt = a sin wt + Whatever that O means oscillations phase shift on Wikipedia it is called a sine wave. I know that sine waves of arbitrary phase and amplitudes are called sinosoids and have a general form. Hello God, I'm reading Wikipedia instead of trying to make up maths myself.
I'm not smart enough for that apparently.
So it says y time which is the value we want is equal to amplitude multiplied by sign. So I kind of had that.
And then inside the sign function you have angular frequency multiplied by time plus phase specifies in radians where in the cycle the oscillation is at. So usually that's zero. So actually I I might have nearly had it. I'm going to be honest. How far off am I?
I think depth bias is correct. By the way, I don't know about this whole fake Y thing.
I think the Zed should be correct.
Anyway, um I guess we can put this on the front if you want to match match Wikipedia. It shouldn't matter, but they're saying that amplitude and then multiplied by the value of sign where you pass in frequency multiplied by time, which is exactly what I did. Okay, actually, hang on. Maybe I maybe I did just get it, but the numbers I'm using are wrong cuz then you can plus time, but um plus your um phase, but I'm not using phase.
H look at the title CODM play from India.
It should tell you all you need and the description. There should be lots of information.
Uh what am I looking for? Desmos.
Let's look at Desmos.
So I can make this on Desmos, right? I can say Y P equal um amplitude time s time frequency.
I'm guessing t is time by default.
What?
Hello, Colin.
I'll be honest. I I think the maths here is correct.
So, why does it look like [ __ ] Yo, Lindley. Oh, hi Maybe delta time's not I kind of thought delta time would be okay.
If my frequency is one and my amplitude is one, I should expect the sine wave to go up and down every second. I thoughtish something like that. place.
I should go up and down by one, which should be a whole block.
What am I missing?
I'm going to print this out. No, printing never [ __ ] works, does it?
Look in the description. CODM play.
How did you make a 3D game look 2D?
I I don't know how to answer that.
It It looks the way it looks.
I haven't written 3D stuff. I haven't made the graphics in 3D.
Um anyway, depth bias plus equals. And then I think we can shove that into Well, hang on. Let's say I'm going to call it Bob.
I'm going to try this. And I'm also going to try FMT print line um depth bias cuz I want to see.
You're in the middle of prepping your lab for tomorrow. It's all nerdy Linux stuff. Nice. How's the game going?
pretty good. Thanks. I don't know the last time you were here, but there's like upgrades and and we made this outline shader last time I'm really proud of. You see this?
Um, there's all sorts. I I don't know. I don't know where to catch you up. The revolver has a right click which shoots like McCree's thing kind of inaccurately, but like it shoots all the rest of your bullets. There's there's all sorts.
I'm currently trying to make us basic sine wave work and I'm kind of confused as to why it's printing it out.
It kind of looks like it's not really doing much, doesn't it? It's barely changing.
So why is that?
I thought the amplitude in this case was one and the frequency was one.
Hang on. Delta time is 0.002.
What?
Okay, maybe delta time is a bad idea.
Maybe elapsed time. That's probably what's been going wrong cuz delta time is just between frames and if the game is playing at like 500 FPS, I'm guessing the delta time's just tiny. This is all good. Thanks. and trying to reverse engineer very basic secondary school maths because that was the one lesson in school that I was ill for with almost perfect attendance. It's when they [ __ ] taught sign and cosine and they never went back to it again.
Okay.
I think it is the depth is changing but the Y isn't. So that's that's just fine.
I think we do need that fake Y then.
additional way.
Hey, negativity. It's nice to see that you're alive. I had to find out via Kyobi.
He ratted on you. He said you've been playing other games.
It's nice to nice to see you're doing okay.
I know I should be asking you how you're doing, but it's it's nice to occasionally know you still exist.
Not that I worry or anything, but it's like I wonder what you're up to. You have like a job and stuff. Are you still at uni? Like what what's going on?
Um it's okay, C. If you have any other questions, feel free to ask. I just just not the ones that are in the FAQ.
DBH depth bias should also be increased by that much, right?
I don't know if it's plus equals or minus equals. We're about to find out.
Almost finished your year of work.
You're going back to uni in September, October, and then you've got like a a year left or what? The game dev's been good. I've been making a ton of progress. So, if you cut back like I said fighting. If you cut back like a tiny bit in time, you'll see a very different looking game. Hey, look.
Where's he going?
That's not quite right.
Okay, that's you know the thoughts there.
Why is it doing that? It's because of the easing function I'm using. I guess ease out cubic bob is probably not working.
We'll try it like this. And then I'm going to go back to the factory and I'm going to change the amplitude to 2 seconds. Oh, sorry. The frequency to 2 seconds and the amplitude to 0.5. We'll see how that looks.
You spent the last four weeks on tasks that should have been easy, but courtesy of Git and Tech has been a massive headache.
Oh, uh, at work. How many how much experience do you have now at work? How many how many months have you been an adult with a career for? Wow. Look, they said it wasn't possible, but he's successfully kind of worked out 10 months. That's some amazing experience.
Try something like this. And then I'll try and find an easing function that does work with it. I see there's ease in sign, but I think that uses a sine wave.
You're much better off for it.
I've been trying to tell you this for a long time.
Your worldview changes when you have um an adult job.
Now, does this dip behind your head as you in as I would want it to?
Not really.
I feel like the depth thing isn't working. The world seems miserable at the moment. You're trying not to look at the world. It is miserable. That's true.
There's no solution. Um, hello Mimi.
Your company is awesome. That's really good to hear. Do you think there's a chance they could offer you a job after university?
I think the depth bias is not quite working.
Um, I would expect it to kind of go behind your head and in front of your head, but it's not clearly doing that.
I'm going to try minus.
And then while I'm at it in the old factory, let's um let's change the frequency and the amplitude just a little bit more. I can try a new function as well. I'm on easing.net. They have an ease in out an ease in sign um which we can try.
What project am I working on?
Okay, that's that's an old that's an old the WHO thing is an old thing. Is it hard to learn C# for Unity or not? I think you could learn it if you're patient.
I don't see why not.
There's an outside sign. We were using cubic.
We can try ease in out sign. We could try what was wrong with this.
I don't know which one's the current one. The epic. I mean, it's still a to you know what? It's still a top down bullet hell game, but it's not really like Toho anymore, I guess.
Hey, people of Twitch chat. Glad to see you're all doing good, says Lindley.
I'm going to try this ease in out sign thing from easings.net.
We copying and pasting off the internet.
No idea. I'm just going to try plugging this in and see how it looks.
Math I don't know what that is. COD, how's the gym going? It's going all right. I kind of injured myself the other day. You can see here I fell off my bike in the car park, so I scraped myself pretty bad. I've got quite a lot of bruises going up and down the arm.
eventually. You can't see them, but you know, minus the exclamation mark, I've got um some muscle somewhere.
You can kind of see it.
That's nice.
That's awesome. Thanks. I think it's the honestly the progress is not so bad. The last time I went, like I I fell off my bike and then just went to the gym anyway. I was okay. I had a little a tiny bit of blood on the inside of my trackies, but it's fine. Um I I did pretty good. Like I I I got a bunch of PBs and stuff. Nuclear Throne and Dungeon NG sounds good with all this expression stuff. Thanks, bud.
How's the enemy room design coming along? I'm not in content creation mode right now, so a lot of stuff's fairly placeholder. I'm still building the engine. It's It's a very very long progress. Like a goal right now is to get a vertical slice done. So there'd be like a playable level one with like, you know, a proper gameplay loop and a boss and then you can loop and do whatever just just to test out the the the game play. But now the the engine is the focus. It's not not trying to make like balanced gameplay or anything. Like I can give them their guns back and enable health and all that, but you know, whatever.
This is not like really balanced or representative of gameplay, but you kind of get the idea.
There's a lot of things missing from balance, obviously, like the fact that all the enemies have every gun.
I think I imagine in the level one of the actual game having a bunch of enemies with um the sniper rifle early on is not not a great idea. But yeah, also just generally trying to do balance in debug mode is difficult because um as you can probably tell, dealing with anything particle related in debug mode is is painful.
This all runs at a trillion FPS on um release, but everything needs debug symbols in this mode. So, flamethrower in particular is very heavy.
Yeah. Anyway, I was working on the upgrades right now, and you can see I originally had like an upgrade system where you um Yeah, this easing doesn't look very good. Um, I originally had a system where you just got like jump scared with a level up screen, but um, after some discussion with my partner, we decided it made more sense.
Well, I also agreed.
I mean, it was an original plan to have upgrade stations like, but she made a very clear point of feedback that it felt it took you a bit out of the action having like a level up screen. like it kind of makes sense in those vampire survivorsy games because the actual gameplay is pretty basic and you're waiting for the loot box whereas in this the gameplay was meant to be kind of the focus. So it takes you out of it a bit to constantly be spammed with a level up screen. So having these stations that you run up to, not that they'll spawn like this necessarily, but that doesn't matter for now. You'd go up to them and then buy an upgrade of some kind. It make makes more sense. I'm just trying to get them to work nicely.
Anyway, yeah, that's that's that.
Hey, Ted, what does it mean day to day?
You writing the code that draws stuff on the screen. I'm doing everything the the engine, the everything you see.
That being said, the the the literal OpenGL functions are being handled by a library as you can you can see in the the FAQ.
But like all all the game is stuff I've done, all the systems, everything. Now that's looking nice. I wonder if it's too smooth.
Do you think Do you think it should be like stepped?
Like you think I should round it to the nearest.1 Y or something?
been working on it since 2020 or so. I also think it shouldn't just be based on uh delta elapsed time because now they're on the same timer. I'm thinking it should be based on the spawn time.
Well, maybe it could be elapse time plus the spawn time of the object or something.
That looks all right.
And it's also like it's like fake Bob, so it doesn't actually change the hitbox or anything. You can see does it wrap around my head properly? It does. Okay.
I just needed to to minus that. Isn't that cool?
Um, you had an idea of making a simple game with Rail with Rust. I didn't know Rail had a Rust thing. Is Rail very generic? I always thought it was like a C++ thing specifically.
Took a million classes this summer semester. You've been busy, huh?
When are you done, Lindley? I feel like you've been in education for a while.
You were doing all those extracurricular things for your your computer science course.
You'll notice if I look on the hit box, these things, the hit box isn't actually moving. It's just the sprite. That's uh important.
It's becoming single gamedev is hard.
No, it's very easy. You could do it right now.
Just start up a project and that's you're a game dev. There's nothing special.
The only special part about gamedev is sticking to it when it looks [ __ ] Knowing that you have to kind of trust the process a bit. And when you say something is temporary, then that means it's temporary. You shouldn't temper your expectations on prototype art or behavior.
Thank you.
Yeah, I'm not I'm not the world's best pixel artist, but I' i've gotten better over time. I'm particularly proud of the character art. I think this looks pretty good.
The little blue orbs are ammo, but you know, I haven't given them that much thought. I just made a blue orb and, you know, that does it for now.
There's also about 100,000 more XP, like level up stations than you'd really expect. Treat treat them more like um Risk of Rain stations where each level would probably have like, you know, 10 or something total, something like that.
that that much like game economy is not something I'm even remotely thinking about right now.
I just think this is neat that it goes in front of you and behind you.
Yeah, we, as I said, we got this outline shader working the other stream.
You done the art, too? I've done everything. Yeah, it's nice, isn't it?
I'm particularly proud of some of the weapon animations. Like the the revolver is quite snappy and satisfying. The sniper rifle is chunky.
I like the shotgun a lot. Is there a shotgun on the floor somewhere?
I can spawn one in as well.
I think the shotgun has really nice animations.
I can also see it on the port screen, I guess.
Yeah, not bad. Honestly, the the hardest thing I've programmed so far is something so invisible you'll never think about it because it works. And thank God.
But um the autotiler that you see, the fact that all these tiles work and and this is this took this is probably like 30 hours 20 to 30 hours of work to get the autotiler working. There there's a lot that goes into game dev that you don't think about.
Anyway, I've gotten that small task done. Um I wanted to see if I could get some basic item rarity stuff going on.
Um I was playing Runescape recently and I've gotten like a lot of really good drops and it reminded me of how important that is. Maybe I should spend a bit more focus on it.
I ideally wanted the weapons to have some sort of like Terraria style prefix on it where you get like a shoddy revolver and you're like, "Oh, I guess it works for now." And then you see like a legendary sniper rifle. It does like 25% more damage or something and you get like a [ __ ] orange glow on the floor.
That's nice. Like the gambling mechanics in Human Brain are [ __ ] real.
Christina made a small mining game a long time ago.
You like mine a rock and you could get one of like four things from it and I think I got like four diamonds in a row and she said they were like 2% drops.
Even the dopamine from this like game maker prototype game was real. So I want to replicate that in my game as well.
What degree is better to get in get job in game industry? I don't know how good the g the game dev industry is in India.
I'll be honest. There's only a handful of countries that it's it's like a stableish career. I think it's like Finland and um I guess China are doing okay. I think Turkey doing okay. But game games career is is quite rough. You'd have to look up your your local uh advice to be honest. But I think um general computer science degree is always valuable no matter what happens.
Poland. Oh, Poland might do good games as well. Now, maybe it's Poland instead of Turkey. I don't remember. Finland though, I always thought was a really funny one. There's a lot of games that game studios in Finland.
But yeah, computer science is always good.
It shows that you have an academic mind and you can solve problems, or at least it did when I did it.
Hey, illusionary.
Anyway, enough um tattling on. prowling on.
Let's add a very basic component to our weapon.
Uh here we go. Oh, is it under actor components? I guess.
So, let me think how I want to do this.
Currently, modifiers are usually a component. So, you can have like a inflamed uh component which makes the bullet set stuff on fire. You'll have seen it. It also adds like a fire particle effect to it.
I could make the item rarity an extra component, but to be real with it, I think that component will always be on every weapon and it'll only be on weapons. So, it kind of makes more sense for the weapon itself to have the prefix.
And oh, perhaps I could have it on. We also have our data classes, right? So, we have our weapon data. This is like your sort of defaults.
Um, if we wanted to make our life really simple, we could make it so that instead of just fetching stuff like base damage direct from here when we're doing get damage calculations, we could have some helper somewhere that like processes all the various weapon upgrades and whatnot and gives you the damage or the value that you do want.
Where are you being read? Is it only in weapon system?
Uh, what you're being added on.
Okay. Well, actually, you're being added on in Entity Factory then.
And the explosive reload makes use of you. That's That's fine.
So, really, it's actually just here in Entity Factory when we add damage to a bullet.
So, I think we need to have some kind of calculation on the weapon itself, if that's possible.
Spawn bullet only seems to have weapon type right now.
Is it hard to get a stable job in the game industry? Famously. Yeah, it's um it's much easier to get a stable job in almost any other type of computing these days. These days, I guess Japan has a lot of game studios.
Uh there's a lot of game dev jobs that are basically like project based. It's like you're hired to do a project and then that's the length of your contract.
Um whereas a normal job they will hire you until the company downsizes or you get fired.
You know that's my experience. You I mean you'd have to see what the Indian game industry is like. I I don't live there so I can't really help.
Maybe it's different. I I kind of doubt it.
Anyway, my weapon data base damage in here. You don't do this creator entity. Oh, hang on. We do have creator entity.
And I'm guessing creator entity in this case is going to be the weapon that's firing you. Maybe we do just have access to this stuff. Man, I'm knackered.
God, this is slow.
Yeah, I get that you're bulletified or creator entity, but kindly tell me what you are.
Oh, entity. It's the entity with an inventory. So, it's actually the the player. Actually, it's not really what I want to be honest.
We could definitely just store.
I wonder if this stuff could be changed.
This already looks a little funny.
I might need to redo this at some point. I'm going to turn my phone on.
Uh I mean, I see no reason why you can't hold onto the weapon other than that the weapon Well, no. We are immediately spawning the bullet right after, aren't we?
I don't think there's enough time here for the weapon to be lost.
Yeah. You know what? Let's Let's try it now.
Weapon shop from And then spawn bullet. You're going to take a weapon reference as well.
You probably just pass in that strruct as well. Yeah, this needs to be redone a little bit.
If we have access to the weapon to be shot from here, then I can do all the the modifiers on the weapon itself.
Get weapon damage and and all that.
Probably don't need to pass in the weapon data at that point. Weapon type, I should say.
Any backup ideas in your opinion?
I'm a computer science. Like I'm I'm a software engineer, so my advice is only going to be related to software engineering stuff.
It seems like a good career still, but I don't know. You have to talk to your your peers and see what they like.
You're an optional. Oh, no, you're not.
This is some silly music today.
Do you think it's still worth going for as a slightly younger computer scientist? Slightly.
Thank you. How kind.
Yeah, I can't say anything about the the future of computer science in India, but It's it's as stable a career as as as any in the academic field.
You know, you sent in your handwritten interview to Canonicle, hoping they don't hate you. Canonicle, not the company that makes printers.
What was I doing? Oh, I was making sure the weapon still works. Okay, great. So, uh, weapon you.
I'm going to give you a modifier.
I don't really know the best way to do this right now.
I'm thinking a weapon modifier shouldn't just be a flat.
The weapon modifier should imply what it does.
Does that make sense?
Like instead of having the [ __ ] weapon modifier be minus one fire rate and the good one be plus one on like a flat graph with all the weapon stats, I think like some of the [ __ ] ones should be [ __ ] in different ways and some of the good ones should be good in different ways. And then maybe there can be a generally really good one that just maxes everything like um like EVs on a Pokémon.
We're functionally doing EVs, I guess, or IVs.
I guess IVs. The company that makes Ubuntu. Oh, that kind of cool. Good luck, buddy.
When you're rich and famous, don't forget about me.
I thought open source pays big.
How do How do they make their money at Ubuntu?
cuz Red Hat sells to industrial clients.
Does Does Ubuntu have like paid support networks for for companies?
Someone someone's making Ubuntu analytics. They're very unethical.
Damn.
You're telling me my operating system spying on me and it's not Microsoft?
Enterprise.
Oh, they do have enterprise support.
Yeah.
Okay. So, it's it's not that dissimilar to Red Hat. I guess the the base the base package is free, but then if you want support for your multi-billion dollar business, you need to you need to pay the devil. I guess it's similar to like how Oracle is in everyone's [ __ ] pocket.
Everyone needs a [ __ ] database or cloud or whatever the [ __ ] Oracle does these days. In India, it's hard to get a job in game industry, game companies, and get stable. Yeah, I I could imagine.
So, you could do what I do and and have like a normal job, normal software development job, and then um just do gamedev as a hobby. It can be a little tough sometimes, but you don't have to worry about bills as much.
I feel like the weapon modifier should be a um data or something.
And I should load them in data driven development. Do I want that?
I mean, I don't have to, but it sounds it's usually nicer for people, right? If you mixed up in Jason, it's just a pain in the ass for me.
So, we can have weapon or weapon modifiers. I guess I could put it under weapons. I just have it under a different thing like I did with particle emitters and particles. Maybe I'll do that. So, weapon JSON, we can have all the list of weapons. Great.
Very cool.
And then we can have um modifiers.
How do I want that to look? I think just a list of pairs and stuff is okay.
So just to give you an example me we can say damage multiplier I don't know 1.5x or something prefix um legendary I don't know rarity I haven't really figured this much out.
I know common, uncommon, rare, legendary. That's pretty normal gaming stuff, right?
We could have either damage multiplier or you could have an optional list of modifiers. It's kind of just a pain in the ass to have a Jason in this.
We could have legendary and you can have shoddy rarity zero. Damage multiplier is [ __ ] 0.9, dude.
also rubbish.
So you could have an increase to base damage.
You're going to increase to magazine size.
Magazine size modifier.
Just going to do I want that to be a multiplier or a modifier?
I'm going to make it multiplier.
I should continue the camelc case stuff.
Damage multiplier.
Magazine size multiplier.
The entire system is free. Having someone on the phone 24/7 to fix your [ __ ] when it hits the walls cost money.
Yeah.
Working a project with 20 people, but you'll do it in your spare time as a hobby. only maybe four of you are super active on at any one time. I I'm guessing you're working on different game projects, right? You're not all working on the same stuff cuz like a lot of my colleagues, they're not they're not playing games or they're not making games, but they're they're all working on their own [ __ ] whatever it may be. Um spread multiplier, make it higher, I guess.
0.5 I guess would be that. I'm just thinking of all the options that you could have on one of these modifiers.
Got spread. You got booting interval multiplier.
I could just call this stuff multipliers. Markipliers.
Now, I think keeping multiplier in there stops it from being confusing, especially if people want to mod it for whatever reason.
Mass multiplier. Maybe maybe it weighs less so it switches faster, you know.
Alt fire interval multiplier.
Um, same project. Oh [ __ ] Give 100 concurrent players and do it for fun.
It's the G mod ecosystem that's kind of camped. This game's been around for 20 years. That's awesome, Bucket.
Oh, okay. So, wait, maybe I misunderstood. You work You're in a game development group of 20 people, but you're not all working at the same company. Or are you? I just had this image that you're on a you're on a team at work for 20 years with the same group of people and you've all worked on this Gmod game.
It would nind your current time is 2:00. You're not sleeping just to ask you some questions by the good night.
Hello. You should sleep if you need to sleep, dude. It's It's more important to look after yourself.
I can't answer you questions about working in India. I'm afraid you just work on it part time and some of you work on it a lot less. That's fair. I mean, for a long time project like that, that's that's a lot of people to work on it, I guess. Have you guys considered making something in Sandbox, or is it really really different? Is Sandbox It's out, right? Or is it still in early access?
I I feel like I' I'd have heard more about it if it was out.
Radius bullets per shot.
Do you want a gun that randomly adds another bullets per shot?
If it's really good, maybe it occasionally shoots a second bullet.
I don't know about that.
penetrates multiply.
I think it should be a multiple. I think it should be additional. Ah, doesn't matter for now.
We've already got reload interval.
mass kind of takes into account that, but we can we can have that as well.
Um, oh, ricochet.
And if the gun doesn't ricochet, I guess it'll just um set it to this by default.
Or could we have ricochet additional?
I don't know.
Doesn't really matter.
Velocity standard deviation.
I'm not going to start [ __ ] with that.
Will it speed multiplier? Is it handy to have it be slower?
Maybe if you have like a BFG style weapon, I don't know.
Let's say you had a legendary one and then next we have a shoddy one and the shoddy one is like it does 0.9 on everything just to give an example and it's slightly inaccurate.
It shoots a little slower.
That's a little heavier and it ricochets less and penetrates less. That's the idea at least. And obviously I guess you could have a weapon without modifier. Does that say obviously you can have an average or standard average or standard average.
make it uncommon just so we can test different um different colors I guess.
Um some of you were going to do a sandbox port, but it's so shoddy how face punch did it. Well, if you do stand alone, you do Unity or Godo.
Sandbox is bad. It's not Source 2. It's not Source 2.
bad performance. Nothing about development. Yeah, I've heard I've heard horror stories about the documentation weapon rarities. Yeah, just something something new to work on. It doesn't need to be fancy right now.
I just need to have some base implementation in place.
So average What's a Maybe zero can be like [ __ ] tier. One can be common, uncommon.
Uh rare.
Let's just call it what it is.
That uh wower wowers.
Great. I don't [ __ ] know. Excellent factory new legendary just just to give you something to [ __ ] around with, you know.
One of the these can all be 1.1 for now.
These can all be 1.25. I guess why not?
Now I just have some stuff I can apply a loot beam thing to. That being said, I've made these the spread a little [ __ ] on these. These should be 0.75. I guess it should feel slightly better even if I'm just testing it. You know, shooting interval as well, I guess should go down. So, same for that.
Uh, the mask should probably go down as well.
All right, that'll do.
Just have something to work with.
Shoddy, average, better.
How about instead of average, we have um clean, excellent, I don't know.
Whatever.
It's heavily modified Source 2 and then they made it worse than Source 2. Is Source 2 available now? I'm guessing you can have access to the SDK if you the project and you sign Valves NDA.
I remember the um jump. No, not jump academy. What's it called?
What's that rocket jumping game? I've already forgotten.
No, it's a server. Whatever the the movement game, movement mod, momentum mod, momentum mod. They were originally open source and then they had to sign NDA with Valve so they could have access to the SDK, but that might have been source one or regular source or whatever.
I don't know. It's a good example of your competency in being a game dev since the game's been around so long.
You have like 600 maps on rotation. It's an asymmetric PvP game with humans and zombies. You're not just making like um zomb Well, I guess it's not zombie fortress. I used to play a TF2 server mod called Source Mod. What was it? What did we call the server mods in TF2? They weren't source mods, were they?
I can't remember what they were called, but there was one called um zombie fortress I used to like. That was a long time ago.
Based on the zombie source mod, but savly different. Nice. But at least gives me like a mental image, I guess.
The content of tomorrow's lab is at the point where your students headlo.
Are you going to teach them or you just going to show off?
I don't know what gamedev company would take you. It's a company that would be hiring for competency and experience, I guess, instead of specialty with some specific tool.
I guess I can't say I was hired at my my current job because of my excellence in embedded programming.
That that came with a job.
your knowledge. Face punch. Only face punch got source, too.
There's barricading and defense of multiple spots. That's cool. Remember the TF2 one had some really basic mechanics. I don't remember if they got reinforcing working in the end or if it was just the start of the map. Some of the levels had like planks in the way and stuff. I I don't know. That sounds cool, though.
Okay, so I need to write something that reads this in. We got modifiers here.
Um, we're going to go to our bloody entity. No. Uh, what did I call this?
I'm too tired. Um, shouldn't say that cuz it'll make me more tired. Begins with E or asset manager. That's it. I need to create a serialized version of this, I guess.
Enemy data, weapon data. All right, lad.
You're going to be called weapon modifier data.
You're going to have a name. You're going to have a prefix.
You're going to have a rarity.
I guess that can be size T.
You in 18? I don't know.
And then these can all be floats.
And I'll just need to construct one of these somewhere.
Do I need to have a code equivalent of this? I don't feel like I do.
I don't think I need to have an enum or anything.
I think this stuff can be pretty pure data cuz it'll just be the case that when you want to fire a bullet, you pull from the modifiers data and you just apply the multiplier to the weapons base and then if I have other components later, those can be thrown in as well.
So, I don't think I need to deal with any of this stuff. Um, the only problem then is that I do have to make this a vector.
So, the bloody heap.
I mean, I could store in a piece of metadata. So, whatever.
You're going to show up for sure, but you're trying to keep it simple because they're learning cloud computing and the CLI is scary to them.
CD Mod? What do you mean chmod?
Mod. You'll be around maybe. See you, buddy. Good luck with your whatever it is you're doing. Play this pile. Let me know when you're when you're osuoing.
I've got my um plaid right here.
Got a bit of wrist pain though, so I'm waiting for that to heal. else.
Maybe we can do some um co-op or whatever it's called. PvP. No, multi.
Multi. Anyh who, uh let's just have a vector for now of weapon. What did I call it? Modifier data.
And I'll just call that all weapon modifier data. and they'll just have to store either a pointer to their weapon data or a index to in this vector. I don't really think it matters considering the index would be a size t anyway. Probably it doesn't matter.
Maybe I'll just make it a assuming you don't Hang on. No, if it's a pointer because I like the idea because this is in JSON. We could um let me find some new music.
because it's in Jason. You could do a a hot reload, but then I don't know what should happen to all the weapons that currently exist. They could have a copy of their data, but that sounds unnecessary.
I'll be real.
You're giving me the [ __ ] vocals straight off the start. This is how I This is how I fail to concentrate. Okay, there we go.
Um, I think having an index is is more safe cuz then at least I can verify it.
It does mean if you add new modifiers in the middle of uh you can actually that's fine. I think yeah, I forget what I'm saying. Um, I think it's fine if if you hot reload assets and you swap legendary around with shoddy and it makes your gun legendary. That's actually quite handy for for debug purposes. And if you if you take something away and that index is no longer in the vector, then that's that's fine as well. I can just default it to something.
Um, okay.
Let's talk about clean. Why don't you go for great excellent legendary average shy bit?
Yeah, you've decided to stop overthinking it. Hang on, Crusty.
Okay. Um, weapon data. You enemy data.
Where's all weapon data being loaded in?
Be cool if there was a way to somehow save a weapon between runs. I did like the nuclear throne like let you do that with gold weapons and that one weapon in the vault.
Have to think about that.
All right. So, it's this chunk in here.
We have the if key is weapons. I'm going to do an old control C. Check this out.
Magic.
I call it copy pasting.
Why do I do it like this and not construct a strct that I directly fill?
Am I stupid?
It's very possible, right?
How do you do that? I don't know.
They've just forgotten. Like, I didn't even get Gemini to do it for me. I I just did it with my keyboard. It stored it in my clipboard. So, obviously, all that data went off to Gemini anyway. But whatever. Whatever [ __ ] Microsoft's one's called.
Chumb um modifiers weapon modifier data data you're [ __ ] preloaded with information idiot.
All right, we're going to have our data and then I'm going to go as long as we have a float in here, I'll be happy. We got float and we want a string and I think that's it.
And of size T, I guess.
You're a string.
Wowers trousers.
Microsoft makes co-pilot cuz they want to fly you into a brick wall. Which co-pilot?
Yeah. Why was I doing this this stuff so weirdly before?
If you are doing your project and you never have that [ __ ] question to your past self, think very carefully.
I hope I hope that when you read your old code, you are also like what was he thinking by he you know insert your own flavor.
I think this is faster than control Ding everything.
H woolen, why don't you use uh boost to give yourself a boost question?
Hey, Monus, the project's delayed. You may need an hour meeting to discuss, another follow-up meeting to tomorrow, and then another meeting in advance of the meeting. I hope this email finds you well, sir.
You heavily abuse open code. What is open code?
Is that an open model?
Our company doesn't have an open model yet. It's Lord whatever the latest one is. The open source agent. Do you train it on your own data or what?
Free models from any provider. Oh, I guess you just feed it whatever.
Where's its training data come from?
your job quickly changed from devop devops blah blah blah blah to AI product. Yeah, it is what it is. It's why I'm very happy that I've got this hobby because otherwise the amount of code I'd be writing would be a lot less than I'm reviewing.
Remembered all your past code and after a certain point you've hit a star you're content with.
My problem is I started this project six years ago and I can't say that when I started it I was very good at C++ and I can't say I'm very good at C++ now.
So if that gives you an idea of the horrors um you're not happy where you are and you'll be quitting. Oh [ __ ] Nice job title though. That'll help you with the next job.
Also, I know you're a smarty pants, so you'll do good in interviews, too.
Um, I should imagine.
You seem like a like a proper lad.
Proper lad.
Yeah. So, originally I was putting the index somewhere there. What I'm instead going to do is say, uh, I don't need to do any of this make shared nonsense. Don't need any of this.
God, what was I doing?
I look, it's simples really.
Just delete this nonsense. Don't even bother trying to fix it. Just do all weapon. Oh, what was it? All modifier.
What did I call that?
All weapon modifier data. Get [ __ ] turned into him. Dot in place.
Well, we can push back.
I think push back data. Wow.
This one has vocals. The [ __ ] YouTube's going to slaughter me.
You made the job tit to yourself.
Really?
You didn't make yourself a senor.
I've got to ask, how have you been doing in the heat?
Or is the heat not that different? You aren't like having the same heat wave we are in.
You have a fan on. You're melting.
Okay. You don't have air con then I guess.
Yeah, I should. Ah, god. This is disgusting.
Some other time.
All right, we got weapon modifiers.
YouTube chat is in.
I have an emoji for this.
You're watching your dad try and use his [ __ ] smartphone.
How about this one?
You want to be a const, don't you? Yeah, I knew a little guy. Static.
Are you in the [ __ ] anonymous name space? Where's your [ __ ] Do you not exist?
I I'm I think this is old. This is from like when I had text boxes and stuff.
You know what? Come back. I missed you.
Oh, never mind. Yeah, you are used here.
I guess technically what the hell you quest on your own genius old code.
Sometimes you try to change realize we did it in the first place and apologize.
I have done that.
I've done that. Okay. Um, so in entity factory spawn weapon born ground weapon, I guess.
All right. Anyway, um I'm going to have a function somewhere that gives you a rarity.
Well, it should be a size T R generate weapon rarity return zero. Wow.
Uh, index.
How's that look?
You know what? I love you so much. You can be const.
Get that.
You know what? No discard. There's a Send that a message. Send it message to all the [ __ ] developers out there.
Don't discard it.
Wasteful.
Uh to uh the weapon itself. You little guy.
You should have a weapon rarity index on you somewhere. I don't know. Size T weapon modifier index.
Default to zero. Little guy. I'm not spawning you in here either, am I? When are you getting created? I guess when the entity is created.
When is this constructor called? Tell me. Create weapon. I knew they existed.
It's called create weapon, not spawn weapon.
I guess it is create, not spawn. That do um dot index.
Oh, it has a constructor. Well, whatever.
What should I call it?
You don't know what this means yet, but you'll you'll know in the future when I've compiled you. So, for now, every weapon is going to be a zero.
Now, it is funny that I'm calling it a prefix when there's no text in the game.
Don't think about it.
You know what I'm going to do?
You get used when I spawn one in in game.
Quality. It is a quality modifier. Yeah, whatever.
Cuz it they're not all going to modify these. Like there might be like heavy that just makes the mass of it 20 trillion or something. It doesn't affect anything else.
They they don't all have to impact these. I just have in this example.
Anyh who, uh giant weapon quality index static in blast index equals zero.
Uh const auto auto next rarity equals last index.
Oh, you're an int, right? Become minus one.
Check out this stuff.
This should just cycle 0 1 2 3 4.
Actually, that's kind of annoying. No, it doesn't work cuz it's meant to cap out because I don't I don't actually randomly generate it yet. I'd rather it just did them one at a time so I could see how they looked. I'm just going to say if last index Does that work?
Does that work? Does that Does that work? Increment it. Tell me if it's gone up.
question mark. Oh no, it's an exclamation mark.
H we have the the one that tells you in um it reviews your GitHub pull requests for you and about half the time it hallucinates, which is better than it used to be, but you spend so much [ __ ] time reading like utter nonsense.
They're right when they say this [ __ ] doesn't work with embedded.
It's kind of weird that you're defining all of this stuff in uh in static code.
Kind of weird that you you're not refusing to use the heap. Why is this con just like [ __ ] off little robot? It hates const. Who [ __ ] trained this thing? Reddit.
Anyway, um moving on. We're getting a random index. And you know what we're going to do with it? You know what we're going to do in render render actor system? We're going to draw a weapon. Weapon weapon weapon weapon weapon weapon depth. Right.
This is the weapon.
Um etto ano etto tint.
I don't think I'm using tint color here.
Am I epic? Eban. Um, switch weapon index.
Okay. Zero.
There we go. Something like that. 0 1 2 3 4. Default.
Well, default doesn't need to do [ __ ] What are we going to do? We're going to do uh green, blue, purple, or orange, or red.
I don't know.
This song's very beautiful, but I am going to get [ __ ] killed by the YouTube ninjas, so I'm not going to let that get away with me. You can listen to Sorosaki's beautiful concert in your own time.
You write your own lab slides. You can neatly export it to a nice HTML slides file. Emacs or mode.
You're a little Emacs user, aren't you?
All right, let's see. Tint color.
I'm not breaking. No, don't pull through. No. Expected an array. Okay, that's not what I was expecting.
What was that all about?
What music platform are I using? I'm currently listening to YouTube.com.
Blue archive OST playlist for healing and relaxing entity weapons. Jason expected a array.
Expected an array. Nice.
Or I put you in the wrong spot. Oh [ __ ] Hang on. Oh, you are an array.
You are big on emotes. Yeah. You say it's been a part of your personality at this point. Is it Is it not part of your personality for like a while? Hang on. I just shove this into some [ __ ] JSON format or something cuz this this looks normal to me.
Um, asset manager weapons.
Let's see. So on property weapons on property Oh, it's called weapons. You should be called modifiers. Easy fine.
Just use your [ __ ] brain for two seconds.
Unexpected item in bagging. Eric got this tea is disgusting. I can't believe I made it. I've only been streaming for an hour and a half. Why am I like this?
I'm so tired.
Expected a comma somewhere.
Are you missing a comma 9076?
This is a [ __ ] comma.
Let me have a look at my other JSON file maybe.
And when you do pass array, you do pass array.
I guess I can do a breakpoint as well.
Hey, Whizzley.
Oh, I didn't even get here.
Oh, should you be Elsif?
How do I normally do this stuff?
I guess I do else if. No, that's not it.
Else I mean, that's fine.
I'm guessing it just hit the else here and did skip value cuz it wasn't modifiers or something. I don't I don't know.
Three years ago.
Wait, I am my items rarity. That's [ __ ] sick.
Yeah, that's not that's not quite right.
Some of you guys do not have an item rarity. I guess it's white.
But you can see, right? You are what you loot. That's a good name for a game.
Well, anyway, look, we've got item rarities now. They currently don't do anything, so we can fix that pretty quick. I wish I should make it so your character doesn't look like this.
You can have that one for free.
No, I was going with um Robbotomy. Maybe I'll start using that robbotomy.
WHOT me.
I don't know if it should be lower case or uppercase, but you can think about that one in your own time.
I [ __ ] love this tune, dude.
Woollen's wacky weapons.
Where have you been my whole life?
Your crush blocked you. That's rough.
Horrid news.
Um, tank color.
What?
Oh, I'm dumb.
Should have told you that one.
Stop talking to yourself.
Something like this weapon tint color.
Wow.
Was there a new BI update? Didn't play this week, so it was just a repeat.
I've already got Yuka jammies.
Oh, that's rough. Wesley, where's my rubber ducky? You guys, where's your obsession with GTA 6? Stop giving them free advertising on my indie game stream.
Oh, I should do this in the HUD as well.
Hang on. Stop for a second.
Weapon modifier tint color.
You can be a color.
Download 300 megabytes. Go for it. Ba, y'all got one of these things from IKEA on your desk.
A little chair and like you can put like your sugar's in there and like she sits just fine. Sure. You can put your like hollow the wise wolf in there like Yeah, she's fine. Like she's just chill. You know what it's really for is for your smartphone.
You can shove your [ __ ] your smartphone in there and like it just [ __ ] holds it. It's [ __ ] nuts.
I'm not watching your streamer right now.
Apparently, I am watching your stream.
That was an accident.
Unique items. Okay, great.
I just wanted you to download the [ __ ] files.
50 megabytes. Damn. All right. Anyway, um, no discard.
No, maybe this could be on weapon data index. I don't know. Whatever. Who cares? I can move it.
Get weapon uh modifier color.
I mean, this could be somewhere else as well.
I'll leave it on here for now. Life moves on, right?
And then we'll go to uh render actor system.
We something like that.
Get weapon modifier color should call it something like that. This will probably get moved.
I mean, obviously this stuff could also be pulled out of the JSON file as well, but for now, it's kind of uncertain where this stuff's going to be. What's the current [ __ ] event in this game?
What is this [ __ ] Is this a new That's a new story. Cool.
Something wrong. Returned pink.
Wow, now that's cleanish.
Blank, something's wrong. Thank you, Ellie.
And a HUD system.
And we got our weapon here. You No, that's not it.
Weapon.
Weapon. Weapon. Selected weapon. Blah blah blah blah blah.
This thing tint color.
Um, come on.
You're going to annoy me until I compile, aren't you?
Um, what we can say is, um, we can be even simpler here. I think this is the only place we're using selected weapon. That's this as well, but that's fine. Um, if I is not equal to selected weapon, then base weapon tint do set alpha. Ah, compile.
Whatever.
We're dying to play this game. One day.
One day. All the work you see me doing is is building up to it being playable.
One day. You've locked in three Pomodoro sessions while being here. Is that the 25 minutes on, 5 minutes off thing, or or whatever?
You've become very corporate, Lindley.
Where's your whimsy?
Talk to me.
You do 20 10 splits. You take 10 minutes breaks.
That's bonkers.
I think so. Just call this weapon to that works. And then down uh somewhere else we're drawing that weapon as well.
Maybe even just the same.
That's just this.
So, we got origin tint tint color weapon.
Weapon modifier color.
That's That's behind the wrong curly brace.
This will work. Your whimsy is the reason you'll quit your job is because you spun a roulette wheel and landed on 17 black. You didn't put all your money on it.
I want go.
You put it all on. Oh, then what job are you think you're moving to? Not like I'm your boss or anything.
All right, let's see.
Just tinting it directly doesn't really work, but it'll it'll do for now until I care to do something different.
The plan was kind of for the weapons to actually have like a tint f baked into the the weapon type of the color palette to change, but this will this will do for now.
Oh, ground weapons don't use it. It's like when shinies don't show you that they're shining.
Uh, like this.
either accept your job as a hired teachers assistant or you become John Ubuntu. What would you like to do?
Becoming job John Ubuntu sounds useful.
Would you have to move Ubuntu?
Who who are they by? Canonicle.
Where is Canonical based?
It's remote.
Headquartered in London, England.
I know where that is.
Austin and Boston, Shanghai, Beijing, and Taipei.
Tokyo.
I normally call this Is it a UK company?
The HQ is in the UK, but that doesn't mean it's a UK company.
Why didn't you add another playable character? It's not relevant right now.
There is another playable character.
They don't do anything like you know this. You can add a new character as simply as just adding a new element in this um big JSON array. Character 3. You just have to draw all the sprites and change all the stats and stuff, but it's doable. It's just not relevant right now. We're doing engine work.
Anyh who, um, this will do for now.
There's this page called flavors with a U based. Hey, Donut.
Damn.
will ever release the source code?
Probably not for a long long long time, though.
Not being able to get a dev job is depressing. That's the world. Shouldn't have used Claude that one time.
How long have we been doing this? Like six years or something.
Anyway, I'm [ __ ] around a little bit.
Um, am I?
No. No, I'm not.
What happened?
The woolen engine. Does it have no name?
Robbotomy. I think Robbotomy looks kind of cute.
I like it. Good night, Lley. Keep it real.
A common [ __ ] revolver.
W's trousers.
I guess red is the rare yellow you can see in the screen. Now, hello Tom Bowser. Don't know. Check this out.
Do you see it?
It's a sine wave where I've multiplied the inards of time by frequency and then multiplied the output of that by amplitude and then I've fed that into easings.net's ease inout sign function.
Do you see all these things on the floor? The weapons have rarities now which you can come up with in a text file or modifiers at least. Rhymes with lobotomy. That's crazy. You think so?
Wonder if that has relevance to the game.
Think about it.
I feed the output of the sine wave to an easing function to make the bob a little smoother.
Do I not need to do that? Cuz I like the idea of being able to adjust the the amplitude and the frequency, but then also making the output nice. Maybe it's not necessary. I liked how it looked.
Nodo, you don't like it?
I like it.
Oh. Um, you thought it would look a bit like that on its own. I found it looked It didn't look very good. I can show you.
It didn't look super nice.
It's OpenJL under the hood. If Donut ever decides to release version three, it will be Vulcan.
He just apparently doesn't can't think of a name that sounds not like Lib Donut.
Yeah, I think this looks worse myself.
I don't know if you can see on stream, but it like jitters weirdly.
You can still be OpenGL if you want.
Wow, my users will will love that one.
Amazing. Anyway, I prefer it with the easing function. Even if all it's doing is squishing it down at the ends, it doesn't jitter. It jitters. It jitters.
Can you believe it?
I think it jitters just cuz it gets stuck between a couple of pixels.
Oh god, I'm all bruised and [ __ ] dude.
Why is the floor hard? Tell me.
Anyway, um, moving on. I just thought this was cool. You don't need to pick it apart. Um, Mega Bonk.
I'd like to think of it as my own original creation.
No, but really though.
Um, doesn't Mega Bunk come out like last year? Didn't Mega Bonk remind you of Wo Robottomy? Sorry.
Need to start using a different name if that is the name we'll go with. I do like it.
Mega Bonk are not the 2D game Mega Bonk is based on. Is it called Saturn Bonk or something? Oh, wait. Mega Drive came before Dreamcast. [ __ ] Was Mega Drive the first Sega? No.
Sega Mega Drive. What predated the Sega Mega Drive? Was just the arcade machines. I I know they had like the Game Gear, but that that was later. That was the one that took like 50 AA batteries or D's or something.
Anyway, let's make the weapon rarity thing do something.
Weird way to get to factory by typing in actor. All right, brain.
Spawn bullet. All right, we're going to get the weapon data in.
So, I'm not going to pass in the weapon type anymore.
See if that breaks something.
Oh, bullet.
There you are.
All right. And then you're coming in from where exactly SNES.
SNES was Nintendo.
I should just call this weapon All right. This is where we have to do some stuff.
Uh, const auto auto. Um, let's try and do this.
Um if we do blah blah blah blah is this less than or equal less than or equal to less than yeah less than size.
Um, auto weapon modifier.
I can be a ref.
Weapon modifier data mods.
Mod data is huh? Weapon mod data. Weapon mod.
Let's just call it weapon modifier data.
Yeah. Whatever.
Um, we do this and then in asset manager when we're loading that in, I have to assert that that at least has something in it.
Not modif.
And then when that's all done, we have to say assert that size. Oh, just empty.
It's not empty. You're a function, aren't you?
All right. So, we're always going to have one thing in there. I'm just going to move on with my life here.
Now tell me, is there a fancy fancy way to do this or is this just fine? Is there an STD standard ranges view default if not there probably right maybe is that like it's like try to get at index I don't know whatever This works for now.
He's calling me.
That's my thing. No. Okay. Well, this this is fine then.
Could even shove an assert in here, but I'm not going to bother doing that every time I spawn a bullet. Let the [ __ ] let the world crash if somehow this gets emptied between loading in stuff and now the rogue rocket hits that vector.
I actually want to get a pointer cuz right now you're assigning to the first weapon data. Am I?
Yes, I am.
Good point.
And then I just want to do a what's it called again? Make shed. No.
Oh, some like [ __ ] like this. I can never [ __ ] remember this [ __ ] rubbish. Just wrap it in a [ __ ] pointer or some [ __ ] No, that's not it.
You can tell there's something going in here. I I know we had this problem the other day. I just don't remember [ __ ] basic vector [ __ ] Some nonsense you can do here with this [ __ ] I thought this was just address of pointing to the address of, but I can just do that, right?
No, I'm not allowed. You keep a You could keep it a reference if you use the blow operator.
Yeah, that works as well.
I never actually thought this would give me [ __ ] value other than just being based as hell, you know.
What was the pointer syntax I was looking for earlier? How was Apex with the boys? We played it for like 4 hours.
It was insane. I had fun.
How are you doing, Belzo?
The cases are inverted.
Wait, but when I tried typing the amperand object didn't work. Or did I need to wrap brackets around it to get the address of to work?
Question mark.
Got a bit of an upset stomach. That's rough.
I've been a little poy, too. Know what it is.
Um right. Ricochet multiplier is equal to one.
I want to do this differently. I basically want to say if ricochet is max ricochets is um default to zero.
Hang on a moment. AC broke.
Oh, little lolly. unofficial little little little little puddle of sweat. That's horrid.
35° C, 94% humidity.
You're in a shower.
Speaking of things breaking, you've changed the gas springs on the boot of your car. You thought you'd have to pay an arm and a leg for repairs, but apparently they're €10.
Yeah, sometimes car shit's like really weirdly cheap, and I don't trust them.
Beautiful.
Um, who am I?
I don't think the rarity needs to adjust the inflamed heat, does it?
No.
Ah.
Lovely.
Maybe.
M.
Heat.
Heat.
Hey.
Probably not. No.
I think Ram's going to be up for a very long time.
Hey, hey, hey, hey.
You want to know when ice cream will be back to normal?
Probably when you stop enjoying it, it'll go back to being cheap again.
Better feel about some of this stuff in advance.
Oh, whatever. I've I've changed some things for now. The damage should change at least, maybe.
Hey, hey, hey.
Yeah.
Hey, hey, hey.
Hey, hey, hey.
Heat. Heat.
Heat. Heat.
Heat. Heat. N.
Everything.
Heat.
Heat.
You're not Number oh n Oh, sorry.
I'm hyperfocused.
Yeah.
the only way to get work done multiplier. Uh oh.
Heat. Heat.
Happy.
Heat. Heat.
feel happy.
Hey, hey, hey.
Aha.
Ah.
Baby dance.
I It should probably just store a reference to its own modifier data on it.
No, I might might be a pain.
I guess we normally store a shed pointer to weapon.
modify data thing.
I mean, it could mirror.
It might save us a little something.
Yeah, I'm going to do this before I do a massive refactor.
Yeah, but I'm thinking I should I should do this as well for the um for this.
I'm realizing I've already got a pattern solved. I should make use of that.
That's so much neater.
Nice.
Huh?
Hello. Go.
Looks good.
How's my mood?
Tired. Quite achy. I got work tomorrow, but all right.
Why not call your engine the woolen engine and give it branding? Branding for who? I'm not distributing it.
What is already in the lots.
I'm kind of too tired for this, I'll be honest.
Um, there's enemies and players and walls and tiles and destructible stuff and drops and bullets and collisions and drawing and a HUD and inputs and procedural generation and auto tiling and sprites and textures and shaders and all sorts.
Thanks, buddy.
Yeah, it is there's quite a lot.
It's a big project.
have the playlist. Sure.
There you go.
Tommy sending me his Pearl World base if you're wondering what the Discord sound was.
New York.
Thank you. Helps me.
You want to make a game engine or framework for Android? What language and tools can you recommend? Cotlin and Android Studio are a good place to start.
Heat.
Heat.
Heat. Heat.
Heat. Heat.
Heat.
Heat.
What is no discard?
It's a flag to say that you should not ignore the result of that function. So if you're giving a float if you don't immediately assign it to something, you'll get a little warning.
You're currently reading a scientific paper with the text. We assume the earth is flat. That's sky rendering.
Everything is a a sphere. There is no um a friction.
Multilog game online. What are you saying, men? Kim, think about think about your question.
H game online is server on source code multilog for client side not server side I don't know I'm not a search engine you might want to try googling are you having trouble writing Multiplayer code cuz I can't help you with that. I have never written multiplayer code sounds like fun though.
What?
Why did they call it oven something?
Well, I'm not a search engine. Try try this one.
There's going to be somewhere I'm forgetting to call this using the modifier and it's just going to be broken forever, right?
This looks fun to me.
Let's go.
Hello.
What am I doing? I was working on um weapon attribute modifiers. So like rarity levels.
So you'd have some weapons that are rarer. They do more damage or whatever.
So that's requiring a little bit of a rejigging, a necessary one.
How do you become obsessed with programming?
I can't answer that.
Find something you enjoy about it.
If you want to be cynical, find something that gives you dopamine.
Cool down to reload.
Do I have a maid uniform in thigh high socks? I [ __ ] wish said I'm wearing a bloody t-shirt like an idiot.
I think I'd look pretty great in a maid uniform and thigh eye socks. I need to work on my biceps though. If I don't have huge muscles, I won't be able to punch the pe the patrons coming into the bar.
You know how it is.
compiler will optimize this for me anyway. So, you know, let them live. See, we might have done it. Let's see.
Will you port your game to Nintendo?
I don't know. Probably not. I don't know how you get something on the Switch.
What's your playlist? I'm just listening to this right now. I have a general playlist somewhere on my YouTube channel called like instrumentals to stream to.
Oh [ __ ] it works. You see this like red revolver? Hang on. I need to find a terrible revolver to compare it with.
cuz I think guns are not spawning with a um they're not spawning with a bullet, which I meant to fix earlier, but I forgot. Anyway, um if I get myself a revolver, you see here I've got a regular revolver. Here I've got like an ultra rare cool revolver.
You can actually see the stats are different, right? The ultra rare cool revolver does quite a bit more damage.
Uh it reloads a lot faster.
The bullets are a lot faster. They ricochet. Although the ricochet isn't showing up on the screen because they're not based on components. I need to fix that.
But check this out. So, this is like a legendary revolver.
This is This is obviously a little uh OP, let's say.
Oh my god. The right click is insane.
All right. I think I'm on to something.
Yeah. There's the difference between the like super amazing legendary gun and like the bog standard. This might even be like a like a crappy one, I think.
It even weighs a little more. So, it comes out a little slower.
You can see it just shooting normally.
Shooting normally. Yeah. Very normal.
Very balanced. Very interesting and normal.
Yeah. Yeah. You're not going to get much with this one. Switch to the the leg legendary red one. This this goes absolutely [ __ ] bonkers. Look at that [ __ ] Did you Are your tile maps entity objects? No, they're not.
Wait.
No, they're not.
They're not. If if the if this tile map was was made of entity objects, then the game would not run at like a decent frame rate. It would run very very very badly. As you can see see when I use like a flamethrower.
Just a handful of particles in debug mode is enough to Well, it doesn't look that bad right now actually, but usually a handful of particles is enough to kind of make the game go a little funny just cuz it's like a few thousand or a few hundred even more uh entities that are unoptimized little uh debug symbols or whatever the [ __ ] But um let's see. So, this is a blue This is like a decent rocket launcher.
You can compare that to the red one.
Oh my god. Hang.
Am I shooting?
What's that?
Oh, they're ricocheting the I've never seen a ricocheting rocket launcher. I guess I guess that works. It's open jail back end at the very back. Yeah, I'm using lib donut to handle that though.
Dude, I hadn't considered the implications of a of a ricocheting rocket launcher, cuz of course it just works. You know, like the ricochet code doesn't care if it's a rocket or not.
Your game will have loot boxes. What?
What? What made you come to that conclusion? What do you mean so your game without loot boxes? What do you mean? What part of this makes you think there's loot boxes?
The red the [ __ ] red rocket launcher is awesome. Do I have a red has a red sniper rifle? Can I compare that to a normal one?
when you're implementing microtransactions. Well, I wasn't going to, but if you sound so excited about it, I can implement expensive hats.
All right. I accidentally seem to have made the sniper rifle have infinite ammo because it's a common sniper rifle. So, it has less than one um on its uh what should I say? Magazine size. So, it's defaulted to having an infinite magazine like the knife. So, I probably should fix that. You got to make money with the game somehow. I mean, I was going to sell it on Steam at some point, but I don't know. I I think microtransactions in single player games are kind of stupid. Make the game pay to win. It's like a single player rogue light.
Oh my god, the ricocheting sniper rifle.
The uh I've just Well, we've obviously never had a ricocheting sniper rifle, so this is a new problem. But the um the particle effect for when it ricochets is not updating the uh the angle it should be taking.
Obviously it fixes itself after the second bounce because at that point it it usually will go back on the same trajectory as before.
It's actually crazy that like the legendary sniper rifle reloads so fast.
It's like the same as the the infinite ammo default sniper rifle. It's crazy.
This is how you get your dopamine, though. You see one of these things on the floor and you're like, "All right, I'm [ __ ] set." Not to say I've spent any time whatsoever on balance, but you know, you can associate the color red right now with with good until I um come up with a better solution.
Just makes life a little little more interesting.
Man, the float is kind of nice as well.
Loot boxes and microtransactions.
Hell yeah.
You know me well, chat. I love loot boxes and microtransactions. It's one of my favorite things.
I didn't really change anything, did I?
Increase the enemy spawn chance. There's a lot of enemies. That's too many enemies.
Make Make less make less of them.
It's just ever so slightly unoptimized on the on the debug build, let's say.
And it really is just the debug symbols.
Like I've tried like taking the en like turning off the enemy AI and like taking off their weapons and not drawing them and like making them do nothing. Just having those entities on the screen is enough to cause problems.
People somehow still shooting on empty.
Something is busted there. I should check the weapon system.
Maybe weapon data has got a different name there or something.
Oh, it's calculating it wrong.
Oh, yeah. Look, you seem to be able to to shoot on empty sometimes. That's a problem.
Let's fix that stuff. It's nice there.
Right now there's like actively a difference actually a difference in um between weapons.
We've obviously starting here with weapon data bullets per shot. So why is this stuff being missed? I guess I was checking for dot and not arrow. I think you should make an isometric RPG one day. Why do you say that one? Why do you What What gives you that suggestion?
Oh, [ __ ] I'm so [ __ ] bruised, dude.
With the woolen engine. my non-isomemmetric game engine optimized for a orthographic whatever this perspective is tile game.
I think isometric stuff is actually like a massive pain in the ass.
Okay. It was nice how well that was working even with these potential issues. Let's see. Weapon data active system. You're all fine. Yeah. I thought there would be more I had to do.
You look fine.
Yeah.
Where's this other stuff that's causing problems? This is This isn't It might just be the case that the multiplier is breaking.
It will be fun to solve it and you will expand your engine, too. I disagree. I think it would be really tedious and I don't really want to do that.
I mean, part of me does. Isometric stuff's interesting, but drawing the sprites in isometric [ __ ] suck. So, it's so much harder than than otherwise.
Um, I have other stuff. I think when I'm done with this project in a hundred years, I'll I'll do something else. I haven't painted my Warhammer in a while.
Uh, let's see.
Robbotomy, the RPG where it all began.
What part of my creative process had given you the imagination? that I have any imagination or ability to write stories.
I don't know if I've ever shown off my ability to write or lack thereof.
All right, I should fix that.
It should be okay.
All right. Um, that should help.
Something's wrong.
What was it? It was when I was right clicking with the revolver that when it was like a high level, it was letting me like cancel.
Is that it?
I guess in this case the alt fire interval was faster.
Something's broken with it. I don't really know what though.
Yellow looks kind of like golden. Like that makes it seem fancier, doesn't it?
Or orange, I guess.
Does the comma not work?
Why does the comma look like that?
Oh, wait. That should be a slash for out of.
Why? Why does it look like that?
In fact, some of the sprites do just look a little off. Maybe I accidentally deleted some of them.
I think all the dots consistently look kind of off. I must have just deleted some text at some point.
Oh my god, dude. The the SMG is crazy.
Maybe I should deal with weapons a bit more like Vermentide.
That might be interesting. You could have marksman's, automatics, close range, melee, that sort of thing.
This thing absolutely blasts though.
It's crazy.
Incendiary bullets. Perfect. Perfect for my frame rate.
Yeah, something something's wrong with the auto reload.
If I hold R, does that change the thing?
It's really weird. You still seem to be able to shoot while you're right clicking. That's definitely breaking something.
I think I must have changed the calculation I'm somehow using to decide if you can still shoot.
I think I've switched something I shouldn't have. Let's have a look.
Get reload interval.
Get bullet speed damage magazine.
Shooting interval. H fire.
Shooting.
Bullet speed.
These all look normal.
Um, obviously you're on new spread. I don't really check. I I guess they'll be well hang on.
We can easily test such things.
We make the spread multiplier 0.1 0.3 0 7 1 I don't know 1.5 whatever um let's see spread bullet speed modifier data uh looks okay etc. Mhm. That looks normal.
Maybe it broke in here.
Is it the case now that the reload interval is somehow shorter than the No, that shouldn't matter.
I'm not really sure what's breaking. I think it's just some logic. When you are bullets to fire, it's somehow letting you shoot when you shouldn't be. Let's be honest. It seems to Yeah, that that's really the case, huh?
So, if you're reloading, then fine. They can discard a thing.
It's not switching.
This is when it expels the casing.
That's fine.
Oh, I need to remember that the weapon should spawn with um let's say uh shots remaining is get magazine size.
Let's do that.
Sure.
I hope that works.
We'll find out, I guess.
Just realized that it's like midnight.
My music ended again.
It seems to spawn with a bullet. I don't know where the text is off. I'll have to fix that tomorrow. I can't be asked to launch a sprite right now. I want to pick up a gray gun and like confirm that it's um the spread is worse.
It looks worse to me.
It also feels worse, which is kind of the point.
Although I know the it should be the default. like the the slow gun should really just be one with all the modifiers and everything else should just be top on top of that. You know, this work.
H You can still shoot in in the middle of an alt fire.
Maybe you could always do that. I just never tested it.
I don't like that it sometimes seems to let you shoot an extra time.
Why is that?
It seems to know that you can't That might help.
Anyway, I should probably look to stop it soon. It's been 3 hours. We've made some good progress.
I need to find a shotgun. You'll do that. Helped. That doesn't actually seem to have helped.
No, you can still I don't know why it does that.
It's not triggering the auto reload.
Or it is. I need to work out what that is.
Like this should be triggering auto reload.
If the magazine size is zero, you return zero. Otherwise, you return a static cast.
Why are you being cast to a Oh, that makes sense.
That should still be okay. I think Maybe cool down buffer needs to be a little higher, but that doesn't really help. I think maybe it helps.
Attack cool down could just be reset back to why would I not reset that?
got min between reloading and attack cool down. I don't know.
Revolver behaves.
I need to work out why I have this.
Maybe just reset. That seems maybe okay.
Nothing's extra wrong.
Hello. Hello.
Okay, that's not helping.
I'll leave it like this for now. I need to go to bed. I've got work in the morning. So, hello, Don. I'm going to head off.
I made some good uh progress today.
weapons can now have um modifiers on them. So, you can have like a like a legendary gun or whatever, like this revolver that shoots a trillion times a second.
Stuff some stuff still needs to be fixed. Something about these massive modifiers seems to have broken the animation and reload stuff. Don't know quite why.
Need to make sure. I need to fix that, I guess. But that's new. Um, when you get an upgrade, it'll float up and down. It will like clip in front of and behind you as well. You make game. I make game.
Yes. And I'm also going to go make sleep.
Is there an enemy zipping across the screen at like a trillion miles an hour right now?
What?
Oh, no. It's the gun.
Why on earth is it doing that?
It's probably this.
I don't know.
No, it's not this. I don't know. We'll fix this next time.
Thanks for watching, chat. See you next time. Byebye.
Good night.
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

WOW! Judge TURNS THE TABLES on Trump in His OWN $10B LAWSUIT!!!
MeidasTouch
197K views•2026-07-23

Playstation NO DISC/NO BUY Fight Is Over...
DavidJaffeGames
4K views•2026-07-23

Steam and Xbox Just Dropped The Hammer On PlayStation
OhNoItsAlexx
9K views•2026-07-23

Americans Confused in Australia for 17 Minutes Straight
IWrocker
17K views•2026-07-23