Why is unity so slow!

Поділитися
Вставка
  • Опубліковано 14 лип 2024
  • Ever wonder what that loading bar is actually doing?
    Visit:
    www.ko-fi.com/jasonstorey
    To join the discord!
    ----------
    00:00 - Introduction
    00:12 - Exploring the Unity Project Directory
    00:28 - Understanding Script Assemblies
    01:16 - Examining Assembly-CSharp.dll
    02:00 - Multiple Assembly-CSharp.dll Files
    04:08 - Using Assembly Definitions
    04:51 - Improving Workflow with External Building
  • Навчання та стиль

КОМЕНТАРІ • 196

  • @thomasbrush
    @thomasbrush 2 роки тому +138

    Jason Storey! You've grown so much. Perfect voice, look and skill to be a UA-cam dev! nice camera and lighting too.

  • @JimBob652
    @JimBob652 2 роки тому +96

    I can't believe you left it on a cliff-hanger! I sat through this going "yes, yea the pain, yup." and I thought you was going to show the magical solution, but nope instead "catch you on the next one" lmao. Over all great video, and I'm so looking forward to the next video :)

    • @Morphexe
      @Morphexe Рік тому +17

      Guess there won't be a next video ahahah

    • @abulak3477
      @abulak3477 Рік тому +7

      feels familiar oh yes unity promises

    • @Meithighs
      @Meithighs Рік тому +6

      @@Morphexe his next videos were completely unrelated.. :/

    • @Morphexe
      @Morphexe Рік тому +4

      @@Meithighs sadly it seems it was all empty promises. Had potencial.

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

      same lol.

  • @InfallibleCode
    @InfallibleCode 2 роки тому +92

    Using games built in Unity to demonstrate this topic is brilliant. Another great video, Jason! I'm on the edge of my seat waiting for the next one :D

    • @handleneeds3charactersormore
      @handleneeds3charactersormore Рік тому +3

      not sure you will read this but I used to love your videos, always chill + concise and to the point. but then they became poorly acted telenovelas and that made me left. It truly felt like you didn't care at all about the viewer's time but rather the view time and you were just looking for ways to pad out your video length. total opposite of old school infallible code

    • @googleuser4720
      @googleuser4720 Рік тому +6

      Its been a year... Well.. We're waiting!

    • @karolpadiasek5461
      @karolpadiasek5461 11 місяців тому

      @@googleuser4720 yup, still waiting ;)

  • @GameDevGuide
    @GameDevGuide 2 роки тому +18

    Great work pal! This is an excellent supplement to the Assembly Definitions video I made, and goes into more technical detail about what's ACTUALLY happening and why. Love it. Will be sharing this on the Discord.

  • @mrvastayan
    @mrvastayan 2 роки тому +13

    You forgot to do the next video!

  • @NicolasFrugoni1
    @NicolasFrugoni1 2 роки тому +2

    Great explanations! Love that you finally have your channel and are uploading content!!

  • @georgeaggelopoulos7791
    @georgeaggelopoulos7791 2 роки тому +7

    Great content: explaining perfectly, in 5 minutes, a simple but extremely helpful concept/tip. Thank you.

  • @MarkeMarkXYZ
    @MarkeMarkXYZ 2 роки тому +11

    While I already knew how to do this, I don't know why I didn't understand the significance of it until Jason explains it in such a clear way. Keep this content coming Jason, it is pure gold.

  • @mattsponholz8350
    @mattsponholz8350 2 роки тому +2

    Look at you casually optimizing EVERYTHING!!!
    Thank you and looking forward to your next video 😄

  • @TopShelfCookieJar
    @TopShelfCookieJar 2 роки тому +3

    The explanation was great, but combining it with some simple worked examples really helped cement it in my brain. Thank you!

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

    Awesome video; I've always used assembly definition assets, but this video reinforces my motivation to use them and gained a deeper understanding. Very cool :D

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

    Great Video. You have an amazing style to explain concepts so even I as a beginner don't feel lost. Great Timing and thank you for not hurrying along. I'm hoping to see many more Videos :)

  • @BigRookDigital
    @BigRookDigital 2 роки тому +1

    Great info, keep it coming! This hits home as Unity inefficiencies have always been a big nightmare.

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

    This one is a cool topic scratcher video! Looking forward to check out the next one!

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

    Very useful , Short and sweet. Keep the coming please.

  • @jorhoto7064
    @jorhoto7064 2 роки тому +1

    Great info, can't wait for next video!
    Thank you!!

  • @AlexBlackfrost
    @AlexBlackfrost 2 роки тому +1

    Great video! Looking forward to the next one.

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

    This is SUCH good content. Thank you, thank you, thank you!

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

    Thanks for covering that! Fantastic video! Every time I see one of your videos I learn something new :).

  • @jauntybear
    @jauntybear 2 роки тому +1

    Excellent content and production quality thanks

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

    Subscribed and excited for the implementation in the next video!

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

    Oh man the cliff hanger... good stuff waiting on next video. @Jason Storey keep the content coming this is great.

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

    Beautiful video. Explanations are great. Keeping it short helps with attention span. Great content man keep it up :)

  • @CodemasterJamal
    @CodemasterJamal 2 роки тому +1

    I definitely need to re-arrange some things in my project. This tutorial was awesome. I think this is why it takes my game so long to compile itself.

  • @Rovsau
    @Rovsau 2 роки тому +1

    This is exactly what I didn't know I needed.
    Been searching for something like this for a long time.
    From the depths of my brackets, I.Thank(You);

  • @MarekNijaki
    @MarekNijaki 2 роки тому +1

    Pretty short but useful. Keep that good work 😃

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

    Very good stuff! Keep it up Jason.

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

    Stoked to see you've got your own channel!

  • @mad_man_86
    @mad_man_86 Рік тому +1

    Short and sweet tutorial, thank you! I would love to see that "next video" though ;D

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

    Jason Great video , I saw you on the stream of Jason Weimann , and we met inside the arena Giveaway as well that day haha Thx again for great tutos and advises.

  • @MarcV_IndieGameDev
    @MarcV_IndieGameDev 2 роки тому +2

    I'll be waiting for the next one! This may help all newbs(myself included) out there save hours and hours of waiting to recompile, cheers for this! Much appreciated.

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

    Thank you for this informative video Jason.

  • @Immudelki
    @Immudelki Рік тому +3

    Great video

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

    Looking forward to the next video!

  • @LackingGumption
    @LackingGumption 2 роки тому +1

    you are the best. I was talking to a friend the other day complaining about my slow computer needing to refresh the assemblies everytime before testing my games. I had no idea this was possible. thank you so much for being a god at what you do :D

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

    Thank you for the content, you do a great job covering such topics. I hope you will make more similar videos (medium level)

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

    Thanks very informative, waiting for next video

  • @Stagg86
    @Stagg86 9 місяців тому

    Great video! Thank you!

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

    Really like this. Thank you.

  • @farahzehra8952
    @farahzehra8952 11 місяців тому

    Thank you for creating this video and improving our knowledge!

  • @Morphexe
    @Morphexe 2 роки тому +1

    Just found this gem of a channell! Nice job covering some real pain points of unity! When is the next video coming ? :) I find that topic quite interesting and would love to see how you do it!
    Good Job!

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

    That's a pretty clear explanation, thank you

  • @Danningt0n
    @Danningt0n 2 роки тому +3

    Loading bar is almost as slow as your upload schedule! 🙃
    Looking forward to the next tutorial! 🍿

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

    I never would have known this. I wouldn't have known it was a problem, nor how to look online for a solution. Thank you!

  • @humadi2001
    @humadi2001 2 роки тому +1

    We’re waiting for the next video!

  • @zeroone8548
    @zeroone8548 2 роки тому +1

    cant wait for next video ;p

  • @OldM8
    @OldM8 2 роки тому +5

    Still waiting for that next video :) :) :)

  • @rickloyd8208
    @rickloyd8208 3 місяці тому +1

    OMG and you have never created a video explaining how to compile it and put it in Unity directory. I am using separate assemblies but your solution seems to be even faster than that. At least you mentioned few keywords and I know in which direction to continue research! THANK YOU!

  • @81gamer81
    @81gamer81 Рік тому +3

    We need the next video!
    Think you said it once in other Jasons stream a while back how to make your own dll the proper way.
    Though it was just my computer being old, but even on my new NVME SSD unity is slow to build even when usng assembly defenition

  • @nocultist7050
    @nocultist7050 2 роки тому +1

    Thanks Json. I'll hold my breath for next video.

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

    Thanks! this is such good knoweldge

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

    Soo looking forward to what you have to say on the DLL thing!:))

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

    great stuff mate! keep it up!

  • @darryljf7215
    @darryljf7215 2 роки тому +5

    This is a long loading time for the next video ... :)

  • @Ari-ez1vj
    @Ari-ez1vj 2 роки тому

    what a phenomenal video

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

    Thank you for the nice explanation :D

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

    Scientific json with mind-blowing video after a long time! Thanks

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

    Things I didn't know I needed to know after 6 years using Unity. You got my sub.

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

    Can't wait for the next one :)

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

    Best channel on UA-cam for this kind of content!

  • @jeffmccloud905
    @jeffmccloud905 2 роки тому +3

    great video. been using C# and VS for 20 years, so separate DLLs, references, namespaces, etc. are second nature to me. but when I got into Unity, it seemed confusing and limited. this is a strange little method to make separate DLLs but this practice should be much more common. Example: if you need to patch the network code in your game. If your network logic is in its own assembly, your patch might only need to distribute that one small DLL.

  • @BagarraoEduardo
    @BagarraoEduardo Рік тому +6

    Awesome content Jason! When the part 2 of this video will be available?

  • @Gyozamang
    @Gyozamang Рік тому +7

    it's sad he just stopped this channel had crazy good potential and he had a really good view count too. I don't know why you'd dump a channel doing so well

    • @karpai5427
      @karpai5427 11 місяців тому

      because he does not want to share his secret of building the game, because someone else may finish a video game before him.

  • @veganmonter
    @veganmonter 2 роки тому +5

    I admit, I should be looking under the hood more than I do. I treat Unity like a tool, don't care what engine it has, as long as it gets me to my goal. However, I know if I learned more on how it works, I would improve my overall results.
    Also, thanks again Storey! Love what you're adding to the community.

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

    awesome stuff, thanks!

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

    This was incredibly educational

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

    for some reason I just feel like this knowledge just instantly made my unity skills go up significantly.. This adds so much flexibility and actually the fact I know what really goes on behind my scripts.

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

    Thank you Jason!

  • @HexPlays
    @HexPlays Рік тому +3

    next video on this please jason!

  • @MoogieSRO
    @MoogieSRO 2 роки тому +5

    Did he never make the follow-up video to this? Talk about bait-n-switch!

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

    This is Expert Info Great Video

  • @YAS-vm8ko
    @YAS-vm8ko 2 роки тому +1

    You save our time! I am a newbie dev, I don't know doing this could break unity or not, but I will try it. You are such an amazing developer.
    Edit: Looking for the next video.

  • @rohitaug
    @rohitaug 2 роки тому +30

    This seems really cool. If I understand correctly, creating assembly definitions allows you to compile scripts into separate DLLs so that when a change is made to a script only the associated DLL needs to be recompiled instead of the entire Unity project. If that is the case, I'm confused as to why you would need to build the DLLs manually instead of letting Unity handle it. Does Unity rebuild all DLLs in the project by default each time? That seems like it would defeat the purpose of assembly definitions.

    • @pliniomourao
      @pliniomourao 2 роки тому +2

      Good question.

    • @Belliger1991
      @Belliger1991 2 роки тому +1

      Depends on what is the default assembly definition, it seams to automaticly create a new unique assembly so nothing breaks, most likely with a hash as name and afterwards links it in.
      If you write you own it is fixed as well so it should partly resolve the issue. (Plugins will not adhere and still clutter it up over time)
      But if you build external you can make shure all changes are covered in this newway with no leftovers cluttering it up :)

  • @eaglenebula2172
    @eaglenebula2172 2 роки тому +1

    Coming right before the important part and not actually doing it even almost a whole year later, great.. super helpful...

    • @JasonStorey
      @JasonStorey  2 роки тому +1

      Sorry, had some life stuff come up. Have a full refund.

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

      @@JasonStorey 😂
      Tbf I'm frustrated at the script change iteration time nothing more :(

  • @karelmarek5984
    @karelmarek5984 2 роки тому +2

    Hype! Can we expect that if we do it ourselves, it can be much faster than the Unity way?

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

    Lmao, never thought of this. Thanks for this sneak peek behind the scenes.

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

    I finished that dll process months ago, but CAN"T wait to see how you do it. Great series of videos so far. I don't remember if I saw you anywhere else, but your solo videos are working out soo much better.
    I would LOVE a video on Marvin, and that other project manager one. Obsidian. I think I get obsidian, since its free'ish. BUt 'amazing' Marvin, the one I found was paid. So WOULD love a break down and more real life how you do it vs their help project. AND how you setup windows desktops. I think I could do the desktops, but a quick overview would rock!
    AND do you have a better work flow for your tags, html, mark up code for Obsidian. LIKE how you built that, HOW to replace default unity scripts. I need that level of documentation, but easy to look up. Was looking like a nice html webpage, but was in Obsidian I gather.

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

    OMFG! Thank you.

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

    Yo nice follow up video man, real fuckin sick.

  • @jeniferirwin
    @jeniferirwin 2 роки тому +6

    I love assembly definitions. I've been using them since IC covered them and I find it to be a really pleasing way to organize things. I haven't yet built a project that is big enough to really have a noticeable change in compile times, but I'm glad to know that I'll be easily taking advantage of the shorter compile times when I *do* make a big project, because I'm already in the habit of making assembly definitions.
    It's kinda cool that we can pretty easily identify what games were built in Unity because of the Assembly-CSharp thing! I always love learning that a game has been made in Unity because that means I can look at it and say 'I can make something like this happen if I put my mind to it.'

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

      man here explaining how this issue hurts iteration processes and you come up with compile times 💀💀💀

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

    I'm looking forward for the next video, my game go crazy 20 seconds after pressing play

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

    Jason, this channel has a lot of potential. Come back!

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

    Thank you!

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

    Very informative! Thank you!
    Had a bit of trouble with with importing Cinemachine but that's easily fixable by adding an Assembly Definition Reference for `com.unity.cinemachine`.

  • @albertmontagutcasero2129
    @albertmontagutcasero2129 2 роки тому +1

    Awesome video, Jason, I'm following your videos. I am trying to work similar, decoupling the business logic from the technologies like unity. I would appreciate a video explaining how to separate this layers correctly. For example, when we are programming a Mario game, the Mario model can't have vectors or use the engine tools like physics checks. Also, are x and y coordinates part of the business part? If they are used to calculate things, maybe yes. But if it's just for rendering in the screen, maybe not. How do you decide it?. My approach would be having a unity class (MarioUnity) and then the Model (that is testable, etc). Works fine, but the logic is split into the infrastructure layer and the business layer. It has benefits, but it's not perfect. It would mean the world if you could answer this. Thank you. :)

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

    Nice videos

  • @albertluna1001
    @albertluna1001 2 роки тому +2

    I really hope you do the next step in the next video to learn how to do it

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

    Goat channel, when 100k subs?

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

    Perfect!!!

  • @BillyBenz
    @BillyBenz Рік тому +3

    After using it for few years, I concluded that You got to have a rocket science super computer in order to use Unity smoothly 😂

  • @The-devllopperBlogspot
    @The-devllopperBlogspot Рік тому

    Thank you

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

    Bro wtf you discovered ! Very nice tip!

    • @useijin
      @useijin Рік тому +1

      Assemblies have always existed in Unity, but I believe that assembly definition exists since Unity 2017.3. The thing is that it is a recent feature and nowadays is a must to know. Assembly definition is extremely powerful in any type of projects. The important mindset is to achieve greater efficiency and reusable code in less time. Keep bless.

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

    Agreed. I have been making a huge game for a few years. Assembly Def's are a life saver. It takes to long to recompile everything every time. More time coding, less time waiting.

  • @earthinvader3517
    @earthinvader3517 2 роки тому +3

    The issue is when you place you code in external DLL (not the assembly definition way), you lost the stacktrace line number information. I used this approach before and when an error occurs inside a function from the DLL, I could not know the exact line that raise the exception. The time to to track the issue in this case could exceed the compile time. ( My project is not huge so my compile time is not very long so I simply prefer to put my code in the project). It doesn't mean its not worth putting code in external dll. Some hard to change stable codes could be extracted to DLL to help a bit.

    • @JasonStorey
      @JasonStorey  2 роки тому +2

      Did you delete the PDB file that was included with your debug build? That is what it is for. It maintains stack trace information for debugging into dlls. It also wont be created for you if you build in release mode as it assumes... you are releasing.

    • @earthinvader3517
      @earthinvader3517 2 роки тому +1

      @@JasonStorey I did copy paste the PDB alongside the debug DLL but don't know why the stacktrace show line 0 for all stack frames. It was so frustrating and I gave up. Anyway, thanks for the reply. Really didn't expect that. Looking forward to your next video.

  • @NickPavlov00
    @NickPavlov00 2 роки тому +1

    Actually as a general tip to everyone dump your external packages in to a separate folder add an assembly definition so that unity won't rebuild those all the time aswell!.

  • @DeathxStrike18
    @DeathxStrike18 2 роки тому +5

    wheres this next video lol

  • @paulehigie9879
    @paulehigie9879 2 місяці тому

    Amazing

  • @nicholasricher8840
    @nicholasricher8840 2 роки тому +1

    Woah! Cliffhanger!!

  • @jonathansaindon788
    @jonathansaindon788 2 роки тому +2

    Still waiting for the second video ;)

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

    Where is the second part? D=