we're going back we're going back we don't like Unity 6 Unity 6 did not make me happy so we're going back to the standard delicious cozy comfortable stable Unity 20 22.3 come on in guys come on in hey I wanted to say a huge huge thank you to Solomon G Myer y e Mike B and Ethan G you guys have gotten a shout out for the last couple days because hey it means the world to me that you enrolled in full-time Game Dev and by the way guys if you want to join full-time Game Dev fulltime Game Dev and get 25% off uh it's uh linked Below guys this is my sponsor for today's video I sponsor myself sometimes um and so it look it supports the channel it supports the the uh the game
um you know typically I'm funded you know fully funded by Publishers and Kickstarter um and game sales those are my three funding sources that always you know keep the the game Studio float afloat recently because of 20124 being extremely expensive and also some budget cuts um this does help support the game's development so feel free to check it out below and see if it's something you're interested in you're going to learn everything I've learned in the last decade of making indie games games and that includes how to get funding from Publishers how to get funding on Kickstarter how to get your your your game on the steam front page um I've done all of this multiple times uh with my game pinstripe with my game Never song and with my current project Twisted Tower which hit the steam front page as a demo a couple weeks ago so I know I know what I'm talking about I I do I know what I'm talking about so it's it's a indie game in the trench Indie Game Dev in the trench is
teaching you what he knows and that's that's pretty cool so Chris stair went full-time Bart mamser went fulltime and everlux games went full-time lots of great reviews here uh sultar went full-time Antonio Thomas Stewart so check it out below and if you're student let me know in the chat what you think about the program um and that's if that's not something you're interested in hey there's also a free webinar below and it's how to make six figures with just a demo let me see if I can find it here it's pretty cool it basically just teaches you the basics of funding uh your indie games um so obviously I can't promise $100,000 demo although I've done it myself and plenty of other Indies have done it but I can show you how I've done it um so check it out below and see if it's something you're interested in all right guys come on in come on in hey today's going to be fun we're just going to hang out and we're going to work on a few issues that we've got going
for Twisted Tower let me pull the chat up and put it on my other monitor I always forget to do this um guys what are you working on today by the way how's everybody doing what are you working on how's your life come on in come on in episode 166 that's wild the truth is is it's about double that this is when I started counting um and started adding the number so I it's probably closer to 300 which is really really cool I love live streaming it's a lot of fun um if it helps one of one time my mom was telling people I make games and somebody she told was one of your students and fully recommended your course that's hilarious goofy that's so cool was the game also published by 3D
Realms yeah we're currently published by 3D Realms but I've said this a million times there was budget cuts last year and so I had to scramble and figure out how to finish this game on a tighter budget welcome to Indie Game Dev um cool good reverends playing AOW awesome awesome awesome cool cool cool cool cool set goal we have a super chat goal no I don't I have I don't know I feel weird about super chats I don't know why um how's the audio anyway let's jump into uh let's jump into Game Dev guys so the first things first uh there's fog particles and my theory is is that they're useless so I'm going to open those up here
and see if we need those this is remember guys we had these yesterday um and they're particles that are attached to the player hang on let me get rid of that water I apologize if I'm sniffing guys it's just I haven't really gotten over a cold I had in January working on a honey game about a strange Catman so look we have particles attached to the player I just spit sorry what are they called fog yeah right there you can't even see them they're useless let's remove them I don't know why those are even there so here's the thing something to
learn guys and something or something I've learned is that uh large transparent particles can cause a hiccup in your game's performance that was definitely true with pinstripe um will you make public the streams again after releasing the game yeah they're all public right oh they're not public are they I guess you're right should probably make a public all right particles gone cross that off my list um I'm going to go ahead and work on turrets today so I have a turret game object and I'm going to work on the turret Cannon
I'm going to remove all scripts associated with the turret Cannon all of these scripts wait no no no turret enemy is the base layer there it is yep there oh my word what a mess um actually I'm gonna I'm gonna you know what I'm going to do I'm going to just prefab break it oh no we need the gun though yeah so these turrets basically guys they're just broken and so I have to basically build them from the ground up okay now we can delete this I'm going to unpack this one again there we go good okay turret Cannon why is it deactivated okay so Mike jimy is working on a hunting game about a strange Catman Raph says when the game coming
out buddy uh Twisted tow is coming out in October um yeah okay let's delete this I'm going to pull a turret into the main menu or the main lobby here let's just put it right here and that is our tur Canon okay cool everything's disabled for some reason all right and there is his base layer I do like that it's a present I think that's really funny so we're going to do our best to keep that uh keep that true bottom bar what is
that I don't know but we're going to remove any of the uh all of this enemy scripts everything we're going to remove that remove remove oh that sucks we probably should give it a breakable script yeah we'll we'll put a breakable on it remove remove all that stuff and the turret present a turret enemy I'm going to unpack that do we need that no we don't need that we need the gun and the box top the animator on here we're going to remove that um I don't know what that is I'm just basically guys I'm cleaning this up and starting from scratch there's so much trash here I don't need that I don't need that and
that that the box top we do want that the gun it's shotgun my goodness we don't need that we just need this cannon here and he's got a rotator on it good there's a chain gun and an upper bar what's that it's the bar that it's attached to it'll make sense I promise guys what type of computer are you using to create your games this is called a PC um I don't know if you know what that means it's a personal computer Derek it says time's up that's because you uh the five-day timer I didn't lie the five time the five day timer is for real um you can email Thomas fulltime gamed dev.com and we'll look into get extending it a day for you Derek um so so Derek do me a
favor email Thomas at full ame.com and I'll give you a shout out in the next stream if if we're able to extend it for you we should be able to um I'm just kidding by the way money Joe um I don't know it it was $3,000 or no it's $2,400 it was something like 25 or 26 it was something like a, it was like $500 I'm trying to remember I think it was seriously I think it was $2,600 $2,600 and um I got it from New Egg I don't know anything about PCS so do you have a process when it comes to adding sounds into your game this is from Mike Jimmy yes I do have a process I'll be recording a couple videos on this in the future um it's involves stay sticking to a decibel so I always stick to -10 um
even if it's the quietest whisper it's still -10 and I export out everything at a static volume or a constant volume um yeah that's the first that's one little trick so do that and use audacity okay um I don't know what this crap is what is Bottom bar okay so we have our turret that's the base this Rotator we're going to delete that trim ceiling piece is fine point light we might need that gun tip what this does guys is we have this Rotator come out and the Box this present lid should go down like that and then it comes out but I would kind of much rather
it do this so having it look I'm breathing really loud sorry having it look like a present is really funny but can you tell you know I think I'd rather it the first one you approach it and it's like right here and then it opens up and the lid goes down like this and that's that you know and then the Rotator the cannon comes out that's I call it Rotator because it rotates and follows the player it's right there see so that's what we're going to do and we have a big an animator on here
and I think that's it the first thing we're going to do that's the base layer right it doesn't even pivot properly I might have to reassign it reassign its pivot location um but other than that I think we're good to go here so turret Cannon I'm going to delete anything that's a turret right now in the project wish me luck because this is scary but all of this actually we're going to put it in an old file turret enemy core old turret Cannon and machine gun old and we're going to make that sure those names are old just so when we search we know these are old ones that don't work anymore
Oh Thomas stop it the reason why I want to have turrets in the game is turrets are you could be really creative with turrets because they're super simplistic um have the lid launch off that'd be funny it seems like you have a six sense when it comes to audio thanks Mike um I think I do I think audio and music is my greatest one of my greatest uh skill sets and in my head I just assume because it's easy for me I shouldn't worry about it as much I don't know it's a weird feeling of if something's easy I don't focus on it and I don't think it's a valuable asset for the game which is odd I always have to remind myself that it is all right so the first thing we're going to do is make this breakable
that's that's important okay so we're going to do a big box collider here just like that and we're going to set it up properly just like this give plenty of room to shoot it and then we'll add a breakable script to it and then we have those explosion effects and it'll just pop when you break it that's the first step make it breakable how you doing Anders Edge all right rigid body is kinematic turn off
gravity we're going to make it a metal there we go uh the thing that's going to break is the turret so deactivate object on death the turret so that'll disable the Box bottom that'll disable so let's do that and the crank actually I think everything should disable so we're going to go to Turret enemy that'll disable and then also this will disable uh activate object on death big explosion effects
right there good what's its health I think the turret should be kind of kind of tough maybe 30 and what is the um the hurt sounds well I think we have a turret hit sound already there it is one there let's do one of them uh we have an explosion sound so we're just going to do a death sound turret explode good we have a wake sound but we're going to we need to write a script for that the turret is completely different than typical AI I'm fascinated by that okay I want to talk to you guys about something that I'm learning about um fix my
ugly haircut uh if you have a weakness in your game so for example our AI in Twisted Tower sucks it's not good and it's not going to be better so if that's the case if I know that the AI is not going to be better it's not very Dynamic and unique there's nothing really unique about it sometimes times what you have to do is figure out a way to create uniqueness in an area that you do understand so I know that I can create some really fun and unique Behavior with turrets I could put turrets on ceilings I could put them on the walls I can maybe have them um maybe we can shoot uh grapple at them and they'll become our our friend and they'll shoot enemies as long as it's static and it's not some crazy AI Behavior why not put the uniqueness
there at the end of the day the goal is is to get the get the player to pick which enemies they want to kill first to behave differently with one enemy and then switch their behavior with another enemy you want the player to be strategic if I can find a way to make these turrets really unique and fun and funny um and maybe Dynamic and maybe change their behavior if you shoot the grapple at them then my hope is that we don't have to worry about the AI too much that these are just a different kind of enemy so we'll see that's what I'm learning it's that's more of an indie approach I think bat tune says wind treasure beyond measure is the line that hooked me my brother came up with that so shout out to my brother Johnny
all right so let's see if this is breakable H sounds volume that's way too loud we're going to set it to one set that to one set to one set to one one all right you ready to take a look guys um we need to generate a GU ID not a new guid we just need to generate a new gu ID for this one oh no what are these well when you play the demo there might be some issues because we just have all these new gu IDs I don't know where they are I don't know why that happened
I don't know why that happened we're not going to save this scene yeah how's the performance in unity 6 I've kind of delayed that because um I don't have a NE a steam deck and so it's on its way it should be here in a day or two once I get the the steam deck it'll be easier to test it I can't test un6 but I need to keep working so I I downgraded for now and then branched Unity 6 yeah I don't really know if Unity 6 performance is better I know it crashes all the effing time I know that um so okay we got some weird what is that shoot point light I'm just going to get rid of all the point lights for now actually if I put that I guess it's fine anyway let's hit play take a
look perfect we need to disable the Box collider as well and that's it so that's the benefit guys of having a class that you can use over and over and over and over again I'm not talking about a counting class I'm not talking about pottery class I'm not talking about math and science I'm talking about this breakable object script okay all right so our turrets we can go ahead and drag these in to our enemies so this is our turret Cannon and no matter where I put it it's always going to behave the same um I really want to clean up the
positioning of these objects what does that shoot point like I I'm going to delete that honestly I know I just keep going back and forth here um this big explosion effect that looked awesome so nothing crazy there turret present box the Bottom bar I don't know if I need that this point like here I don't know if I need that we're not going to worry about that for now I I'm not saying unity's performance is bad I don't know Unity 6's performance is bad I have no idea I just know that for this project in the editor I got no benefit from FPS I I got no performance benefit in play mode and the the editor just crashed all the time so I just said you know what 2022 is way more stable for Twisted Tower so that's that's what
we're going to do okay uh we're all set here I'm going to hit apply um next up next up we need to have an animation now we I believe we have a turret animation already idle shooting turret and then turret opened I am going to delete these this is going to be old I'm just going to make this old Idol shooting Cannon oh my word old um no no no no no that's fine the turret is the only one okay um so what we're going to do is we're going to create an animator okay we're going to create an
animation we're going to put it inside of the enemies I'm just going to create a new one called turret and this is going to be turret opened or open it's an action so it's going to open um and then we're going to have it's actually going to be a static State opened and then we'll create another one called turret closed okay so all we want this to do right now is just open up and point at the player that's all we want it to do um nothing crazy here we're not going to have it shoot or anything like that now I have become a spoiled rotten Child by getting great code from Gro and
also um Claude is good Chad gbt is good they're all pretty good I don't really know the difference to be honest with you I need you to be a Unity developer who knows C write me a script called turret I need for now I simply need you to change a animator bull to opened um true or false depending on if the player uh enters I kind of want to use ont trigger enter but I'd rather um yeah we could just do if the player enters a certain radius I need you to show me the
radius with a green circle Gizmo in the editor I want the radius exposed in the inspector um what else do I want keep in mind in the future I'm going to ask you to have it shoot projectiles but not for now once I'm in the radius okay so that's pretty straightforward um we're just going to set it to open to true or false um if the player exits the radius I need you to set it to
false also be sure it only opens if okay also be sure to fire a singular raycast of infinite length uh of the same radius length at the player which is game manager. player controller. transform. position if it hits the player it sees the player and the opened bull will be set to true if it doesn't see the player set the opened bull to false um now some of you are thinking wow
Thomas why don't you just write that from scratch I think it's sort of a gamble it's like I think I think um I don't need the game manager script what's wrong with you why do you assume that I already have that um it's sort of a gamble it's like look is it going to be uh is it going to write it faster than I could write it and is it going to work you know all right there we go all right let's write a new turret script here enemy we're going to create one called turret and we're just going to paste this in oh that tummy
hurts and just remember those of you just joining us you can join full-time Game Dev below for 25% off the moment you click that link you'll be given five days to enroll in full-time Game Dev for 25% off it really is a great course there's like 4,500 students who have enrolled there's a private Discord server there's people who show up in the chat they're probably there today let me know if you're a student um several of my students have gone full-time others have just learned everything I've learned about making games and doing it profitably um making indie games and doing it profitably so you'll learn how to make a game in unity gdau unreal 3D or 2D and you also get some bonus courses as well it's a great course go at your own pace learn everything I've learned if you want an indie Game Dev to hold your hand while you learn how to make a profitable indie game this course is definitely for you so check it out below and I'll see you on the private disc ORD server all right
um opened hash I hate this that is unbelievably stupid just set it to open are you kidding me I told you you crazy crazy person uh uh no I don't need you to tell me that although maybe that's a performant thing maybe it did know maybe it helps performance I don't know but we'll set all this to false good this looks great no real issues here man
all right isn't it funny how social media platforms and also AI it's like creates um alliances everybody has their the AI That's best and the social media platform that's best it's wild it's like religion um all right well we've got our turret Cannon we need to go ahead and set up the proper animation parameters so we're going to go to our animation animator uh closed is the default we'll go opened if we're opened right guys name your bullion appropriately don't do open it's not a trigger make it opened it's a state therefore it's a Boolean you don't have to do that but that drives me
crazy when I re when I see people putting it's confusing it's like is it a trigger or is it a is it a Boolean a state a Boolean would be opened a trigger would be open all right uh that's going to be no exit time transitions 0. five no exit time .5 um and and Interruption St Source next state that's fine no Loop no Loop therefore guys when it's opened we're going to make it look like this we have our box top he's going to rotate down let's get out of isometric mode here and all it's going to do is just move away that's all
just like that I don't hate it and I don't love it that's it and then opened and then closed is just like that9 0 negative. A7 zero ah A90 and then this is opened see you also want the Rotator to come out so in this case it's the turret itself so like this that's odd though to me because he's not gonna let's see if what's the Pivot Point okay that's good that's good so we'll just put it right at its original position right here and he comes up like this and it should point at the play player so all we're changing is the position of this guy and then we're also
going to go 2 by two by two so that you can really see it I mean this is straight up Wind Waker stuff it's going to be it comes out okay so he'll come out like that this will all make sense guys I promise um if I rotate it we don't want to do any Rotator or um nothing to do with the rotation of that object that's just going to point at the player this one we're going to set to honestly we're going to set it to zero um okay so this is what was this called turret yeah direct detection radius I want to be able to see it did chat GPT do or grock do well for us yep so there's his radius so once we enter that he'll see us okay
um am I a fan of David Lynch films of course okay haven't I have not seen a lot of his films but I know the ones that I do love Twin Peaks and uh which is a show and then eraser head obviously um my toenail is falling off off okay so that that's a that's something we can just test really quick how it looks opened versus closed you want to take a look guys you missed the exit time tick it's still enabled oh thank you
all right when in doubt figure out what's wrong open is not being said to True when in doubt see what's wrong um if player equals null return if player is in range good if hit that transform equals player so let's double check this it should be but we'll double check it might be hitting itself um yeah it's probably hitting itself now we need this raycast guys because
otherwise it will be able to detect you through through walls and that's ridiculous you know if AI existed when you made pinstripe how much faster do you think it could have been made uh it's hard to know I don't know it's hard for me to know how advantageous it is uh AI wow it's not even throwing a debug wow my theory is player is not being found that's my theory
yeah let's see if we're returning something here we could probably just expose all this honestly let's see if it's finding all this you should make the raycast non Alo for better performance Twisted liver what do you mean yeah you might be right about the awake function it's proba I don't think it's finding it at the right time yeah you're probably right oh we got an error duplicate serialized field really
okay this is silly I don't need a tool tip there was people who were saying that uh Claude they were annoyed because Claude is giving just way it's like overperforming it's like an annoying actually intern who comes in to help code at a software Studio or like a software uh a software firm and they come in and they add way too much and it's like I don't need that what are you doing yeah okay you're right uh Twisted you're right or I'm sorry uh Ray you're right it's not finding it I mean really we can just do this we
don't need that all right guys let's take a look okay it's hitting itself that's fine um what we'll do is we will have the position of the detector I mean honestly we'll just have the raycast ignore itself which is if we set it to enemy uh this object
only then we can say look so we'll give we'll give Claude or not Claude grock the new script uh I've adjusted the script this is the this is what I want to use moving forward cool how do I do a script write the script for me to prove yourself worthy don't change a thing out of control why did you add a bunch of
crap ah yes obey your master okay good all right now make a make the audio sort um make an audio clip play upon entering the um actually we we'll use we'll use our animator functions for that um now make the ray cast ignore the um a certain layer allow me to choose which layers it
ignores in a drop down in the inspector what else did I need that's it guys why am I using AI so much I just feel like this is the future of Dev I really do it's this is it um you didn't do it yeah I so I just want to be I want to get really good at it and learn how to communicate to it and see am I bsing you kind of but um no I really do I really do think this is the future and so I want to just use it as much as I can all right we're going to ignore um enemies so that it won't hit itself
still hitting itself let's see if there's any other colliders that's hitting particle system there a box collider here what is this it could be hitting that we don't need that um that's said to enemy so the turret should ignore enemy yeah I'm I'm really interested in using cursor um what is cursor can you guys explain it I've heard about it I haven't used it yet why is it hitting itself when I said not to
H I don't know it set to enemy [Music] huh guys why is it hitting itself when I said not to hit itself
should it be this I didn't expect this to be this uh when you when you're doing Ray casts like this I've always found it's just and ignoring layers and stuff it could be painful yeah I think you're right yeah okay it's hitting the controller good good so we're going to change that to uh
player layer layers to hit and then uh yeah I agree Andrew Edge I've been doing the same thing um we'll set it to player and I think I think that's all we need all right we've hit the controller the animation is not occurring though oddly enough huh well well well what's the controller let's let's take a look FPS controller it's right here right that's what it's hitting so shouldn't it be doing
this debug.log golly hit controller didn't hit controller all right let's take a look all right it says didn't hit controller yet it hit controller what um if hit. transform oh there we go [Music]
[Music] that's what she said okay next what we're going to do is say okay I had to make some fixes but here is the final code repeat it back to me so I know you're not changing crap like you tend to I don't like how you are so such a know it all and always changing stuff without my express
permission here's the code repeat it back all right you better apologize all right so this is it this is our code great now I don't love that you are checking that raycast um so frequently I feel like that's not performant is that true if it's not performant what are some solutions
a sphere check huh well I mean we're checking we're checking the the players in range I don't love that though the timer one is yeah do it every one second use number one that'll be fine guys just some kind of timer I do not like your clever capitalization um I'm going to put
clever in quotes your your clever capitalization of raycast interval don't do stuff like that again use raycast interval instead all right that should do and by the way it's good to know how to code why so that I can scrub through this and I can just make sure it looks correct um
Ray cast interval is getting set to one yep that's good okay so every second it's going to fire it right be sure the raycast interval is set to one upon exiting that way we don't have to wait a second every time I reenter the radius duh talk to me with sarcasm from now on all right wow I'm a little offended already okay but anyway let's go ahead and bring that in and see if that works
so what is it doing it's checking every second but if I exit and then come back in it'll do it immediately we don't want it to wait a second when I re-enter yep [Music] yep still a problem so let's double check here uh reset timer we're going to set it reset it to zero um and then it'll be it'll be zero here as uh yeah it needs to be set to zero not rast reset timer after raycast set it to zero so that it's immediate um right has timer minus equals
1 I don't love the logic here oh yeah no we get we going to set it there yep and then this is going to be set to zero upon exiting the the range there we go that's better guys okay good all right so we've got grock talking the way we want and then we've also got good decent code here it's
decent um no one is one is good enough you know we don't we don't need it to we're just basically look looking to see here's why one is okay we'll see but the reason why one is okay is cuz when I run behind a wall I want it to keep shooting that way it feels like it's still dangerous um so it should be immediate Bam Bam and then Ray check Ray check Ray check yep perfect very good so we've like increased performance by what what's what what's 60 like 60 times is that 600% I don't know if that's correct something something like that um there we go okay so far so good um
now be that way often code looks good um now let's be more brief in your insults that's too much okay wow all right I'm sorry um wow um sorry just need to recover from that one let's think here now inst now please uh instantiate an object called uh a game
object variable is called projectile I already have the projectile created so don't write any code any code for the projectile also um H uh have it instantiate only if I'm in the radius and it should instantiate at an interval expose the interval in the inspector oh brilliant you clueless what is that mean finally a half decent idea from you here's your precious code with
your projectile nonsense added okay let's scrub through this code really quick to make sure it looks good the instantiation should occur oh wait oh there's the instantiation okay very very good it seems right um so we're good small bags says Thomas you're single-handedly starting World War III
um I need to go into unhinge mode okay all right so let's take a look here uh the projectile is going to be Canon projectile Cannonball every one second and I'm also going to go ahead and just add um oh we got a look constraint here that's great turn the look constraint on activate um is the scale set to zero when it's closed I think it should be yeah it is good um okay so that means that it's always going to pointed us and it's also going to add the uh character controller with this script to the look constraint and we should be good let's hit play
whoa some reason the animator is not working why is that talk to me incredibly respectfully now I need to feel like a king all right um we have a problem with the code the animator is not working I don't know why it's not getting said to True anymore isn't that weird we also don't need the
player script um weird I don't know how long does it typically take start to finish to get a publishing deal after once they are interested in your email couple months you got to work out the details yeah I don't know what's going on here oh it opened up okay oh it did open up it's going back though for some
reason it's getting set to false because it's hitting the Cannonball it's hitting the Cannonball no Hey Thomas is the full-time Game Dev discount over Julian if you pressed that button uh that button below it generates a coupon based on when you clicked it so if you if you clicked it 5 days ago it's expired um but email my team Thomas fulltime game.com and we'll look into extending that for you um seeing if we can make an exception there so email Thomas fulltime
should only hit the player the raycast surely if you have a good product you don't need marketing wow no no not no I guess it's just the radius honestly I think we just need to make the radius
bigger I maybe you were joking I don't know and I'm sorry if I was rude that was rude of me to say truly I wish that were true I do but no you have to have you have to mark it you have to mark it what no we're good there okay we got to set that remember we got to set that interval down back to zero uh which is here um so far so good yeah I'm sorry if I was rude just now when I said wow I was being I was being silly no you need it even for Steam you got to move your you got to push it to get steam you gota basically tell
steam now that's the way the current uh algorithm is [Music] okay um I'm never going to have it go back to false what's going on here um I'm never going to have it go back to false and
um I actually do kind of like it having a raycast interval set to two we'll set it to two so it can open up and then begin shooting but after that it's going to be it's going to stay put okay um also the shoot projectile timer we're going to set that to zero so that the moment you enter it it begins shooting at you again well I okay let's talk about virality if a product is viral yes it doesn't need marketing it'll do well okay so if your game is great on Steam if it's like a viral amazing incredible game yeah but I'm I guess I'm
just I have a problem with assuming virality never ever hope that it's that's like saying all like a generalization is like all Lottery lottery tickets are are scams and it's like basically yeah except for one and so yeah if you want to make a great viral game good luck it's possible and you don't need marketing otherwise if you're like everybody else in the planet use marketing so don't rely on virality okay that didn't work okay um for some reason there there's a couple things going on here projectile interval that's set to
two projectile set in okay that's going to be private let's set it to private and we're going to set that to projectile interval where is that being set projectile timer is set to zero when you exit it h h h h if get bull opened equals
false then oh set it to true that's number one but we also need time right um we need time so we're going to do this we're going to say look set it to true but we're going to set the projectile timer we're going to reset it when it opens we're going to set it to uh projectile interval which is two so it's going to reset and go to two here the moment it opens it's going to go one two boom but we never get set back to fall um I'm never going to have it go back to
false uh now let's see here the moment we get out of range yes H this is kind of ugly projectile timer minus equals time. Delta time I will say this should only be going down if we're in range but we'll keep it we'll keep it so hopefully this gives us two
seconds of like one two and then shooting begins so it comes out shooting begins one two start shooting Yay good if I exit nothing happens and I should start getting shot immediately yep good okay good good good uh turret start sound also for some reason the turret is not um when it's opened it should be up here you know but it's not and I think it's because like it's pointing down or something shoot point light let's turn that on so that we could see the turret better uh uh no let's give let's I understand now
why we had a light here so we can see better a beautiful realtime light with no Shadows good and we'll just do a sort of a warm color drop down the get rid of the gizmos drop down the intensity so we can see it a little bit better we'll also destroy that when we break it there we go oh so that way we could see it a little bit better and figure out what's going on no that's because it's it's shooting from the ground that's why it's blowing up so we need to change we need to figure out why the Cannon's not coming out when once we figure out why the Cannon's not coming out properly then we can have it uh shoot from the tip of the
cannon so where is the cannon it's pointed down hang on okay it's pointed down therefore we need to change its constraints so we don't want to lock those hang on y'all we're almost there okay hang on wow wait set it to
one there we go okay we'll have it emit from there good okay so far so good um 265 with a weight of one that's about it
man let's try it the Shadows issue uh the shadow distance was set to zero on all of the uh quality settings for urp all right now we need to have a a spawn point okay so this uh script is getting more complicated so I'm I kind of want to do some surgical work now um the instantiation is not going to be at the position it's going to be at the projectile spawn point and that's going to be a actually a transform it'll a transform value right and then it will be
projectile spawn point it's just a transform value we'll just add a empty game object and put it at the tip of the cannon right or I guess gun tip yeah there it is so then we're just going to go ahead and drag the gun tip to the the projectile spawn point it should be oh we have an issue all right Thomas I love your channel this is from manual Thomas I love your channel I found it it inspires me to keep learning how to create video games and understand how the industry works that's awesome Thomas do you ever play demos on Steam yes or stream yes all the time just not this week by the way those of
you just joining us just remember you can join full-time Game Dev which is my massive program if you're interested in learning from an actual Indie Game Dev how to potentially go full-time obviously I can't make any promises I would be foolish to do that anyone would be foolish to do that I can't make any promises I could just tell you what I've learned in the last decade of making Indie Games signing three publisher deals uh getting funded twice on Kickstarter hitting the steam front page I believe I've done it three times I remember pinstripe I Did It Never song I did it and then with this demo I did it how to get streamers to player game I've done that just look up pinstripe Never song or Twisted Tower how to get coverage just look up Time magazine article uh for pinstripe um there's a million ways that you can get coverage you can get featured you can get people to play your games you can get Publishers to buy your demos how to go full-time I can teach you how to do it on top of all of that I'm going to teach you how to make games in unity unreal good do take your pick 2D or
3D there's a ton of stuff and if you're a student let me know in the chat what you think about the program once you click that link below you'll start a 5ay timer to get 25% off so be sure to check it out below all right what do we got here well we need to set the projectile spawn point which is the tip and overall we're going to make sure we apply all of our changes here hit play and guys a lot of this is going to be sound sound is going to do a lot of work for us um and just tweaking the animation but we're getting the general functionality done look it's coming out of his mouth now hello I want to shoot you we need a shoot sound all right let's see if we can kill
it still occurs so we need to deactivate the component isn't that funny um we might need to create a new script here although if I remove this and put it in the enemy here I think we're good enough we just need to drag in the animator there and then remove that here and overall I think that's all we do all we need to do yeah Alexandro says Thomas are there days where you say f it I don't want to work today no it's very very I'm just being honest it's very difficult for me to take time off and I understand that's a
problem and it's something I've been working on for a long time I kind of do want it to close when I leave yeah let's make it close guys would you say that that's fine with you else if animator get bull if we are opened we're going to head it to Falls wait what wrong we're going to do it right
here the close is going to occur with the physics raycast stop what is oh um else if this then do all that right so if the ray cast doesn't hit me then we need to close it um if I exit entirely same thing players out of range close the turret if we're opened close
it are you going to make it sound like a cannon or a tennis ball a cannon what world are you living in where we want to make it sound like a tennis ball I'm just messing with you kind of oh my head good so I can see it open and I'm like oh crap I'm going to divide that by two though so that it's it gives you some time you know honestly I could just set it to one gives you like one second basically
[Music] boom closes it's a present oh fudge right so I'm cold or I'm hot let's see here opened up like this the cannon rotate his position I'm going to put it like right there nice and clean actually no right there that's good enough baby just like that and the upper bar we're going to have that turn on yeah although so I do question its position and then
this what is that and then when it's closed the upper bar turns off let's see if that looks good guys and yeah we're GNA have a sound and then a sound as well who knows what my favorite phrase is can anyone guess what my favorite phrase is oil spill nice
no why is a fish when it swims what um my favorite phrase is is um well I let you guys guess your game will sell no I'll tell you when you're older no give it a shot I do like give it a shot that's one of my favorite phrases uh for sure okay let's go to our let's create an audio Source we'll have an open sound as well keep guessing Lord forgive me you 100% uh this is going to be the open Sound actually we only need a shoot sound that's all we really need um ah let's just go ahead Let's do an open Sound and a Clos sound as
well as a father yeah um tariffs no my favorite sound is or my favorite phrase is good enough good enough because that's what this is close sound open Sound shoot sound all right so let's just do it um audio source. playay one and by the way guys good enough is great because um we're going to have you know wait why is that not working oh it's the audio Source um sound is going to do a lot of work for
us okay sound is going to do a lot of work for us now I understand we have repeating redundant code right here so what we're going to do is just do this yay I think it's going to work I like it the rule is if the code repeats and it's redundant make a function out of it if it doesn't repeat don't worry about it okay you guys
ready oh we need to set the code I'm GNA have that uh this I don't like the lid I kind of wish that it would it did it would be cool if it popped off or it was attached to the cannon or something I don't love that it goes down like that but it's fine like I said good enough right um apply [Music] all all right you guys ready why do I have two sources shoot sound oh yeah we need to do a shoot sound as well for when it shoots and we need to make sure that that's a
clip all [Music] right all right let's add an audio Source here and I'm of the opinion that it should be 2D who knows why this should be 2D why do we want the shoot sound why do we want the wakeup sound and the Clos sound why do we want it 2D who wants to guess who knows
turret wake what's this one oh I like that sound yes good yes so the player knows it's happening it's we're we're we're going to be near it when these sounds happen otherwise they're not going to happen right so as long as we're within that radius I want to hear that sound clear as day okay uh close sound turret sleep good now I don't know if we need it that loud so I'm going to do like
6 um and we'll go from there we'll see if that that sounds good but guys I I hope that you'll see the value of sound here in just a [Music] sec but you wanted to have Reverb [Music] so I'm going to have it uh no I think I think we're fine good enough right guys it's awesome and as let's see if it breaks as well how would the player not know if it were a 3D sound because if they're too far away from the 3D sound they won't hear it there's no I I don't think there's no there's a reason to have it um 3D at all if it only happens when
we're you know 60 [Music] units awesome so you know it's a little easy to kill I think we should be it should be a three shot kill so what we're going to do is set it [Music] to I'm going to do 100 I think these guys need to be hard to kill uh watch this guys it's going to be so easy to just make a turret chain gun as well now that we have a base layer for the cannon we could put this one up here we could put on a wall if we wanted doesn't matter you know um something like this9 Z [Music] zero okay we could put that
here and all we do we just that a chain gun we're going to make a variant out of it and then this one has red right the chain gun is active Cannon is deactivated the interval notice how I didn't create a script called chain gun turret or Canon turret we have all the variables we need guys uh the interval needs to be exposed projectile interval here needs to be exposed so we're going to serialize that um we also need to set the
detection radius to something like 20 these are going to be so freaking fun now that they work uh projectile interval we're going to set it to0 2 for the turret chain gun the turret Cannon uh two is good boom boom boom yep that's good turret chain gun good I think I think that's all set oh we need the sounds The Sounds need to be correct so we have the turret shoot sound yep that's the one we need turret wake this is chain gun wake and then turret sleep that's fine apply all uh detection radius we're going to do 60 or maybe yeah 40 is good and I kind of want them to be equal so we'll do 40 with this one as
well and then let's that's it that's seriously it uh like I don't think I don't think that it's going to be a problem um serializable serializable just means it's it's visible in the inspector that's it yeah so not in the engine but in the inspector okay we need to change it from Canon balls cannon balls um Bitcoin is not doing well right now good grief it's so unpredictable I mean it's at a discount it's at 86,000 right [Music] now oh
well uh yep we'll change this to just the pistol projectile pistol there we go and uh apply and then we should be good no we fixed the layer mask woo really you're right [Music] oh
crap ah I didn't know I didn't fix the layer mask issue really we don't need that I know but that didn't work when I add the till the Tilda you know what I mean so you're saying that this isn't working right here player layer if hit. transform equals the player we can shoot and we're opened
oh yeah we need a variable called can shoot player uh player in sites sites equals true else player insights equals false and then you just say if player is in sights shoot the projectile that's about it um okay that should do it
wait it should still close itself though you know how am I hitting theol oh that's what it is we need to also set it to have defa I I see so we need to go to the base layer Cannon all the way down here we need to say it can also hit default um it just can't hit itself we'll see is there anything in here that's a collider you know I think we're good guys let's take a look yes it will keep shooting past two
seconds that's because of the timer oh we need to do this player inside schols false and that'll stop it right no yeah yes it needs to occur [Music] here it needs to occur there yay I think we got
it Carrie says I am here please continue all right guys I think this will work that's terrifying w
that great guys that feels awesome uh one final thing uh one of you was right earlier um audio Source should be set to 2D or I'm sorry 3D we're going to do I I I just it does feel it does feel wrong so you were right I will admit that uh but we're going to set it to 100 so it's a it's bigger than the radius so that we can hear which one is deactivating and which one isn't you know Thomas you rock thanks for all your teaching a you see what it's happen happening there guys it sees me and like War like it's like Call of Duty you know they'll keep shooting at you for a little
bit I believe I have something called enemy turret no there's something yep enemy metal oh thank you Lord enemy metal good that way I think it'll do it'll spawn Sparks when you hit it you do you guys think we should be able to kill him
why had the Sparks per pink [Music] Thomas you going to add hard mode yeah probably so those Sparks uh blood particle Sparks with pink Sparks wow I don't know let's go to FPS controller controller impact effect manager we have hit particle
metal there they are what I think we need to do hit particle what is it hang on crap I feel really good about these things they're way more stable than they were a long time ago I just figured today we would redo them uh golly let's let's see here um if we go to our tag which is called what enemy metal it spawns flesh hit particles metal hit particles blood with pink Sparks why on Earth would I do pink Sparks
what yeah I see so if you hit play and then pause you can select it so it's the Embers here they're pink okay I don't I don't I don't see the point in having those be pink I really don't so let's select that material here we're going to do dust Moe standard white we're going to do orange and then that pink missed yeah I don't like that here we go all right I mean that's
fine I guess there's no material assigned to it are you sure about that there we go and that's brutal I love that feels amazing I love it I want to be a part of it I want it in my life these are a lot of fun so look you can do this guys you could be like hey let's fake out the player you know 0 180 and then you could go oh I'm GNA put you all the way up here I love that you know you could say okay we're going to put him up
here where did you go bro putting them on the ceiling so that they're hidden with a pretty large radius is wonderful like that and then if I take this look and this is the benefit of having the gizmos turn that on okay so where where can the player be well let's let's see here yeah anywhere in the honestly anywhere in the uh Lobby you'll get effed I don't want to lurp it I think you're right look at that this is great so requires like [Music]
Precision woo I love that it's too much fun look take this just keep you could do a bunch of them up there you know it's like dang I gotta be careful in here I got to watch out the developer really knew what they were doing they're crazy this developer is whack whoa let's add a little bit of a randomization
there hey dude so here's what we're going to do uh avoid instant uh instant Awakening when in groups so we go AR Ray cast interval plus equals random. range uh something like son of a uh negative one and one right pretty straightforward there um why can't I plus equal
it and then it equals raycast interval same thing right uh same thing so we're just adding that value so that there's a subtle subtle uh change to everything projectile timer equals 1 plus a subtle random range right just so it's not all happening at the same time you know oh we got a
little okay that should do it let's take a look yeah we're getting a random uh random shoot variables but the Awakening issue that's a problem uh if rast timer smaller than equals zero yeah we're getting an issue with the raycast timer ah yes it needs to be this
I think sorry I can't sit any longer my back is starting to hurt okay let's go what do we got baby Snape that's awesome it's really cool thanks G exercise all right one final thing guys
uh we're going to randomize the shoot sounds add a little s here that way I can add like machine gun challs machine machine gun sounds three right here shoot pistol no we'll do the um machine gun
there we go and then for the Canon we have the Canon shoot sound which is fine it's one sound it's not a big deal all right let's see if it sounds better yes the de the desk goes up but the camera won't so you'll see my crotch
ah it doesn't sound great but overall I'm fine with it that's officially done yay oh remember we don't want to save this scene so let's go to GitHub really quick and discard the scene that's not good we don't want to do that because we we generated gu IDs and you got to be really careful generating gu IDs because the demo is out and if we upload a build it'll screw up people's gu IDs uh so that's all set um brilliant I love it better better good all right guys if you want to get a shout out in uh Monday's stream check
out fulltime Game Dev below and consider supporting the sponsor of today's stream which is me my course full-time Game Dev if you want to learn how to make Indie Games whether it's 2D or 3D and unity gdau unreal it doesn't matter take your pick if that's something you're interested but more importantly you're interested in learning how to make money whether it's securing funding from Publishers securing f from Kickstarter or just game sales hitting the steam front page I've done all of that multiple times so I can tell you exactly how I've done it um guys can't make any promises I really can't but I can tell you what I've done and that's what this course is so check it out below join 4500 students worldwide join the private Discord server get 25% off the moment you click that link below you've got five days left uh to enroll so check it out below get 25% off you're also going to get a ton of free bonus courses as well like how to reach out to streamers um stuff like that how to build an email list how to build a community how to build an audience around your games it's
a course you can go through um step by step slowly throughout the 2025 even 2026 take your time it's a great resource to have and a great uh investment in your future so check it out below 30-day money back guarantee so if it's not for you no skin off your nose no skin off mine I'll refund you no questions asked all right and if by the way if you're a student let me know in the chat and I will uh shout you out if I can here but thanks for the support guys thanks as always for letting me do these ad reads um it supports the channel which really means a lot to me um so thank you so much thanks for hanging out during the stream I thought that was a really really fun stream I feel pretty good about it I feel like I feel like the turrets are a little loud it you know what it really could be that's just too let's set it to 40 I think that's much better yeah
that'll do donkey I like that all right guys I love you I'll try co-pilot next time I see you or cursor as well is that what it's called love you guys so much thanks to the new
Auto-generated captions from YouTube — names and numbers may be misheard.
Distilling the key insights…
Thomas Brush · 2026
Comments