Game Dev Tutorials Are LYING To You

Sdílet
Vložit
  • čas přidán 17. 05. 2024
  • Many game development tutorials across CZcams 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.
    Twitter: / acerola_t
    Twitch: / acerola_t
    Code: github.com/GarrettGunnell/Grass
    Discord Server: / discord
    Source:
    Dude, just trust me
    Jasper Flick's Tutorials:
    catlikecoding.com/unity/tutor...
    GDC Talks:
    / gdconf
    GPU Gems (On the internet for free!!!):
    developer.nvidia.com/gpugems/...
    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
  • Věda a technologie

Komentáře • 1,6K

  • @GameDevNerd
    @GameDevNerd Před 2 lety +3729

    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 CZcams. People who are still beginners but know a couple little tricks are teaching other beginners on CZcams, 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 CZcams 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 ... 🤷‍♂️

    • @Acerola_t
      @Acerola_t  Před 2 lety +621

      Thank you for the incredibly thoughtful reply.
      Part of the reason I made this vid was because it makes me really sad that people are being misled so horribly into believing they can make it in the industry while being taught all the wrong paths. As you said, this isn't exclusively a game dev tutorial problem and instead an issue with people wanting difficult things to be made easy and if someone can delude them into believing that then they will take that path without a second thought.
      Game development is a subset and specialization of programming/computer science, too many people try to skip that. It's like trying to draw anime without first learning the fundamentals of anatomy and sketching. This sentiment should be reflected more often, which is why I constantly shill Jasper's tutorials because they're the only ones that I find are top notch.
      The Unity community in particular is very nasty about this which is strange, you'd think Unreal would be the one like this since Unreal has all of the good visual scripting/non programming stuff. This video got horrible backlash on the Unity subreddit for the same reasons you describe. Perhaps it's because Unity is still seen as the indie game and "easy to use" engine which attracts these sorts of people.
      I won't lie I am def guilty of not formally learning C# lol but I'm at least competent in nearly every other popular programming language. Someday I'll take the time to write a non Unity C# program.
      Again, thanks for the comment!

    • @GameDevNerd
      @GameDevNerd Před 2 lety +374

      @@Acerola_t that's to be expected ... if you tell people that they have spent months or years learning the wrong things the wrong way and still aren't good devs, that's a tough pill to swallow. But there's a reason they're not applying for and getting industry jobs and they have regular jobs that they hate (or no job): because they won't stop using Unity as a "toy" and just learn to be a good programmer, first and foremost, and use it as a professional tool. When it comes to hiring developers, we will hire a strong C# programmer with no Unity experience over the average indy dev who lacks C# skills but knows all about the editor and tools. I can teach that C# programmer Unity in about 40 or 60 days, and have them rolling out sophisticated features in projects, but I can't teach a non-programmer to master C# or C++ that fast, maybe not even in a year or three years, no matter how many years they tinkered with Unity editor and copying tutorial scripts ...
      I don't understand it, personally, because to me the code _is_ the fun part. Give me the hard problems no one else knows how to do and let's invent something new to chip away at that problem. 🤷‍♂️

    • @OSemeador
      @OSemeador Před rokem +193

      @@GameDevNerd I've been in the industry for 15+ years. Next interview you lead start by asking what is a GameObject. Then ask them what is a component, finally ask them what is the difference between a GameObject and an Object in C#. It's a bit of a trick question but I've found these 3 questions alone split the big boys and the script kiddies. Another question I like to ask is what value can I access faster, a boolean from a list or a list from a dictionary and why.
      If you have someone that can answer these questions then continue the interview, otherwise save your time and recommend some areas for them to improve on.

    • @GameDevNerd
      @GameDevNerd Před rokem +201

      @@OSemeador I've been programming and doing game dev at least 15 years (not always professionally) too, and you basically nailed it. The typical Unity "script kiddie" isn't even gonna know what System.Object is, at all, and generally has no clue how to write a class and use a constructor (also only knows that int, float and bool exists, and has never heard of other primitive data types). Basically, everything they do has to be a MonoBehaviour for them to paste some Brackeys code into, and if you talk about writing classes, instantiating and using them they simply have no idea what sort of wizardry this is you're speaking of.
      An important question I often ask is for someone to explain the difference between a _value type_ and a _reference type_ or between an object and a structure. As you'd expect, most applicants have no idea how to respond to that ... but the more incredible part is that many still _think_ they do and they will just start making stuff up that sounds good, lol. "An object is like a thing you put into your game, and a structure is a way of organizing those things" ... or "A reference type is things that you have a plan for and a value type is something that's important to the game" lol. I kid you not, I've literally received some genuine answers like that and just had to politely wind the interview down, bring it to a close and recommend them a good C# book or two to read. 🤷

    • @morgan0
      @morgan0 Před rokem +34

      @@OSemeador i think i could answer the first and third with basically no unity experience (i had previously used unity like a few hours at most and currently i’d like to get into godot) but with years of programming experience. dunno what a component is but it makes me think of composition, like instead of inheritance tree relations, an object being composed from several traits. not sure if i’m on the right path but maybe id know if i spend more than a week using c# ever in my life. pretty sure Object is the inheritance root for all of c# and GameObject is that for unity’s objects and necessary to be used or inherited from for the like basic unity methods. also had a brain fart and at first confused list and array for the fourth question oops

  • @joey_343
    @joey_343 Před rokem +2394

    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.

    • @hinatsu4095
      @hinatsu4095 Před rokem +189

      I kinda agree with you, but I am sure you missed something he tried to explain.
      I mean, I agree about giving priority to optimization over other fundamental aspects is always problematic since you limit yourself and you moslty never allow yourself to experiment, because you settle for watching that framerate is high and cpu/gpu consumption is low. In addition, by focusing too much on that, you end up spending time and energy that can be used for other more important areas. But optimization is a task that you SHOULD always do without exceptions.
      But what he tries to explain is that every begginer and most important many "dev youtubers" NEVER CARE about optimization.
      Most of the time people are happy to see their game working. Without even understanding how it works. And when they start to see that the game is starting to dropping the framerate, they just simple start reducing graphical effects, lowering render resolution, disabling shadows, deleting objects, reducing grass, etc. (overrall reducing the quality of the game). and that is how they think they are optimizing the game.
      They are not capable to develop a game in conditions.

    • @IamusTheFox
      @IamusTheFox Před rokem +68

      @@angeldude101 Well said! I genuinely feel people have parroted premature optimizations are bad too much. Not going in an unoptimial way isn't premature, it's saving time.

    • @11pasa11
      @11pasa11 Před rokem +42

      Probably a more accurate rule of thumb should be "premature micro optimizations are bad", but even this would be a bit misleading, because there are situations where non micro optimizations could be skipped or put off. One reason to skip it is if the system is initially fast, but scales very badly (1 enemy, 10 enemy, 100 enemy etc) then you may not care, if you know that you will be working with small scales and you can save tons of development time.
      This still have drawbacks, mostly that this is now a niche system, that you may not be able to reuse.
      So the reasons for skipping optimizations is somewhat obvious(on paper/as an idea) so i don't think there is a need to talk too much about that, what i think is less obvious is when you should put off optimization considerations.
      The things that should be considered in my opinion to decide how much thought should be put into optimization beforehand:
      Is it a self contained system or more like a service? For example your character controller ideally wouldn't be something that is used by other components, so you can put off optimizing it, as this task is less likely to get harder as your project grows.
      Lets say it is more like a service. Now we are in more dangerous waters, but not all is lost. Following the same logic as before, you don't have to worry too much about the internals of your component. What is VERY dangerous is what that component/service shows to the outside.
      An example from unity could be demonstrated with comparing Physics.RaycastAll and Physics.RaycastNonAlloc. Let's say that you are a unity dev about to implement Raycasting. You would probably first go with Physics.RayCastAll for the use case of returning all object hit by a ray. The problem with this is that you always return a new list for each call. But let's say you didn't think of this. Your clients start using this version, and after a year or two there are complaints that RayCastAll is generating memory garbage and it hurts some people's projects. Now you have a big problem. You may think that you could try to optimize RayCastAll, but there is only so much you can do. What this method shows to the world, is that it will return a list and it doesn't really have a way to reuse lists with the signature it already has. Thats a dependency. If you change that it would break at the client side... So you compromise. You implement Physics.RayCastNonAlloc that takes the list from the client and it works no garbage BUT now you have to ask the clients to refactor their code, possibly at hudreds of places. These are the kinds of situations where putting of optimization concerns can hurt you.
      small disclaimer: Don't take this example out of context. I am not saying that this is something that happened and unity made a mistake. As far as i know RayCastAll and RayCastNonAlloc could have been there from the start, and they decided to include both because RayCastNonAlloc altough more efficient (maybe not in some cases) is harder to use. I just made this example up to illustrate my point.

    • @thegiantratthatmakesalloft9415
      @thegiantratthatmakesalloft9415 Před rokem +3

      🏳‍🌈🏳‍🌈

    • @EnderElohim
      @EnderElohim Před rokem +30

      You don't need premature optimization if you start making your stuff optimized in the first place by making right moves. It might make no sense when i type it like that but basically with experience you start to learn how to not make stuff as bad when you making them so less headache on long run

  • @shytut
    @shytut Před rokem +1068

    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.

    • @Repanon00
      @Repanon00 Před rokem +42

      I agree. I'm still a new game dev working on my second commercial game. My background was producing comic books for 20 years until I hit a career/personal wall and wanted a change. Some people don't like him, but Thomas Brush tutorials and vids helped me to have the confidence to try game dev. I will never be a great programmer, but I can be decent enough and use my strengths in visual arts to make games. You can hire or ask for help where you are weak. I saw a doc on the Hollow Knight guys and they hired people to help with their programming.
      There is more than just writing code to making a game. And no knowledge, tutorial or skill makes up for determination and perseverance. Those two things I feel are more important when it comes to making games, because there will always be obstacles to overcome making games or anything other endeavor in life.

    • @cryonim
      @cryonim Před rokem +13

      @@Repanon00 Very well said. In that aspect, the current landscape doesn't look bad, because while 99% of the viewers can't code but at-least 50% of them are interested in development, which just boosts the overall reach of the topics and that just means the 1% grows in number, maybe not in % but in actual value.

    • @NihongoWakannai
      @NihongoWakannai Před rokem +44

      Yeah, it's great for getting people into game development.
      It's just annoying that once you become intermediate, you very suddenly go from having a wealth of content to scrounging around for a single tutorial that is actually useful.

    • @joel6376
      @joel6376 Před rokem +9

      But all the tutorials could be done in other, better ways with similar results. Do videos of those other ways exist? I bet they do, but because of youtube/google/search in general we end up with what is the most popular, which is likely not related to which is the best way to achieve X and more likely down to how well presented (edited/presenter vocals/etc) than the actual content of the video. This is a systemic problem that goes beyond game design.

    • @zimmerderek
      @zimmerderek Před rokem +5

      I think a lot of the problem here is the psychology of making something that "barely works" for people doing these tutorials. Spending hours following along doing something (usually without any really good context or explanation for half of what you're doing) and then getting to sit back and go "wow it (barely) works!" doesn't give you any satisfaction or motivation to continue.
      Learning the "better way" from the start would allow noobs to build actual working systems into their games, which would then allow them to move on to something else interesting rather than redoing their grass for the 5th time.
      I can't speak for everyone, but getting to the "minimum viable product" for a very simple game is the payoff that I was seeking. If the tutorials lead me to a MVP that simply isn't playable, I have little to no motivation to try again. If i had used this grass example, and then added a bunch of assets and tried to make a combat system, and it's running at 9 FPS, it's extremely demotivating.

  • @ZILtoid1991
    @ZILtoid1991 Před rokem +177

    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.

    • @marcomoreno6748
      @marcomoreno6748 Před 9 měsíci +13

      Where do you live that you can get fired due to being in the hospital!?

    • @ali32bit42
      @ali32bit42 Před 8 měsíci +20

      do they think cloud programs magically appear out of thin air ? cloud programs actually need more optimization if anything since they can cost millions of dollars in electricity and server space.

    • @syloui
      @syloui Před 4 měsíci +11

      The dispensing with optimization classes due to modern CPU speeds is how we ended up with the disastrous software bloat we have today where everything is electron based and browsers eat up several gigs of ram. It's the same reason Pokemon chugs on the same hardware Doom 2016 runs on at 60fps. Add several layers of abstraction with stack overflow copy pasters and you get soydevs: the programming equivalent of someone who thinks microwaving a tv dinner is comparable being a gourmet chef, just cause it says "gourmet" on the package

    • @hiruki8
      @hiruki8 Před 4 měsíci

      ​@@marcomoreno6748America, probably... FMLA might exist but it's only guaranteed for like, 3 months. And even then people can find ways to fire you even if it's technically illegal...

  • @cheldardo
    @cheldardo Před 2 lety +779

    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

    • @Acerola_t
      @Acerola_t  Před 2 lety +228

      Exactly, one argument against prioritizing optimizations is that "computers are fast now" but the faster your game runs, the more lower end hardware you can support, thus expanding your potential customer base.
      Thanks for the comment!

    • @laszloneumann500
      @laszloneumann500 Před rokem +10

      @@Acerola_t low end hardware is east europe and they pirate anyway so no,.not really
      Its not about "how many people I can reach" its about "Can i reach the people i should?"
      Optimization is important, but computers *are* fast now and by optimizing You primarily cater to an audience who:
      *-Dont make their own purchasing decisions or have no expandable income* (Kids with old pcs, supervised by parents, Poor countries...etc)
      *-Will possibly pirate the game anyways*
      So you are right...but you are also wrong

    • @ZeroSleap
      @ZeroSleap Před rokem +110

      @@Acerola_t I HATE that industry mindset of "computers are faster now,develop faster with worse optimisation"

    • @imselfaware419
      @imselfaware419 Před rokem +28

      @@ZeroSleap THISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHISTHIS
      Why THE HELL, are devs skimping on proper optimizations?

    • @kahahabahaha
      @kahahabahaha Před rokem +23

      I know this is an old comment, but ROR2 even had poor performance on relatively high end machines, especially if you got pretty far in a run. Those optimizations you're talking about are definitely making a huge difference even on newer hardware

  • @MrSmoofist
    @MrSmoofist Před 2 lety +765

    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

    • @pinballkitty5266
      @pinballkitty5266 Před rokem +75

      A lot of popular tutorials get popular by leaning into the false 'this is all you need to know' vibe.

    • @skaruts
      @skaruts Před rokem +28

      Gonna be a bit cynical here, but it's been quite a while and I still haven't understood how to progress on my own into rigid body wheel physics. Because absolutely no one teaches anything other than raycast wheels or Unity/Godot's default wheel colliders. And even raycast wheels, not many people do. About 99% of tutorials are about default wheel colliders, which are absolutely abysmal. But hey, they are easy to get going, so anyone can learn them in a day and make a tutorial about them.
      Same thing for first person controllers. Everyone and their mothers teaches them using capsule colliders. Which are fine in some cases, but not at all in others. But then, of course, just like the default wheel colliders, they are easy to learn, so there's 0% tutorials teaching how to use cylinders for colliders (which handle stairs better, don't slide down on edges and thin platforms, etc). So far I haven't a clue how to implement such a thing.

    • @lesto12321
      @lesto12321 Před rokem +11

      ​@@ElmerGLue disagree, this is probably a issue tried and solved hundreds of times, probably there is a great doc/tutorial out there, that solves your problem and even some you still dont know you are gonna have, but is pushed down by the flood of the same simple concept repeated 1000 times by 1000 tutorial.
      It is a problem of discoverability, this is also why there are "awesome-something" repository that collect the best tool/method/tutorial for something.

    • @bobkiller572
      @bobkiller572 Před rokem +3

      @@lesto12321 tell me more about this “awesome-something” repository, seems like something I need lol

    • @ChernobylComedyAndWings
      @ChernobylComedyAndWings Před rokem

      @@lesto12321 yeah the search engines are hiding all the good stuff and propping up the nonsense ontop.

  • @westonmcnamara
    @westonmcnamara Před rokem +46

    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.

  • @misterrhombus
    @misterrhombus Před rokem +430

    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.

    • @daaaaaaanny
      @daaaaaaanny Před rokem +37

      The amount of "make your first game in unity" videos where they just use marketplace assets and do the bare minimum code, if any at all

    • @colto2312
      @colto2312 Před rokem +8

      somethings you gotta just black box tho. Like deduplicate an unsorted array. Do you really know what ram and CPU is doing with those functions? Do you REALLY know? then it's been black boxed, and odds are it's fast enough

    • @vitogeist
      @vitogeist Před rokem +9

      @@daaaaaaanny Brackys be like :

    • @jesusstaccato8448
      @jesusstaccato8448 Před rokem +19

      You're probably right, but I wanna point out that some people (e.g. myself and many other people with ADHD) are really bad at learning from documentation. In our case, learning by doing is probably going to be more effective than setting the unrealistic goal of reading and understanding documentation, even if it means we learn bad habits and struggle with optimisation further down the road.

    • @Danku
      @Danku Před rokem +12

      @@jesusstaccato8448 it's not like anybody's first game is going to be a fucking masterpiece, but it might be more about the approach. I struggle with reading documentation as well but I think the point is that you are learning the method to do something rather than understand how they did it. It is a very general topic for my comparison to be accurate but it's the closest I can come up with at the moment.
      In any case, do whatever works for you. Unlearning bad habits is better than not learning at all.

  • @Dani_Krossing
    @Dani_Krossing Před rokem +167

    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 CZcams 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 CZcamsr 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 CZcamsr holding your hand CONSTANTLY, to the point where you don't know how to seek knowledge on your own.
    If you find a CZcams 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 CZcams 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 CZcamsrs 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. 🙂

    • @jlando
      @jlando Před rokem +47

      This is the comment that should be pinned to the top of this page and definitely not a post about someone *cringing* over existing tutorials and flexing on their programming resume. A lot of these tutorials that are being bashed are likely one of a few that exist for a given subject matter.
      From my experience, they at least provide a good starting place to achieve the goal you are looking for. Programmers that are new to the scene will probably have to copy some portion of the work without fully understanding it and that's okay. Get it in there, see if it works. If it doesn't work see if you can figure out why. Now step through each line and get an understanding of what is happening. If something isn't done in the most performant way, eventually you're going to either recognize this during the tutorial and make an adjustment yourself or you will wonder why and come across a tutorial on using profiling tools. Let your curiosity drive and discover that xyz functionality is taking a long time and go down the rabbit whole of finding out why that is and is there a better way to go about satisfying your problem.
      It's astounding how many tutorials there are today. You can pretty much find a tutorial for anything. I don't mind the gripe over a creator claiming production ready when it is clearly not, although you do clearly call out Brackey. My issue is more with the Pinned message at the top. If you just want to be a C# developer then sure be really good at C# lol...

    • @patrikbaboumian
      @patrikbaboumian Před rokem +7

      Thank you!

    • @josephforjoseph
      @josephforjoseph Před rokem +6

      Very well said, thank you

    • @sunbleachedangel
      @sunbleachedangel Před 8 měsíci +9

      I think it is still very important to at least say some like "this isn't the best practice but we will use it for now"

    • @devforfun5618
      @devforfun5618 Před 4 měsíci

      or better yet, teach the easy way and the optimized way, so the beginer who is only testing can use the quick dumb way to see if they like it in the game, and when they want to optimize the code they can come to the same video from improvements@@sunbleachedangel

  • @Jaximous
    @Jaximous Před rokem +546

    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.

    • @JustinTheDev
      @JustinTheDev Před rokem +48

      I agree with this. I'm a professional programmer and followed some tutorials to get my game started and enjoy a lot of the small wins i've made. I have a giant terrain and painted a bunch of grass and my game ran like shit and guess where I ended up.. watching Acerola's entire grass series lol. Those who want to learn, will learn.

    • @AliBaba-vw7mo
      @AliBaba-vw7mo Před rokem +1

      Agreed!

    • @DevinDTV
      @DevinDTV Před rokem +30

      I agree in general but if your tutorial is about using a method that would never be practical because of how inefficient it is, it's just a bad tutorial.

    • @sode3468
      @sode3468 Před rokem +5

      You have a point but I don't agree. Software development is like 50% optimisation and I think there is a large amount of devs who never realise that they are not as good as they think they are. I think Acerola was talking about the brackeys tutorial and brackeys should 100% have known that he was teaching a outdated method, but he did not. Why did he not know? Mabey because optimisation is to neglected. My hypothesis is that optimisation is not interresting enought that most high level coding teachers don't bother bc no one will listen and its only when you get the lower systems coding (C/C++) that optimisation is taught.
      But I may be wrong :)

    • @felipevasconcelos6736
      @felipevasconcelos6736 Před rokem +3

      Obviously the people willing to take the next step will learn about it. That’s circular logic: those who aren’t willing to take the next step will… not take the next step.
      The point is that if that step were easier to take, more people would be willing to do it. Isn’t that the point of tutorials? If we didn’t have tutorials at all some people would still figure it out on their own, so why bother?

  • @betterlifeexe4378
    @betterlifeexe4378 Před rokem +213

    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.

    • @betterlifeexe4378
      @betterlifeexe4378 Před rokem +34

      code level optimizations tend to have less impact, however, the most important code level optimizations:
      A: avoid exposing methods unnecessarily in update and coroutines
      B: use dictionaries to find items in large collections wherever possible
      C: know which commonly used methods take more resources such as findobject methods in unity and reduce your use of them.

    • @svenrawandreloaded
      @svenrawandreloaded Před 8 měsíci +10

      A: Not using event tick
      B: Not using event tick
      C: Not using tutorials that rely on event tick

    • @betterlifeexe4378
      @betterlifeexe4378 Před 8 měsíci +9

      @@svenrawandreloaded The reason why event ticks are less performant is because it essentially uses its own update cycle to check for conditionals. So yes, but it's not limited to that. Essentially event ticks fall under code optimization A, which is the first code optimization for a reason.

    • @R2Bl3nd
      @R2Bl3nd Před 4 měsíci +3

      Reminds me of the game dev behind the scenes video on crash bandicoot. They implemented all kinds of revolutionary new ideas (sarcasm intended) like "dynamically load stuff in and out of your level rather than just try to cram everything into the one megabyte of RAM available". I know, shocker.
      It explains why so many PS1 games have such simplistic level design and geometry. 3D games in general over new territory and most developers didn't think of even the most basic optimizations.

  • @steen_is_adrift
    @steen_is_adrift Před 2 lety +185

    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.

    • @maxff123
      @maxff123 Před rokem +14

      can you explain what is wrong with doing that?

    • @steen_is_adrift
      @steen_is_adrift Před rokem +32

      @@maxff123 it's extremely advanced and not even remotely suitable for a CZcams tutorial. Like I said. It sets you up for failure.

    • @MagicGonads
      @MagicGonads Před rokem +12

      @@steen_is_adrift My initial impression without knowing anything about whatever system you're interfacing with is that a 'rigid' body (from the name alone) has physics actions with some kind of normalised motion, but VR tracking cannot impart force onto the player (only perhaps their play area / frame of reference) and the player can move their physical components as fast as they want so it would impart extreme forces on the environment without correction.

    • @BrandonNyman
      @BrandonNyman Před rokem +6

      Yeah I encountered something like this recently, on a video about avoiding cheating in vr by going through walls. They had a collision system made. but that meant you try and move into an object, even a table, your vision remains the same while your body moves which can induce motion issues for the user.

    • @SkeleTonHammer
      @SkeleTonHammer Před rokem +4

      @@BrandonNyman To be fair, a lot of the best VR games do this because the only alternative is to create a Half-Life Alyx system of showing a weird orange halo as your screen goes black, which can be equally disorienting. VR is still tricky in a lot of areas. Lots of room for new ideas.

  • @funx24X7
    @funx24X7 Před rokem +36

    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.

    • @vincentcabezas7147
      @vincentcabezas7147 Před 4 měsíci +6

      The fact that they *only* needed to upgrade the graphics for the game to fit in with other games 2 generations newer. Boy...

    • @matthewpublikum3114
      @matthewpublikum3114 Před 4 měsíci +1

      A nice interview of the techniques would be great

    • @willemowen2515
      @willemowen2515 Před 4 měsíci

      The more I learn about how awesome this game is the better it gets.

    • @funx24X7
      @funx24X7 Před 4 měsíci +1

      @@matthewpublikum3114 there’s a great technical breakdown simply titled “making of shadow of the colossus - ps2” in Japanese, unfortunately the site hosting the English translation is no longer around and the only mirror I could find has this gaudy orange background which kind of takes away from the reading experience.

  • @tacticaltoaster5777
    @tacticaltoaster5777 Před rokem +107

    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.

    • @orangeblanket7181
      @orangeblanket7181 Před rokem +14

      Bro wrote his entire life story 😨😨😨

    • @tacticaltoaster5777
      @tacticaltoaster5777 Před rokem +12

      @@orangeblanket7181 you know it 👌😤😤

    • @graphitic5578
      @graphitic5578 Před rokem

      @@tacticaltoaster5777 i deleted my comment. who did it.

    • @epicm999
      @epicm999 Před rokem

      I regressed lmfao. I started with Unity and got really good at Roblox. Then I stopped game deving because I'm horrible at asset design.

    • @graphitic5578
      @graphitic5578 Před rokem

      @@epicm999 my joy of making games is never been bogging down because of asset design, it's the exploration that explained everything that gets me confused then implementing them to my game, never really caring about the assets or the graphics, it's just for the experiments of it.
      i think this is the reasons for me not using a game engine and instead creating an 2d engine as your own (making a 2d engine is really easy but people have to go through abstract concepts they'd have to think on their own) is because you've disciplined yourself to what is the methodical option advantageously, for your game ideas.

  • @kintrix007
    @kintrix007 Před rokem +164

    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.

    • @thegiantratthatmakesalloft9415
      @thegiantratthatmakesalloft9415 Před rokem +19

      alot of people don't understand that tutorials show a plan of action, and that they are responsible for learning AND internalizing the mentioned actions to properly progress as a learner. Gift yourself, don't spoil yourself! - The giant rat that makes all of the rules

    • @Grimnoire
      @Grimnoire Před rokem +1

      @@thegiantratthatmakesalloft9415
      A rat!
      Omygawd.

    • @nerdyunrealdev
      @nerdyunrealdev Před rokem +4

      I understand the exact issue you're talking about! When making videos for the channel I'm commenting with, part of why I don't go deep into "how to make this very specific thing" is because the point isn't to have people learn how to make a specific thing, but to learn how something in Unreal works, so they can creatively apply it to their own games!
      But it does seem like a very limited philosophy and I do wish more tutorial makers applied it (if anything for when ~I~ have questions on things)

    • @SkeleTonHammer
      @SkeleTonHammer Před rokem

      And then they also provide their entire Unity package you can download so that if you want to, you literally don't even have to follow the tutorial. Just transplant their work that you don't understand into your game.

    • @LC-hd5dc
      @LC-hd5dc Před rokem +3

      what's the difference between tutorials and education? the latter actually expects you to do some work, and that's how you learn. a video will teach you some keywords but will never magically make you better at actually doing it

  • @ThatElfNerd
    @ThatElfNerd Před rokem +21

    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.

    • @Slashx92
      @Slashx92 Před 8 měsíci

      I think the fundamental problem is that the grass example is not a tutorial of a neat technique to render grass that can be used for other things, and it really should not be used to render grass because of how resourse hungry it is. Instead, it's a tutorial on how to render grass period. And someone unexperienced could not realize where's the problem when after 4 months of learning and adding things the game runs at 20fps.
      But I agree that if it's disclosed that what is being tought is an excersize and not a real implementation, that the implementation used is not meant to be used for millions of grass blades, solves the issue

  • @memepotater9503
    @memepotater9503 Před 2 lety +67

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

  • @Glori4n
    @Glori4n Před rokem +25

    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 CZcams 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 CZcams, and Unity-endorsed ones. This will save you many, many problems down the line.

    • @epiccoolperson1236
      @epiccoolperson1236 Před rokem

      Hey just a little confused about that last part. Are you saying to look for content outside of youtube and outside of unity endorsed ones or outside of youtube and look for unity endorsed ones?

    • @Glori4n
      @Glori4n Před rokem +4

      @@epiccoolperson1236 You should look for professional content outside of CZcams, and preferably Unity-endorsed ones.

  • @LogicalEscape
    @LogicalEscape Před 2 lety +93

    Using free online tutorials, I've always felt something was off. Game dev tutorials remind me of the many Web dev tutorials that show you concepts and methods completely out of context for sake of simplicity, or to get you to buy something. It also makes me think of the maths and science taught to young children, they're full of lies because the realities are far more complex to grasp as a beginner perhaps.

  • @alexpier7110
    @alexpier7110 Před 7 měsíci +7

    I know its a year late but he's right. this is even present in the art community where an artist will be like 'just do this simple trick' without showing how the trick functions to make a better artist

  • @grochlin7106
    @grochlin7106 Před 2 lety +52

    I find tutorials can be useful as a general guide on how to approach a problem. That said, unless I'm completely lost I tend to avoid them. Another great grass video in the books!

  • @asyncasync
    @asyncasync Před rokem +99

    The most important part of your programming, generally, is really not optimization, but the readability and maintainability of the code itself. As long as you have that you can still quickly update and fix other things.
    If you lose that then you cannot do anything at all without braking things, development would be super slow, nobody would want to work with it and it could potentially cancel out whatever benefit you were getting from not setting readability and maintainability as the first priority.

    • @keepinmahprivacy9754
      @keepinmahprivacy9754 Před rokem +11

      @@baseddepartment9656 Fuck that, my code remains a byzantine labyrinth that only I can navigate. Noone will learn my secrets!

    • @victor22332211
      @victor22332211 Před rokem +10

      @@keepinmahprivacy9754 It's a meta game: Figure out what my code does

    • @keepinmahprivacy9754
      @keepinmahprivacy9754 Před rokem +10

      @@victor22332211 Protip: if you do comment, make sure the comment is completely unrelated to the code it is associated with to cause further confusion

    • @asyncasync
      @asyncasync Před rokem +9

      ​@@not_an_artstudent the reason why React projects are bloated and slow is because people do NOT care about quality and instead just install package upon package of random "helper" bloat and never bother to clean up a single thing later on. This results in large bundles filled with useless code.
      Good quality code is extremely important because you can easily refactor it down later as well. This will lead to the complete opposite of what you said - your bundle will actually get smaller.

    • @victor22332211
      @victor22332211 Před rokem

      @@keepinmahprivacy9754
      //Pray to God that this words

  • @skaruts
    @skaruts Před rokem +24

    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.

    • @TwistedSisler
      @TwistedSisler Před rokem +4

      That's one of the worst and most frustrating things when you are trying to interconnect multiple tutorials on a subject to fully implement something. Because it never fails that each tutorial went about it a completely different way and it makes it twice as complicated if not impossible to take concepts from this tutorial and apply it to the system from that tutorial without having major issues.
      It's honestly just the same problem that literally every other aspect of the internet has. Things are easily accessible and open to anyone now so you will have a lot of people making specific content for specific reasons and there's a lot of garbage to filter to get to the good stuff. And the Games that come out on Steam every day reflect that also.

    • @TheIndieGamesNL
      @TheIndieGamesNL Před rokem

      *cough* any VRIK that isnt using Rootmotion

  • @non-shockingtopics7563
    @non-shockingtopics7563 Před rokem +268

    Imo killing the interest of potential, new, or growing developers isn't really worth getting bogged down with the specifics of optimization right from the start. Don't get me wrong, it's definitely important to at least mention that the methods of doing these things may be inefficient, which a lot of tutorials leave out, but "predatory" is very far from the right word for most of them. Most of these guys are solo indie developers who are themselves learning, not everyone has the benefit of industry experience or the time to figure out the shit they're making is slow. They simply made something and are sharing it.

    • @shimadabr
      @shimadabr Před rokem +21

      I have a stance that it's fundamental on any tutorial or course that the underlying complexities of the subject are at least touched upon. Most courses and tutorials on programming in general just show a half assed implementation of the subject they're teaching and hardly comment on the problems it has or how a good real world implementation could address them.
      So i agree that many are disingenuous, they just want people to keep coming and inside their confort zone.

    • @scvnthorpe__
      @scvnthorpe__ Před rokem +9

      My approach is that if its killing the ability to grok stuff or produce readable, decently structured code then don't
      But at the same time it's worthwhile teaching how to do it *properly*, or just give an idea of the implications under the hood. Like 'we shouldn't have to keep recomputing this value, memoise it or pass it explicitly'
      I remember there being this whole debate as when we all saw the elsif tower of doom that Yandev made some suggested 'use a switch statement those are faster' but while this is true for both js and python for example others piped up with 'but the compiler already handles that its smart enough'. And the fact is the code shoulda just used polymorphism to handle much of that shit

    • @arminkuburas1696
      @arminkuburas1696 Před rokem +5

      Those "potential" new programmers won't be programmers if all they do is consume mindless copy and paste CZcams tutorials.

    • @Jordan-kk4iu
      @Jordan-kk4iu Před rokem +27

      @@arminkuburas1696 they need to learn at least the basics somewhere

    • @slimsXV
      @slimsXV Před rokem +5

      If these new/growing developers can only stomach spoon fed unoptimized garbage to keep going, perhaps it's better they just get weeded out.

  • @TehAntares
    @TehAntares Před 4 měsíci +5

    Acerola: "I won't be naming any specific tutorials, because I don't want any of the authors feel bad or be targeted by my audience."
    Also Acerola: *proceeds to put a specific author into the video's thumbnail*

  • @NateLevin
    @NateLevin Před rokem +5

    CZcams just started recommending me your videos and I can't believe how underrated you are! Your videos are really great, hopefully the algo starts picking them up more!

    • @fresoapa
      @fresoapa Před rokem

      Same, got recommendations yesterday.
      These videos are really well done, actually!

  • @tonygamer4310
    @tonygamer4310 Před rokem +36

    I also feel like understanding what elements to optimize is very important as well. I don't know a ton when it comes to code optimization, but at least in the world of optimizing models, people tend to focus on the wrong things. People try to remove every last polygon they can get away with, but at the end of the day, the polygon count is nowhere near the most computationally expensive part of a model, and just because you can remove an extra 50-100 polygons from your soda can by removing the tab and replacing it with a texture, that doesn't really matter unless you have tens of thousands of soda cans in a scene at once, in which case there are much better optimizations you could do

    • @teucay7374
      @teucay7374 Před rokem +3

      I totally agree. One of the first things I was taught in university was the Amdahl's law and it's unbelievable how little attention it gets, being the most intuitive thing in the world.

    • @bonbon_idv
      @bonbon_idv Před rokem +2

      If you wanted a big pile of soda cans, only putting in the models/assets of the outer cans (as well as some inner cans) and leaving the inside hollow would be enough to make the illusion that there are many, when there is only a portion of the amount it is seemingly displaying

    • @tonygamer4310
      @tonygamer4310 Před rokem +3

      @@bonbon_idv Exactly. The only reason you would want to go through and save every last polygon is when you get into the range of millions of cans, or if you need the full volume of cans to be simulated or something like that, otherwise there is no real reason to spend any significant time optimizing the polygon count of the asset

    • @jumpergamer1913
      @jumpergamer1913 Před rokem +1

      @@tonygamer4310 what are the good ways of optimizing 3d models?

    • @tonygamer4310
      @tonygamer4310 Před rokem +7

      @@jumpergamer1913 reducing draw calls is the biggest one. This means using less materials and avoiding shaders with multiple passes, because every draw call means sending information to the GPU to render, which usually takes much longer than the render itself, especially for a few thousand polys or less. Reducing texture size also helps on lower end devices with less VRAM, because if the GPU runs out of VRAM it will run a lot slower copying files in and out of the ram constantly. Another thing that helps is combining many static assets into one large file that uses a single material, as that will really reduce draw calls, although I think game engines tend to do that to some degree automatically

  • @workinglategames7401
    @workinglategames7401 Před 2 lety +19

    I hope you continue with this type of content. One could settle for the idea that the authors of those tutorials are little more than novices with youtuber aspirations or the sole intention of promoting their own games, but the problem is that almost all of them have videos sponsored by Unity, so...

    • @Acerola_t
      @Acerola_t  Před 2 lety +8

      All I can hope to do is try and cut as few corners as possible in my explanations and be transparent when something isn't optimal or ideal. I'd like to do a series someday where I can help indie devs with their graphics or optimizations and identify where they are going wrong, sort of like Sinix's paint over pals series. Hopefully I can get the Unity sponsor someday lol
      Thank you for the comment!

  • @g.l.2006
    @g.l.2006 Před rokem +33

    I kinda know what you’re mentioning - I myself am like a complete beginner and my code‘s pretty garbage, still I started Developing my Game, Right now it certainly isn’t optimal, yet I think it’s still pretty good, but when I started my Game I wanted to create a sea-level with large ammounts of water and I just clicked on a random Tutorial - it created the waves of the water via Vertex displacement and it just didn‘t explain anything properly so I just copy and pasted all the Code- well 30-40 fps (I Must say I just Use an Laptop with a 3060 so Keep that in mind) it wasnt very good or performant and it also didn‘t Look to Great - months Later with a bit of experience gained I Went back to that Level and just realised that that water needed to Go I replaced it with a shader graph shader and boom- 100-200 fps (which is good for my Laptop honestly) well what did I learn back there - don’t just copy and Paste everything from the Internet and better Research a bit further

    • @valletas
      @valletas Před rokem +1

      Shaders and filters are ususally a bad idea
      They can look really good but they almost always kill performance
      Its always good to try to find work arounds to make the same effect without using any code (or at least keep it to a minimum)

  • @hiTocopter
    @hiTocopter Před rokem +85

    I actually completely disagree with this. You are absolutely correct in everything you are saying about people not learning to optimize, but you're forgetting a few things.
    First off, there wouldn't be a thousandth of the developers there are today if it weren't for the ease of use of tools like Unity and the prevalence of tutorials on youtube. If everyone kept learning by reading books and going to university like they used to, this industry would never have grown the way it has been. The truth of the matter is that you don't need to understand how the GPU renders things to make a great game today - and that's not a bad thing, it's great!
    Second, the market decides what a good game is. If that is an unoptimized piece of junk, technically speaking, it is most likely not going to do well and the developer will be out of a job. If it does do well, then it's because it's a good game despite its technical shortcomings and would probably never have seen daylight if people followed your advice.
    Third, I'd argue that one of the best ways to sift through developers who are "script kiddies" and actual developers is for them to see their framerate drop to 40 when adding their grass and have them solve it. Giving them a cheat sheet for how to fix it is only going to exacerbate the problem - because you are kidding yourself if you think those script kiddies are going to actually read your article about "why" and not just copy-paste the code from the github link at the end. They will never actually understand what the underlying problem was, or care about it.
    Fourth, ???
    Fifth, There's a pinned comment on this video about a professional developer who interviews people who fail basic technical interviews. He makes this seem as if it is a bad thing, when in fact all that shows is that there are tons of interested, passionate developers out there looking to advance themselves. Who cares if they fail? They're not going to get the job, but so what? It's not going to be their last interview, and if they fail and are still passionate, they're going to learn from their mistakes and make themselves better.
    Sixth, premature optimization is a terrible idea. Obviously, if you can think of three different ways of doing something you should pick the one that has the cost/effectiveness balance that is most in line with your expected outcome, but that's not really how people work most of the time. You need quite a lot of experience to be able to understand the problem to such a degree that you can think of several ways of solving it. Why am I saying this? Because the vast majority of the tutorials you are clobbering aren't out-of-whack unoptimized. Shaders might be more-so than others, but most tutorials on Unity-related topics are about moving transforms, shooting fps guns, health systems and the like. Teaching people to create their own render pipeline to make more optimized light baking as a beginner topic is a terrible idea - as I'm sure you'd agree. So is this grass thing. It's not a beginner topic. Trying to work with shaders in general is not entry-level programming. Which means that these tutorials don't actually hurt anyone - or the industry. If you can't or won't spend the time to figure out why your grass is rendering at 40fps AFTER THE FACT, then you will give up on the issue and delete your grass, which is exactly what you should do.

    • @jayocaine2946
      @jayocaine2946 Před rokem +14

      literally the only man with a brain in this whole comment section, the fact the guy pinned the boomer leet code worshipping interviewer's comment is depressing

    • @purplewine7362
      @purplewine7362 Před rokem +5

      For real, I felt this was a generic call out video with a more popular youtuber in the thumbnail to gain clout. I feel like like this guy doesn't understand the point of these tutorials at all.

    • @hiTocopter
      @hiTocopter Před rokem +7

      @@purplewine7362 Well, first of all, let's take about 20% off. There's nothing wrong with having an opinion and we should discuss its merits before we attack someone's integrity. I think he is making a legitimate claim. Obviously, that grass tutorial showed people an objectively bad way of doing it and the tutorial could have been made much better.

    • @MarilynMonRover
      @MarilynMonRover Před rokem +1

      Eh... I sorta agree with the OP... sorta. I don't actually think you realize what a deluge of crap has befallen us though. If given the choice between a gallon of pure water and a 55 gallon drum of raw sewage... I think the choice between the two is obvious. The same goes for game development... the fact that every two-bit hack and their grandmother thinks they can develop a game just because a tool like Unity, Godot, or UE makes it easier than how it was in the 80s or 90s is just opening the floodgates for trash. That's also part of the reason why the mobile markets are so full of shovelware. Proper game development is an interdisciplinary process and any part that is subpar reflects on the entire product. Program code is the glue that holds it all together. Sure, you can have nice pretty graphics and pleasant audio, but if your game runs at 15FPS, like so many Unity-based games do, it's garbage from top to bottom no matter how nice you make it look. A monkey dressed in silk is still a monkey. I agree that tutorials need to be explaining things better, especially when it comes to performance. Any hack can throw together a tutorial... there are no requirements for even knowing what you're doing. But look at it this way... would you rather learn surgery from a surgeon or Bob the truck mechanic? Quality matters. I'd rather have a steady stream of high-quality games coming from experienced developers than a metric butt ton of garbage games from inexperienced chowderheads who think that it's all glam and cash, the kind of crap I have to sift through to find the good works.

    • @johnnycadaver2933
      @johnnycadaver2933 Před rokem +5

      Full support. Optimization is important and you don't want your game running like shit, but god forbid someone's small game doesn't run at 10000fps like it could (which is what most people will do). It's not some rocket science, with secret pitfalls that'll destroy your gains. You just write something wrong and can immediately see the drop. If you wanted people to focus on performance, you'd tell everyone to drop Unity/Godot and go make their own engine.
      I work in console porting where optimizing is my bread and butter, and I've had to fix some real stinkers. But I write inefficient garbage code all the time myself because it still runs great very often, even in extreme conditions like spawning 100x of the usual amount. Machines are way more efficient than we think (or were taught, because schools usually have garbage machines).
      It may be a bad thing that tutorials don't shine enough light on optimization, true. Like teaching how to use an extinguisher during cooking lessons, SOME attention should be given to this. But I think every dev who gets past first few projects and still has creative drive, will eventually search for answers on his own. It's not a race, we don't need to hold their hands for this.

  • @drtaverner
    @drtaverner Před 4 měsíci +2

    Good Lord, back when we were coding on older machines every bit counted. Anything you could do to optimize and write concise code, you did.

  • @Tarodev
    @Tarodev Před 2 lety +3

    The transition at 6:32 made me spit my Kellogg's® Sultana Bran

  • @HyperpigeonMinecraft
    @HyperpigeonMinecraft Před rokem +4

    I've seen that technique used in a tutorial before, though if I'm remembering correctly it was a video by a 3D artist, not a game dev, so ofc their techniques are going to be a lot different and less optimization focused. Great vid btw, watched one of your grass videos then this one, and subscribed :)

  • @mariocamspam72
    @mariocamspam72 Před rokem +28

    Might have been a joke, but optimization being the most important aspect of programming (as a whole) is controversial. Software arhitecture overshadows optimization and, in most cases, leads to optimized code when properly done.
    Edit: Regarding the "50 instructions/perlin noise generation": this is a bit generalized.
    The speed of perlin noise generation depends on the noisemap's resolution.
    Measuring in instructions isnt too good because it does not account for following factors:
    - CPU Clock rate
    - Memory locality/Cache misses
    - CPU Arhitecture
    - Memory latency
    - Memory speed
    - Parallelization techniques in processor pipeline for primitive instructions (e.g.: SIMD Accelerated pseudorandomness)

    • @Acerola_t
      @Acerola_t  Před rokem +10

      I failed to mention how i mostly meant in the realm of graphics, obviously in the world of web development and other areas of computer science, optimization is less of a priority.

    • @mariocamspam72
      @mariocamspam72 Před rokem +7

      @@Acerola_t Yeah i see, sorry for the misunderstanding. I'm currently binge-watching your videos and I'm enjoying them a lot and subscribed too. Looking forward to more

    • @Acerola_t
      @Acerola_t  Před rokem +1

      @@mariocamspam72 Thanks so much!

  • @TheDamax41
    @TheDamax41 Před rokem +6

    Just came across this video and wanted to say thank you. I first learned C 25 years ago working on a MUD, on a computer with around 2mb of RAM (if that much). Everything I wrote had to be super optimized to get a big game to fit into that memory footprint, and still leave enough resources for the server to function. So that's how I "grew up". About 3 years ago I started a project in Unity writing in C#. It was my first time using C#. I had lots of questions, many about optimization, which I asked on the Unity forums. Over, and over, and over, and OVER again I was told to stop worrying about it. Write the code, and if later there are performance issues, I could use the tools to see what the problem is and work on it from there. "Computers are so powerful, with so much RAM, that little thing you're worrying about isn't an issue."
    It absolutely infuriated me that many many people all had that same attitude. Don't bother to optimize it, that's not a problem (unless it's a problem). No, I want to write efficient code ONCE and NOT have to go back and "fix" it later.
    So I just wanted to say thanks for posting this video. This needs to be learned as a starting point for writing code, not as a "ugh if I have to later".

  • @LovroPlaninsek
    @LovroPlaninsek Před rokem +34

    I've gotten interested in game development at the start of the pandemic by people like Dani who make fun games that even on my ok laptop run pretty poorly. Lately I started watching game optimizations such as Kaze emanuar's efforts of modifying the Super Mario 64 engine to run several times faster than it originally did, since at the time, game programmers weren't at all used to the C language. The explanations in those videos were good and all, but the thing is it's hard to see what would be a better solution... when you don't know that solution, and I could only really follow along, didn't feel like I could come to any of those ideas by myself... (and probably since the N64 is a really atypical computer)
    Now, after watching your grass animation trilogy and this video, it really strikes me as obvious that the required knowledge is the very basics of coding or even just how computers work in general, even more so than before.
    My main takeaway is that at some point I'll definitely want to learn actual programming, and I'll probably also get the computer gems books, they seem epic. Big problem is that I'm in the middle of becoming a woodworker engineer in a non-English-speaking country, so it'll be a side hobby on the internet for quite a while.
    We'll see tho

    • @colto2312
      @colto2312 Před rokem +8

      half the battle is knowing just what tools even exist. Imagine trying to build a car from catalog, but you had no concept of the hand tools we have. Would be caught doing some strange things with a pair of pliers

  • @Shadowsphere1
    @Shadowsphere1 Před rokem +49

    For the most part, if the tutorials showcase correct code practice, I see no issue with not *_teaching_* optimization. That type of content would ultimately derail the main topic of the tutorial depending on what types of optimizations need to be covered. I do agree in that optimization in general isn't even mentioned during tutorials, which is unfortunate, but I personally don't hold tutorial makers accountable for teaching subset topics that aren't directly related to creating the feature the tutorial is offering...
    Say, if a video was showing me how to create a flowing grass shader for my terrain. I wouldn't expect the video to spend half its length on culling, LODs, batching, etc. That stuff is general topic stuff that is very important, but not directly related to the creation of said grass shader. In this, I would expect a tutorial to mention at least the performance impacts such features could have, that way it can prompt a beginner to think about options to make it more performant on their own, seeking more dedicated tutorials or research rather than half-baked optimization techniques packaged into tutorials that weren't meant to teach optimization.

    • @Shadowsphere1
      @Shadowsphere1 Před rokem +5

      It also helps to be picky about your tutorials if you choose to follow any. There are plenty of tutorial videos that actually do optimize their code, or mention that something could be done better.
      People like Sebastian Lague, while the optimization of their code could be arguable to some, at least he mentions when code is possibly not optimized, and at least he provides insight to his code and in some tutorials, actually tries to do things the best way he knows how to provide a smooth result. These types of tutorials are completely fine to me. There are many ways to code the same thing, and if the person making the tutorial prefaces or mentions an optimization point in their tutorial, then the person following it can't complain about bad performance if they followed it and didn't bother exploring optimization themselves after it being pointed out. Of course, if there too many bad spots in the tutorial, then simply don't follow the video.
      I get some people are lazy, but even beginners need to take some responsibility. I'm not the best at traditional C# either, but even as a beginner at Unity, I took it upon myself to research optimization myself, because it's the logical thing to do. This is actual development. Behind the scenes exists. Even beginners need to know this. They can certainly be blamed if they ignore optimization. You can't pin all the blame on tutorial videos here, since a beginner will probably ignore optimization regardless of using tutorials or not. It's not something they typically think about if they don't have the mind to think about it. Luckily, after 6 years of college, I learned to pay attention to behind the scenes details logic such as this.

  • @seekpodcast
    @seekpodcast Před rokem +8

    I completely agree. I started out using the simple and easy stuff but now I have been forced to follow the tutorials that are either more than 20 minutes long or actually work well and are optimized. When I have to learn something I usually have to do a lot of research and watch a lot of tutorials before I come up with something that seems like it actually makes sense in a real game. (Which usually isn’t from the tutorial) Only a few CZcamsrs I trust to make complete and optimized tutorials, and usually the really popular ones aren’t those few. I just spent two weeks making trees for my game. I went through dozens of tutorials before settling on an approach that was somewhat performant.
    Wait a second. How do I know I can trust this video. Is everything you said in this video really good for me in a practical situation....
    Just kidding ;)

  • @thedude4795
    @thedude4795 Před 3 měsíci +1

    the "standup" handheld mic style is way ballsier than any game tutorial channel

  • @TheSpeedturns
    @TheSpeedturns Před 8 měsíci +1

    You missed the use of the world sound when the time moves further xD btw nice video

  • @hyeve5319
    @hyeve5319 Před rokem +34

    This is the kind of thing that makes me very very glad I STARTED with an interest in programming, rather than in "gamedev" (which is a massive nebulous area of many different skills).
    Having learned CS fundamentals and how to use raw programming languages by themselves - mostly self-taught from a very young age by badly making things and later figuring out how to make them better - it's sad to see so many people struggling because they've missed the most important step.
    Programming is the underlying core of everything that's made digitally, and while you do not always need to understand it to USE applications, if you want to MAKE one and truly have understanding and control over exactly how it works, raw programming and CS understanding is essential.
    I'd argue even more essential when working inside an engine, because even if the engine solves some things for you, if you CAN'T look into it and figure out how it works and debug your issues, your app will be crippled by workarounds and problems you just didn't understand how to fix.

    • @paolaanimator
      @paolaanimator Před rokem

      Do you have any suggestions about how to get into programming? I'm just starting to dive into coding. I'm still unsure of coding bootcamps, but I may join in one day when I have enough money saved up. I may join a bootcamp that's 6 months long at least to give me time. But before that, I plan to start off with free resources online first and I'm even reading some coding books to see if I can understand some basic concepts and eventually move up to more advanced concepts of coding. I don't plan to code only for games, I've been interested also in app development. VR games also fascinates me but I know VR is still very new.

    • @hyeve5319
      @hyeve5319 Před rokem +1

      @@paolaanimator Mmn.. Tricky question! IMO, learning code isn't really "hard", as long as you take the time to properly understand exactly what's going on, but then again, it's easy to say that as someone who's been programming for literally most of my life.
      There's a few significant differences between writing standalone code and code for games (in an engine, at least), but once you have a good understanding of "how to code", you'll be able to tackle any kind of game or project without too much difficulty (other than the inherent challenges of whatever you're making)
      Bootcamps and "tutorial sessions" and all that kind of stuff never really worked for me; I usually find it a lot easier to search out and learn things myself, as I spot which things I don't understand, but that may just be me.
      The way I got started was a long and slow process of just.. messing around with things, when I was a really young kid - I started using visual drag-n-drop "languages" not long after I learned to read and use a computer. Starting as an adult (or at least not young kid) now though, I don't think you'd want to go through that haha.
      There's a bunch of fantastic resources out there for all kinds of code and different projects, so I guess I'd recommend just, searching around for the kind of project you're interested in doing, and finding some good beginner explanations (not just follow-along-tutorials!) of how to get started with them.
      If you'd like, feel free to add me on discord (Drake#6138) and I can try and help out if you get stuck or confused anywhere.

    • @paolaanimator
      @paolaanimator Před rokem

      @@hyeve5319 Thanks Drake! And yeah, I've been trying to start out with free resources or resources I can check it out to learn about coding on my own first (like coding books) before considering spending money on a bootcamp. I guess what makes bootcamps helpful is access to a community or (hopefully) access to internship opportunities to get into coding jobs in the future. And thanks for the Discord ID! I'll DM you in Discord. 👍

  • @digis_monkey_king
    @digis_monkey_king Před rokem +3

    This happens a lot whenever I'm trying to learn new coding practices. I would watch a tutorial and rather than take that at face value, I would research the topic, read multiple articles, and scour documentation and 9 times out of 10 (obviously an exaggeration) it would be done in a way that completely contradicts the video. Not only that, when I tried asking other devs (specifically from the Unity forums) when I was stuck, usually because of a compiler error or user error, they would answer with some jargon that I didn't understand, (especially for a beginner) tell me to go to unity docs, or not answer entirely.
    So, not only did I get lied to by a tutorial that was supposed to teach me, I got stonewalled by a place that was supposedly meant to be helpful. Eventually I resorted to asking Reddit and I learned more than I ever could from said "tutorials"... it's a lot easier to learn from people who are willing to explain how something works rather than getting spoon fed the answers. I am by no means an expert yet but that's a start... Now I am able to make my own scripts and hone my C# coding abilities...

  • @EveBatStudios
    @EveBatStudios Před rokem +2

    Instant subscribe.
    I feel very caught up in this struggle myself despite having gone to university for programming. Trying to self educate on specific engines and an entire 3d modeling and animation pipeline was a rewarding years long undertaking and I take way too much from random unqualified youtube tutorials by individuals mushing blueprint kits together for experiments.
    I remember I used to develop weapons on a multiplayer platform where anyone could cobble code together and crash the whole server. At one point I personally wrote a shotgun that recompiled a script in each pellet every time it was fried which would practically create slow motion through lag. Then I met the real coders, the code artists who understood the engine and optimization tricks. The people who actually had the support, time, and motivation to really grok the world we were trying to build in. It was like the difference between a hand saw and laser cutting and the result was directly measurable in numbers because of multiplayer lag. It was very early on in me learning development but it really taught me the value of understanding the tools you are working with, optimization, and either dedicating the hours to learning specific development tasks or hiring on proper specialists.

  • @queenofsquiggles
    @queenofsquiggles Před rokem +1

    I totally agree with your issue with tutorials. I'm hoping to not fall into that trap with my current tutorial series I'm working on. Hopefully my design focus of "Teach not just the how but also the why". I'll be sure to check into potential optimizations for my tutorials where they apply

  • @SethFunk
    @SethFunk Před rokem +17

    I agree and disagree lol and I personally make tutorials. I think optimization should be considered once you achieve the function of your game. Most devs (especially beginners) are working on considerably small projects that don't need microscopic optimizations. Unless of course they are dealing with graphic related pipelines. The general rule of thumb I use and freely speak out for is get something working, take a step back and review. If it is not a bottleneck then continue.
    Even for my tutorial videos, even with "easy" in the title, it is more a long the lines of the teaching method is easy to follow. I preview the concept, walk thru the process while explaining the code as I go a long, mention pitfalls and then lastly execute the code to show it works in a very timely manner, with the added bonus of sharing links to the documentation/resource I derived my info from. And if it's a subject I am not 100% on, I even mention that I am by no means an expert on the topic, just sharing the process of how I arrived to my solution.
    I think the topic of optimization debate will always be present, and typically if you structure your code in the first place, there isn't much to concern with. A great example of optimizing too early is when I see videos mentioning something like using raycasting is expensive, so they go out of there way to avoid using them, which in fairness it can be computationally expensive, but if used properly, you can have 1000's of raycasts happening in a single frame and still be okay. (such as using physic layers, using mutliple checking methods such as using a collider to check objects in general vicinity, then raycasting to the collected objects, ect.. ) But is that really necessary when you are only using a single raycast at max per frame? lol
    That's why I personally build my features, then monitor the stats/garbage collection, then optimize from there. Obviously if you know in advance a massive overhead issue, then you try to avoid it, but if you don't, then that means you are still learning, which honestly everyone still is, and givers reason to dig further and expand.
    Generalizations can be brutal when used incorrectly.
    As for the rest of the content in the video, grass in video games is interesting, And I always admired the charm of the billboard grass lol

    • @sephypantsu
      @sephypantsu Před rokem +4

      The first rule of optimization is: Don't do it. The second rule of optimization (for experts only) is: Don't do it yet. Measure twice, optimize once.

    • @SethFunk
      @SethFunk Před rokem +2

      @@sephypantsu pretty much. Immediate optimizations up front just adds cost that could be avoided (cost of time, money, frusturation, ect..) lol

  • @DrClementShimizu
    @DrClementShimizu Před 2 lety +112

    I agree and disagree. First of all, I enjoyed your video. I get handed all sorts of projects in my work with other game developers and other clients and there is a lot of really strange things that I see. Low hanging fruits that are not optimized. But on other hand, game development is a form of art and expression. So there are a lot of tutorials out there that help people see what tools are available for them to adopt. I feel like people should try lots of different things and see what's fun and interesting. Many independent game developers are just making simple games with not a lot of layers of complexity. Larger studios implement more strict control over CPU GPU cycles. In unity, it is pretty easy to profile to find things that are slowing you down. Also, are you filming out of an RV?

    • @Acerola_t
      @Acerola_t  Před 2 lety +62

      Thanks for the comment!
      I agree that my points don't apply to those making simpler games that will never be intensive. My main issue is with tutorials that portray the content as out of the box ready or teach a topic without explicitly stating that it's beginner knowledge.
      Also yeah I am filming in my family's camper lol, I unfortunately don't live alone so there's nowhere else private to film.

    • @teamldm
      @teamldm Před 2 lety +28

      Yup, it's simply different audiences. There's so much shit that you need to learn in game development, so you need a bunch of little dopamine-inducing wins on your journey. If I'm 3 months into learning Unity and want to know how to make a nice looking grass environment, I'd probably go with the path of least resistance for that small win to keep me motivated. If I'm a bit more experienced and working on a production-level project, then it's up to me to keep an eye out for potential performance pitfalls. I can't just go with the beginner-level "STYLIZED GRASS IN 5 MINUTES" tutorial and call it a day.
      I'm not sure I'd call those styles of tutorials predatory. They do serve a very real purpose to the community, as do these sorts of videos calling them out for the reasons you shouldn't follow them. Nothing's black and white :)

    • @Acerola_t
      @Acerola_t  Před 2 lety +30

      @@teamldm Yeah, there's certainly nothing wrong with 'stylized grass in 5 minutes' videos, but the predatory part is when it's portrayed as a production ready asset when it's the exact opposite.

    • @LineOfThy
      @LineOfThy Před rokem

      @@Acerola_t very true.

    • @phartferd5738
      @phartferd5738 Před rokem +4

      @@NeoHCgbz You have a great point, in addition, for people like myself, who could at best be called a hobbyist, starting off thinking through how to optimize it before it's implemented, means I'll never actually start making anything lol.

  • @Arelias95
    @Arelias95 Před rokem

    Found your channel while searching for optimised grass tutorial lol (with strong emphasis on optimised). You clearly fill a niche compared to other gamedev channels, keep up the good work mate :)

  • @illusivec
    @illusivec Před rokem +1

    I started my software dev careeer on embedded system where 16Kb of memory is considered generous and CPU clocks cycles are counted in Mhz. When I started doing game dev as a hobby, I was struck by how inefficiently everything I looked at was being done.
    On microchips, we're spending weeks optimising a function just to save a few bytes of memory. In general software development, people are making calculator apps that 100Mb and uses 1Gb of RAM.

  • @nankinink
    @nankinink Před rokem +18

    YES. Thank you.
    Tutorials do help people grasp the beginnings of programming. BUT, they should only be a kickstart and that's it. Everyone should proceed to learn C# fundamentals (unity's case), coding patterns, etc.
    Unity actually has a pretty easy tutorial on C# basics that can help tackling this step. After this, learning actual math also is a must.
    And it's not just tutorials, many assets in the unity's asset store sucks. I stopped buying then since most of them are a convoluted mess.
    I have a colleague in the studio that grew watching tutorials and his code sucks hard. We gotta correct a bunch of issues when dealing with his pull requests, sometimes even ignoring the issues because dont want to deal with his shit anymore. When he asks about how can he improve, we tell him all those things and he just goes "but why tho, it works fine for me". god

  • @Silentsouls
    @Silentsouls Před rokem +3

    You have a white coat, "dude just trust me" is not even needed.

  • @FlyhardrobFlyhardrob
    @FlyhardrobFlyhardrob Před rokem +2

    Well done for talking the time to do this video comment! It resonated so well I just needed to add... I come from a VFX/Animation background and Ive spent more time optimising for renders than doing actual artwork. Not many people/students realise the sheer amount of data that's pushed through the hardware and even considerations given to how different data (packets) stream through network cables to server harddrives for renderfarm access. So the more bait that's made for 3D gaming and VFX creates a bad .... bad... bad...so very bad... deluded, base work force. To the point were you don't welcome the new talent anymore you think welcome to the grinder rather! So bad tuts equal bad expectations... plus bad work hours divided by ZERO. Yep I'm frustrated too.

  • @erikm9768
    @erikm9768 Před rokem

    Excellent video, subscriped!! Hope you keep it coming, been struggling with grass instantiation for so long

  • @coluzea
    @coluzea Před rokem +8

    haha, this is a great video, i love that you take performance seriously. a game that runs good is a game that looks good and feels good. doesn't really matter how good the hardware is getting.
    if anything, gamers these days are starting to value high resolutions and even higher framerates, so even somebody with a higher end pc might feel disappointed at a poorly optimized title.

  • @tupelov346
    @tupelov346 Před rokem +5

    I think the issue is that many tutorials teach you how to do something but not what it means. For example, you learn a formula in class and then you can't use it in a real world context because you don't know what the formula does conceptually. It's why beginners struggle to do anything past the tutorial because it never taught them what they needed to know to survive on their own. It's easy to just give a solution rather than actually teach the concept.
    PS: Fellow P3 fan 🤝

  • @JRHainsworth
    @JRHainsworth Před 4 měsíci +1

    "I don't want to name any particular devs"
    *puts Brackeys in thumbnail*

  • @TakoBoi123
    @TakoBoi123 Před rokem +1

    Hey thanks for this video. I'm currently in school working on a degree for game design. I already knew about optimization and how it helps compress the size of it. But I never learned what you mentioned from the other tutorials I watched nor from my courses. Programming is pretty hard for me, mostly because I don't exactly know how to start a script on my own. But now, I'm determined to put my nose to the grindstone to get a better understanding. Also the pinned comment helped me realize something I didn't know about my learning. Thanks again for both this video and pinning Aaron's comment. Def going to be checking out catlike.
    Also, based Persona soundtrack.

  • @gabek5760
    @gabek5760 Před rokem +6

    I think there is a good niche for unoptimized tutorials, as others have said: Sometimes it's not about making the game run at 200FPS, sometimes it's about making the game run in the first place. That being said, I do appreciate emphasis on optimization, and I do believe that there is a large market looking for that kind of thing. I Imagine you'll go quickly, if you focus on making tutorials, but optimized.
    P.S. I wish you did unreal instead of unity lol

    • @Acerola_t
      @Acerola_t  Před rokem +3

      I try to keep my videos about theory only so it applies to all engines, I just happen to use Unity.

  • @Mimoas66
    @Mimoas66 Před rokem +10

    As a complete newbie i learned a couple of usefull things for a not so tutorial
    - 1 Noise textures are somewhat used for mesh manipulation why and how exactly i don't know
    - 2 It confirmed my doubts on being skeptical with tutorials promising you fast and easy results, nothing is easy especially in 3D
    - 3 Optimization is a thing that makes no compromises
    - 4 Catlike Coding tutorials, i'm currently on the clock tutorial and learned a lot about the really basics of Unity.
    - 5 You can't like a video more than once.

    • @waker_link
      @waker_link Před rokem +3

      think of a noise texture as a range of values (mainly from 0 to 1, aka black to white). You can use the position of a portion of a texture to apply those values to something, which is commonly used for stuff like world gen (the values for example can be the height of the land, or kind of like in Terraria's case - caves). Since those are values, you can use them to offset the position of the vertices, just need to "slide" through the texture to get the offset value that keeps changing

  • @TheMasterBountakun
    @TheMasterBountakun Před rokem +1

    Thanks for this, I'm just about a complete beginner to coding but want make games a hobby after coming off of RPG Maker. I still want to do this properly so I appreciate some direction on where to look instead.

  • @kluplau
    @kluplau Před rokem

    I love the overwhelming volume of information. But even more love the 80ies tv advertisement style. Keep on the great work. You deserve a lot more subscribers. 💪💪

  • @MasterDisaster64
    @MasterDisaster64 Před rokem +4

    Shout-outs to Infallible Code. There’s a tutorial channel that teach the underlying stuff, not just specific features.

  • @Elesnouman
    @Elesnouman Před rokem +3

    I didnt know this, thank you so much. Im familiar with C but not C# and especially with unity terminology and logic. as a noobie gamedev I was thinking that Simple=good. but as you said bigger projects or even mobile ones can be damaged by this happy go lucky mentality, i will revised my code in the future much more especially on this mass generated stuff. thankfully im still on prototype stages.
    you sir have gained a suscriber!

  • @abdallahbridja2651
    @abdallahbridja2651 Před 7 měsíci

    Finally someone talking about optimization. I've been looking for a video like this for a while. After playing so many video games and doing 3d, i started to realize how people neglect optimization and how crucial it is in your work.

  • @MambomasterKong
    @MambomasterKong Před rokem +1

    Amazing content! Discovered you channel today and I've watched a healthy amount of your videos. Subscribed

  • @Acerola_t
    @Acerola_t  Před 2 lety +5

    Yes the thumbnail is a double entendre

    • @Brutalic
      @Brutalic Před 2 lety +2

      Don’t say shit like that to me

    • @Acerola_t
      @Acerola_t  Před 2 lety +1

      @@Brutalic

    • @PG13park
      @PG13park Před rokem

      @Spartacus well I liked it

  • @Otter_Knight
    @Otter_Knight Před rokem +4

    Thank you for the interesting video! I think it's important to consider that different "types" of tutorials serve different purposes. Many tutorials exist to explain the fundamentals of a technique or tool. The point is to give the learner enough information to get started with the topic in question, not to turn them into an expert. They can then go on to learn by experimentation, or move directly on to find more advanced tutorials on the topic that are meant to teach how to do things well. I personally like this kind of videos as a quick introduction to the topic before diving into documentation or written articles. I prefer each tutorial to be boiled down to the core point - let introductory videos teach the bare concepts, let the advanced tutorials teach optimisation.
    That said, there seems to be an overwhelming majority of these beginner videos with very few creators caring to actually take the next step and make the advanced follow ups. Or even direct learners towards other sources. Additionally, tutorials meant to show one specific way to make something or solve a problem (such as the grass example) absolutely need to present a proper, optimised product, or point out the unsolved flaws.
    The thing, though, is that experienced programmers figure these things out. They often realise when things are not optimised. They know to search out the advanced information. And they don't just copy paste code.
    I think the more core problem you are getting at is not so much the lack of optimisation in tutorials, but rather how game dev tutorials targeted at complete beginners often fail spectacularly at providing guidance towards learning actual game development beyond making balls move around and making some animations. They claim to take people from knowing nothing to be able to make a game, but they only ever teach the surface technology of the engine and provide some examples of what code looks like. I have not yet seen such a tutorial take the time to explain which skills one needs to learn to be able to make actual games. They don't mention important programming concepts such as optimisations, and as such many are left without even knowing that there is something to learn. They also provide no help in getting started with learning about things like game design theory. In summary they just don't point the learner towards making anything real. It's more like they are just teaching how to use Unity as a toy.
    People who learn game development and programming like this, and don't happen to advance further, will then just continue searching out tutorials that will continue treating Unity as a toy and provide easy solutions. They are not interested in things like optimisation, because they have never really been introduced to it or its importance. They have not taken the step to doing this seriously. Thus you have the audience for all these dumbed down tutorials.
    I am lucky that my own tiny channel teaches a relatively obscure programming concept, meaning most people who watch it actually know what they are doing. They will absolutely call me out if I fail to properly address optimisation in a video. I believe it helps others to read their critical comments, and I wish comments like that were more common elsewhere.
    Nevertheless, I am grateful for your video, and I hope it will help change the tutorial landscape for the better.
    Also, great suggestions for learning sources. In case anyone is interested in rendering vegetation, there is a great GDC talk called "The Vegetation of Horizon Zero Dawn".

  • @mystifiedoni377
    @mystifiedoni377 Před 8 měsíci +1

    Your room is cool as hell. It feels like you're recording on a boat.

    • @Acerola_t
      @Acerola_t  Před 8 měsíci +3

      lol it was my parent's trailer, they have since sold it and I live on my own now.

  • @joaoorsi3982
    @joaoorsi3982 Před rokem +1

    chapters, description full of sources and links and even song credits with timestamps? One video in and I love your channel already

  • @kristiandevil
    @kristiandevil Před rokem +3

    very true. I went back to a game I was making just a few weeks after getting a junior programmer job at a game studio and already cringed at the old code I wrote with stuff I learned from tutorials

  • @TeppuTeppu
    @TeppuTeppu Před rokem +3

    Yes, totally agree, optimization is one of the most important part of game development.
    The better your optimization skill is, the more ambitious your game can be.
    Just look at noita, every pixel is simulated, it is beautiful.

  • @aadityakiran_s
    @aadityakiran_s Před rokem +1

    Hey man, all this is pretty interesting but I'd like to get it form you as how work is like in the games industry. I work in a company that does some games but also does interactive 3D applications in all platforms even AR and VR but I am thinking maybe of switching to some generic SDE role in some product based company since I hear game dev is atrocious in terms of work life balance. I just have 2 years of experience and all the game dev experience was pretty nice to get me solid fundamentals in coding, so what do you think? Is the industry as bad as they say it is? Is it better to switch now if my entire life doesn't revolve around Game dev? What are your thought? I'd love to know. Thanks.

    • @Acerola_t
      @Acerola_t  Před rokem +1

      I won't be starting in the game dev industry until about 2 weeks from now, so I can't say from personal experience. But, from everyone I know that works in the industry, yeah work life balance is very poor. When deadlines get close you will basically work 24/7.

    • @aadityakiran_s
      @aadityakiran_s Před rokem

      @@Acerola_t Aha.... so then what other career paths are there? You seem to be very good at game dev concepts and yet you say that you aren't going to start in games till 2 weeks from now. So what did you do till now and what other alternate career choices are there which are as interesting as gem dev but still give you good work life balance.

  • @flashheart1676
    @flashheart1676 Před 7 měsíci

    I was hitting the same series of brick walls. Watching tutorial after tutorial. But it was GRASS that made me aware of just how bad things really were.
    I think we need a revolution!
    I started by liking and subscribing.
    Keep it up!
    This is great stuff!

  • @csxcatgirl9896
    @csxcatgirl9896 Před rokem +5

    Problem is most tutorials are not an educational materials, and most of their creators never intended them to be.

  • @jbluepolarbear
    @jbluepolarbear Před rokem +19

    Optimization is a skill developed over time and is often in a case by case basis. Make your game first, optimize later. Pre-optimization is evil and will waste hours of development time that could have further progressed your game. Beginners shouldn't worry about optimization until they need to.

  • @twobob
    @twobob Před 8 měsíci

    here comes 100k I'll sub for this sentiment. Yeah even more posionous is "early optimization is the root of all... insert failure word". I mean sure, get it going but ffs at least mention that you should prolly do it after or how to if you ACTUALLY end up needing it. spot on man. Also repos of professional code for games patches or even studying shader snippets that they can eyeballz

  • @dysfunc121
    @dysfunc121 Před rokem +2

    They are good to understand and build intuition about a concept, exposure to an idea for the first time before you explore it deeper.

  • @ZahhibbDev
    @ZahhibbDev Před rokem +3

    Even though I agree in many ways, in my opinion the most important thing for a developer is actually Finishing a game. Sure I dislike how optimization is a afterthought in majority of tutorials but I wouldn't expect a beginner tutorial to go through optimization techniques or solid programming anyway.
    If someone wants to make games, then they shouldn't be bogged down by optimization principles, at least not in the early stages. Instead they should be introduced to the several fundamental aspects of developing a game (design, art, etc) and I would honestly prefer tutorials put more effort into planning for the development of a game before anything else.
    I'd argue the people targeted in all of these beginner tutorials aren't primarily interested in programming and just want to put things on screen and see it move as a start -- some are artists, designers, musicians, etc, that simply want to make a game and take the first steps.
    Nontheless, great video and I learned something new! :)

  • @shhdev
    @shhdev Před rokem +4

    Congratulations, you found a short comment!

  • @DylanFalconer
    @DylanFalconer Před rokem

    Nice video, nice grass (in the other videos). Your performative style is refreshing, I'm jealous.
    I was just thinking about this today while putting together a tutorial on programming simple physics collision responses for a game. "Do I mention that the optimal way to do this for anything more ambitious than an arcade style game is to use a broad-phase sweep first?"; I thought to myself. You have convinced me that the correct answer is "yes".

  • @exhalerwolf1272
    @exhalerwolf1272 Před rokem

    this, anytime I try searching specifically for game optimization, youtube gives me videos on how to optimize gameplay (as in for gamers not devs) so thank you for the resources you mentioned.

  • @REOsama
    @REOsama Před rokem +5

    I strongly disagree
    This is exactly the mindset of all your terrible teachers back in school; they want to teach you the cutting edge, most optimized way of doing things when you can barely write a hello world program!
    By doing this, you are going to make people hate game development and never start in the first place.
    You are essentially solving a problem that they haven’t yet faced.
    Initially you will do things in an unoptimizable way, and it will be fine because your games will be small initially so it won’t matter, but later if the game is large enough you will end up going back and looking up how to optimize it, but now you see the problem for yourself and will actually understand the solution and won’t forget it next time.

    • @sisyphus_strives5463
      @sisyphus_strives5463 Před rokem

      But if that’s the case, shouldn’t such information be transparent say- in the description or comment section?

    • @Floglor
      @Floglor Před rokem +1

      @@sisyphus_strives5463 And what, uhh, does it solve? If tutorials will state that this is not the fastest way to do things they will state the obvious. Of course it's not. It's your job as the dev to optimize the code if it needs that, and this is implied in most cases.

    • @sisyphus_strives5463
      @sisyphus_strives5463 Před rokem

      ​@@Floglor Fair enough. They'll certainly come across a situation in which the algorithm is incredibly inefficient and will be forced to come up with a solution(or google).

    • @sisyphus_strives5463
      @sisyphus_strives5463 Před rokem

      @@Floglor Just, as a youtube channel, perhaps making videos on both algorithms (the inefficient and most efficient and maybe also somewhere in between) will be quite profitable

  • @habibyahya788
    @habibyahya788 Před rokem +4

    while I agree to your video, I just don't get it why the comment section is suddenly filled with hatred towards tutorial
    those tutorial still a great starting point. and if you really is want to search for a robust "how to something" don't search it on youtube, search for a legit documentation! articles or something!
    saying "Tutorial on youtube is the worst thing to start" is just not right. for me especially when you're learning how to code, the first step is literally "Make it works". I don't really care about optimization first, just trying to "Make it works". After that, if I deep dive into it then the second step is "Optimize it"
    so don't try to think about the so called god "Optimization" if your code doesn't work at all.
    maybe you said that "Then it's a waste of time when we study about optimization we need to refactor all of our code". HELL NO it's not a waste of time. Remember, you want to STUDY. doing something wrong and KNOWING IT'S WRONG afterward is part of studying.
    of course what I said is different for professional scene, where time to work on project is a resource so you just cant waste time. but like I said, most people that search tutorial on youtube is just people that wants to start learning about game development.
    no hatred towards Acerola, I just don't get it how many hatred comment towards youtube tutorial in this video.
    "Oh my favourite youtuber saying tutorial is bad, time to say that it is bad" fookin bullcrap

  • @anathamon
    @anathamon Před rokem

    Just found your videos, love em!

  • @TheRealBoof
    @TheRealBoof Před rokem

    The thing I have noticed the most that really grinds my gears is when tutorials make prolific use of the MonoBehaviour events, like Awake() and Start(), just to link references. It took me a long time to figure out that I can just use C# getters and setters to make robust references that *don't depend on the order in which objects are instantiated into the scene*...

    • @valletas
      @valletas Před rokem

      Man i hate that
      On godot there are many tutorials that just assume you already have a code set up to reference amd they never teach you how to make one or what that even is they just say "now you need to make a reference to it"
      Its not that hard honestely but man it was so frustrating when i was still learning

  • @pianoatthirty
    @pianoatthirty Před rokem +6

    Game development is such an interesting world. I'm watching this video and thinking, no wonder so many games look so hideous. Hideous color schemes, art that is either an overly-vintage pixelated pastiche, or overly saturated with candy colors; either hyper-realistic 3D (yuck), or some dark post-apocalyptic brownish, greenish RPG with lots of grass. WHAT is up with games and lots and lots of grass? I just don't get it. Isn't anyone interested in color theory and creative color choices? I'm starting to realize (while watching this video on 'optimization') that it might be because there's so so so so so so so so so so so so so so much of a focus on programming, and very little on what what actually matters - ART. Forget 3D for a second, even with basic 2D art, there is A WHOLE WORLD of possibility that seems so untapped, so undiscovered that off the top of my head I can only think of a few titles (Cuphead, Gris, Hollow Knight, etc) that have done something really awe-inspiring. But hey wtf do I know? I'm just an curious outsider looking in on all of this, taking a break from some random Udemy Unity tutorial and had a fun time writing this as a form of procrastination. Good day y'all.

    • @GwyndolinOwO
      @GwyndolinOwO Před rokem +2

      i agree. art, color, and aesthetic as a whole are kind of their own beast to master. I do get why some people shy from it, experimentally if they rarely do art themselves, but it is important for "most" games. (some games lack visual art but i'll say that falls under aesthetic). though i will say a pretty game with horrible gameplay is much worse than a game with fantastic game play and a simplistic/"okay" art style. (getting too ugly is bad but otherthinking art can also bite you in the ass)
      for example, ii love farming games, so i found an interesting farming game on steam. It goes for a different story than most farming games do. and the art is VERY pretty. but the tutorial SUCKS. making the mechanics understandable in a game is fundamental. you can have the prettiest game ever but if i can't understand what i'm doing, or why i'm going it, it can feel like something is missing. or in some cases the mechanics are understandable but so mmuch iss thrown at you that it feels overwheling, which isn't a good feeling for a new player either.
      So yeah i don't disagree at all. I think thhere's so much that goes into game development that itss hard to really explain it all quickly. and as a side note i do think pixelart CAN be underappreciated. I'd look into how blasphemous does their pixelart if you ever get curious. i think pixelart gets interrestinng when it goes away from that NES/SNES look, but somme people still complain about that a bit. it has its own limits, but it can look good when done by good artists.

  • @JoeAbunga
    @JoeAbunga Před 2 lety +8

    Love the labcoat

    • @Acerola_t
      @Acerola_t  Před 2 lety +2

      Thanks Joe, loved you in the qt omegle video

  • @Bazukax
    @Bazukax Před rokem +1

    Thank you for the video. It seems that I became a victim of not so much informational tutorials. I had to make a procedural terrain generation script. I followed a tutorial for it, everything was working fine, until I wanted to scale things up a bit. I noticed that whenever I make a map bigger than some number it generates artifacts and such, makes a weird glitchy terrain. Thanks to your video I now know about the 65k limit. I wish they would have mentioned it in the tutorial, which was from on of the top tutorial channels about Unity development :D

  • @shobeon
    @shobeon Před rokem +2

    When i started learning unity. I also aware of optimization too, but I couldn't follow the optimization tutorial because back then I didn't have enough knowledge about game development, like "what is object pooling?" "What is abstract class?" Etc.
    So, I followed the easiest tutorial that I could understand, and tried to make different game using what I've learned from that tutorial.
    After couple months learning, I've revisited the tutorial that talks about optimization, and it makes more sense now and I can follow the tutorial!

  • @Manas-co8wl
    @Manas-co8wl Před rokem +3

    Optimization is an essential skill no doubt. But it's by no means the most important in programming. The most important skill is to get things done.
    We all know the saying, premature optimization is the root of all evil. I wanted to disagree with that cliche, but throughout all my years of programming I learned the hard way the truth of it.
    The tutorials only take you so far, and optimization should be your own burden as a programmer. Not only that, but I feel that most tutorials had a good idea of telling you the general performance costs of what they're doing. Beyond that is just handholding.

    • @vega841
      @vega841 Před rokem

      Ahh yes getting things done, let's finish my game with 93739372997528298226628 million triangles

    • @Floglor
      @Floglor Před rokem +1

      Finally a good comment in that cesspool. If you want to get shit done, you need to find how to get shit done. If it runs slow, you need to optimize it, you need to go deeper and optimize the algorithms or use something else. This youtuber wants to write well-optimized code first, and that's not how you do things in the the business logic industry.
      Of course you need to know how the engine works and how to write fast code, but optimizing it before it's even done will burn your time for things that maybe doesn't even need optimization. Not talking about grass, of course, but since he is attacking every tutorial out there...

  • @CoolJosh3k
    @CoolJosh3k Před rokem +3

    Simplified because it helps new comers is fine, but is MUST contain a section or commentary on why something is bad to do in real projects.
    For example, following some tutorials for Unity would result in so much garbage collection, but the concept is never mentioned.

  • @Bustermachine
    @Bustermachine Před rokem

    So a good question to ask regarding textbooks is opinions on the programming/game coding bundles that sometimes pop up on humble bundle.
    Are they any good or just the ebook equivalent of shovelware?

    • @Acerola_t
      @Acerola_t  Před rokem

      I've never used the humble bundle resources, I think I bought the one for game AI years ago but I haven't read it. So I don't know enough to form an opinion on them.

  • @CoreDreamStudios
    @CoreDreamStudios Před 4 měsíci

    Subscribed, thank you for all this!

  • @AmallieGames
    @AmallieGames Před 2 lety +4

    I want to say thank you for a weird reason - this video made me totally give up. I am a professional front end web developer, so I'm a typescript expert. I have been off and on trying to learn Unity for like 2 years now to build a passion project, but the tutorials always left me feeling... confused. I was able to look at my code and see obvious problems after following the tutorials, but I didn't know the C# or Unity solution. I could tell it has to be way more complicated than this, but I wasn't finding resources that went there. This video taught me that for the most part there aren't resources, except a few that I have glanced at and realized that I like the easy little video tutorials and if those aren't good then I'm not going to be good and that's okay. And I am saying this as someone who has coded professionally for 4 years now and held architect level positions. I think they sell a lie to people, especially those who don't know how to code going in.

    • @Acerola_t
      @Acerola_t  Před 2 lety +8

      If you're already a professional you're probably better than you think, many tutorials sell the idea that you can skip learning how to program and make it in the industry but you're clearly doing fine on that front.
      I hope you don't give up! Side projects are what keep us sane I think.

    • @TeppuTeppu
      @TeppuTeppu Před rokem +1

      Bro, you don't need to give up.

    • @jbird4478
      @jbird4478 Před rokem

      Unity offers a framework and a toolset. Using that as a starting point would be equivalent to trying to learn web development by watching WordPress tutorials. Sure, you can quickly get some pretty looking pages that way, but you'd never get any understanding of the fundamentals. And you probably know how many web pages today are horribly glued together with WordPress plugins. There's nothing wrong with WordPress, but you need to understand how the web works to use the tool correctly. The same thing applies to game engines. Start with learning the technology behind it, so you understand exactly what a tool can and can't do for you. You can write simple 2d games in C# or C++ without any engine. That's a much better starting point imo.

  • @stuhl1941
    @stuhl1941 Před rokem +3

    I kinda agree, but also strongly disagree somehow.
    First of all, games are an form of Art -
    smaller projects and beginners most likely dont need to care about optimization.
    my og comment had way too much text thats why im doing a short form:
    - what i went through is important on why i think that way
    - if not easy --> probably scaring away people --> not good (as above, art mainly and many projects are small)
    - optimization still important - but not for beginner, beginner can learn through mistakes why optimization is that important, or it can be talked about, but never do code complicated when teaching starting beginner just because its "way more optimized" - one step after the other
    same also goes with other game stuff but 3d should be less affected because you should start with simpler shapes / colors and get them right first anyway...
    --> rather teach the basic of: as beginner, keep it small -> make mistakes -> learn from it - i think thats the most important lesson.
    there are worse tutorials than these, that are simple and maybe not optimized but still explain on how stuff is working and why stuff is done like this.
    Im talking about tutorials where there is no explaination, just code or something, and then: and now its working. (yes, im adding this because of the clickbaity thumbnail)

  • @Barioncr
    @Barioncr Před rokem

    Thank you, Adrien Brody, especially for books and resources mentioned.

  • @whiteline4157
    @whiteline4157 Před rokem

    Thank you. I have been thinking about this since i started making my own projects. Whenever i watch a tutorial i thought no way this was the optimal way to do this.

  • @xensakura595
    @xensakura595 Před rokem +3

    a lot of this is what persuaded me to seriously consider a CS degree, as it was just so difficult to self-learn stuff when the internet is flooded with loads of misinformation and bad tutorials.

  • @coobbyo
    @coobbyo Před 2 lety +3

    You saved me. Thank you!

  • @dynogamergurl
    @dynogamergurl Před 4 měsíci

    I’ve noticed this too, if it’s a long series of tutorials they always have optimization and re optimization tutorials until nearly the end.
    And at that point it’s usually hard to go back and make it better.

  • @KrimsonStorm
    @KrimsonStorm Před rokem

    Great video! The same seems to happen in Unreal Engine as well. So many tutorial's I see use pre existing content, use slow features, and just throw out a "there are probably better ways to do this, but for the sake of the tutorial, ......"
    By the end of it your code is a mess of calling things, always on tick, to perform very basic things. And on top of that, most of the time so many tutorials do things so many different ways that you don't really know what even counts as efficient.