Game Dev Tutorials Are LYING To You

preview_player
Показать описание
Many game development tutorials across YouTube leave out the most important aspect of a production ready asset: optimization. This causes beginner game developers to be blissfully unaware of what they need to know the most, as well as leaving them in the dark as to where to possibly go next.

Source:
Dude, just trust me

Jasper Flick's Tutorials:

GDC Talks:

GPU Gems (On the internet for free!!!):

Music:
Iwatodai Dorm - Persona 3 OST
During The Test - Persona 3 OST
Police Station - Persona 1 (PS1)
Afternoon Break - Persona 3 OST
Bad Bully - Kizumonogatari OST
Fearful Experience - Persona 3 OST
This Mysterious Feeling - Persona 3 OST

Chapters:
00:00 Intro
01:58 What Are Geometry Shaders?
03:01 Geometry Shader Grass
04:22 Why It's Bad
05:58 Grass Sway
06:35 Why It's Bad 2
08:02 What's To Be Done?

Thanks for watching!

This video is dedicated to my friend, Alotryx.

also please subscribe haha please man please just subscribe dude please just like one sub I swear I'm not addicted please man please just one sub please

#acerola #gamedev #graphics #unity #unity3d #madewithunity #indiedev #unity2d #tutorial
Рекомендации по теме
Комментарии
Автор

I agree in many ways. I'm a full-time, professional developer and the company I work for is Unity-focused. I came from background in DirectX and engine development, with a lot of years of low-level programming as well as C# ... I cringe at about 97% of the tutorials out there. It's not simply that they don't teach optimization, they don't teach any type of solid _programming_ fundamentals to beginners. You know who are the worst C# programmers? Aspiring Unity developers, without a doubt ... I interview candidates on behalf of our company, and the failure rate for entry-level candidates in technical interviews is about 99.5%, no joke. Each time we interview someone I cross my fingers and pray that they know C#, but I know better than to get my hopes up. This technical interview is not hard for anyone who knows C# fundamentals and how to write code: they're just simple logical tasks with strings and numbers, and I can tell if a person is a junior, mid or senior level dev just by watching what they do and the things they say about the task. I can also tell if someone has no clue how to write code at all, and that's the case with basically all of them we've interviewed. Without Brackeys writing the code for them they can't even write a basic arithmetic function, and they just freeze up ... so, what's going on here?

For one, it's the blind leading the blind on YouTube. People who are still beginners but know a couple little tricks are teaching other beginners on YouTube, and people learn a trick from a tutorial and then make their own tutorial based on that tutorial, quoting it like holy scripture. Another part of it is that "development made easy" and "no code required" are catchy-sounding to millions of gamers who fantasize about making games but don't want to try anything hard. There's big money to be made in selling people dreams like "earn millions of dollars from home" or "develop your own games without code". Make a video with a clickbait title like "Start Earning $100K+ per Year in the Game Industry!" and in the video tell people to spend 3hrs a day learning how to program and write code for a year or two to get a good job. You'll get 350, 000 views, but tons of dislikes and nasty comments even though you actually gave excellent advice. Most people don't want good advice if it involves _any_ thinking or learning, they just want someone to write the code for them and give it to them to Ctrl+C, Ctrl+V ... in some of the Unity dev communities I participate in, people get irate when I suggest C# programming should be a dev's #1 priority and Unity alone is not a good way to learn it.

This issue really goes down to the societal and social level, and isn't just the Unity community. They have this problem around every difficult and technical thing that's exciting or has high rewards, such as investing in stocks, cryptocurrency, etc. Watch some investment and trading tutorials and you'll see the same problems: unqualified people teaching other unqualified people and leading them to their doom. 2021 was a prime example with the meme stock and meme coin crazes that cost novice investors their life savings by investing in trash assets at the behest of social media and YouTube influencers.

Instead of worrying about it too much, and because you can't fix it or make people learn things properly, just look at it as "job security" lol. You won't have to worry about any of those people getting industry jobs so salaries will stay high and there will be open positions everywhere because they refuse to learn programming ... 🤷‍♂️

GameDevNerd
Автор

I got a degree in computer science, and we were always taught that premature optimization is bad. Get something to work first, then optimize it if it needs optimizing. However I do agree that most tutorials display terrible coding practices.

joey_
Автор

I remember having a hard time finding tutorials on optimization. In college, we almost had a class on optimization, but it was dissolved because "modern CPUs are fast enough, otherwise everything is moving to the web/cloud". If I get fired at my job due to my hospital stay, I might do some videos on optimization.

ZILtoid
Автор

Optimization is something i wish smaller game studios/indie devs would focus more on
in the anniversary update for risk of rain 2 one of the quality of life updates was optimization and when you're on lower end hardware like i was at the time i could totally tell i was having a way smoother and better experience

