stream. At least it's an evening stream for me. What time is it where you guys are right now? Let me know in the chat what time it is for you guys. It's a cozy evening. You can see it's the sun is setting outside my window. And I just wanted to I wanted to stream today and sort of just break down se Well, what how many? Seven. Eight. Eight secrets. And these truly are eight secrets, things that nobody really told me about when I started making 3D indie games. The best part about today and I think the reason why I can call it the ultimate guide to 3D ga making a indie 3D indie game is I'm going to show you guys I'm going to open up my own commercial release inside of Unity and I'm going to break down these eight things inside of my own commercial project that I'm going to be launching uh in 30 days on Steam. And
no, this isn't to promote my game. Frankly, it's kind of lazy of me, honestly, because I didn't want to create a whole another project for you guys to show you. And I thought, well, it's probably just best to just show them a real project and break down these eight things. Okay, so come on in. Welcome, welcome, welcome. How's everybody doing again today? Let me see here. How's the chat? [snorts] [laughter] Three lives in one day. Someone is on fire. I am really, really looking forward to this. I told my wife today, uh, hey, do you mind if I after dinner, after we put the kids down, do another live stream, and she was gracious enough to let me do another live stream with you guys. It's going to be a lot of fun. We're going to break down these eight secrets. And I mean, honestly, I think you're going to walk away feeling refreshed in a way because number one, you're going to see a project that looks terrible inside of Unity. It's not beautiful. It's not pretty. But I think I mean I almost got
Steam verified today. I'm one step away from Steam Steam Deck verification [snorts] and it has nothing to do with optimization. It has everything to do with the font size. Meaning a terrible, ugly, poorly designed game, at least the architecture of it inside of Unity is about to get Steam Deck verified probably tomorrow. Fingers crossed. [snorts] So I just want you guys to feel encouraged. I want you to feel encouraged. That doesn't have to be perfect. Okay. All right. So, here's what we're going to do. Here's what we're going to do before we jump into the workshop. One quick shout out. Huge shout out to Eric S, Tim S, Julio S, lots of S's, Od E, Nicholas E, Smart Y, Jordan R., Welcome, welcome, welcome to Fulltime GameDev. And by the way guys, if you want to join Fulltime GameDev, the link is below. You have 19 hours left. 19 hours left to join this frankly
really effective program. It's a really effective program that I've I've sort of surgically designed that's built around the idea of what if you could go full-time. What if you could make a full-time income from your indie games before you even finish your game? And I know that sounds gimmicky. I wouldn't trust me either. I really wouldn't. Uh, you shouldn't trust YouTubers if I'm being honest. So, don't trust me. Don't trust me. Look instead at what I've done. Right. So, I've made a game called Never Song. This got published with just a demo. So, I got money from a publisher to make this. They actually helped develop the game as well, which was super helpful. Pinstripe, which was published with just a demo. Both of these actually got kickstarted as well. So, I can also teach you about how to do a Kickstarter campaign and get funded with just a demo. And then the game we're going to open up inside of Unity
is called Twisted Tower. Okay, we're going to open this up in just a sec. This is my third commercial release and this is published by 3D Realms and it's launching in 30 days. And this was my biggest funded project. Granted, I did have budget cuts on the project which was hard. It was really hard. That was a hard a hard month when I heard the news, but it was published [snorts] and funded by 3D Realms and it currently is published by 3D Realms. So, what's my point? My point is if you want to learn not only how to get funding, how to get funding with Kickstarter or publishers, but how to get wish list, how to hit the steam front page, how to make a game in 2D, 3D in Unity, GDAU, or Unreal, any engine, you can take your pick. But if you also want to get my 2D art program, my 3D art program completely free. And I'll also throw in my YouTube course completely free, check out the link below. And look, like I said, don't trust me. Look at my
projects that I've made. Look at the games that I've made, but also look at my students who went full-time. These are students who went full-time with the help of the course. So, if you're on the fence about this, I totally get it. I would be, too. At least click the link below, check it out. And by the way, if you're a student in the program, let me know what you think about it. And uh yeah, one final thing, 30-day money back guarantee, no questions asked, okay? So, it's really no risk to you. And hey, why don't I throw in an hour-long meeting with me um alongside a few other developers in a private group setting. We'll do a call just like this. I'll get to meet you personally on the call and answer any questions you have about your game. So, yeah, that's all I wanted to say about that. Let's go ahead and jump into the workshop, guys. Super duper excited to talk to you about this. Um, so I put together a little slideshow for you guys. Let's see here. Oh, that looks that looks really really cool. Look at that thumbnail.
How to make games alone in 2026. How to make 3D games is the title. Oh yeah. Oh yeah. That didn't just happen. How to make 3D games. Okay. This is a one-hour workshop dedicated to showing you these eight secrets that nobody told me about. Okay. When I started my 3D game, Twisted Tower. And now when I say secrets, I'm not saying only Thomas knows. What I mean is it's things that nobody said. Nobody really brought them up. And frankly, these are things that come about when you're working on a commercial release, okay? When you're working on like a small tiny project or [sighs] I I don't want to say it when you're working on like friend slop, okay, and it's totally fine. Friend slop is profitable. It's a profitable genre. It's totally fine. But when you're
working on a much bigger project, okay, and I know [cough] a lot of you probably want to make like a 3D game that's probably bigger than Friend slot, and it's okay if you don't, okay? But everything that I'm about to teach in here, these things come about [sighs] when you're working on a large project over a long course or period of time. And they're painful things that I had to learn. And frankly, they caused me to recreate me and Filipe, my my 3D artist and designer. We had to rework levels, I think, three times each. Huge mistakes. Frankly, it cost the game probably twice as much as what it should have cost. So, let's jump in really quick. Okay, guys. Now, really quick, this is just a caveat. I can't show you everything about how to make a 3D game. That's not the point of this workshop, okay? This workshop is not here to tell you all the nitty-gritty details about how to make a game because well, the reason why is because you don't want you don't want um
me to tell you the nitty-gritty technical details of making a 3D game. You could find that on YouTube. What I'm here to tell you is stuff that nobody really talks about, stuff that really killed my budget, if I'm being completely honest with you, and sent me into development hell. I am just now crawling out of the depths. I'm emerging from the steamy, hot magma of development hell right now. That's the cool thing about this workshop is you're getting the fresh perspective of somebody who was just in development hell of a 3D game. Thank god it's almost over. Thank God that this game is almost Steam Deck verified. Probably going to happen tomorrow and it's almost coming out. And I am here to tell you with my Steam Deck in hand, I am emerging from development hell with these eight secrets that nobody told me about that sent me straight to development hell. Okay.
All right. And we'll do a big Q&A at the end. I promise, guys. We'll do a big Q&A at the end of this. I promise. Okay. All right. Um I'm trying to become your spiritual successor. Am I dead?
[clears throat and laughter]
All right. So, we already talked about why you should listen to me, but these are my three three games. When I say all are very positive Steam scores, I'm not sitting here lying to you, okay? This game isn't released yet. However, the demo came out last year and got over a thousand very positive reviews. Fingers crossed that this one gets very positive. These two did. They're currently sitting at very positive and they're featured by a bunch of different press and streamers. Um, and Neverong was actually purchased by Apple Arcade, which is huge. My first game game was completely solo. This one, Pinstripe. I don't know why it says
games. Cross that out. This one was a team effort. This one was a team effort as well. Why did I say games anyway? I I was honest with you though. Game game. I also did Kickstarter campaigns, blah blah blah. We already talked about that. Okay, let's just jump into the secrets. Okay, secret number one. This one is huge. Nobody told me that a great 3D indie game is built on a grid. Now, they generally told me that you should block out. And blocking out is just putting a very generic like level design before you actually do any set dressing. But nobody told me about using a grid and snapping to a grid. Okay. And now this is relevant to a first person or a third person controller.
And this grid complements the first person or the third person controller. Okay. So for example, I'm working with uh well I'm working with students. I I I work with students and clients with their own games. And for some reason, there's this this like thought process in indie developers that they think, well, no matter what kind of level design I do, it should just free flow. And the character controller will just free flow. And if if the jump height isn't perfect with, let's say, a ledge, who cares? The player can kind of fudge their way onto the ledge. It doesn't matter. As long as they can get on the ledge, it doesn't matter. when in reality that doesn't number one feel good for the player, but number two,
it's not good for level design. It makes the level design process a guess and check process. So, let's go ahead and open up one of my scenes in Twisted Tower. Okay, I'm open it up right now. Hopefully, it'll load here. Sorry, I have a cold. That's why I'm seemingly eating candy here. There's a cough drop. So, I'm going to try and open up one scene here. And you know, if we enter, let's say, let me pull it up here. It looks like it looks like this scene is a mess, right? It's like this isn't built on a grid. This is just free flow. And I think the reason why a lot of indie developers think that 3D games are just free flow. You just you paste any asset you downloaded from the Unity asset store or the Unreal Marketplace
and you just start placing modular assets and who cares what the size is. As long as it looks pretty, we're good. And I'm not just making this up. I play a lot of your games on streams and I'm here to tell you guys most of the time it's just assets put into a level. And I guess fingers crossed, knock on wood, somehow these assets work with the confines of the character controller. And what I mean is developers think that well the character controller's jump height, dash, slide, sprint, walking, climbing. Hopefully hopefully it works with these assets that I downloaded. When in reality for Twisted Tower, if I'm being completely honest with you, I'd say 80% of these assets here are scaled and designed to fit a grid specifically and precisely.
And no, I'm not going to take credit for this. This was Filipe. Filipe was the 3D artist that worked with me on this game for two years. and he he's responsible for convincing me of why this is so valuable. So, here's what I mean. Let's enter play mode and just walk around this scene. Oh, thank you, Charlo Noir. Thank you so much. I just died. Hang on. Uh, thank you so much, Chara Noir. That means a lot to me. What did you put in your mouth? Spit it out. No. Uh, hey Thomas. Indie dev here as well. Working on our first game. That's awesome. Cool, cool, cool, cool. Okay, let's hit play and let's take a look here. So, this right here, it feels random, right? It's like you just put you put assets in a square box. What's the big deal, Thomas?
Well, let's take a look. this asset here. Let's take a look at its size. Well, this is a standard Unity cube, isn't it? Place it like right here. So, we work within a certain size for all of our walls. And that grid size is 1, two, 3, 4, eight. All the way up to eight. So, what does this mean? [snorts] It means that one floor, one ceiling height is always eight. and it's always eight wide. And if you
look at the grid that we use, we use a grid of four. Okay. So, let's see here. Where is our grid? So, there's our grid. And what we do, what I used to do, there it is. We increment by four. So everything moves at a unit size of four and this helps us our so basically our whole world is is you know it's uh common denominator is unit a unit size of four. Okay. Um I believe that if we go to our stairs even if we use the cube as a measuring device for our stairs same sort of thing. It's a unit size of I believe this is four. Let's double check. down.
We'll turn off snapping for now. Or is it eight? It might be eight. Yeah, it's eight. So, there's one staircase at a perfect unit size. I believe that's this right here. Yeah. of eight. Okay, so the whole game is built around this unit size of four to eight. Doors are four units high, right? I believe that's four. Yep. Four units high. The wall is eight units high. And that's because we decided with our character controller when we started building this game that the player could jump a certain height, right?
So, we set the ceiling height based on the jump height that we liked, right? We set the dash length for chasms that you could dash across to be the size of the dash. So the point is is that when you build a game when you build a game around your character controller, you kind of have to do that with a grid because the grid its sizes, let's say it's four units wide, is directly correlated to, let's say, the dash length. The height of a wall is directly correlated to the jump height. So, the grid size is directly correlated to the character controller's movement. And that is super duper helpful, not only for level design, but it's helpful to the player. The player feels better when they're traversing a world that is
on a nice clean grid. Now, it doesn't have to look like a grid, right? You can make it feel less square. I kind of like the squarishness of this scene. kind of feels back roomsy to me. Now, we have these curved pieces here, right? Like this right here. You're probably thinking, "Well, that's not on a grid." Well, don't be so sure. Actually, it is. See, it's all on a grid. This is just set dressing. Okay, let's move on to the next secret. You guys ready? You ready for the next secret? The next secret. Let me finish this uh cough drop here. I just got a laptop for gamedev off of the used market. Awesome. Congrats. That's cool.
A character controller is everything. Now, not just any character controller, a character controller that feels really, really good to move around, to traverse the environment. It's smooth, but it's snappy when it needs to be. The jumping doesn't feel floaty. And if it does feel floaty, it's on purpose and it's designed to be that way. Halo. Halo. Or it feels heavy. when it's supposed to be. It's designed for that. Bioshock, right? Or it feels tanky. Resident Evil 4, it's designed to feel that way. It's part of the character, the game design. Okay. A character controller that feels really good to move around can really, frankly, make I just burped. Sorry. Can make any
boring game fun. Okay. Now, it's all about function. Sure. Meaning, it's smooth to walk around. It's not clipping or getting caught on things. When you go upstairs, it's not How many times do I play indie games where I'm walking upstairs and it's right? Or how many times do I play an indie game where walking is like it feels like you're like backing up like a mower, like a riding lawn mower? Yes. So, it's about function. It's creating a smooth experience, but it's also it's also about juice. So, it's not I'm not just simply saying make a good character controller. I'm saying focus a ton of energy and time a gray box your scene, use a grid, and then focus weeks, months
on the greatest character controller ever. Because if you have that, you've did kind of half the work for your game. And that also involves juice. So here's an example. Let me let me open up the game here. Let's talk about why in my opinion the Twisted Tower character controller feels so good to move. Um, so here, let me let me go ahead and open up I'll show you some some I guess some never-before seen footage of Twisted Tower. Why is my game pad not working? Hang tight. There we go. Okay. So, there's my gamepad. Let's turn on some sound. I'm gonna make sure the music doesn't play, though, because I don't want you guys to hear the music or the ambience right now. So, I'm just going to go ahead and turn off my music.
Right. And I just want you guys to focus on the character controller and what makes it feel good. Okay. This is no small thing. I'm not just making up crap here. A character controller that feels good to move around means that your player is just going to be having fun moving around. If you can help your player just have fun moving around, you've, like I said earlier, you've you're halfway there. So, let me go ahead and remove some of the story stuff because I don't want to spoil it. I'm going to go ahead and actually, no, let's let's not Well, let's collect the the this weapon here. Okay, now let's move around. I'm going to turn up the sound. Something that I noticed, and this this this was something that sort of manifested to me over two two like the last two years of this five-year cycle.
The last two years of development, what I learned was players had just a really good time exploring. I thought that they were going to say that the hook of the game was the wacky environments and the combat, right? But what they loved to do was this. Do you hear that sound? It just feels good. Oh, now we have carpet. It sounds good. It feels smooth. Attacking feels good, right? Everything is tactile. And it's just because we invested a lot
of time and money on a really silky smooth character controller. Okay. What about this? Oh, now we got a wood sound. So, this is all juice, right? This is all game feel. All this tactile sound. Now, one thing to take note of, it's it's subtle details. So, for example, one of the subtle details is that horizontal movement on a gamepad is faster than vertical. And that's because you're not usually looking up and down that much in this game. Now, you might in other games, but in this game, in combat, you're looking left and right more. So, it's tiny details like that. Things that you things that you aren't really thinking about, and it just takes time. It takes time to to realize what players want. sprinting,
the subtle camera uh zoom, right? The fact that I could see my legs, despite it being not the best animation, it still feels good. Everything feels great. Let's go ahead and take a look at our other abilities. Double jumping. What do you notice about the hammer, guys? What do you notice about the hammer? Watch. Watch, guys. It's this all of this stuff is so important. And these aren't just random things Thomas put in the game. It's No, I'm going to spend 16 hours, 40 hours on a single function that causes what? My hammer to move left and right. See that? When I turn,
when I look up, it wiggles. There's a subtle wiggle. What about when I jump? Watch. What do you see? That's not an animation. That's a function. My hammer's moving up as if my arm is raising as I fall. Right. Sound. Listen to the sound. We got random voices. Right. A character controller that can slide smooth, that can dash, right? That doesn't get caught on edges. Look. Am I getting caught on any edges? No. silky smooth. Granted, there is there is a few instances where that does happen.
Like right here. Still working on that. Right. That's the value of a great character controller. And I want to show you what it looks like actually. So, this is the character controller actually. I've prioritized the feel of the first person over the third person because I knew I would never have third person in this game. So, I don't care. Looks terrible. Who cares? I care about how it feels for the player. Here is the capsule. Okay, we have a bunch of capsules in there, but it's a nice smooth capsule with a camera in it and a variety of other colliders and ray casts. Point being, prioritize and spend the time on a rock solid character controller that is tactile and feels good to slide and
break things, right? That feels so good. Feels good to pop things, right? Feels good to double jump and dash. If you can create a character controller that feels really good and make that character controller's movement directly correlated to what? The grid. The grid. You're halfway there with a 3D game. Any questions so far with that? Does that make sense, guys? Yeah. Character controller. This is from uh Tesport. task part. Character controller priority makes sense. The player is always exposed to it 1,00%. [snorts] The level design and its grid is directly correlated to the character controller. You cannot have one without
the other. In fact, they're kind of the same traversal. Here's the thing, guys. In Twisted Tower, the level design is built around the limitations of the character controller. So, for example, if I were to take a, you know, a dice. Let's bring a dice in here. If I were to take this and rotate it like this and scale it up, it's not good in this game to have angled surfaces. My character controller can't work with it. So, watch. It feels bad now. Right. So, in this game, the whole world is built around this limitation. We never felt like we needed to fix this limitation because we don't build levels like this. Sure, it'd be cool for the next game. Point being, build your level design around your character controller and build your character controller around your level design. They need to work in
tandem. This is why using assets is fine, but it's dangerous because assets are not scaled for your character controller, especially when you're downloading like five different packs. It's just something to keep in mind. Okay. All right. Is that rotating shadow faked? No, that's a cookie. All right. So far so good, right guys? Are we learning something today? Type learning if you feel like you're learning something. Type poop if you feel like you're not learning anything. I'm asking for that one. Um, let's jump into the next secret. Okay. And by the way, those of you just joining us, remember there is a link below if you want if you like my teaching style and you feel like you're learning a lot. You're like, "Hey, I kind of like the way this guy's talking." And you also want to learn from somebody who's, you know, made actual indie games that helped him go full-time on three
separate occasions. There's a link below for my massive course. It's 50% off. It's called Full-Time Game Dev. This is my third commercial release, and that's the one we're looking at right now. Okay. All right. The next secret [laughter] learning learning learning poop. Oh, good. Okay. Step or secret number three. Blockouts keep you sane. Blockouts keep you sane. Stop set dressing. Now, this is such a problem because a lot of you, you download assets from the Unreal Store, the Unreal Marketplace, or you download assets from the Unity store. And what do you do? Well, you have a wall modular piece. Cool. You have a floor modular piece. Oh, let's just use that. and you just snap snap snap snap snap snap snap and you're building this really complicated modular structure
and then you play test it and the level design sucks or maybe you learn something new about play test or level design that you didn't know and you're like crap I have to tear it all down and redo this modular level that's also kind of set dressed because of all these different pieces is instead you need to block it out. Okay, you need to block out your level. Test it and re and what do I mean by test? I mean test it with play testers, real people who are not on your team because your team is going to create something called toxic positivity where you reinforce each other's positivity. You think it's the greatest level ever when in reality if you would just play test it with some strangers like your grandmother. No, not your grandmother, maybe your brother or your sister, your friends. You find out that the level actually sucks. Well, it's best it's kind of like it's kind of like uh
focusing in slowly. Uh another great example is um one of my favorite people on the planet, Bob Ross. How does he paint pictures? Right? So if he were to paint this front cover for never song, if he were to paint this front cover, he would not start with the stripes. He would not start with the shiny eyes. He'd start with the background and he'd slowly with a very blurry set of colors start to slowly bring it into focus over time. Because this is efficient. It's efficient to start in the abstract and then tighten the screws. aka start with a very generic squareish blockout very basic that's aligned to a grid that is also in uh in alignment with the character controllers functionality.
You test it with an audience aka you're failing fast. You test it with an audience. You test it with play testers. They don't like your blockout. It's not working for them. Ah, maybe you move that room over there. Or the key shouldn't be there. It's over here. So, you're going to need to put a wall there. Ah, can we move that locked door over here? Can we put that floating platform up here? Uh, we need an elevator over here. This is so hard to do when you freaking set dressed everything. The reason I get so uh passionate about this and angry about this is because I did this with my own project. Me and Felipe did this with our own project with Twisted Tower. And we redid the levels so many times, two or three times each throughout so many levels, throughout entire chapters of the game because we set dressed before we laid out the level before we blocked out the level. Now, does this mean, and we'll jump into
Unity in a second here, and I'll show it to you, but does this mean you can't set dress a little bit? Or maybe just put some texture? I wish, but Thomas, can we just put some hardwood floors on and maybe do some wallpaper just so I can see how this level looks? Thomas, can we put a window there because I I'm just really struggling to see this level. Sometimes that's necessary. Sometimes it's necessary to just block like add some set dressing a little bit just to feel, okay, is the size right? So, for example, right now we're at the 11th hour. We're working on a library and we kind of need to see how things look first before we finalize the set dressing and finalize the level design. And so, oftentimes the set dressing will inform the level design and the level design will inform the set dressing. But a general rule of thumb is you want to set a level design like this first. Okay, this is from Halo, by the way. If that's not, by the way, if it's not clear, these some of these screenshots
are not from Twisted Tower. So, like this one is HalfLife and this one is Halo. So, let's jump into Unity and I'll show you what I mean. Okay. Uh, if we open up Unity here, turn on all the lights. I'm going to take our block out and I'm going to move it up so you can see what we started with. Okay, this is actually let's let's actually go to into play mode. I'll show you what we were what we have in the final version. [snorts] This is the final version. Let's turn the lights on. There we go. This is the final version, right? Looks like a casino, right?
Wow.
These all must be modular pieces.
Everything is like mod. Even that wall is a modular piece. No, there's a base layer. There's a base layer. That is the blockout that we always start with. Now, granted, you can ask Felipe. Sometimes we broke that rule. Sometimes we would set dress when we really shouldn't have been. Um, but this is the the blockout here. Okay. Um, so let me go ahead and just throw a light in because if if we move the block out up here, we're not going to have any light. Um, so if we go to game object light, let's throw a point light in here. This is always really eerie, by the way. Whenever you do this, it's super eerie. It feels like back rooms. And in my opinion, this is actually why back rooms became popular because it is nostalgic to see a hypers simplistic blockout because a lot of original games from the 90s and early 2000s were essentially
just a very simple blockout with some set dressing. So everything felt like back rooms back then. We're going to warm this up a little bit just so we can get a vibe. So, this is the blockout, guys. This is what we start out with and this is what you should start out with, right? Once you get this working, and what do I mean by working? And by the way, you can really see the grid here. Like, look how good it feels to jump. Look at that. Is that random? No, there's nothing random about this. The jump height is perfectly correlated to the grid, right? The dash. If I max out here, well, actually, I don't I don't know if this is true, but let's see if I'm I'm
right here. Yeah, this one isn't because we don't have double jump on this level. But yeah, the dash even. Yeah, that works. Yeah, but but what do I mean by the level design works before you set dress? What I mean is you have players play this first. They get the key and then they bring the key back to here and they open up the locked door. Boom. Right. Isn't that cool? By the way, you can see the entire block out. It's kind of terrifying. It's really terrifying actually. But uh yeah, once this is approved, once you play this with your team and play testers and they like this, that's when you what? Go back in time. Let's go back. Here it is. Yep. And you set dress. That
was actually kind of cool, wasn't it? And then you set dress here. Let's go ahead and turn the lights on. Okay. So, what do I mean by set dress? What I mean by set dress.
All right. So, this is what I mean by set dressing. Set dressing is you have a series of prefabs that you've sized perfectly for your scene and for your grid. You have them in a nice clean folder and you drag and drop and you set them to static and you occlusion call them, which we'll talk about in this workshop as well. But you just have prefabs and you just spread them around. Now, one of the
reasons why a a disheveled sort of dystopian abandoned game is actually cheaper to make is because stuff like this is really cheap to do. It's the same prefab, but you just rotate them and it looks broken. This looks broken, but it's just this prefab here, right? But you'll notice, this is why I don't know if I'll ever do an asset flip game [sighs and gasps] because you can just feel when a game is made for the character controller. Now, it doesn't mean you can't go in and set dress with assets from the asset store, but you just have to go in and make sure you size them perfectly. Everything needs to be sized perfectly. This is four units wide. This is four units wide, right? It's lined up to a grid. I'm pretty sure that's two units. No, it's four units high, I believe. No, that's two units high. Let's double check. I forget. It's been a while.
Yeah, that's two units high, [snorts] right? That railing piece there. So, the railing pieces are are perfectly sized as well. Okay. Now, granted, this one is a little bit lower, but you get the idea. All of my assets that I'm set dressing with are built around the grid as well. Look at that. I believe that's actually I don't think those are built for the grid. These are right. Those are I think those are 16 units high. So, again, all with a denominator of four, right? So that's what set dressing is. If you could see slowly over time, I can if I do this, I could just delete all of these assets. You can see what we've really done with this scene to create the set dressing,
right? It's just placing assets that are built for this this chapter, this biome. Right now, what do you do about stairs? Well, stairs are actually part of set dressing as well. Look, this is really all it is. The blockout is that and then we put the stairs on top, right? So, it's okay to use some set dressing for your blockout. For example, I guess you could call this door set dressing, but it's functional, right? And so anything that's functional is going to be part of your of your blockout. So doors, keys, things like that um to help and even lighting to even help indicate, okay, over here this is a a red key, so there's red lighting, right? We want to call attention to this part, so we need a
green light. So, the point of a blockout is to create the core basic functionality of a level design and test it. And if that means you need to put a locked door in there, you put a locked door in there. If that means you need a uh to take some fence prefabs and put them there to block the player, then you do it. If that means you use lighting, you do it. If that means you need to use um some elevated platforms like these, you do it. But the goal is to fail fast with a prototype. I'm sorry. With a with a blockout. Does that make sense? Did I have to cut any juice due to performance concerns? Yes. Last week I had to remove the amount of particles that were emitted from spider deaths because it was causing a real hiccup on Steam Deck. Okay, does that make sense, guys? If you're if it makes sense, say sense. If it doesn't make sense, say nonsense. Okay, if it makes sense, say sense in
the chat. If it doesn't make sense, say nonsense. I hope I'm making sense, though. I really do. I hope that you guys are learning. Okay, this one's a big one. This [laughter] when you turn Actually, all of my lights are real time. And that's actually what we're going to talk about in the um I believe the fifth secret. The fifth secret is going to surprise you. Okay. Um, great sense. Awesome. Okay, let's move on to the next one. This one's really fun. Secret number four, and I have learned this by observing my students and clients, and I've talked to my clients about this who I consult with. Secret number four, you will avoid completing the loop as a developer in particular. This is especially true with 3D games.
What do I mean? For some reason, developers have a hard time saying, "You know what? I need to complete this level and this loop and get the loop finalized before set dressing, before adding lighting, before adding volumetric fog, before adding sound and music and ambience and particles and tutorials and menus and UI. They will avoid like the plague. They will avoid completing the loop. Complete the freaking loop. So, here's what I mean. Okay, here's what I mean. [snorts] It's it's it's hard. It's hard to talk about because I've I've been there, but I I get frustrated how developers are always wanting to focus on everything else, especially in a 3D game, like putting this platform here and adding that fog
and creating textures, right? Creating UI. They're focused on all that stuff and they have not completed the loop. the basic loop that their level has. So my challenge to you is to get your loop completed and then you can worry about everything else. Complete your loop. So you'll notice, let's open up my my scene here. What do I mean by loop? Okay, here's what I mean by loop. In this level, I don't want to spoil too much, but in this level, the designer of this level, he might be thinking a lot about, well, I'm ready to set dress, but we haven't play tested it yet, but I'm ready to set dress.
No, we need to make sure that the player starts here. You know what the quickest way to finishing a loop is? creating a start to the loop. So, put your spawn point here, block out your level, and start placing lock doors and keys or whatever your mechanics are. So, the I'm going to go through the loop. You have to grab this and then you bring it over here and then it's this puzzle and then you go across these chasms and then you go in here and kill some jump scare enemies and then you go over here and you place this on this block and then you go over here and have an arena battle and then you go over here and have some narrative and then you dash across these um uh spinny things and then you go over here and then there's a narrative moment over here with this newspaper and then there's an enemy encounter over here and then you open up a gate and then once you open up that gate you get the key and then you take the key and then boop We're back where we started. And then boom, that's the loop. And you can after saying all that out
loud, now you probably understand why developers avoid the loop. Now, obviously, I'm not talking about everyone needs to have a lock key system and it's point A to point Z and you finish the a singular level. That's old school game design, right? and that's my style and that's what I like. But it doesn't matter what your your game mechanics are. My challenge to you is get the loop fully finalized before you start thinking about finishing your game. Before you start thinking about, ooh, I'm ready to do cutcenes now. Ooh, I'm ready to do a tutorial. I'm ready to do menus. I'm ready to do a logo for my game. No. Get the loop done. Because if you don't know how to finish your loop as the developer, you're going to have a hard time actually finishing the game. The loop is like the foundation to everything. By the way, you'll notice that all of these secrets are foundational things. Core foundational
things that if you skip or you avoid, you're not going to finish your game. Does that make sense? This is URP.
[snorts]
Uh, yes. We're going to go over lighting in a sec here. So, that's my challenge to you. Finish your loop. Finish the freaking loop. The core the basic elements of your loop. So, in my my case, the loop is always get keys. Kill enemies. Get keys. Kill enemies. Get keys. Kill enemies. Get keys. Thomas, that's not profound or unique. I know. But even something as simple as that is really hard and it requires discipline to finish finish your loop. Well, there's loops. So, there's core game loops and there's loops within levels, right? So, that for for Twisted
Tower, there's like three different loops inside of each other. So there's like a chapter loop and then there's a floor loop, right? And then so the chapter loop is you defeat the you you do the floor loops. So you get keys to go up each floor and then at the end of maybe three floors, then you get a new ability and you're challenged with that ability and then you take it to the next chapter and then you do the same thing over. So it's the chapters are based on abilities, the floors are based on keys. All right. Moving on. Moving on. Well, every game every game has a loop, right? Every game has a loop. Um you you it's typically revolves like for example like um with like Resident Evil, it's it's getting keys and traversing areas and unlocking new areas and gaining new abilities. It's just whoop over and over and over again.
and it scales. [snorts] Okay. All right. So, moving on. Uh, lighting in URP looks so bad. I wonder how did you get the lighting this good? Lighting tends to not I I I can't. This is I'm gonna call you out. I'm so sorry. In a kind way. lighting usually isn't or bad lighting isn't usually because of the render pipeline. It tends to be related to a bad understanding of lighting. So, let's do some lighting stuff. Okay, I think I think we can move on to the next one here. Okay, does that make sense about the loop, guys? I've always I got to be honest with you guys. I've always struggled to explain a core game loop.
So, we're going to ask Grock so that you guys can get a succinct definition where I'm not trying to I could I could talk about the loop in terms of like my levels that I've created for Twisted Tower, but let's try and abstract it a little bit. So, here's what Grock says about a loop. Okay. Now, we can also use chat, GPT, blah blah blah. I don't care. All right. A core game loop is a fundamental repeatable cycle of player actions, feedback, and rewards that sits at the heart of the game. It's what players actually do moment to moment. And it's the engine that keeps them engaged for hours. And it's a loop because, well, a player doesn't want to do new things all the time. Sometimes you want to throw curve balls at them, but generally they're going to do the same thing over and over again, but it's just derivatives of itself. So, it's new abilities, new weapons, new keys, but they're always it's pretty much always
the same thing. Loop, loop, loop, loop, loop, but it just gets harder and harder and harder and scales. It's kind of like life. Every day is a loop. And then there's just new variables added to what you do every day. wake up, eat breakfast, go to work, eat lunch, come home, eat dinner, watch a show, scroll your phone, drink until you fall asleep, and you do that over and over and over again, but it just changes and the variables twist and change. That's the same with a game. It's very human. Um, simple breakdown, player input, action, what the player does, what the game does back, what the player gets, usually a reward, right? A key, right? By the way, a key is only rewarding if you know there's a lock. Often with slight acceleration and return to step one, often with a slight e escalation or new context, aka it's a derivative and it's it's a change. It's a little bit of a change, right? The loop should feel satisfying on its own, but also compound into larger arcs.
Okay. So, like if my loop is at the very first level, it's I get a hammer. The hammer helps me break through um walls and I find locked doors and I kill enemies and I find a key and then I take it back to the locked door. Then I move on to the next level, which is I got a new weapon after I got that through that locked door. And that new weapon now helps me kill harder enemies. And those harder enemies give me keys for more mysterious doors. And it just keeps stacking and stacking and stacking and stacking. And that's a loop. If you can't get this base layer loop done, you have no business working on volutric fog. So get your first loop done before worrying about anything else. Now you can't get your loop done until what? Well, what we discussed, this needs to be done before you work on your
loop. This needs to be generally done before you work on your loop. Blocking out needs to be generally done before you work on your loop. Now, this you can actually no, we're Yeah. Yeah. Yeah. So, that makes a lot of sense. Actually, I didn't even realize I did it step by step, but that does make sense. Okay. Moving on to the next one, guys. Oh, this is my favorite. And this one's a little bit um controversial. You [sighs] ready? Avoid realistic lighting. Now, this is particular to indies, okay? Instead of focusing on realistic lighting as an indie, especially for optimization purposes, but also for cinematic purposes, I would highly recommend, and I've learned this painfully over the years, placing a few intentionally
placed lights, a few, like two, as opposed to many, many realistic lights. So, I'm going to take you to this scene here. Actually, I think this is a good example. Here we go. Now, it doesn't mean that you can't go in and add more and more detail with lights, but it's just like a blockout. Lighting is just like blocking out. Start. Actually, everything is this way. Everything in life works better when you do it in the abstract first. everything. [clears throat] Okay. Um, dating. Figure out the basic needs of the person you're trying to date, the basic things that they love, and figure out those. Where do you like to go to dinner? What kind of movies do you like? Do you like it when I'm sarcastic?
Do you like my sense of humor? Do you like hugs? Basic core elements. And then as you're married, you get more and more granular and detailed. and suddenly the needs are incredibly they're so complex that they're actually heavenly like they're spiritual needs. That's the same with pretty much everything related to game development. Start in the abstract first. So, for example, I'm going to go ahead and open up that scene. Okay. Um, give me a sec here. Everything in life works best when you start when you figure out the abstract first. All right. So, give me a sec to delete some lights here so that I can do it live. I just have to delete some lights in
this scene so that I can show you how it works here. Okay. Almost there. Almost there. [clears throat] Okay. Okay. I'm going to open up the scene here. All right. So, I have a scene from the hotel level here. And by the way, those of you just joining us, be sure to check out that link below, which is my mass. You have, I think, less than 24 hours to join full-time gamedev, which is my massive course, which teaches you everything I've learned in the last decade of making indie games, and getting funded, making games in 2D, making games in 3D, but also get my YouTube course and my 2D art course and my 3D art course completely free, but only for this sale.
So, click the link below to check it out. Okay, I'm gonna open up the scene. We got it. We got it. All right. Here's the scene. Okay. So, this is our unlit scene. That's There's a light here. So, let's remove that. Now, the way that the way that uh I used to light scenes and the way that me and my team used to light scenes is [snorts] you you just place lights everywhere. Okay? So my team would be like, "Okay, I'll put a lamp on that wall. I'll put a lamp on this wall. Here, let me let me turn the So there's no lighting here. I'll put a lamp on this wall. I'll put a lamp on this wall." Boom. Lamp lamp. Lamp lamp. And every prefab. And then light light light. Light light. Oh, we got to put lights here. We got to put lights here. This can work. It's It's fine, but it creates two big problems. First, it looks real. It feels like a regular
standard environment. Well, that's no fun. We're trying to make a cinematic experience here, an immersive, interesting experience. But number two, it creates an optimization problem. As an indie, do you want to deal who Okay, I for one, I'll speak for me. I don't want to I don't want to deal with baked lighting. Baked lighting is when all the lighting is baked onto the textures and it creates this massive light map, but it only does it with static stuff. And if you have anything that's metallic, it strips the metallic values. It strips specular because there's no directional light available. So this kind of stuff, this kind of specular information becomes problematic. So everything starts to look flat unless you're like a super pro, like a super baking pro. So, for me, I decided I want to use real-time lights. I don't want to deal with baked lighting. I can't do this.
I'm not smart with baked lighting. Baked lighting is like it's like being a chef, for lack of a better term. It's like b it's like being a baker. You really have to understand the idiosyncrasies of baking. It's tough. And I got pretty good at it, but I just decided real time just looked better. But I learned if I want to do real-time lighting, I could get away with maybe two, three lights, and only one of them is going to cast shadows. So, let me show you what I mean. So, I have this really boring scene here, right? Well, what can I make this scene look incredible with two lights? How about three? Sure. Let's try it. Let's put a point light here. And I think you'll be shocked how quickly one light can completely transform a
single scene. You don't need a bajillion lights. Okay, we're going to make this one cast shadows. Oh, already looking pretty good. There we go. Let's reduce the uh opacity of our shadows. And we're going to use something called complimentary color to our advantage. So, we're going to do a little bit of a blue here. Crank up the opacity. I'm sorry, the intensity. And you'll notice that most of my objects in this scene don't cast shadows. Okay? And I do this by default. And this is something that I recommend. So really what what we're talking about in this whole lighting section with the secret this this lighting secret is less is more. Less shadows, less lights, less shadows, less lights. Less mesh renderers that cast shadows. So I uh
have a have a editor tool that goes through all of my meshes in my scene and turns off shadow casting. It goes through all of my lights in my scenes and turns off shadow casting. And what I do is I'll go I'll I'll pick specific lights that should cast shadows. One light to create some sort of cinematic moment. So in this case, we could say, okay, maybe this guy could cast shadows. That's kind of interesting, right? And this is a checkpoint. It'll go away when we hit play mode. We'll turn that one on as well. Let's just delete the checkpoint for now. Oh, now it's getting interesting. Do you see that? And I'm only I'm like one or two meshes are casting sha casting shadows. Let's make this guy cast a shadow. Look at that. It's so ridiculous. Unreal games and Unity games. Every mesh casts a shadow by default. Every light cast shadows by default.
It's completely unnecessary and it's an optimization nightmare. Let's cast shadows with these balloons. For some reason, they're not casting shadows here. Let's go into each one. There we go. Oh, that's spooky. I like that. Right. [sighs] Okay, that's kind of cool. How can we amplify that light? Right, this is a big one. Um, what a lot of people try and do is they're like, "Well, maybe I just need more intense blue light to create more visual interest." Well, what I like to do is just use volutric light, right? So, I could do this. I'm going to crank it down to like 0.001 or it's a tiny value here. Hold on one sec. Um, brightness point. There we go. There we go. There we go. So now we have this eerie volutric light which sort of fills in a
lot of those shadows. One of the things that having a lot of lights does is it fills in all the shadows and and doesn't and sort of reduces that ugly contrast that we see here. But volumetrics can do a lot of the work for us, especially if it's only one light with one volumetric. See that? Okay. Uh here we go. Let's just do another one. This one, let's use again. We're going to use complimentary color. So, what's the opposite color of teal? Well, go all the way over here. There we go. That's really interesting. But we're not going to have it as intense. We might keep the range pretty wide, but we'll reduce the intensity. So, we have two lights in this scene right now. There's some some some like
emissives like this here, [snorts] this here, which yeah, we could add lights to, and I probably will, but they're not lighting the scene. They're just it's an effect, right? You might have a subtle little light here, but it's not there to light the scene like a a lamp would. Right? So, this is what I'm going to call cinematic lighting as opposed to practical lighting. Practical is this, right? It's right there. It's being emitted from this, but it doesn't look as good. This is cinematic, right? Does that make sense? We can put a one more up there. Paste it right here. Oops. There we go. I'm going to move it right here. This way we can make it a little bit more dim.
Move it down a little bit. And this sequence here has three lights. Let's make that a little bit more interesting up there. Maybe with some yellow. Yeah, this sequence has three lights and it looks great, right? So, let's go ahead and enter play mode here. The volutric light is a um an asset that I downloaded. So, Unity by default doesn't have I don't think maybe Unity 6 does doesn't have volutric light. So there's there's an issue with the volumetric there that I need to resolve. But this is three lights, guys. It's like, oh, there's real time shadows. Well, there's like one, maybe two, right? So, this is this is this is so good for
optimization. Um, I would rather do this than have every single light source actually emitting light. Right now, this might look a little bit more stylized than what you you might want for your game, but overall, you can get away with this with any game. Like, for example, let's say you want to light the whole scene. Well, we might go in and do some environment lighting like this. But even still, you know, you can have maybe one light here, one light here, and that's about all the light you need. And this this is environment lights from the skybox here. I can crank it up, but I like it really dim like this. This is very bioshocky. Okay, so less is more when it comes to lighting. Less is more. Um, that's a that's a big rule that I've learned and it was a painful one. We had like I think at one point maybe like 200 lights
in a scene. Um and now we we barely have any lights in a scene. Okay. [clears throat] Yep. Okay. All right. Moving on. Moving on. The last two here. Okay. This one is not going to take long. Ambience can trick the player. Okay. Ambience can trick the player. Nobody told me that a singular ambient track can make the entire game feel alive. A singular ambient track can make the game feel like way more is going on than actually is. So, for example, in this scene here, actually, let's go. We'll go back to uh that clown casino level. This is that's a great example. Let me show you what the scene feels like without ambience and then I'm going to show you what it feels like with
ambience. Okay. So, I'm just going to go to this spot right here. [cough] Okay. Let's Let's go here. I just killed myself. Hang on. Let me turn my air on. It's getting warm in here. Okay. Um, I'm going to die again. Oh, Thomas. Okay. Hang hang tight, guys. So, what I mean by ambience tricks the player is you're literally lying. Ambient [snorts] tracks. I'll show you in a sec, but they have like six different things going on. you'll hear like giggles or you'll hear doors slamming or maybe in your game it's a dog barking and then a gate opens and then a car drives by.
And I can't I can't tell you like how many times I've played a game where I thought the game was doing so much more than it actually was when in reality the sound is tricking you. It's all fake. And and certainly there's there's there's something to be said about uh sound effects that emit from players or characters as well. Even in HalfLife one, enemies would say, "He's over here." Or they'd say, "Uh, he's around this corner." And it makes it sound like the enemies are much more intelligent than they are. When really that's just a canned uh quip, right? So, let's go ahead and turn off our ambience. Okay, there we go. And let me turn off this music as well. Give me give me a sec here to turn it off. There it is. Okay, this is the scene without
ambience. Now there's footsteps. It's certainly eerie, right? But even back rooms, right, which you would think would be completely silent. Back rooms is the buzz of the fluorescent lights. And actually, I have that sound here. Back rooms has Yeah, here it is. This is the ambience from back rooms. All right. So, let's go ahead and hear how it sounds with the ambience. Okay, I'm gonna turn it down for you. I know it's a a little loud for you guys. I'll hit play here, and I'm going to show you how complex the ambience is despite it not being correlated at all
to what's actually happening in the scene. Okay, here we go. Turn off these clips here. Give me a sec, guys. Okay, now listen. Let's just study the ambience. Listen. I guess there's a clown with a bike. A door slammed. Somebody must be over there. I'll turn it up for you. Okay. So, someone There's a horn. So, so there's an enemy running around with a horn.
Thunder. So, it's there's an exterior nearby. Turn it up. Turn it up. Do you hear, guys? Okay. Someone's playing with slots. They just stopped playing. Did they see me? It started playing again. Listen. Listen. Do you hear it? Do you hear it? I'm not going to jump scare you. I promise. Just
listen. What's that? Someone's riding around on a bike. A clock. Thunder. Caking wood. [screaming] Oh gosh, there's a clown somewhere. The clown must be somewhere around here. No, no, it's all fake. And I think um Hector Hector Hector Hector Hector is in the chat. Hector did I think you did some of these, Hector. Hector did some other ones. Maybe you did this one. I can't remember. There was also Pue uh uh billiards um as well. So, what is it? What's actually going on? There must be a bunch of complicated sound layers, right? No, don't be
stupid. Be simple. In fact, keep it simple. Stupid. This is it. It's just a loop of all these just in intricate sounds playing that aren't too annoying and obnoxious and in your face. Okay, look. Listen to that. That's sound design. And it's such a cheap and effective way. It's such a cheap and effective way to make a 3D game. Okay. Let's move on to the final one here. This secret is secret number eight.
Optimization is truthfully I'm just going to tell you it's a nightmare. Optimization is a nightmare. So, let me let me pull that this up here. It is the ultimate hurdle for 3D game devs. Now, if you're making like small scenes, uh you're making super simplistic, well, even with friendlop, you're going to have optimization issues. And so, I just want to break down some of the major things. Guys, you might want to write this down. This is going to help you a lot if you're going to make a 3D game. Um there there are some things that are just major frame rate killers that just suck. your GPU and your CPU. So, let me tell you what those are. Okay, there's there's a few. Okay, we're going to break these down. We're going
to break these down in my game. The first one was shadows. Shadows wreck. They wreck your game's performance. Realtime shadows wreck your game's performance. The [clears throat] second thing is if you're rendering if you're rendering your scene, you want to make this is so this is the biggest I I can't even tell you how much work this is. Um, and how much I forgot how much work because like I've forgotten this, but in order to do something called occlusion culling, what you Okay, let me let me try to explain. In order to reduce draw calls in your game, you need to use something called occlusion culling. Okay, occlusion culling basically callulls out things that are outside of the camera's view, but they have to be set to static. Okay, so if I enter play mode with I'm going to clear the the occlusion culling. I'm going to clear it.
So all of the occlusion calling data I'm going to clear. It's taking a while. Yes. Tech tech techt says, "Were you shocked by the performance on Steam Deck?" AB: Absolutely. I mean, the game runs I I don't know why it's frozen, but the game runs at Let's see if I can get this here. I capped it out at 40. Um, I don't know why. Yeah, there goes Unity. Um, I capped it out at 40 here. And you can see that it just it runs pretty much at a stable 40. You can see it up there. And you might be wondering why 40. Well, 40 is kind of like
in my opinion the the a good number to hit for Steam Deck. So Unity just crashed on me. There we go. Okay. So this is the game. If I enter play mode, I could show you kind of how many tries and draw calls there are in uh without occlusion culling. So, we're looking at Sorry, sorry, guys. Sorry. I know that probably scared you. Sorry. Sorry. Sorry. So, we're at five million tries. Do you see that? 4.7 tries. 4.7 million, right? That's crazy. Okay, if I go to [laughter] scene view here and try and visualize it, I have visualization turned on. What do you
see? Right? What do you see? The whole thing is rendered all the time. the whole scene is rendered all the time, right? It's a problem. This is a huge problem. So, what you do is you make sure you mark things as static and anything that's static can be oluded out and it can also block other things. So, if I bake, and by the way, what I just did was if I bake here, we can look at our batches and tries. Okay, the bake and now resulted in 7 megabytes of bake data. just it just basically creates this sort of grid that blocks stuff out. Now, if I enter play
mode and go to my visualization, go to occlusion and visualization is turned on. This is now what's being rendered. Turn the music off here. [whistles] Oh yeah, you're right. You're right. It's the batches, not the tries. I'm so sorry. It's the batches that matter, not the tries. Gotcha. Gotcha. Gotcha. Um, so you can see here what's being rendered now. In fact, I can't It's so funny. I can't even tell you the difference between those, right? I really can't. Um, the tries and the batches. I do know what I'm seeing here, though. [laughter] And I also know what happens to the frame rate, right? When you when you when you olude everything properly. So this is what is being rendered now, right? As I
go through the level, you can just watch it. Things start to render here. There we go. So if we go down here now, it's this scene that's sort of the priority, right? So I wonder what happens. I am curious what happens to the batches. So batches are currently at uh 1,700, right? Let's see what happens to the uh batches when we delete the occlusion data. This is where I I am out of my ele or out of my league or element in understanding what happens to the batches. I do know this. If you don't have occlusion culling, your frame rate is going to get cut in half easy, right? Okay. I don't know why, but the batches are the same. That is confusing, is it not?
This is where I am a little confused. That is the one thing that I'm confused by. So, we're seeing f and feel free to let me know in the chat, guys, for those of you who are super familiar with occlusion calling, what's going on here. Let's see here. 5.3 million tries, 4,000 batches. Okay. But then when we olude, so it's 5 million and then 2,000. Not sure what's going on with our batches, but it doesn't matter because when you look [laughter] but it doesn't matter when you look at what's actually happening with the visualization, the occlusion calling, it's a big big difference. And also, I just did some occlusion calling today and the frame rate was like up 10 20 frames per second. Let's see here.
[snorts] Okay. No. Yeah, our batches are cut in half. Yeah. So, our batches right now are 1,800 with visualiz or with with occlusion culling. If we clear it, our batches, I believe, are at 4,000. Maybe I'm wrong. I might be wrong here. Yeah. Yeah. Yeah. Our batches are down to a quarter. Maybe half. A half. a quarter to a half. Okay, the batches are and whoever said it in the chat is correct. The batches are what matter. Um, so the batches I'm looking at 4,000 right now with occlusion culling, we're looking at about half of that. So you can imagine what happens to the frame rate uh when you utilize occlusion culling. Okay. Uh, other things that matter when it comes to optimization, just a couple more tips
for you. Other things that really matter for optimization are um uh actually weirdly enough uh pre-loading shaders. Okay, so pre-loading shaders and I'm trying to remember where it is, but if you go to your project and just just ask AI, how do I preload shaders in Unity? Um, and you can go ahead and uh preload shaders and you can actually record them. Meaning you enter play mode and Unity records which shaders are needed going to be included in a scene and then you save that as an asset and then it saves those shaders. This is helpful with hitching. Hitching is when frame rate drops really fast and then back up. So it's like or stuttering is another way of putting it. Um the same is true with preloading sounds. If I go to a sound here, uh, if the sound is not preloaded, right, if I don't set it to preload and that sound plays, it's going to cause a little hitch. Okay? Because it's pulling it into the RAM. So, these are just some things you
need to keep note of. Um, optimization is going to be your biggest hurdle is the ultimate point there. Optimization is the absolute biggest hurdle for me and probably for you when it comes to making a 3D game. Guys, I hope that was helpful. I hope you had a good time. And if you like my teaching style, seriously, if you like my teaching style and you want to support the last 30 days of Twisted Towers development, but also support your own career, check out my fully comprehensive course, Full-Time GameDev. You got 18 hours left to join Fulltime GameDev. Just remember there's a 30-day money back guarantee. So, and we'll we'll jump into Q&A in just a sec. We'll jump into Q&A in just a sec. Let me get this ad redone. [snorts] Fully comprehensive course, 50% off. You're going to get my 2D and 3D art programs. My 3D art program is brand new. You're going to get that completely free, but only for this sale event. And hey, I'm also going to throw in my YouTube course completely free. And hey,
why don't I also just throw in an hour-long meeting with me where I can meet you face tof face on camera in a private group call with just you and a few other developers who enroll during this uh sale event. I can't wait to meet you. I think it'd be really cool. And there's also a private Discord server. If you want to learn how to get a publisher like I've done, I've done it on three separate occasions. Okay? If you want to learn how to take a demo and turn it into a paycheck, and I've done that on three separate occasions, click the link below. Check it out. And uh yeah, and by the way, if you're a student, let me know in the chat what you think about the program. And also, you can read reviews of what other students who actually went full-time think about the program. All right, for this Q&A, we're gonna do a cameraless a cameraless Q&A. I've been streaming a lot today, so my camera crashed out. I've got time for a few questions here, guys. So, go ahead and ask away. Any questions you guys
have, ask away. I'm happy to answer them as best as I can. [snorts] Why not hire an optimization expert for one to two weeks? Well, how many subs do you think I have? How many How many people have I paid for this game? It's And this is a seriously that's a great question. And by the way, I have I think his name is Ruben. Uh I've reached out to some optimization experts. What I found was that my time and money, fingers crossed, my time and money was spent or was better spent elsewhere. was better spent elsewhere because what I found was a lot of these optimization things were actually kind of duh moments. Like duh, not every mesh should cast a shadow. Duh, we should be pre-loading sounds before trying to pull them from memory, right? Um, but let me just show you really quick [cough] where all of my money went.
And this is for those of you who are people I've I've seen on Twitter people are like Twisted Tower is a solo project. It's not. Okay. This is where my money went. All right. So all of this money and time not everybody here was like like Chad and Chad and Jason were volunteers. They were just friends of mines who did who did consulting. [snorts] Um and also Ella. No, I paid Ella actually for design consulting. Um, so yeah, a lot of people got paid. A lot of people got paid. Okay, next question. How do you stay organized during development? Um, I don't not really. Not really. It's gotten it's become kind of a mess. I'll be honest with you. I'm going to be very very honest with you. Most of the time when I'm looking for assets, I fly through a scene and select the prefab in the scene. It's gotten that bad. [snorts] Uh, do you ever procrastinate the start
of your gamedev day? No, that is not something I struggle with. I I tweeted yesterday that if Sunday feels like Friday, then you love your job. And for me, Sunday does feel like Friday. I look forward to Mondays like I look like most people look forward to weekends. And if I can get started working on my game, the faster the better. I really don't procrastinate working on my game. Um, and and what's my point there? And my point is not to say you're a bad person. My point is to say find a game idea that you're really interested in. Find a game idea that you're really really interested and focus on that game. Okay. Um, how do you not get bored? Boy, I don't know. How could you get bored? I hate to be I hate to rain on everybody's parade and because I know a lot of you are probably looking for encouragement. How could you How could you get bored? Like there's nothing more excit even like a menu like this. How could you get
bored? Listen, when you put when you pour your heart into [music] a menu and that's that's my challenge to you guys is pour your heart into your game. You can pour your heart into friend slop, I guess. But I my challenge is is is make the game a reflection of everything inside of you. For me, this is what my heart feels like all the time. It really does. I'm all in, man. [cough] And I love I love making games. I love it so much. [snorts] Do you ever consider having an old student in your podcast? Uh, I used to, but I I try and avoid that because I don't want it to look
like I'm promoting my course for a full episode. But I have had a few. I think I had two. Um, will you do a core loop workshop? Yeah, sure. [snorts] Core game loops are tough because loops, there's layers to loops. You just want the basic loop to be done though with your game. Just like the basic loop. It doesn't mean you can't have loops within that loop. Add subtitles. What do you mean? How is Jonathan Blow off camera? This dude, guys, I don't even don't even get me started on Jonathan Blow.
Off camera, he is really truly one of the nicest guys. [snorts] One thing that I found really endearing about Jonathan Blow was and the same is true with Ken Lavine is that when they are done and the camera's done rolling oftentimes what will happen with a lot of developers is they're like peace they they see me as like a journalist or a podcaster. They don't see me as a fellow game dev but Jonathan Blow does. Um Thomas Mer does as well. He's the creator of Ori in the Blind Forest. A lot of them do, but Jonathan Blow and and Thomas and Ken Lavine all struck me as like I was very warmed by them because after the camera was done rolling, they were like, "So tell so tell me uh Thomas I'm trying to do a Jonathan Blow voice. So tell me Thomas, uh tell me about Twisted Tower. Like what what is it? What language is it written in?" And I'm
like, "Oh, you actually care about me. That's so sweet of you." So, I found that very endearing. Thomas Mor um he's he's played Twisted Tower. He's offered his feedback. I cannot tell you how valuable his feedback has been in in making this game feel juicier. Um yeah, add subtitles. Add subtitles, please. What are you talking about? The game has subtitles.
[laughter]
Set pass calls are what matter for performance. Batches are saved duplicates of the same object. So higher batch count is better. I don't know if that's true. I [laughter] don't know if that's true. You're probably right. But what I know is that when I bake my occlusion culling and I look at that visualization of it,
frame rate increases. Frame rate increases, baby. I don't know about batches and tries and all that. But anyway, when it comes to the technical side of optimization, guys, I can't tell you what's going on, but I can tell you look at that visualization, baby, and you'll see it. And it works. Daniel Mullen, same thing. Daniel Mullen's super super uh super nice. UFO UFOs real or hoax? Uh, hoax. I used to think they were real. It's either a hoax or they're demons. After deal with publishers, do you
handle marketing or leave it to the publisher? I never leave marketing solely to the publisher. I don't trust publishers. I've told them that. I tell them I'm going to handle the marketing like it was my own game and we can coordinate, but I'm going to do my thing. I am curious about this set pass call thing. Let's ask Grock, I need you to be a an optimization expert for Unity. Are high tries good or bad? Are high batches good or bad? How does occlusion calling
relate to high batches? Let's see what Grock says. I I got to tell you guys this to be truthful with you. I've had so many calls with Unity developers and I always get complete mixed signals about batches and tries every time. All I know I could just tell you this. All I know is that when I occlusion call and the visualization shows that only my surroundings are visible and everything else is not rendered, my frame rate doubles. High triangles and high batches are both generally bad for performance in Unity. Yeah, high triangles. Each triangle cost GPU vertex processing. [snorts] Good. High batches. High batches are very bad, especially in high numbers.
High batches hurt more than raw tries. [snorts] Occlusion culling is one of the best tools to reduce both high tries and high batches. Okay, so that's what AI is saying. So, what I said was true. However, I'm happy to hear what whatever whoever said that high tries is or high batches is good. I'm happy to hear your counterargument there. But, hey, if I can reduce batches, I'm going to reduce batches because it it's doubling my frame rate. So, anyway, um anyway, let's keep going here. Any other questions, guys? I'm not trying to get an argument. I just want to make sure I didn't lead you guys astray in this in this workshop. [sighs] Why do I think they're demons? Well, I think that the spirit world is um I think the spirit world Okay, so what is an alien? Let's talk about this. An alien is something that
can manifest in the physical, but they also have telepathy. They can also teleport. They can also be potentially interdimensional. Well, let's talk about what demons are. If you read uh Genesis, if you read um the book of Enoch, if you read Ecclesiastes, if you read about angelic and demonic beings in the Bible, and you guys know I'm a Christian. If you read about angelic beings in the Bible, they are what? They are both spiritual and physical. So, I don't see how aliens and demons from a biblical perspect perspective are different from one another. Well, they fly in spacecraft. Well, if you read, not Ecclesiastes, what did I say? Ezekiel. If you read Ezekiel, there's a lot of spacecraft in Ezekiel. So, just because something's flying around in a metallic structure doesn't mean that it's um it has to be from another planet. Um it can be interdimensional. And I do believe in
interdimensions. The same reason why I believe in multiple games on this computer. I believe in multiple dimensions in this world. because I believe the world is coded and in order for something to be coded it has to be developed by a designer. Uh the word capital W aka the architect, the coder, the game dev, the ultimate gamedev, the alpha, the omega. I believe in that. So yeah, that's where I am and that's my world view. Okay. I just Here's my big problem. What are the chances? What are the odds that [snorts] aliens decide to manifest and the government decides to release alien footage? the moment that
generative AI becomes mainstream. [gasps] I mean, come on, guys. All right, that's all I've got. Flat Earth? No. Heck no. It's That one's pretty easy to debunk. Okay, guys. Just remember, one final call out here now that we're done. All right, you got 18 hours left and once this is over, it's over. This is the biggest sale. And if you're on the fence, just remember guys, 30-day money back guarantee. All right, seriously, you email me. My email is on this page, thomasulttimegamedev.com. Say refund in all caps. And my assistant, I won't even read the email so you don't have to feel embarrassed. Not that you should, but I I I would if I was emailing like a cool YouTuber like Thomas Brush. Super cool, right? But if I was emailing any YouTuber, I would feel a little weird asking for a refund.
I won't see that email. My assistant sees that email. He's in the chat and he'll send you a refund. No questions asked. Okay? So, check it out below. 50% off. You also get my art courses completely free, my YouTube course completely free, and a private meeting with me, which I can't wait to meet you. All right? I love you guys. Take it easy. Uh, continue arguing about aliens in the chat. In the meantime, I'm going to go hang out with my wife. I love you guys. Cheers. Wait, hold on. Wait, wait, wait, wait, wait, wait. Search set pass calls and how batching helps. This is from Freaky542. Freaky542, are you the one who says that high batches are a good thing? Seriously, I'm not trying to argue with you. I'm trying I'm just doing AI research right now and it's just saying that high batches are bad. Add subtitles. Well, well, hold on, Freaky. What were you saying?
It does. Yeah, it it I mean at the end of the day, I guess it doesn't matter, but you guys should occlusion call.
Auto-generated captions from YouTube — names and numbers may be misheard.
Thomas Brush · 2026
Thomas Brush · 2026
Comments