3 Magic Lines for Game Devs -

Поділитися
Вставка
  • Опубліковано 26 вер 2024
  • 💯Multiplayer Mastery Course - game.courses/mp/
    🎓Learn Game Development - game.courses/bc/
    Character Code - game.courses/s...
    Join the Group - unity3d.group/
    Support the Channel by becoming a Member - / @unity3dcollege
    Spikarian - assetstore.uni...
    Scifi Characters InGame - assetstore.uni...
    Fantasy Characters InGame - assetstore.uni...
    Insects InGame - assetstore.uni...
    ** GET SOME OF THE FANTASY & SCIFI CHARACTERS **
    assetstore.uni...

КОМЕНТАРІ • 24

  • @MarushiaDark316
    @MarushiaDark316 5 місяців тому +5

    "Make it work. Make it right. Make it fast."
    Absolutely brilliant and I can think of so many domains outside of game dev in which this would also be applicable.

  • @TESkyrimizer
    @TESkyrimizer 5 місяців тому +2

    In my intro to software architecture class I was also taught that premature optimisation can cause problems later on. Change is the enemy of perfect design, after all. Until everything is finalized, perfection is a fruitless endeavor. Better to focus on functionality and loose coupling so you don't tangle yourself up. That's my limited understanding as a junior developer.

  • @midniteoilsoftware
    @midniteoilsoftware 5 місяців тому +5

    I heard that quote from as far back as the late 1980s, way before TDD was a thing.

    • @Unity3dCollege
      @Unity3dCollege  5 місяців тому +2

      I just keep trying to figure out if there are other industries where it's as true. I can think of a lot of industries where it'd be terrible advice :)

    • @mandisaw
      @mandisaw 5 місяців тому +2

      @@Unity3dCollege Most Engineering disciplines - first you do the research to get something working, then you do a business/resource analysis to see if it's feasible, finally you iterate/optimize to do it faster & cheaper than anyone else.

  • @mandisaw
    @mandisaw 5 місяців тому +3

    💯 for working -> housekeeping -> optimization. But in your "Fast" step, I feel like that's more of an architecture change - adding a cache is a good move here, but is bound to have impacts elsewhere. Like should it be pre-warmed [add all inactive at the start], will there be memory limit issues, does it need an init/deinit step, etc.
    The story definitely illustrates the idea, and having the iteration of 3 diff variations on the same method was brilliant.
    But this specific example kind of falls into the trap that I think your friend's email mentioned, of local vs global optimization. Understanding which "minor" changes will/could have major consequences is part of that "should I do this now?" decision. Good vid though, very thought-provoking!

  • @WeenieWalkerGames
    @WeenieWalkerGames 5 місяців тому +1

    I need to somehow internalize this practice. Overcoming my tendency to try and optimize from the start, thinking "Well, I need this so it should work best now" is a big problem I have. Thank you for the clear explanation of the process!

    • @Tenzordk
      @Tenzordk 5 місяців тому

      I just make it and hope it works. I have no clue about the rest 😢

  • @chaosordeal294
    @chaosordeal294 5 місяців тому +2

    Who is paying people to develop an RPG that is not designed yet, and isn't that the real problem?

  • @goldone01
    @goldone01 5 місяців тому +1

    Quick note - you are aware that GetComponentInChildren looks in the own game object first? So you can save yourself the var animator = GetComponent and if (animator == null) lines with the same outcome and (as far as I know) slightly better performance

    • @libberator5891
      @libberator5891 5 місяців тому +1

      Dang, I said the same thing 9 hours before you did but didn't get a Jason acknowledgment like. FeelsBadMan

    • @goldone01
      @goldone01 5 місяців тому

      @libberator5891 sorry mate!

  • @dreamcatforgotten8435
    @dreamcatforgotten8435 5 місяців тому +1

    I think it should be noted that the anecdote that this advice is based on is not knowing what mechanic(s) to put into the game, and therefore one shouldn't bother optimizing prematurely.
    However, if someone knows ahead of time that they will need to do something (for example, having a lot of Entities on the screen, etc), then choosing the correct workflow at the start (such as ECS or JOBS System, Object Pooling, etc) is better than simply defaulting to 'make it work' first.
    I think your words are wise Jason Weimann, but I also think people should have a healthy balance of choosing the correct workflows and methodologies for things they know, and then get in a habit of making quick-and-dirty systems to test for things they are not sure of.

    • @Unity3dCollege
      @Unity3dCollege  5 місяців тому +1

      Yes, the bigger decisions matter a lot. It's the wasting time on small things that don't matter where people need to watch out. Always make sure the tech you plan to use can actually do the job before you start using it.. I've seen what happens when people fail do do that.. not pretty situations

  • @magictimm4090
    @magictimm4090 5 місяців тому

    very good. Thanks Jason

  • @koenfrontatie
    @koenfrontatie 5 місяців тому

    Hey your charactermodel collection has a typo

  • @Sovreighn7
    @Sovreighn7 5 місяців тому +2

    My 3 lines for Unity is....Switch to Unreal :P

    • @Unity3dCollege
      @Unity3dCollege  5 місяців тому +4

      Single
      Word
      Lines! :)

    • @goldone01
      @goldone01 5 місяців тому +1

      Firmly disagree, but to each their own...

    • @Sovreighn7
      @Sovreighn7 5 місяців тому

      @@Unity3dCollege Haha ye, I still like Unity, Ive finally taken the leap over to UE5 tho, just to get experience in another engine and C++ ect., so for the next year I will mostly work in UE.

  • @BigKevSexyMan
    @BigKevSexyMan 5 місяців тому

    I don't know where he got it from, but I remember hearing "Make it work. Make it right. Make it fast." from Gjon Camaj while he was teaching.