1 free read left. Create a free account for unlimited reading + AI research.
Create free accountI've actually learned that making a 3D FPS shooter is kind of easier than making a 2D game. So, we're going to go ahead and jump into Unity here. Thomas, you're an idiot. I can't believe I said this. Here's why making a first-person shooter actually isn't that easy. It's actually really, really hard. By the end of this video, hopefully you'll have a better grasp of why making a 3D first-person shooter is actually really hard. Um, and honestly, making 3D games is actually it is it is hard. like you'd expect, right? Yeah. I mean, it's it's been 2 years of making this game and it's been a real pain in the butt and it's expensive and there's a there's a lot of things that make it actually really really hard. So, I'm going to tell you all about that and hopefully give you an idea of what you should do if you're making a 3D game. Okay, so basically when you start a 3D game, you can jump into the Unity asset store, grab a bunch of cool assets. You can even grab a firstperson shooter pack or something, install it in Unity or import it into Unity, throw in some assets, and hey, you've got a first person shooter, right? Yeah. But the
problem is, uh, three things. There's an endless list of items that you have to do and have to learn and understand to actually get your game running properly. Okay, so this is kind of related to optimization. So basically, what you need to do is you need to bake the lighting. You need to bake the nav mesh. You and we'll talk about all this. You need to bake um the occlusion coloring. You need to uh ensure that all your cameras are properly set up. You're probably going to have multiple cameras, believe it or not. Even though it's it seems like it's one camera, you're probably actually going to have two cameras. One to avoid the camera or the the gun clipping into walls when you get close to a wall. That's one camera for your guns. And then you're going to have a second camera for everything else. And then you might even have a third camera for your UI, right? Then on top of all of that, you're going to actually have to have not only one nav mesh, but you're probably going to have to have three nav meshes because you're going to have different enemy types on different nav meshes. So, there's going to be like
three of them. So, like if you have a an object that flies, so I have like the these ghosts that fly around in my game, they actually have a totally different nav mesh because they can actually fly up over objects, right? They're actually just riding along a nav mesh. Whereas the crawling enemies, the spiders, they're much more limited. So you got baking the lighting, you've got baking the nav mesh, occlusion, culling. Um, you're marking objects as static. So you have to go into every single object and figure out what's static, what's not static. The other thing is you have to have reflection. You have to have reflection probes. If you have a metallic object or anything that's like reflective, like this mug, right? It's not going to look right in the game if you don't have a reflection probe. Now, a reflection probe, all it does is it tells this surface what to reflect, right? by default, it's going to reflect a skybox. Um, the player, if you're holding guns, um, or you're moving objects around like boxes or the enemies are roaming around, they're not going to be lit properly because they're not baked, right? So, all those baked lights essentially kind of go away. So, you
need to set up light probes, right? So, you have to drag all these light probes around to get the lighting set up properly. Now, this doesn't seem that problematic if you just do it one time. But the problem is, if you're me, if you're anything like me, you change things all the time. So you think you're done with a level and then you go back and you actually change the level based on a new idea that you had. And this is just game development, right? This is just what happens. Every time you do that, you have to go through the this list of like six things, which I'm calling like finalization items. That's what me and Filipe call them. He's my team member. We call them finalization items. It's just this list of things that you have to do that take freaking forever to get your scene set up properly. So, you think that it's just dragging in objects into your scene, but then you slowly learn that it's actually locking in all of these items and baking them and setting up nav meshes and occlusion culling so that it actually runs properly, right? And that really does bring me to my next point, which is optimization. Okay, so with a 3D game,
it's incredibly easy to have the the frame rate suddenly drop to 30 fps, which that sounds great if it's like 2005, but right now that's not okay. You need to have 60 fps, right, minimum. You can have a tiny little scene with some enemies wandering around and then you throw in these just maybe some some lamp posts or something. Well, if those lamp posts aren't properly optimized, it's going to break the whole scene. You're going to suddenly have a 30 fps scene. Um, additionally, if you throw in a bunch of lights right into the scene and they're lighting this room, you're going to start noticing the lights flickering. It's because Unity's URP only allows for eight lights to to to light a single object. And these are real-time lights, right? You have to make sure that you're optimizing every little thing about your scene. Otherwise, things start to break down. The frame rate drops, the lights start to flicker. And this is something that me and Filipe, my team member, are trying to make sure we're focusing on now. I used to say, "Ah, we'll worry about optimization later." But if you do
that, you might end up with your ladder leaning against the wrong wall. You're at the top of the ladder and you're on the wrong wall, okay? And you're going to have to climb all the way down and set it back up. Practically speaking, what I'm saying is, for example, if you were to set up a scene and you were to use a bunch of modular walls, okay? If all those walls had back faces or the walls were, let's say, squares, and then you you laid out like a 100 squares or 100 cubes and you made this big building out of these cubes, these modular objects, it may look great, but suddenly you're at 30 fps. You're going to have to deconstruct the entire thing and then build it out of quads or build it with ProBuilder or build an entire mesh, right? to lower the batches from well in my case it was like 3,000 batch or 1,500 batches and this was with occlusion coloring to lower it down to like 200 right that's the ladder against the wrong wall you have to deconstruct everything you did can you imagine if I had and by the way this happened with us this exact scenario happened with us
because I was just unintelligent at the time I just said yeah just throw together a bunch of cubes to make this beautiful ornate building and we had like thousands of cubes so We had to go back backtrack all of this hard work and basically start from scratch. We've done this like three times. And this just because there's a lot of idiosyncrasies, especially within the context of Unity. Unreal. Honestly, I've I've I think I I think I've learned that Unreal is a little bit easier. Let me know in the comments. But Unity, you've got to be hyper specific about the process of building your 3D game. Okay? So, the optimization is a real pain. And I've I've heard horror stories from friends who built entire beautiful 3D games and they were great games and they they I shouldn't laugh. It it's just it's it's um comically tragic. They they spent two 3 years building a beautiful 3D game and then they send it off to a publisher or they try and launch the game and it's they can't because it's just not built right. But David Why is a good friend of mine and he he mentioned that even the
game his his really simplistic game The first tree was not optimized um in a lot of ways. And so the big problem with porting that game to Switch was they had to even go into the trees and fake shadows casting across the ground because Switch could not handle the the shadows. All that said, optimization is a huge problem and it really comes down to understanding the industry standard way of making 3D games. Okay, I'm still learning, right? Obviously, that's why I'm making this video. Now, the third reason I'm going on here, but the third reason why making a first person shooter game is not easy, Thomas, is because you I wrote down here, get in line, you look like everyone else. Um, I thought that making a 3D game was something like, um, oh, it's 3D, so it's really easy to make, you know, viral gifts and videos and trailers because you're moving the camera around and there's just so much more depth in your scene. The problem is is you look like every other game. If you don't come up
with something that looks unique or a very unique mechanic or a hook to your game, you need to get in line because you look like everyone else. And this is particularly hard now because it's it's really easy if you go to Turbo Squid or you go to the Unity asset store. It is incredibly easy to find gorgeous assets and you drag them into your scene and and you're really impressed with what you've done. This looks like Wolfenstein or Halo. I'm so impressed with myself. And then you release it to the world, let's say with an animated GIF or like a video or a trailer and people are like not impressed because there's thousands of games that look the same. So, you really need to figure out visually what your game needs to look like. And this is something odd that I' I sort of found out slowly. It's actually easier to make a game look kind of AAA than uh stylized in the 3D space. Here's what I mean. You can make a game look like Wolfenstein really fast or even like just some like I don't know cheap AAA game. You can just go to Turbo Squid and find some beautiful models and throw them in. It's
really really hard to find stylized models that have a cohes cohesive look. even like a low poly stylized look. I've actually found it difficult. You can find a set, right? You can like find like a fantasy set of stylized low poly models, but to scale those into a full game is really really hard because you're like, well, I need a bunch of other models. Where are they? And then suddenly you have to go find another pack and hopefully they they look the same, but they likely won't. And so ultimately me and Felipe kind of abandoned the idea of using assets. At least we use a few, but the majority of the models that we're we're using in Father or whatever the game is called now, those are handmade because it was just too hard to find stylized models. Again, the reason it's it's hard to explain. Me and Philippe have gone back and forth on this trying to understand why we're going with a stylized look as opposed to a more realistic look. It's a marketing
reason. Do I want to invest $200,000 minimum in this first person shooter? Do I want to invest that if I'm going to have to get in line, like I wrote down here, get in line and just look like every other game and hope that for some reason we stand out. I don't want to take that risk. I think that's a that's a brutal risk to take because I'll be honest, my forte is not gameplay. My forte is style and mood and art. Okay. So, the risk is, okay, I'm going to abandon make using pre-made assets that look premium. I'm going to abandon that and actually just work with Felipe, who's the 3D artist. I'm going to we're going to just spend a lot of our time making low poly stylized assets. So, we're actually spending a lot of time on that as opposed to just making it look actually better in quotes. That's a big risk to take, but I have to choose which one I'm going to take, right? Do I want to do I want to stand out with low poly stylized models that actually is more expensive to make or do I want to
actually have it look quote unquote better with premium assets from the asset store in Turbos Squid? I'm going to choose this one. It's a risk to take. I don't want to get in that line. Um, one of the things I like to think about is in any venture, whether it's making games or films or YouTube, do you want to hang out in the maze with everybody else? The hedge maze. I don't want to be in that maze, right? I don't want to be with everybody else. The way to get out of the maze is to look into your forte and to figure out, okay, what's my forte here? The way out of the maze is the way to cheat and get ahead head of the line is to find your forte and lean into that. And our forte is art and style and mood. This is all really, really hard. that all of this all of those three things again the endless list of finalization items baking and occlusion culling and setting things to static and setting up reflection probes and light probes. Number two, optimization. Optimizing and ensuring that you're not leaning against the wrong wall at the top of the ladder,
right? And then number three, standing in the endless list of thousands of games, standing in line hoping that when your game launches that it somehow stands out. A lot of these things actually don't even they never even popped up when I was making 2D games. And I made a game called Pinstripe and Never Song. Successful games on every platform. They these number three, which is standing in line and standing out. It's true with 2D games, especially if you're making like a standard platformer. But you can make a 2D game look pretty unique even with a poor art style. You can make it look unique. Like Thomas was Alone is a great example. But the first two, the optimization and this endless list of items that you got to address, these two are particularly true with 3D games. So, this is, I guess, a cautionary tale, an apology video. I don't know what it is. Um, I just want to see you guys succeed and I figured I'd let you
Developing a 3D first-person shooter (FPS) presents significant technical and creative challenges that often exceed the complexity of 2D game development. While asset stores offer a convenient starting point for rapid prototyping, relying on them frequently leads to long-term development hurdles. The primary technical obstacles involve a rigorous list of finalization tasks, including baking lighting, configuring multiple cameras for gun clipping and UI, managing complex navigation meshes for diverse enemy types, and implementing reflection and light probes. These processes are iterative and time-consuming, as any change to a level design requires a complete re-baking of these systems.
Optimization represents a critical failure point for many 3D projects. Developers often underestimate the performance costs of modular assets and real-time lighting, which can cause frame rates to plummet. Poor architectural choices, such as constructing environments from thousands of individual cubes rather than optimized meshes, can force developers to deconstruct and rebuild entire levels to meet performance standards. This technical debt is particularly dangerous when porting games to hardware-constrained platforms, where even simplistic titles may require extensive rework to handle shadows and rendering limitations.
Beyond technical execution, the 3D market is saturated with high-fidelity assets, making it difficult for new titles to distinguish themselves. Using premium, realistic assets from marketplaces often results in a generic aesthetic that fails to capture player interest. To avoid this, developers must prioritize a unique visual identity, even if it requires the higher cost and effort of creating custom, stylized assets. Ultimately, success in the 3D space requires moving beyond generic asset usage and leveraging a developer’s specific artistic strengths to escape the competitive "maze" of indistinguishable titles.
Comments