cheldardo
Автор

As a veteran game dev, I think those tutorials still serve the purpose of making game development accessible to complete beginners. I remember starting out in the 2000s, most people didn't even know where to start and never made it anywhere at all. The only people who ever got started either exchanged knowledge on forums and/or bought 90s coding books lol.

shytut
Автор

Didn't really want to comment, but I'm seeing so many veteran developers agreeing to this without giving the context any second thought, so I just wanna share my thoughts on this...

It is true that optimization and proper practices are incredibly important when creating a full release product. However it is also INCREDIBLY important to remember that learning a skill like game dev, require taking the learner through "stages of learning" to best help them reach the end-goal of developing a game. 🙂

In my opinion, EVERYONE should have a proper chance at learning to make games if it is a dream they have. And helping the broadest audience achieve that goal means teaching them one step at a time. In due time once they are comfortable and have a fundamental understanding about WHAT they need to optimize, then it's time to teach them about optimization. 👈

Of course teaching proper practices from the start is important to not give them bad habits, but when teaching you also have to be careful you don't forget that a beginner WILL get overwhelmed just learning about the basics... 😕

If you attempt to teach advanced optimization from lesson one, then many of the learners will eventually jump off the learning train. And if anyone's response to that statement ☝ is "well then game dev isn't for them"... Then we just won't reach an agreement, since I'm clearly more concerned with the student having a good learning experience, rather than overwhelming them with the "technically correct approach for a full release game".

I often encounter developers who are extremely technically gifted, or developers who has learned another language for 20 years, who has no issues learning game dev "properly" from the start, since their mind is attuned to that type of technical skill. But occasionally these same people have a hard time putting themselves in the place of someone less gifted, or someone who has only JUST taken their first step into their FIRST technical skill. And I have even seen "experienced devs" who couldn't look outside their own bubble, resulting in making the less experienced feel stupid and scaring them away...

My point is, that there is a MASSIVE difference between "teaching game dev for complete beginners", and "teaching how to properly develop a game". 🙂 In due time, optimization SHOULD be taught once they can handle it without getting overwhelmed. People are too quick at jumping to the "cold and logical" conclusion that "optimization is more important from the start", rather than taking the human into account who is sitting there trying to learn something they find difficult.

Another point here that I think a lot of people forget when they learn something off of a YouTube video...

Regarding of their teaching platform... Whenever a person teaches any type of technical skill, you are meant to use your own head a bit. Expecting the instructor to have everything included into their lessons, so you don't need to spend your own energy applying what you are learned, is a "you issue".

Blaming a YouTuber for not "guiding you towards the next learning step" is understandably in some cases, but you also have to be careful you don't rely too much on the YouTuber holding your hand CONSTANTLY, to the point where you don't know how to seek knowledge on your own.

If you find a YouTube video teaching you "how to create a health bar in your game", in most cases they are of course going to teach you the concept of how it is made... Not a "full release version you can just copy/paste into your game"...

I don't blame most people leaving comments in here, since they haven't actually experienced what it's like running a large YouTube channel. But whenever you go EXTREMELY SPECIFIC in your tutorials, you get a overwhelming amount of people who are frustrated because it gets too technical, or you have people complaining that "you need to make another video with THEIR specific games setup in mind"... This is a big reason why tutorials can appear "vague" or not technical enough for a full-release product. You are supposed to "learn and apply"... Not "copy paste".

People are literally expecting YouTubers to be "freelancers hired to help them finish their game", when they should be seen as teachers/educators. 😂

Making optimization, security, complex systems, etc. part of your tutorials, will make your lessons more about "how to" rather than "teaching"... And this is where I often see viewers misunderstand the purpose of online educational videos.

A third point I have which is more aimed at the person who made this video...

You start out your video saying "I'm not going to mention any names", but at the same time you have Brackeys face plastered on the thumbnail, looking like the devil... 😅 I know it is for clickbait (like stated in the thumb), but it's still a extremely bold move for a "on purpose clickbait".

My overall issue with this video isn't the message you are trying to convey to people. Optimization IS extremely important, and I'm glad that you are pointing it out, so that the people who are ready to take that step, can be made aware of the importance of it. But there are more positive ways to go about it, besides pushing other creators under the bus, or using a well bellowed educator negatively for clickbait. 🙂

Dani_Krossing
Автор

For anyone curious, the reason why geometry shaders are generally considered bad, is because they dont map to the GPU's strength as well as other pipeline operations do. The big thing with the GPU is that its supposed to be able to perform many operations in massive parallel, but because of specific requirements many graphics API's make for geometry shader output (for example, geometry shader vertex emissions must be rendered in input order), the GPU must do extra buffering, syncing, and other things to ensure that these requirements are met, and these required operations generally means lots of memory accesses and "middlemen", if you will, that stall the pipeline. Its just not scalable compared to other pipeline operations.

