Unity3D Mistakes I made that you should avoid

Поділитися
Вставка
  • Опубліковано 19 чер 2024
  • Check out the Course: bit.ly/3i7ldUF
    -------
    Learn some of the biggest mistakes I've made along my path as a Unity3D developer, and see a couple ways to work around them so you don't fall into the same pits :) And along the way, I'll show you a couple useful unity tips as well!
    More Info: unity3d.college/2019/02/18/un...
    Join the group: unity3d.group
    Patreon: / unity3dcollege
  • Розваги

КОМЕНТАРІ • 522

  • @bringtmirleben8357
    @bringtmirleben8357 5 років тому +538

    OMG that first point hit home so much with me. For my final year university project we had to build a game over a year as a 6 man team. We had one programmer who believed he was the best programmer in the world. We needed a main menu screen animation so he decided to do it all in a single script, with a giant 50 step switch statement with each part of the animation being a function moving multiple game objects around. Not to mention he wasted 3 weeks "coding" scaling UI even after being told in the first day it came up as an issue that Unity can handle that for us. Rather then spending 3 seconds googling how to scale UI in unity he wasted 3 weeks on it, but at least he wasn't breaking core systems as a result

    • @davkings52
      @davkings52 5 років тому +53

      " best programmer in the world " HA HA HA HA

    • @bringtmirleben8357
      @bringtmirleben8357 5 років тому +14

      @@davkings52 yer, like i don't consider myself that great of a programmer. Infact throughout the project i found this channel to be an amazing resource. But this guy would legit refuse to even google like the most basic things rather being like ill just stuggle through on my own. He used raycasts at some poing to do with modifying one of my AI scripts and broke a super important system within the project. And when i asked him how this was possible he replied that he didnt really know how raycasts worked and that he had copy paste the code from the player controller script and edited it abit. And im just like why would you not just google it like the unity scripting api documentation is amazing.

    • @random_precision_software
      @random_precision_software 5 років тому

      I have a game for STEAM but having trouble putting it up there, there are no up to date tutorials for steam..have you put a game on steam..could you go over the process. I have paid the £80 fee and sorted my admin details

    • @bringtmirleben8357
      @bringtmirleben8357 5 років тому +2

      @@random_precision_software we did not release on steam as we did not feel it was up to a high enough quality we released on gamejolt and itch. Io soz but i can't help you in that regard

    • @random_precision_software
      @random_precision_software 5 років тому

      @@bringtmirleben8357 it's ok thanks for replying.👍

  • @lordviator
    @lordviator 5 років тому +541

    Mistakes I wish I'd known to avoid?
    1: Overreach - Don't jump into Unity as new user with a huge complex game in mind. You'll end up confused, frustrated, and abandoning the project.
    2: Prototype - As a programmer, work in iterations. Forget about the art, sound, and making the game fancy. Roughly build / code everything out first, then once you have a working game, iterate over and start replacing the temporary stuff. There is nothing worse than spending days making a level look amazing, only to find out later that you need to completely redesign it, because it just doesn't work well.
    3: Knowledge - Learn as much as you can, but don't try and do everything at once. If you try and learn everything first, you'll never get to making a game.

    • @Unity3dCollege
      @Unity3dCollege  5 років тому +34

      Definitely great points there! I can't count the # of people who's first game was gonna be 'call of duty but an mmo' or something similar :) Shoot small and complete things first, then grow the ambitions :)

    • @mandisaw
      @mandisaw 5 років тому +9

      I find that working on little tutorial games is very educational, even as an experienced programmer. For one thing, every game, regardless of genre, shares certain key subsystems/architecture - graphics, audio, UI, gameplay loop - so working on something other than your passion project helps distill your focus on the core elements of "what is a game".
      For another, you never know which tutorial is gonna have some tips/tricks that save you hours/days/weeks down the line. Unity especially has a lot of "hidden features" that can either trap or save you.

    • @indieprogress7170
      @indieprogress7170 5 років тому +2

      Definitely prototype first before coding! Good tips!

    • @nomarpimentel1817
      @nomarpimentel1817 5 років тому

    • @GeorgeDolbier
      @GeorgeDolbier 5 років тому +2

      @@Unity3dCollege don't just "prototype" Make small games (I call them toys) that experiment with a feature, shader renderer, Release it, film it, tweet it. These little toys, when released into the wild, become projects that can be picked up and modified later, or you want to re-use an idea, but make it wierd, you have that idea encapsulated in a small project you can play with. Once you have your idea fleshed, Make 1 folder, move all your prefabs code models and stuff into a single directory then use unity's asset export package to bundle that up for use in another project, putting it all in one directory keeps your sanity if you want to make changes

  • @unparalleledgame1542
    @unparalleledgame1542 5 років тому +14

    Hey Jason thanks for all the great content. Useful video for anyone who wants to learn all the built-in power of Unity3D. I love your channel bc there are so precious few high level coding tutorials on youtube. Endless amounts of beginners teaching programming and most don't consider the bigger picture/ architecture of their project. It's fast and easy to wire stuff up in Unity3D so usually the spaghetti references/code can be fine for smaller works but this approach quickly fall apart on larger scale or long form games. Your architecture videos are super helpful and your videos make me think about code differently! Thanks for all the long winded explanations my friend they are much appreciated :) .

  • @MichaelGGarry
    @MichaelGGarry 5 років тому +323

    As a long-time game developer, the single most important point in this entire video:
    FINISH THE GAME
    I cannot highlight that enough.....
    Also the showing people the game - yes, on places like the io websites, but please, not on the Google Play store - it'll get lost, no one will see it, and we really don't need any more "this is my first ever game" games on there.

    • @NickFarrow
      @NickFarrow 5 років тому +3

      Have any good io websites for first-time publishers?

    • @indieprogress7170
      @indieprogress7170 5 років тому

      Agreed!

    • @NGC7603
      @NGC7603 5 років тому +29

      I'd add to that - if your first game ever would happen to have some unique mechanic and maybe, just maybe, get a tiny bit popular on Google Play, it may get into crosshairs of studios like Ketchapp, or that other french one, and they'll just clone it but with better visuals, monetize and use the might of their marketing to push it high, but you as the original creator will not see a single penny and if you try to defend yourself you'll probably get sued, like it happened with the original author of the Candy game that King.com cloned (and made their super popular Candy Crush Saga). If you don't believe me - just google it, it was widely covered in game media at the time.

    • @LanPodder
      @LanPodder 4 роки тому +9

      @@NGC7603 any sources on how to publish a mobile game as an indie without having it stolen by big studios?

    • @xnadave
      @xnadave 4 роки тому +1

      The single most important aspect of successful software is (drum roll):
      IT MUST SHIP!!!

  • @shomanoni
    @shomanoni 4 роки тому +24

    I'm not a professional programmer yet i know a few things that should be done first:
    1. use templates, images and sprites of of others while you work and make them work in your game the way you intended and when core game mechanics are good make your art/buy your own art and implement.
    2. focus on the core game mechanics - not UI, no character looks, and no game objects placement etc... focus on controls and core game mechanics such as combat, motions/controls, skills, traveling, teleporting w/e...
    3. plan ahead and make your game scale-able, challenging and engaging, use friends for feedback.
    4. focus on one game - we many times have lots of ideas and start creating new game mid-way of the first game. dont do that. you want to finish your game right?

  • @indieprogress7170
    @indieprogress7170 5 років тому +5

    Another great video. I'm learning more and more if I'm trying to code something there is almost always a simpler, quicker and less prone to bugs way to complete that same task. I have to keep reminding myself that the players of your game won't care what's happening behind the scenes. Thanks for the video!

  • @Cretaal
    @Cretaal 5 років тому +37

    The thing I wish I knew when starting unity: learn the difference between update and fixed update before you start diving in to coding. Nothing kills your flow like realizing that your movement is attached to your framerate. It's a basic one, but one of the more valuable things when familiarizing yourself with the coding structure. One is strictly for rendering and gpu oriented tasks, the other works on a fixed timer and should be used for anything physics/movement/action oriented.
    I think this happened in fallout 76 where characters would zoom across the map at walk speed because their framerates were so high and their movement speed was attached to that instead of a fixed timer. Ever try to play wing commander on a later computer system and realize everything was going lightspeed? That's why.

    • @warsin8641
      @warsin8641 2 роки тому

      Fixed doesn’t care if you’re a laggy potato it does what it does in a specific time. Update is every frame so if you’re a toaster whatever is running in that update will die

    • @sephypantsu
      @sephypantsu 2 роки тому

      @@warsin8641 what if you overwhelm the fixed update with super slow functions?

  • @TheEsquimo
    @TheEsquimo 5 років тому +3

    Rarely do I find such quality tutorials/informational videos on UA-cam. Loved it!

  • @joshmarks4994
    @joshmarks4994 4 роки тому +1

    I never even knew about the profiler, until now! This is such a great video, very informative. Thank you so much for posting it!

  • @robe5823
    @robe5823 5 років тому +16

    Jason this is so awesome and all of your content is fantastic man you’re a legend!

  • @kaininable8892
    @kaininable8892 3 роки тому

    Man I love you. There's just a real genuine and humble approach to every video you do. You are clearly a smart guy with bags of ability but it feels like you almost gloss over that in an effort to relate to new developers and their struggles.
    I'm trying to teach myself how to code and you are pretty much the only guy that gives me real hope. Thanks.

  • @WestyFilms
    @WestyFilms 5 років тому +1

    Lot of really good tips. I've personally done the whole scripting out a tutorial system as well, and quickly found how much of a pain it is compared to using animations and cinemachine and such. Also, appreciate the tip about Text Mesh Pro, hadn't read up on it yet but I have switched over and not looked back; way more performant.

  • @tomontape
    @tomontape 5 років тому +1

    Thanks for making this! I'm the exact person that needed to see this. I try and remake everything instead of checking for existing tools.

  • @RossYlitalo
    @RossYlitalo 5 років тому +1

    Best UNITY Tutorial I've ever seen! Thank you Very much for taking time to help us out!!

  • @SohnoZ
    @SohnoZ 4 роки тому +1

    For me as a JavaEE developer, your tutorial series is so spot on... Thanks a lot!

  • @mirkoemir
    @mirkoemir 5 років тому +50

    One thing that many people doesn't know is that animator controller could be used as Finite State Machine, even when there isn't any animation to control. You can take advantage of all functionality and event manager for any kind of object that need a FSM

    • @kuro13wolf
      @kuro13wolf 5 років тому +2

      Wow this changed my life, incredible tip!

    • @Shadefrank
      @Shadefrank 4 роки тому +5

      And its a very dangerous state machine if animations ARE there, because this state machine can be at two states at once while going from one animation to another. Cost me a lot of headaches already. Had to write some layer on top of it to behave like a real state machine with just one state at a time.

    • @cosmotect
      @cosmotect 4 роки тому +2

      What do you mean by "could be used as a Finite State Machine"?

    • @davidbielsa5188
      @davidbielsa5188 4 роки тому

      I dont understand what you mean

    • @mirkoemir
      @mirkoemir 4 роки тому +2

      @@cosmotect this mean that you can attach a Animator Controller on any object and use it to define steps (states), conditions to transition between those steps, even when you don't have animations related with the Animator Controller.

  • @DamageSoftware
    @DamageSoftware 5 років тому

    I remember watching your livestream when you did this tutorial. Love to see the final result.
    It was really helpful for me since from recently i also try to create unity tutorials, not as good as yours of course but yeah :).
    Very useful tips!
    Thanks for sharing!

    • @KapybaraKSP
      @KapybaraKSP 4 роки тому

      Subtle plug. But I’m interested. I’ll watch it vids

  • @saikopiratos
    @saikopiratos 5 років тому +3

    im impressed by the way you explain things so clear, even to a total newbie. whenever i was thinking: "i hope he'll talk more about this stuff or explains this", you just talked about it :D thanks

  • @cloudlessrainvisions3264
    @cloudlessrainvisions3264 4 роки тому +2

    Great video! I literally learned like 3 different important things in this video! Great job.

  • @IAmSetas
    @IAmSetas 3 роки тому

    Really good tips. I'm coming from enterprise development and I do exactly those mistakes he is mentioning. Thanks for sharing this.

  • @user-me7jo1nw5i
    @user-me7jo1nw5i 5 років тому

    Thanks for the video! And additional gratitude for mentioning cinemachine, never heard of it before, and it's very cool!

  • @eterlan2538
    @eterlan2538 5 років тому

    The last few suggestions is very nice, thanks!

  • @Rambow145
    @Rambow145 5 років тому +3

    Thank you! This video made me feel better.

  • @QuesterDesura
    @QuesterDesura 5 років тому +92

    The thing that I regret most not knowing about earlier are: Scriptable Objects.

    • @jonatan1244
      @jonatan1244 5 років тому +1

      This is the most worth comment there.

    • @HAWXLEADER
      @HAWXLEADER 3 роки тому

      I never needed them,
      I can't find the use for them when I have the new prefab system.

    • @QuesterDesura
      @QuesterDesura 3 роки тому +3

      @@HAWXLEADER there are tons of uses! There are good talks about them too! Inventory system, audio system, heck even as an event system I have seen them used. You can do many cool things with them!

    • @HAWXLEADER
      @HAWXLEADER 3 роки тому

      @@QuesterDesura I wish I could "see" the usefulness of them I bet they are as useful as interfaces and inheritance but I just don't see it yet unless you build a game with multiple types of one thing(like bricks, cards tons of monsters etc...).

    • @QuesterDesura
      @QuesterDesura 3 роки тому

      @@HAWXLEADER once you used then once you will love them :)

  • @_57u
    @_57u 3 роки тому +3

    Excellent info, especially for us experienced programmers coming from non-game dev backgrounds.

  • @dusan7873
    @dusan7873 3 роки тому

    Thanks! This was really useful, especially for object pooling

  • @thompsonevergreen8006
    @thompsonevergreen8006 5 років тому +62

    pretty sure you just said "Dont use this method for finding a game object or this one or this one THEYRE ALL SHITE" then proceeded to not give the best method to do this

    • @rickloyd8208
      @rickloyd8208 5 років тому

      pls forgibe me senpai you are right. I think he missed to say that we need to use reference technic, when you create property and assign object via editor. I was advised to do so by experienced game makers and found it very useful. Plus try to assign events from editor... once project gets big and you start forgetting who is sending whom data, you no longer can make changes fast. I stead assign all events in Awake or better Start method. I made this mistake and now regret it.., trying to migrate to new, correct way

    • @MINECAT3
      @MINECAT3 4 роки тому +2

      Serialize them on the Editor so thet are alreadt referenced

    • @rodrigod5625
      @rodrigod5625 4 роки тому +4

      I usually use "FindObjectOfType" for me is the best option

    • @jaredrice2954
      @jaredrice2954 4 роки тому +1

      I was thinking this too lol. At 8:06 it sounds like he mentions very quickly something about caching and using "find object of type"? But people in this thread say that isn't efficient. Is Serializing from the editor the best way then?

    • @brunzero7697
      @brunzero7697 4 роки тому +1

      @Ahmed Yasir until for whatever reason your scene references get nulled out and you have to go back and fix them all

  • @gameexplorer4963
    @gameexplorer4963 4 роки тому

    Do more of these. Love this topic.

  • @mandisaw
    @mandisaw 5 років тому +3

    1 - The Asset Store - Someone out there has way more time & interest than you in coding some arcane subsystem. Just make sure there's still active maintenance & plenty of documentation. Same goes for art/music - even a couple hundred bucks (USD) can take your entire game a big step up from "programmer art". Focusing on what you're good at, and outsourcing the rest, doesn't make it any less *your* game.
    2 - Version Control - Because your "one-man-team" may someday be 100, or because next year, you won't remember what that clever method actually does.
    3 - Play mode tint - So you never accidentally forget that your changes will be deleted when you hit Stop.
    Great video!

  • @workthenplay
    @workthenplay 2 роки тому

    Incredibly helpful tips. Thank you for this!!

  • @LeeTGame
    @LeeTGame 5 років тому +1

    Pretty good tips for the beginner! Very helpful:)

  • @xanaramus
    @xanaramus 5 років тому

    Thanks you for your work! I find your videos very usefull for me. Good luck!

  • @abalorias333
    @abalorias333 4 роки тому

    Pure wisdom in this video, agree with everything, and I was actually learning how to use DoozyUI these days (coincidence?). Tip: If you want to achieve the "finish a game" I recommend game jams, they make you learn how to deal with deadlines ;) I participated in 5 or 6 and I need to do it again!

  • @jsarnowski
    @jsarnowski 5 років тому +1

    Thank you Jason for another great video! :) Very useful!

  • @SZINNAPALM
    @SZINNAPALM 4 роки тому +2

    hey im a brand new game developer I cant even claim the title yet as I have not released anything but I found your video and you give a lot of really great advice / info that's not being mentioned around the "for new dev" campfire so I just took the time to say thank you and im a subscriber now

  • @kharekelas4259
    @kharekelas4259 4 роки тому

    Great tips! I actually used the animator system in my UIs, pretty handy.

  • @NiclasGleesborg0
    @NiclasGleesborg0 5 років тому

    Great video on some common mistakes. Really put things into perspective.

  • @Myrdov
    @Myrdov 5 років тому +1

    One of the best Unity teacher!

  • @jungoogie
    @jungoogie 5 років тому

    The main camera problem is a good one! I had that issue for a long long time until I recognized it. That little bugger cost me many a hours before I found a post about it!

  • @theodorvepper
    @theodorvepper 5 років тому +2

    Hey, I used to watch a lot of your videos a few years back, will get back into it, just wanted to say you look way more healthy nowadays, congrats!

  • @codebycandle
    @codebycandle 5 років тому +5

    -personal fave tip covered in video, "if talking about performance, don't guess! - use the profiler."

  • @bryanirvine3914
    @bryanirvine3914 3 роки тому

    That last tip is great advice I learned the hard way. I jumped into game development thinking I had to do everything on my own, the programming, the art, the music, etc, but then I realized I was way in over my head, even though the concept I was developing was a simple mobile game. I spent 3 months learning how to do 3D modelling before realizing I can just buy assets that fit my needs on the Asset Store. Not to say I didn't become enriched learning the 3D modelling process, but I definitely could have gone without it.

  • @user-rx7ps2pw4s
    @user-rx7ps2pw4s 4 роки тому

    You make the most usefull unity tutorials, keep it up man👍

  • @scottcourtney8581
    @scottcourtney8581 5 років тому +1

    Jason, love your content (and loved the Mastery Course you offer on your web site), but I have an alternative way to do the ship movement. Why not just put a navmesh on the water surface, and attach a NavMeshAgent to the boat to make it an "NPC"? Just make a very simple C# script that has an array of GameObject references for your waypoints, and any time the boat reaches its navigation target (within a threshold distance), you assign a random waypoint from the list as the next target. NavMeshAgent will handle all of the movement, smooth turning, and even acceleration and deceleration at the start and end of movement. Also, when you're done, you can easily move the waypoints around, add or delete them, etc., without changing any code or keyframes.
    An additional benefit of my approach is that you can just prefab the boat with its NavmeshAgent and then "rinse and repeat" to make multiple boats, with the same list of waypoints or with each boat having their own.
    The only tricky thing about this is if you also need navmeshes for other NPCs, in which case you need to make sure they are separated. As you're no doubt aware, there are several ways to do that, and I won't belabor the point here beyond mentioning it as a consideration to anyone who tries my suggestion. :)
    If your only other NPCs besides the boats would *also* be patrolling among waypoints, then you don't have to separate the navmeshes. Just make sure all the walking NPCs have their waypoints on land, and the boats' waypoints are all in the water, and use some invisible colliders as static navmesh obstacles to prevent the agents from choosing a path that enters or leaves the water.

  • @jul8803
    @jul8803 5 років тому

    Great insights, thanks buddy!

  • @LostRelicGames
    @LostRelicGames 4 роки тому +1

    After 10 years as a commercial game developer and 3 years Indie, your advice is still a welcome kick in my teeth when I start to get complacent. Thanks for the great vids dude.

  • @ransabalon
    @ransabalon 5 років тому +7

    Hi!
    I like how you point it out. as a beginner i find ths very helpful, but it would be very nice if you show alternative way of how to do things if you don't recommend doing that thing. thanks for uploading this video!

  • @GoodNewsJim
    @GoodNewsJim 4 роки тому

    This helps tremendously. I spent weeks on Unity porting my custom animation code that took me years... unity does it better and faster

  • @LeNumberJ
    @LeNumberJ 5 років тому +2

    nice bump in production quality jason!

  • @alexffm8147
    @alexffm8147 5 років тому +9

    I've started making my game in Xcode. I had to "learn" objective-c and swift. And I was f***ing frustrated on every IOS-update (broken code on release date - on every update!). What causes me to switch to unity. And this was the day as the sun re-appears. We should be happy about having it. And thank you for your tips. For some of them, it's not too late to solve.

    • @Dagbar81
      @Dagbar81 5 років тому

      I had the same experience! :)

    • @KingJangOng
      @KingJangOng 3 роки тому +1

      fuck xcode it literally doesnt even work for me anymore

  • @popuzin
    @popuzin 5 років тому

    Oh, so much likes! You channel became more popular! Glad to see that =)

  • @leandroamarillo3262
    @leandroamarillo3262 5 років тому +6

    If you have lots of UI or heavily animated UI you should separate ir in different canvases. It looks ugly but it’s better for performance because a single change in an ui element in a canvas will make Unity redraw and recalculate everything for that canvas.

  • @dermirthrandir
    @dermirthrandir 4 роки тому

    Great advice, thank you!

  • @mckeithen
    @mckeithen 5 років тому +1

    Unity3d College Jason, Great video. i consider you one of the unity-guru's on youtube ;)
    rohan koshti * TAG-ing * questions in valid.
    not always you can pre-configured and assign the object to your code with [serializedfield] or public.
    sometimes objects are instantiated at runtime, having an unmamaged name, all using the same prefab, so they are all having the same initial name + any number.
    the only method i use for this situation is tagging the prefabs so i can find them.
    i will be super glad to know if there is a better approach.

    • @nein3405
      @nein3405 5 років тому +1

      imo the best way is to not search (or rather "find") gameobjects at all. if you instantiate you get a reference back, make use of it ...

    • @mckeithen
      @mckeithen 5 років тому

      @@nein3405 i DO use it as my first choice. it sure gives a solid control. 'find' is the poor alternative i'm forced to use :)

  • @mitchiarikov2614
    @mitchiarikov2614 3 роки тому

    Fantastic video! Thank you!

  • @abedalhmedbadr982
    @abedalhmedbadr982 4 роки тому

    thank you ,amazing man ..
    following you from Syria

  • @georgesd9
    @georgesd9 5 років тому +1

    I am new to Unity, started working on my first 2D game few weeks ago, I felt this video is spot on, except for "Find" and "FindObjectWithTag", I read and heard a lot about how bad they are, but none of them mention an alternative! keep in mind that this is supposed to be for programmers new to Unity.
    Aside from that I find most of the other points helpful, thank you

    • @scottmichaud
      @scottmichaud 5 років тому

      A lot of it will be how the rest of the asset is designed. Example: if you're trying to find another part of the same prefab, then you can have the other gameobject (or, better, the specific component) be a public variable that's linked in the prefab editor. When it's instantiated, Unity will do the links automatically.
      That will be different if the object is something else random in the scene... but then why are you finding it? Could it have been given to you in a collision or raycast, linked public variable in scene editor (not necessarily good but could be better in certain contexts), etc. etc. etc.?
      A blanket replacement is not really possible. Need to know more.

  • @ashtwenty12
    @ashtwenty12 3 роки тому

    Very helpful tank you. Would definitely like to see more things that the engine dose for you.

  • @farvardinmainyu1961
    @farvardinmainyu1961 5 років тому

    Great video! Thank you very much.

  • @PrasGaming
    @PrasGaming 4 роки тому

    Thank you very much for all that great stuff u shared with us ^^

  • @SunnyApples
    @SunnyApples 5 років тому +1

    Thanks Jason for this. I always watch your videos with my Evernote open, so I can take notes.
    I love the first point of using animations for repetitive movements.
    And also, I am one of the people whose every script inherits from monobehavior. :( Need to change that. xD

    • @Unity3dCollege
      @Unity3dCollege  5 років тому

      lol thanks, glad you enjoy them :)
      And if you wanna start moving away from every script being a monobehavior, try doing a bit of unit testing. It really helps me find the seams of the code and split things into testable chunks that aren't on monobehaviors :) And very least, it's a fun exercise :)

    • @TheAndrejP
      @TheAndrejP 5 років тому

      And unless you're making a hovercraft move around a flat surface using animations will probably take you longer to get things to look realistic using animations in Unity than it would to either animate outside of Unity and import the animation or add a script to simulate movement that's not just lerping from A to B but rather apply forces to a Rigidbody.

  • @rul4n
    @rul4n 5 років тому +3

    This channel is amazing

  • @mortonmccain6487
    @mortonmccain6487 4 роки тому

    You sir, are amazing. Thanks for this video

  • @DwightPotvin
    @DwightPotvin 5 років тому +1

    I wish this existed LONG before I really got into Unity. That being said, one thing you really missed out on is talking about Scriptable Objects. In my project, I am currently rewriting all the character variables that frequently get called in outside scripts, such as the player health, is the player alive, etc. Too do this before, I would first have to make sure the player object even existed, find it, and THEN read the entire script off of it game object just to get a single variables value.. This is a quick way to eat performance, especially when you have a lot of stuff in the scene that has to check if the player is still alive before continuing it's processing. I just recently started to transition to scriptable objects for performance reasons. It's helping remove a LOT of the nested programming, making accessing external variables faster and cleaner, AND allows for better control for what gets read and what doesn't.

  • @madmanga64
    @madmanga64 4 роки тому

    These videos are perfect for software devs who are new unity game devs thanks man

  • @opnuul
    @opnuul 3 роки тому

    i am new to unity and thank you for making this video :)

  • @diliupg
    @diliupg 5 років тому +1

    Great Tute!

  • @cucu851223
    @cucu851223 5 років тому

    I rarely subscribe, but this channel worth my click!

  • @3dholliday
    @3dholliday 5 років тому

    You are so amazingly helpful! thank you xoxoxo

  • @ererbe
    @ererbe 5 років тому +1

    Thanks. the last point is important for me I think, I publish around 50% off the stuff im doing, but Im still doing the art AND the programming. But sometimes my friends help with the art, so its okay. But I know how it is to make a prototype and never touch it later :d

  • @linnamaentertainment
    @linnamaentertainment 4 роки тому

    Some of my mistakes were;
    1. I used to declare bunch of unnecessary stuff instead of using lists.
    2. Instantiating and destroying instead of pooling.
    3. Learned way too late more about the UI system, the beauty of the rect transform, masks and more.
    4. TextMeshPro, the ability to add strokes to your text opens so many more visual styles.
    5. Not sure what this is called exactly but making your scripts into instances on Awake() so you can access the functions from other scripts

  • @zeiksz
    @zeiksz 4 роки тому

    You look like the guy in the walking dead series, that is (too) why I love you so much :) Great thoughts BTW and thank you for sharing them :)

  • @PavusthePug
    @PavusthePug 5 років тому +3

    The Cinemachine one drives me NUTS. I'm studying game development, and when I hear my classmates gripe about how hard it was to code some 'super fancy' camera I can't help but roll my eyes. Cinemachine does it 10x better and it's so easy to use. They have no excuse not to use it either, since our professor even showed us how to use it.

  • @jpww1814
    @jpww1814 Рік тому

    You worked with some of the most influential games in my time. It's sad to hear what killed vanguard, but your videos are helping me craft my vision, thanks!

  • @SilverAura
    @SilverAura 2 роки тому

    Alright, you got me with Camera.main. Been using Unity for years too. That's some pretty critical insight to have hidden.

  • @fuzzy-02
    @fuzzy-02 4 роки тому

    Man...you videos are really helpfull i am a new coder / game maker and i havent been able to finish a single game i always reach a point where i drop and reload

  • @crankyunicorn4423
    @crankyunicorn4423 5 років тому +1

    Thank you good sir.
    The Camera.main is something that I wasn't aware so is really good to know.
    By the way would it be possible for you to do something around the topic of architecture specially Use Case or later like Clean Architecture. It would really help for large scale projects. It's the only topic I think you didn't cover so far or I may be wrong since you talked about TDD already and that is something really advance in my spectrum.
    Best Regards,
    CrankyUnicorn

  • @CaseyHofland
    @CaseyHofland 5 років тому +2

    I always like to think that of everything I'm trying to do, 95% of it is similar to what other people already have done (with few exceptions, this is true). For example, 'because' I had rendering issues, I looked for common ways to solve rendering issues and I learned about LOD groups (Level of Detail, switch between differently detailed meshes depending on its distance from the camera). The best part about this process is that I'm not guessing about my solutions, I'm making a few low poly meshes and KNOW they will work, because it has worked for ten thousands of people already.
    P.S. Yes, this applies to coding as well. Maybe you are doing a health system not 'quite' like everyone else, but if you're starting out it is a good idea to look what others have done with it.

  • @bjacksd1055
    @bjacksd1055 5 років тому +67

    then what should i replace with gameobject.findwithtag and gameobject.find then?

    • @LaurentK
      @LaurentK 5 років тому +27

      Use direct references instead.
      Example:
      public class Example {
      public GameObject AnObject;
      public void Start() {
      AnObject.position = new Vector3(1, 2, 3);
      }
      }

    • @Giga4ever
      @Giga4ever 5 років тому +19

      @@LaurentK That only works if you do drag and drop, which is tedious, slow and unorganized. Let alone Unity like to drops references all the time. It's way smarter to let GameObjects register themselves in their own Start() in a centralized place.

    • @LaurentK
      @LaurentK 5 років тому

      @@Giga4ever why would using a public variable only work with drag and drop ??

    • @Giga4ever
      @Giga4ever 5 років тому +9

      @@LaurentK Because If you already know the gameobject to add the reference from somewhere else, there is no need to find it..

    • @Giga4ever
      @Giga4ever 5 років тому +2

      @@LaurentK Yeah, I don't doubt that.

  • @abidounesaad3780
    @abidounesaad3780 5 років тому +7

    I love your tutorials, do you have any games published??

  • @althizar4394
    @althizar4394 3 роки тому

    After watching countless videos where people jump right into coding was at first like wow, I have a lot of work to do. But after this my dude I will be checking all the engine tools first before even looking at my coding.

  • @humman007
    @humman007 5 років тому

    MonoBehaviour scrips have one huge advantage above normal c# classes, you can easy watch state of every variable in inspector setting on debug mode. To watch state of variable in c# class you must use debugger (VS 2017) and choose with specific variables do want watch
    Next advantage is option to connect two scripts by dragging one game object to other slot in inspector, in normal programing, without editor you must first create main class who creating and connecting all necessary elements in correct, save order

  • @xellart
    @xellart 4 роки тому

    Really nice video! The first point with the animation is quite misleading tho, most of the time stuff needs to be dynamic and recyclable, for which the Unity Animation system is not good. I'd much rather go for code and keep it simple by using a tweening library such as DoTween or LeanTween.

  • @Jess_stpierre
    @Jess_stpierre 4 роки тому

    Great video, honestly!

  • @riteshkhokhani
    @riteshkhokhani Рік тому

    Summery -->>
    1. Can use unity animation system for object movement sometimes (can use DoTween for simple tween animations as well)
    2. Best use of prefabs
    3. Don't user mono all the times, can use plain simple class or helper class when needed. Or can use observer pattern to make it more action based rather than making it mono (update) based
    4. Use Profiler to check memory or performance spikes
    5. Use TextMeshPro instead of unity UI Text
    6. Timeline for Tutorial
    7. Cinemachine for Camera Controller
    8. Don't do all like creating art, sound etc. Focus on programming/development only

  • @GaryMcKinnonUFO
    @GaryMcKinnonUFO 4 роки тому

    Good info, liked and subbed, thanks :)

  • @willycampos6101
    @willycampos6101 5 років тому +1

    I see prefabs in Unity architecturally as 2 things, a Factory Design pattern with Dependency injection. especially now with the new prefab workflow, now it's more like an Abstract Factory.
    Another common thing that I see a lot is moving fast objects with transforms, or even using translate for everything, then ppl wonder why things are clipping through walls or even skipping them.
    You look thinner btw! X)

    • @Unity3dCollege
      @Unity3dCollege  5 років тому +1

      This is a very good point on prefabs! I like the description :)

  • @Namco78
    @Namco78 5 років тому +3

    Hey great video, could you make a little example project about the MVC like structure and not using Monobehaviours for everything?

  • @autorotate1803
    @autorotate1803 5 років тому

    Right about the Animator! In my opinion, itt is the single most powerful tool in the Unity Suit. Now I use it for everything I can use it for, much better results than using code alone.

  • @sabriboughanmi2435
    @sabriboughanmi2435 5 років тому +3

    Awesome video !
    can you please make a video about Animations with ECS using PlayableGraphs ??

  • @marcinmajkowski9944
    @marcinmajkowski9944 5 років тому

    Great talk! thank You:)

  • @KazimierzLuska
    @KazimierzLuska 5 років тому +2

    When profiling also make sure to verify that it's also happening on a standalone build (if building for desktops) or on device. Unity profiler behaves differently in editor than in standalone. :D Other than that good video recommended to some friends.

    • @Unity3dCollege
      @Unity3dCollege  5 років тому

      Great point. And everyone should definitely do testing in a release build as well. In addition to that, I've seen issues that only appeared in the release build and wouldn't show in the editor at all :)

    • @leandroamarillo3262
      @leandroamarillo3262 5 років тому

      Unity3d College we had a game that was something like a wii sports clone for kinect where you could select a list of minigames to play sequentially, if you tested trough the editor everything was alright but if you played the build every minigame was slightly more slow to load than the previous till it was unplayable. It took us a full month of angry feedback from the clients to find that was happening.

  • @diliupg
    @diliupg 5 років тому

    great video. Thanks!

  • @videoradio999999
    @videoradio999999 5 років тому +3

    Hi Jason - I notice that you haven't released a video in a while - hope all is well at your end, and I look forward to seeing your next video

  • @christopherhall1144
    @christopherhall1144 4 роки тому

    Been a pro Unity programmer for years now and this is still super helpful. Thanks for sharing so much knowledge!

  • @chrisknowlton8735
    @chrisknowlton8735 4 роки тому

    I know this is a little old, but damm, what a great video. TY, TY.

  • @mrkatlet
    @mrkatlet 3 роки тому +1

    500 baby!

  • @MelHamer
    @MelHamer 5 років тому +1

    Some really great points but it would be really good if you could demonstrate potential alternatives. e.g. Object pooling in practice or what to use instead of FindByTag. You mentioned caching but that will mean nothing to someone starting out in Unity or new to coding. Hopefully my comments are constructive, all your points are valid and I'm more than guilty of carrying out a few of these mistakes.

  • @Kenbomp
    @Kenbomp Рік тому

    Dang first time realize u can move an object with a mouse but locked on the same plane by where u click on the axis . Been using unity for a year. Wow shows how u should learn basics first first. Good vid

  • @Simmerio
    @Simmerio 5 років тому

    Man SIMMER loves this!