Software Architecture in Unity

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 มิ.ย. 2024
  • Ever wondered what software architecture is REALLY about? Why do we bother?
    ---
    If you would like to support me, feel free to donate to:
    www.ko-fi.com/jasonstorey
    (and get access to my discord)
    ----------
    00:00 - Introduction
    00:06 - Software Architecture Misconceptions
    00:17 - Practical Example: Sample Script
    00:41 - Software Architecture and Making Code Work
    01:06 - Change Requests and the Importance of Change
    01:31 - Adding a Feature: Toggling Messages
    01:52 - Design Decision and Impact on Future Changes
    02:19 - Alternate Version of the Script
    03:00 - Controlling Logs from Multiple Classes
    03:25 - Separate Loggers and No Code Changes
    04:51 - Understanding the SOLID Principles
    05:04 - Single Responsibility Principle
    05:50 - Open-Closed Principle
    06:49 - Conclusion
  • แนวปฏิบัติและการใช้ชีวิต

ความคิดเห็น • 316

  • @Unity3dCollege
    @Unity3dCollege 2 ปีที่แล้ว +251

    Awesome video

    • @SojoTaku
      @SojoTaku 2 ปีที่แล้ว +10

      Sir, why aren't you verified?

    • @Hazzel31337
      @Hazzel31337 2 ปีที่แล้ว +1

      i am so glad you made him make a channel, such a good video

    • @accountdua9375
      @accountdua9375 ปีที่แล้ว

      Love you man...

    • @ahatcho138
      @ahatcho138 ปีที่แล้ว

      I Hope you learnt something.

    • @abdullah4653
      @abdullah4653 4 หลายเดือนก่อน

      another amazing master is here@@ahatcho138

  • @Tarodev
    @Tarodev 2 ปีที่แล้ว +385

    Beautiful scene, interesting code visuals, funny memes and _solid_ information. Well done Jason, it's about time you released a damn video!

    • @Betruet
      @Betruet 2 ปีที่แล้ว +7

      Not to mention a powerful cameo

    • @kingbling7571
      @kingbling7571 2 ปีที่แล้ว +2

      Solid I see whtchy did there

    • @waltermunozguaman7591
      @waltermunozguaman7591 2 ปีที่แล้ว +1

      I have the same opinion, awesome video!

  • @iHeartGameDev
    @iHeartGameDev 2 ปีที่แล้ว +87

    As always, you introduce me to new concepts that I wish I knew more about! Awesome work and explanation, Jason! Keep the vids coming ✨

  • @turkeyjerkey
    @turkeyjerkey 2 ปีที่แล้ว +114

    I love that you're publishing intermediate content in the context of Unity. There is very little such content available, and most YTers seem to avoid it (doesn't get the views or likes they want).

    • @handleneeds3charactersormore
      @handleneeds3charactersormore ปีที่แล้ว +9

      insert *shallow, overly optimistic, obnoxiously narrated video on simple functionality designed to get the views of noob users and send them in a downward spiral of pain the more unity they learn* video here

    • @Rev3rence
      @Rev3rence 4 หลายเดือนก่อน +1

      The thing is, these concepts are fairly simple and basic when you come to game development from software development. The issue is people assume the 2 can be mutually exclusive. In reality, you can't and shouldn't attempt to make a game without having proper engineering skills OR good engineers to support you. It gets worse, because working with an engine is inherently limitting. You are bound by the rules and whims of the engine and your software architecture is limitted due to that. It requires even more practical experience and theoretical knowledge to find the best practices in the specific context you are thrown into.

    • @Alexander_Grant
      @Alexander_Grant 4 หลายเดือนก่อน +1

      @@Rev3rence I recently found a community that has a bunch of hobbyists making games and put myself out there to join some games in progress, and the projects I've looked at that are already partly through are full of code that reads like tutorial code. Some of them are big enough that I have no idea how the project even starts up. I had to tell a couple of teams that their project wasn't right for me because unpacking that code or trying to add features to it was brutal. It is crazy how much actually learning computer science changes the way you think about this kind of stuff.

  • @0ptixs
    @0ptixs 2 ปีที่แล้ว +11

    Just started their video and wanted to comment on the "don't focus on the lines of code, focus on the decision making behind it" absolutely love it, that is what I've been missing from all these TH-cam tutorials, I could care less about what actual code I should enter, I can figure that out with documentation, but the actual logic and decision making behind developing is what I need the most help with. Think I'm going to enjoy a lot of your videos

  • @BigRookDigital
    @BigRookDigital 2 ปีที่แล้ว +103

    Okay, we get it... you're good at what we need to get better at.
    More videos, thanks!

  • @dawidblum8461
    @dawidblum8461 2 ปีที่แล้ว +31

    I love the presentation, easy to understand examples, great narration and that every video provides a goal to achieve on your own that improves your overall skillset and knowledge. Can't wait for more videos! Keep up the great work Jason!

  • @kevonboxill9455
    @kevonboxill9455 2 หลายเดือนก่อน +1

    cant remember commenting but watch this video 3 times.. these last two were just because you did it so well...kudos to you my bro!

  • @crazyfox55
    @crazyfox55 2 ปีที่แล้ว

    This is the best tutorial on this subject. The distinct separation of the architectural changes from the feature changes was very insightful.

  • @Bardent
    @Bardent 2 ปีที่แล้ว +1

    Don't focus on the lines of code, focus on the decision making behind it. Love it!

  • @kevinrobertandrews
    @kevinrobertandrews 2 ปีที่แล้ว

    I appreciate how thoughtfully worded you made this tutorial. Thanks for sharing!

  • @guardianoftheledge4966
    @guardianoftheledge4966 2 ปีที่แล้ว +1

    With so many moving parts in a project, it is so easy to miss the forest for the trees. This is a very nice video. I look forward to seeing more from you in the future!

  • @GordonArber
    @GordonArber 2 ปีที่แล้ว

    I love the editing in this one Jason! Well produced! Also awesome content!

  • @markcooke4866
    @markcooke4866 2 ปีที่แล้ว

    I love the simplicity of your example and how you explain not just what to do, but why it's a good practice.
    Looking at the rest of the code, I could also see pulling out the code to compute the HitInfo from the mouse position as a separate concern.

  • @pixeldevlog
    @pixeldevlog 2 ปีที่แล้ว +1

    This is one of the most useful videos on the internet. Following exactly this solves soo many problems.

  • @saltyspacenerd5581
    @saltyspacenerd5581 2 ปีที่แล้ว +1

    Thanks again Jason, You are a great teacher. I am looking forward to more videos as your channel grows. Ill be sure to keep watching them. So valuable!

  • @jordanfischer3693
    @jordanfischer3693 2 ปีที่แล้ว

    Great video, love how you use simple understandable examples.

  • @okanerkan1873
    @okanerkan1873 2 ปีที่แล้ว +6

    I know it takes a lot of effort but please keep making more videos, it's hard to find mid or above level stuff with good explanation. Thanks.

  • @alaslipknot
    @alaslipknot 2 ปีที่แล้ว +7

    Amazing content!
    Jason and Tarodev are by far my favorite game dev channels now, short, accurate, and straight to the point!
    Jason can you cover dependency injection in the future please ?

  • @joshreylearning8253
    @joshreylearning8253 9 หลายเดือนก่อน

    I really appreciate this video, I had read over the solid principles a few months ago and mostly didn't understand them, but this video made them much more clear to me. Thank you!

  • @teknofis2604
    @teknofis2604 2 ปีที่แล้ว

    Your videos are just .. Wow! Pls keep'em coming

  • @kanz0bgz
    @kanz0bgz 2 ปีที่แล้ว

    Great stuff, really loving these videos. Looking forward to the next one.

  • @roydrinkwater
    @roydrinkwater 2 ปีที่แล้ว

    I need more videos like this one. Very effective examples and to the point!

  • @maweill
    @maweill 2 ปีที่แล้ว

    Amazing editing and content. Thanks a lot, Jason!

  • @ElBARTO298
    @ElBARTO298 2 ปีที่แล้ว

    dude . you are the best. i love the passion you put into you editing and the learning experience is just on another level.

  • @hernandonj
    @hernandonj 2 ปีที่แล้ว

    Clarification absolutely needed. Thank you so much.

  • @nickygdev
    @nickygdev 2 ปีที่แล้ว

    Incredibly informative as always

  • @redenvalerio601
    @redenvalerio601 2 ปีที่แล้ว

    Please continue this kind of contents!! I love it! Thank you!

  • @wilmirosa7076
    @wilmirosa7076 2 ปีที่แล้ว

    Your content is fantastic because is clear and concise. Glad to be your follower Jason,

  • @Juanborgesv-
    @Juanborgesv- 2 ปีที่แล้ว

    Great video Jason! Can't wait to see more 👏

  • @waltermunozguaman7591
    @waltermunozguaman7591 2 ปีที่แล้ว

    Awesome video!, so much quality

  • @kayumiy
    @kayumiy 2 หลายเดือนก่อน

    It is absolutely phenomenal explanation of SOLID and Software Architecture. You did well. Thank you.

  • @fulongfromthegrave
    @fulongfromthegrave 2 ปีที่แล้ว

    I felt like all that needed to be said!
    Looking forward to the next one :)

  • @GlennThomasJr
    @GlennThomasJr 11 หลายเดือนก่อน

    Your page is amazing! I scour for these higher level thinking concepts!

  • @Nihilp
    @Nihilp ปีที่แล้ว

    precious stuff here! mindchanging ! i'm rewriting all my code with this philosophy and i'm happy with it! thx!!!!

  • @willnmari5998
    @willnmari5998 2 ปีที่แล้ว

    wow that was eye opening! especially the Log() method - thanks!

  • @jirushi3028
    @jirushi3028 2 ปีที่แล้ว

    It's getting better and better

  • @maple7rees-352
    @maple7rees-352 9 หลายเดือนก่อน

    Subbed. Thank you for being so insightful and straightforward.

  • @Passenger-vf8pp
    @Passenger-vf8pp 11 หลายเดือนก่อน

    Thanks for the video! I have been working quite a while on improving the workflow of code development and teamwork. This video definitely helps!

  • @frederickfreund1957
    @frederickfreund1957 ปีที่แล้ว

    Really good informative video. Thank you!

  • @omnicatalyst
    @omnicatalyst 2 ปีที่แล้ว

    This was a fantastic explanation

  • @Tvtig
    @Tvtig 2 ปีที่แล้ว +2

    This might be the greatest software design and architecture resource I've come across in my 10 years of software development. I wish every new developer knew about it and studied what you are saying in detail.

  • @hergggoor
    @hergggoor 2 ปีที่แล้ว

    Great work with this video! Simple and easy to understand

  • @aktchungrabanio6467
    @aktchungrabanio6467 ปีที่แล้ว

    Absolutely beautiful solutions Jason. Thank you for these tips. You are a gem

  • @asliniarayanadam
    @asliniarayanadam 2 ปีที่แล้ว

    Great content man, your points made me better in such a short time.

  • @Pdude2k9
    @Pdude2k9 2 ปีที่แล้ว

    Great video, it's more rare to find videos about this topic than just another language feature. Keep up the good work!

  • @gerardcuello4576
    @gerardcuello4576 2 ปีที่แล้ว

    Really nice video! Clear abd simple yet powerful!

  • @DoomCatcher
    @DoomCatcher 2 ปีที่แล้ว +10

    Really useful video I just wish it was longer with even more examples, please make more videos expanding on this topic.

  • @henryh7140
    @henryh7140 ปีที่แล้ว

    This practical example really helped! Great video, thank you :)

  • @mrstruijk
    @mrstruijk ปีที่แล้ว

    Excellent information man!

  • @wvaviator3408
    @wvaviator3408 2 ปีที่แล้ว +2

    Excellent advice and example

  • @4HandsGames
    @4HandsGames 2 ปีที่แล้ว

    Very well explained with easy to understand examples!

  • @biobear01
    @biobear01 2 ปีที่แล้ว

    Please do more of these! Great info and made me realize I need a lot more architecture training!

    • @biobear01
      @biobear01 2 ปีที่แล้ว

      Going more in depth on solid is probably a great start for more video topics. Each principle could surely use its own explanation and unity example?

  • @acryinshame
    @acryinshame ปีที่แล้ว

    thank you, i have struggled understanding the 'why' behind it and you described it easily in 7 mins.

  • @vasilevsanyok
    @vasilevsanyok 2 ปีที่แล้ว

    Short and sweet :) waiting for more new videos! thanks

  • @antonkorshunov4979
    @antonkorshunov4979 ปีที่แล้ว

    SuperObjectiveLookInside(the)Development. Let me throw a bunch of flowers onto the starship board where you stand to deliver us such practical and entertaining content.

  • @strawhenge5007
    @strawhenge5007 2 ปีที่แล้ว +2

    Good video.
    You aren't done when your code works, you are done when your code is right.

  • @mongrelgaming1473
    @mongrelgaming1473 2 ปีที่แล้ว

    Thank you for the information you put out, being only a couple months into this new hobby your voice is one I listen to a great deal (as are a fair few of the other commentators here which I find interesting.)
    Also I think the new skills in video editing are noticable.

  • @phontum
    @phontum 2 ปีที่แล้ว

    Thank you, Jason! Great video

  • @dann5295
    @dann5295 2 ปีที่แล้ว +5

    Memes and edits are kinda distracting, to be honest.
    But your videos are always very informative! ty

  • @BatonyRobson
    @BatonyRobson ปีที่แล้ว

    Very important video and perfect example👍

  • @Ironlionm4n
    @Ironlionm4n 2 ปีที่แล้ว

    Amazing video thank you for uploading

  • @keelanbowker-obrien2222
    @keelanbowker-obrien2222 2 ปีที่แล้ว

    This was so helpful for me, thank you so much.

  • @jeffwang2216
    @jeffwang2216 9 หลายเดือนก่อน

    這麽棒的影片我居然才看到……非常有用的思路。Thank you for sharing

  • @rotub
    @rotub 2 ปีที่แล้ว

    Great explanations! Thanks

  • @Betruet
    @Betruet 2 ปีที่แล้ว

    My guy TaroDev! Great content thanks!

  • @hamzzashaffi
    @hamzzashaffi 2 ปีที่แล้ว

    Solid explanation! :)

  • @grazeen
    @grazeen 2 ปีที่แล้ว

    You are making great videos please make more! With every video i see problems differently and think the future in mind.

  • @ragerungames
    @ragerungames 2 ปีที่แล้ว

    Good to see video featuring Tarodev!!!

  • @AlexBlackfrost
    @AlexBlackfrost 2 ปีที่แล้ว +7

    Great video, using console logs as an example was a great idea, it's something even beginners can understand. Looking forward to seeing "Unity is too slow part 2" 👀! Also, loved the colabs.

  • @hotroddd1
    @hotroddd1 2 ปีที่แล้ว

    This is a great simple video on how to take the "white paper" ideas and turn them into real world examples. Thank you.

  • @sharkle9
    @sharkle9 5 หลายเดือนก่อน

    Great example thanks!

  • @CallousCoder
    @CallousCoder 2 ปีที่แล้ว +19

    Oh man, I’ve been teaching this for ages! And it seems that the younger the developers become the less they know and understand the use of software architecture. Your examples here were well chosen; simple quick and understandable. I think I will use the logging example from now on too. It’s easy to relate too.
    There’s a saying: “any problem in CS can be somber by an extra layer of abstraction”.
    And that’s true, but it’s walking a fine line with over abstraction and under abstraction. I try to teach developers, to initially don’t worry too much with abstraction unless it’s obvious (like logging, configuration and M/V/C etc). But as soon as you see you start to duplicate, take the time then and there to refactor. Because now it’s still easy and has little impact.
    But it just doesn’t sink in to the minds of the 25/35 year olds in most cases.
    They haven’t developed on low level languages (assembly and C) where this sort of duplication makes it impossible to maintain.

    • @0ptixs
      @0ptixs 2 ปีที่แล้ว +2

      Man I just started trying to make games/learn to code (I know it's a trope at this point) but wow I have a long ways to go to understand all of what you wrote, excited for the journey though

    • @dinkle9664
      @dinkle9664 2 ปีที่แล้ว +3

      I think that programming used to be a passion and is now just another career path. Some people want to just "get the job done."

    • @CallousCoder
      @CallousCoder 2 ปีที่แล้ว +1

      @@dinkle9664 I think you may have a good point here. All those channels that “help” people land their 6 figure salary. So it’s probably more about the salary and the job than actually being an engineer and loving the job. I think you may be right!

  • @KHam56
    @KHam56 2 ปีที่แล้ว

    great presentation!

  • @omle8492
    @omle8492 ปีที่แล้ว

    Great video man

  • @shac00l98
    @shac00l98 2 ปีที่แล้ว

    Thanks man. Right at point.

  • @VitegO4
    @VitegO4 2 ปีที่แล้ว

    Oh, this is a brilliant level of content!
    And my words are not just for being loud. As experienced in web, i've been looking for videos that would help me to switch into gamedev. Well, I found that in terms of basic principles and architecture the most of videos are weak. But, in opposite, this video is completely coherence with fundamentals that I rely on. At first - no afraid of "additional code and abstractions". At second, it says about code for game not talking about game itself, but exactly about architecture. So, I'm excited to keep watching the channel!

  • @gmunay420
    @gmunay420 2 ปีที่แล้ว +1

    i want to say something nice but im terrible with words, I really like this.

  • @GiPa98
    @GiPa98 4 หลายเดือนก่อน

    really interesting! Thanks!

  • @erz3030
    @erz3030 2 ปีที่แล้ว

    Yay Jason is making videos now! woooooooo! subbed :D

  • @gokturktas6518
    @gokturktas6518 2 ปีที่แล้ว

    Great content!

  • @user-ru5bd7vn2w
    @user-ru5bd7vn2w 10 หลายเดือนก่อน

    Okay, we get it... you're good at what we need to get better at.

  • @joeknap10
    @joeknap10 11 หลายเดือนก่อน

    Good video well explained and concise :)

  • @FullMe7alJacke7
    @FullMe7alJacke7 ปีที่แล้ว

    Well said, keep it up!

  • @nmania5611
    @nmania5611 ปีที่แล้ว

    Nice video, I want more 👀

  • @synchaoz
    @synchaoz 2 ปีที่แล้ว

    Well very done video, both in terms of content and presentation. Thanks for sharing and putting in the effort. And tegridy. Thanks for not forgetting the tegridy.

  • @shayshay8295
    @shayshay8295 11 หลายเดือนก่อน

    Loved it!

  • @toastyshrimp1882
    @toastyshrimp1882 7 หลายเดือนก่อน

    I've watched this video 3 different times, each time coming back to this more senior and able to understand more.
    I remember somehow watching this and feeling overwhelmed at how "complicated" this was, and I feel good knowing how much I've grown as a developer that this video seems basically like common sense now.

  • @albertmontagutcasero2129
    @albertmontagutcasero2129 2 ปีที่แล้ว +1

    Awesome Jason, thank you for this kind of videos. You are so unique. Also, to point something about Single Responsibility Principle, Robert Martin also says -A module should be responsible to one, and only one, actor-. So, if some behavior of your application is used by two different actors, you should keep it separate to avoid defects. Your example is perfect, I would love more examples using different point of views.

  • @martinvanstein.youtube
    @martinvanstein.youtube 9 หลายเดือนก่อน

    Great video !!!

  • @nasrodev2087
    @nasrodev2087 ปีที่แล้ว

    i had a big brain Unlocking process while watching this video Really made me rethink how to handle things entirely not just Debuggin thankss a lot

  • @rashidfarhan6223
    @rashidfarhan6223 ปีที่แล้ว

    Brooo all of my favorite unity content creators are here in the comments. This is some next level stuff here.

  • @ZloyDinozavrik
    @ZloyDinozavrik 2 ปีที่แล้ว

    I love you Jason!

  • @_stephenhubbard
    @_stephenhubbard ปีที่แล้ว

    sheesh how am I just discovering this channel?! Dat quality

  • @philberex
    @philberex ปีที่แล้ว

    Damn glad i found this video in the TH-cam archives.

  • @christinaVennegerts
    @christinaVennegerts 2 ปีที่แล้ว

    This is a great Video and thank you so much for explaining the topic. I'll have to keep this in mind going forward. But your logger made me curious, too - I'll give that a try, too :)

  • @MohammadFaizanKhanJ
    @MohammadFaizanKhanJ ปีที่แล้ว

    This video pops in my recommendation and I watched it the second time completely. Good work Jason! SOLID death seems very funny to me. even the S of the SOLID has much impact on the overall of your coding architecture decsion.

  • @cathychoi6959
    @cathychoi6959 11 หลายเดือนก่อน

    Thanks for your honest review not like others trying make my life more diffuuucxxlt !

  • @rohit271290
    @rohit271290 2 ปีที่แล้ว

    Short and sharp as sword🗡️
    Thanks Jason!

  • @treppas
    @treppas 2 ปีที่แล้ว

    Well explained man!