w.mcnamara
Автор

I'll be honest, While it is problematic, Just like the first boss in a Dark souls game... Understanding when a tutorial is showing you just the simple way of doing something and then understanding how to upgrade/optimize it on your own is super important for growth

MrSmoofist
Автор

Leaving out optimization seems to serve the same purpose as "lies for children" in other subjects. You don't want to _start off_ with it. I don't think it's very important to know when you're truly just starting out. The people who are really willing to take the next step will inevitably learn about it.

Jaximous
Автор

I'm learning Unity for about a month now and I swear the "How to make a game" tutorials are the very worst place to start. I just kinda dove right in and read a lot of documentations and asked for help for very specific things. Seriously, you learn a lot faster when you think of an idea and understand the processes to materialize that idea. It's okay to ask for help but don't copy paste code. The official Unity discord is the best place. They offer you help but they don't give you code to just copy paste.

misterrhombus
Автор

The most important optimizations:

A: limiting what is loaded into your scene at any given time
B: managing when new assets are loaded into your scene so as to hide the process
C: culling things that are loaded but you cannot see

You should only need to provide an environment in which the player's screen is filled.

betterlifeexe
Автор

One of the most technically impressive games I've looked into is Shadow of the Colossus. Not the remake, the original. The beauty of the game speaks for itself, but if you dive into the lengths they went to optimizing the shit out of EVERYthing you get a real appreciation for how important a step it is in game development.

A true example of limitation breeding creativity.

funxX
Автор

I feel like the way bigger problem is that many tutorials are made in a way that many people don't learn anything from them. But that is a weird issue, and basically a core part of tutorials. But you can just mindlessly follow along.

kintrix
Автор

I started with Roblox when I was 11 or 12 and was mainly fascinated with the idea I could write instructions that the computer had to follow, so I have mainly hooked on the programming aspect then the general "making games" aspect (though that is something I really want to do also). For that, I also fell into the trap of looking up tutorials for everything I wanted for a while, especially since I was so young and still getting a grasp on the basics. I think part of the problem is everyone tells you to start small and basic so you don't demotivate yourself quickly so people avoid trying anything super daunting right off the bat, like properly learning programming fundamentals and the language you're using. I get staying motivated can be an issue, but if it's too challenging to try and work on learning those fundamentals and getting a proper grasp on the programming side then that part of game dev might not be it for you. You don't have to immediately stop everything to work on just speed running the basics, I did a lot of little experiments (and still do) when learning concepts so I have the application of concepts to establish and support what I just learned, but avoiding proper learning will just hurt you in the long run.

While I was still doing Lua stuff for Roblox I decided to try making stuff for GMod since it also used Lua. This was a great step since the tutorials for GMod were a lot more sparse. I learned how to read documentation and use references not to copy code but instead inform me on how code worked. Because I didn't have tutorials that gave exact implementation details I instead started experimenting and trying to implement more and more of the knowledge I had built up before to make new things. I dissected other people's add-ons to get the gist of how they worked and started reading Source engine code too to better understand how things operate under the hood. I learned so much more because I didn't have rigid and specific guides filled with basic implementations that wouldn't be good at a production level. After a year or two of GMod dev I picked up a Udemy course on UE4 C++ dev that started with a section on making a simple console app game with C++ before even touching the engine. I didn't get far into the actual engine lessens since it wasn't as flexible as I thought (the courses) and my compile times made edits so slow. I tried to make a basic TPS for a bit but gave up on it because of compile times. That's when I tried Unity for a bit and learned some C# but waited and went back to GMod to apply some of the OOP fundamentals I did pick up on to improve some of the projects I was working on before.

One thing that really opened my eyes up past the large swath of beginner tutorials was watching GDC videos. Being able to see how bigger and more complex systems were designed, iterated upon, and implemented opened up the idea that I now had references to pursue these more complicated systems that are being used in actual games. I think a lot of people trick themselves into the beginner's trap with that mindset I described earlier, where they don't want to demotivate themselves so they pursue things that are really easy and basically laid out for them. I say do some of these things but do learn the fundamentals and devote more time to that than the instant gratification stuff and only keep doing those when you really need that extra boost. Instead, turn the fundamental learning into the bulk of your gratification. Make a small little prototype out of something you just learned and don't watch a tutorial for the specifics. If you're learning the fundamentals of a language then doing a basic console app prototype is good enough and doesn't have to be more complex than just printing what would otherwise be a debug message. Just seeing that a basic for loop or search algorithm actually printed the right result is satisfying while learning and gets you to learn much faster since you'll be applying the knowledge. It's just important that you're doing the bulk of that work instead of a tutorial or guide.

