Check out the Course: bit.ly/3i7lLtH ------- Managers or Controllers? What should you use? What are they? Find out now :) More Info: unity3d.college Join the Group: unity3d.group
Пікірлер: 74
@Grempington6 жыл бұрын
This pretty much aligns with what I said in the survey minus the system part, however I did have to stretch a little on what I believe system should mean because I myself never used System when naming classes, so you've got a point there. Is it possible to view the results of the survey? I'm just curious to see what other people thought, same as you were :)
@Unity3dCollege6 жыл бұрын
Here they are :) docs.google.com/forms/d/e/1FAIpQLSdd3z5gkh9Ugit_L6b-o2WP9l7jSgTpKqynjO28a-CXQH8Eag/viewanalytics
@Grempington6 жыл бұрын
Thanks!
@DanielStreck6 жыл бұрын
Please do more of this high level architecture concepts videos. That's an area that I find very lacking in content in the Unity3D community!
@cyqry5 жыл бұрын
Agreed. Been studying games programming for the past 5 years (3 in uni, 2 in college) and general programming (computer science, 2 years in another college). I was taught a lot about high level architecture and concepts in the CS course (first of the three) but almost nothing in the next 5 years of actual GAMES programming. Sure we all know how to do all kinds of games-related coding now but I found a lot of my peers can barely understand the terminology without having to go into insanely basic details to explain it. A lot of their code works fine but could be considerably more efficient if they just knew these sorts of high-level concepts.
@HarrisBaig4 жыл бұрын
yess
@muzboz2 жыл бұрын
Agreed!
@Unity3dCollege6 жыл бұрын
Just a warning, I tried using aftereffects to do some editing... emphasis on tried :) Definitely need a lot more practice :)
@popuzin6 жыл бұрын
At first look of this video I noticed that most part of the images and videos distract me from the topic. Except code pictures, this makes me concentrate more on the coding than on the video games)) Now, looking on the second time I see that all this backgrounds make sense =) will prefer static pictures on BKG than dynamic and may be more pictures of code (you know, even well-known built-in unity and assets from unity technology). However, overwatch clip was a good demonstration of uselessness of GameManager and it was in right spot and don't distract me... Hope this feedback will be useful for you ) Love your videos )
@Captaincook9876 жыл бұрын
The effects are quite nice in helping maintain attention, but not entirely necessary. I know for my on my channel I find editing with after effects or any other similar program to be very time consuming, and I get really burnt out on it. My only advice would be to make sure that adding in these extra effects doesn't take up too much of your time, thus, reducing the time you have to create the quality content you produce.
@garryhamer76156 жыл бұрын
Hi Jason - it would be really useful and informative if we could watch you set up a very simple game that uses Managers, controllers and systems so we can see exactly how you lay them it out in the project view and how you would use each of them in the game. Great verbal explanation btw, but would love to watch you implement them in real time. Cheers! :D
@Elesnouman4 ай бұрын
I didn't realize that I needed a game manager until I realized I that I needed to relate scripts in my project and the most convinient way of doing it I'd to tie most of the same type of info into a manager. Controllers are great for groups. Managers are good for flow.
@d30x584 жыл бұрын
Finally, the video I was looking for. Thank you so much!
@skulltrail57576 жыл бұрын
Thank you, Dan Harmon
@SirRelith6 жыл бұрын
Thanks man. This helped me. Made me realize I'm doing good work too. Have a nice day! :)
@hunter_nx9876 жыл бұрын
Great approach! I usually use Managers in multiplayer games where there is a lot of local interaction with the server / client and the UI. Systems use a lot when I create Editor Tools like terrain system.
@immapartain47123 жыл бұрын
I love this video, and I am a huge fan of the channel! I've always been interested in game dev cause I am a freak for design patterns, and I love videogames. That being said, I am extremely new to unity, and I am trying to create a weapon manager. It would be awesome if you made a video to show some basics of implementing controllers, and managers in shooters or anything of the sort. You might already haver a video out there that covers these, if so I would love to be pointed to it! Thanks for all you do, keep it up!
@johncarlogamboa73316 жыл бұрын
I believe what everything I've answered in your survey reflected on this video. I really thought we'll have differing thoughts about this topic. Awesome. :D
@andywatts6 жыл бұрын
Thanks for this. I was using the model-view-controller lingo, but will change. Good to know the convention for classic unity is manager/controller. For ECS, I guess you just have manager entities with their components and systems.
@stevenbraun9186 жыл бұрын
Thank you so much! Very helpful!
@Anathemx5 жыл бұрын
Thumbs up for the audio quality 👌
@TehAntares4 жыл бұрын
I usually name managers as containers, in case I need to separate the search logic, I put it in separate class named provider or data provider.
@callmedeno5 жыл бұрын
Really enjoying these videos. Coming into Unity I have been trying to find a balance between following Unity's lead and buying into its design patterns, but also finding this can quickly get out of control. Do you have anything on data driven design? I feel like anytime I'm mixing state with behaviour is dodgy. For something like a Player, I'm thinking have all the seperate controllers (like you mentioned, navigation, animation) attached to the game object and use the Player class for state (and where you can get references to the controllers).
@pixsaoul14945 жыл бұрын
Personnaly I completely forbid myself to use manager and controller keyword, to force myself into having more precise and accurate description of the goal of each class. This prevent classes to become ubber managers, and keep everything SOLID ;) (If someone disagree, I would like to discuss this :D as it is a really interesting topic )
@muzboz2 жыл бұрын
Really great. Thanks Jason! :D
@HowToMakeMobileGames6 жыл бұрын
Great video again :)
@castlecodersltd Жыл бұрын
Very interesting, thanks☺
@PS-vj6jz2 жыл бұрын
Perfect. Big thanks.
@RandomGuyyy6 жыл бұрын
It's funny how similar the unwritten conventions are for the usage of these names.
@saraireyes6964 жыл бұрын
Thx Jason!! I always am confused with these concepts. Im a begginer, and don´t know how to start.
@Kanal9946 жыл бұрын
You worked on WoW, didnt you? I am so glad i found your tutorials =D
@robbasgaming70442 жыл бұрын
Interesting discussion of systems. In my field of work, I'm not a game dev, a system is defined as encompassing combinations of technology and people in the context of natural, social, business, public or political environments, created, used and sustained for an identified purpose.
@onesevenfourone6 жыл бұрын
I guess it can get as complicated or as simple as you want it to be. I guess it depends on the project scope. I usually work on small to medium projects, so I tend to not over-complicate things, I feel like after a certain point you end up making the iteration process slower. And since I'm the only one coding I don't want to use too much time over-engineering systems.
@joevaghn4572 жыл бұрын
4:00 - 4:39 idk why but I seriously just died laughing. he's so right, it's hysterical.
@sconosciutosconosciuto21965 жыл бұрын
I want to use composition for my game objects... If I have understood I should use a Input Manager that tell to an Attack Controller script (attached to my player game object)(that is useful for doing something, like a control of mana before casting...) to use the function called "Cast Spell" in the script that "derives" from interface ISpell?
@aronlinde17235 жыл бұрын
First half is well understood, the interface part might be off. If you have a system where all playable objects have a spell then yes ISpell could be useful, but if you want to have somethings have spells and others maybe attack, drink, throw then you should abstract more or you will dig yourself into a switch statement hell. IUsableObject could have Use(this, target) as a method. Then you could just focus on the behavior of the objects separately. Interfaces are for deriving behaviors, not functionality. The class that is attached to the interface is the functionality/structure.
@sconosciutosconosciuto21965 жыл бұрын
@@aronlinde1723 OK, thanks.. But what do you think about the ECS? It will destroy all these things :(
@crazyphysicsdev28326 жыл бұрын
Your videos are so helpful and effective. I wish you would do more. Can someone recommend me other videos / KZbinr, which offer just as much information content? I would like to learn in the most effective way with little time - would be nice if someone could give me some tips :) ( like SOLID principles)
@originaltenka55456 жыл бұрын
Fluffy Tiger personally...I find his methods more applicable to real world projects, the others are generally just for fun projects
@benjoe19936 жыл бұрын
If we have no "gameManager" per se how should we handle game states for example? Where do you usually handle pausing the game for example, that most other managers should probably know about? What is the best practice for that kind of situation where we need globally accessible variables?
@benjoe19936 жыл бұрын
Forgot to add this: Great video :D It matches my answers pretty well which feels good to know :D Also I wrote a thing about Repositories. How do you feel about Repository classes that are only there to contain data (no business code) that is used by the managers?
@originaltenka55456 жыл бұрын
I use singletons....I think he has other videos on what you're asking
@benjoe19936 жыл бұрын
I know about singletons. It's not the actual coding I'm interested in, but the idea of where to store such Global Game values other than in a Game Manager script?
@originaltenka55456 жыл бұрын
BenJoe72 you could use a state machine to handle pausing the game
@DingoAteMeBaby5 жыл бұрын
what about handlers?
@andyvickers90216 жыл бұрын
What game is that at the begining of the video?
@zaimatsu5 жыл бұрын
Sometimes, I create something like TimeManager but it does not fit into the definitions presented here (which I really like). What naming would you use for a class that handles time management?
@cristiancaze5 жыл бұрын
That bame is good, I used the same name haha, for slow motion.. pause game.. resume..
@tomasbaranauskas81423 жыл бұрын
TimeFlowManager :)
@hesamom17814 жыл бұрын
I know it's unrelated, but what's the name of the game in the video intro?
@stevenbraun9186 жыл бұрын
I used 1 script for 1 eg. Player / enemy I guess it's very bad 🤔😁
@BrainSlugs834 жыл бұрын
Is "Controller" here similar to the meaning of the word in other patterns (e.g. MVC)?
@JordaanM4 жыл бұрын
From my understanding of the 2 terms, no, they aren't the same, though there are some overlaps. In an MVC paradigm, a "controller" is the part of the system responsible for managing communication between the view (what the user sees) and the model (the underlying data relationships). The term 'controller' as used in this video seems to be related to the concept of delegation of responsibilities. So, rather than having a single God class that does everything, you break it out into several controllers, each with distinct (as much as possible) responsibilities. So, if we take the example of a player character in an action game, you might have a Movement controller, Health controller, Weapon controller, Animation controller, etc. They would be all linked via some overarching class, eg "Player", that coordinates information between the different controllers, where necessary.
@tomasbaranauskas81423 жыл бұрын
@@JordaanM Thanks for the clarification on this one. Can you tell me please, does that overarching class sit on a GameObject as well; alongside these controllers? So, let's say I have a Board prefab with Balls prefabs and I have a SpawnController and MoveController attached to that Board prefab. Should I call that overarching class as Board and plug it in? Also, should I access controllers by GetComponent or should I have a serialized field to hold it so that there is a guarantee that this object exist? Thanks in advance
@JordaanM3 жыл бұрын
@@tomasbaranauskas8142 I don't think there's a single correct answer, it varies based on your needs / situation.
@spiral93165 жыл бұрын
Hey, cool, and thank you, for realz hehe cheers
@SoaringSimulator4 жыл бұрын
No, I think uncle bob defines better what is a controller and a manager making define boundaries. Jason pleas can you expand this concept for unity developers inside unity components? Please read or look old bob concepts first. And make for us beginners making complex systems interacting, a hierarchy naming example structure. Thx a lot for your videos. Ps: armada?
@mfatihbilhaq49776 жыл бұрын
Lol funny thumbnail
@junaidijaz416 жыл бұрын
1:47 i thought you'r going to vomit... :D
@Unity3dCollege6 жыл бұрын
Side effect of my noob editing skills :) Normally if I mess up I just restart, this time I thought I could edit out mistakes lol :) (also a few times where I completely failed at saying words :)
@junaidijaz416 жыл бұрын
lolzz .. I was just kidding .. these things don't matter ithink .. you are legend
@everabyss4 жыл бұрын
Like ( done ), Sub ( Already Done! ), Here's a request! How you should Architect your project ? According to small scale and according to medium scale projects and what are the best general practices? Thanks.
@dvsdev5 жыл бұрын
Anyone else finding this video hard to watch? He keeps talking about managers, but keeps showing code for a controller, and video text that says controllers.
@stan5376 жыл бұрын
ECS is only useful if you have a game that relies on a lot of data, for example a game like SimCity or any other building game. If you are making an MMO or any other dynamic game, it's better to use GameObject. Also the ECS that Unity implemented is bad, it will probably take them years to make it good for production.
@originaltenka55456 жыл бұрын
It isn't bad, that's how it was designed
@stan5376 жыл бұрын
I don't like the way they have designed it, but anyways most of the games won't benefit from using ECS except building games.
@stan5376 жыл бұрын
Haha.. I just don't have enough time at the moment, I did my own implementation of ECS awhile ago. The Unity team was in my house the other day and we talked about ECS, they agreed most of the games won't even benefit from it, but you can do your own research.
@nemogames53543 жыл бұрын
I didn't get it.. I don't if it's the way you explained or what, i didn't get it. And apparently, this is the only video on this subject
@onesevenfourone6 жыл бұрын
I love Unity, but you know two things that really still bothers me in Unity in 2018? 1. We still can't rebind input on runtime. Yes, you can write your own input manager and there is an open-source one on github that is pretty good. But still remaping input in runtime it's basic, like 1-on-1 making games for PC. 2. The generated mipmaps creates seams on the textures. Very annoying, another basic thing you would expect a 3d engine to do doesn't work very well in Unity.
@iangraham67304 жыл бұрын
Noobs take note!! I know 'I' am!
@grimmimsy71593 жыл бұрын
It does not pay to consistinly misuse buzzwords. System? State Machine? Index... if you are using these words right you are the only person. Unless its a internal class I would avoid them in your code at all costs
@yggdrasilthousandsand31245 жыл бұрын
That female referee derailed me big time : -)
@dago64102 жыл бұрын
I dont find it productive to add garbage words to my class names.