Recently I've really started getting into Unity development and improving my C# while learning a little about the engine, but I've mostly focused on learning fundamentals, architecture, and C# itself while working on my project. As I said before, I learned during modding with GMod and some extra Roblox stuff how to read documentation so instead of watching video tutorials on how to do everything in Unity I try to read the API docs first and see what I can use to implement what I want to do. Otherwise, I've been looking up game programming patterns (gameprogrammingpatterns.com is a great free book (at least the web version is, paperback and ebooks are available to buy and have nothing exclusive that can't be found in the web version) based on an older generalized OOP patterns book that's referenced by a lot of people and where a lot of the popular patterns got their name and popularity from, features and quirks of C#, and data structures. I picked up a humble bundle of O'Reilly books that are generalized for any sort of production code and has topics on optimization, DevOps, algorithms, managing complexity, and even skills outside of straight coding that will make you a better programmer.

I've found that the lessons taught in all these media are more fruitful and applicable than the specific tutorials that beginners will cling too and have trouble escaping from. They helped me build confidence to try experimenting with more complex systems like GOAP, HTN planners, tool dev, spatial data representation and query systems, raycast ballistic simulations, and more because I have the fundamental knowledge of how the basics of these systems work so I can build on that knowledge to actually implement them.

tacticaltoaster
Автор

If you think gamedev tutorials for game engines like unity have terrible practices and poorly optimized results from predatory youtube shenanigans, you haven't seen the average blender tutorial.

helpsus
Автор

Couldn't agree more. It's really frustrating how many tutorials set you up for failure. Not just for optimization, but just for their practical use.

Just finished a VR tutorials where the guy has you use a rigid body for the players collider and movement... In VR... Had to throw everything away and start from scratch on my own.

steen_is_adrift
Автор

While I agree that optimization is important, I also believe that it's important for beginners to try and make their game first, and optimize later. If they're spending the majority of their time optimizing their first game, rather than add in the elements that they want, they're likely gonna get discouraged from the slow progress. Your first game doesn't have to be perfect, and likely, it's by doing things the quick and dirty way that you'll later discover the slow and optimized way of doing things, because you've given yourself time to learn the code, and figure out what works better.

That being said, anyone who's making a tutorial that shows the quick and dirty methods should absolutely disclose that it's the quick and dirty method, as to not mislead their viewers.

ThatElfNerd
Автор

I am a professional senior PHP developer and just today I reached the end of the first month of my first Unity project.
I have a quite large list of features implemented already, Combat System, Health and Stamina System, Enemy AI & Pathfinding, Droppable Loot and Findable Loot... To name a few.

I can safely say that while the programming logic is mostly the same, there are many, many things that makes game development such a different beast all together, and working alone, needing to provide graphical interface (photoshop), audio mixing and back-end logic is arduous to say the least.

Game development requires so many different skills and I believe it is extremely under-appreciated (looking at salaries here), which is why I decided to become a PHP developer instead of a Game Developer.

Most of what I managed to implement was from an Udemy course I took, alongside YouTube tutorials and many sleepless nights scouring Unity's documentation, and with enough persistence, I always found a way to implement what I needed, where I needed and when I needed, however, I can hardly imagine how difficult it would be for somenone with 0 programming knowledge to implement all that while not even having the slight idea what optimization is, I can safely say that the only reason why I could build all that in under a month (which honestly, is mediocre) is because I've spent the last 8 years studing programming logic and code and even then, it was not easy, and it is far from perfect, to make all that blend together and not having a single crash or FPS drop was an optimization task, something a very little portion of the tutorials I've seen around here teaches.

In my journey which is far from over, I've came across many, bizarre "tutorial" videos that made me think if these people even tried out what they're trying to teach.
I don't wanna bash any of it but seriously, it's just like when you learn something wrong, and you teach it, it gets spread all over. Mistakes that are quite hard to withdraw yourself on later in your programming carrer.

All I can say to new developers out there is: even before thinking of developing a game, and I know its hard and will probably take up a lot of time, try to look for professional content outside of YouTube, and Unity-endorsed ones. This will save you many, many problems down the line.

Glorin
Автор

Something I noticed with YouTube tutorials is the more I watch the more advance and complex tutorials YouTube sends my way as well as people who give advice like you with optimisation. So I feel like the YouTube algorithm found a way to teach people in a way that fits their individual needs
Unless this is just a coincidence on my part. 🤪

memepotater
Автор

It's not just optimization though. I lost count of the times that, for the sake of simplicity, tutorials only teached me how to create a very sub par and half assed version of what I wanted to build, and not how to progress from there and make it better. I did quite a lot of tutorial hopping, looking for someone who actually went deeper into the subject, and I didn't find it very often.

skaruts