Holy crap, I shipped 20 games with various flows and some were terriblle. Now I have more than an intuitive understanding. This is also a video that addresses an uncommon topic, so it stands out from the usual tutorial slop.
@@thygrrr Thanks! We're happy it helped. We're really trying to cover topics that haven't already been answered on TH-cam, so we're glad to see we're heading in the right direction :)
As a software engineer, it took me years to finish my first game. I was always looking for a clean architecture, and I couldn't find any best-practice resources. Even on small projects, because that's how I code in my job. I'll keep an eye on your content!
@@practicapiglobal i use DI at work (am full-time software engineer fot a game studio) i thiink the concept is worth explaining indeed, however, it can easily turn into a glorified Singleton pattern if not done correctly. so make sure the video is not tagged for beginners, i don't think any small project will require any sort of DI, what you explained in this video is more than enough for a clean and scalable small/medium game. As for requesting the next topic, i would vote for ECS.
@@rechnight Thanks! Absolutely our attention is on it. Because it's not released yet we didn't mention it. Though we will now consider adding a note that it exists 💛
Clean video! Interesting to see how you'll solve the growing reference issue. I would separe the managers into contsiners and load them at various stages! + It's not necessarly faster to remove everything from the scene as the script has hard references to prefabs which loads them into memeory once the scene is loaded! EDIT: Saw thst your aware of thede things from another comment! :)
@@niklasmikkelsen4701 hahaha Thanks!! Your solution is exactly what we do as well :) ofc there's more into it, and we will do a full video about it in the future.
How would you handle editor playmode support in that workflow? Let's say I edit a level in the game and want to playtest it. With this approach I would be required to switch the scene, go with the full flow and then I would have to load the specified level. It feels like shooting myself in the foot when it comes to iteration.
@@wokarolHi, you're absolutely right. This is indeed a whole topic in itself, which we intentionally ignored to keep things simple. However, the approach we recommend is for each scene to manage its own dependencies and setup data. This way, if we load the scene with mock data, it should load flawlessly. For example, we can create a ScriptableObject that contains mock data for the scene to load.
@@practicapiglobal // But don't we run back into the same problem? Now you have to add some manager with a player prefab and all that, which if I understand well was the problem we wanted to avoid. As now we have two points of entry, the Game scene and the Mock Manager
The way i did it in my "game" is to use a bootstrapper ([RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] ) and load a prefab (i call it System) which contains everything (other prefabs like GameManager, UI, etc.) which should be in every scene. I call then Object.DontDestroyOnLoad(myInstantiatedPrefab). To prevent the bootstrapper to load this on scenes (e.g. test scenes, ...) I only load the "System" in the bootstrapper if the current scene starts with a specific name (in my case "Game_").
@@publicmmi Thanks for sharing! We're familiar with this approach as well, and it aligns with what we demonstrated in the video. However, we recommend avoiding grouping things based on their prefix, as this tightly couples the object's name to its purpose.
@@ManjeetKumar-xk8jf Yes you are totally right! But as we said in the video, this is a simple example and in a serious project we should load the assets async using AssetBundles/Addressables
I don't understand single word u say and i started game development 2 days ago is it normal?? How much time should it take to understand this?? Can i learn it all in a month?? Please don't give me the answer like it depends on self.
take your time bro take your time if you enjoy the process just do it to hell with what people say if you struggel in some step just ask someone with more knowledge about that
@@jackwilliams4398 Don't worry. If you just started learning, this video will be full of things you don't understand, and that's normal. The reference in the title to 'Starting your unity game' is not meant to imply that it's a beginner-level video. It's 'starting' as in 'starting up the game', and an approach like this would only be appropriate for somebody who's been learning for much longer than you, and has a project so large the normal (beginner) way of doing things has become unweildy. I would suggest you just relax and focus on materials that you know are beginner-level for now.
It's normal to practice for years in order to understand this, This is intermediate level knowledge and such you don't need to trouble yourself with it. I suggest you get in a lot of game jams inorder to create some prototype. Practice will eventually lead you to realize the problem this content creator is trying to solve.
Hi! It is totally normal don't feel bad for being overwhelmed. From the start this video was targeting an audience with basic+ knowledge in Unity. Luckily In our next video we will cover all the basics you need to know!💛
Please continue with this topic. Many try to, but either are being too vague or too nerdy. Your explanations have a good balance
this channel is a gem
Holy crap, I shipped 20 games with various flows and some were terriblle. Now I have more than an intuitive understanding. This is also a video that addresses an uncommon topic, so it stands out from the usual tutorial slop.
@@thygrrr Thanks! We're happy it helped. We're really trying to cover topics that haven't already been answered on TH-cam, so we're glad to see we're heading in the right direction :)
As a software engineer, it took me years to finish my first game.
I was always looking for a clean architecture, and I couldn't find any best-practice resources. Even on small projects, because that's how I code in my job.
I'll keep an eye on your content!
@@le_python_man Thanks!! No worries we will definitely focus on clean architecture💛
@@le_python_man Thanks!! No worries we will definitely focus on clean architecture💛
This video is one of the best non-intentional introduction to Zenject, at least the theoretical part of it
Thanks!! Lol it was really difficult not to mention Zenject here😅
If you are interested in implementing DI following these steps, PLEASE let us know
@@practicapiglobal i use DI at work (am full-time software engineer fot a game studio) i thiink the concept is worth explaining indeed, however, it can easily turn into a glorified Singleton pattern if not done correctly. so make sure the video is not tagged for beginners, i don't think any small project will require any sort of DI, what you explained in this video is more than enough for a clean and scalable small/medium game.
As for requesting the next topic, i would vote for ECS.
@@alaslipknot Awesome feedback! Noted :)
@@practicapiglobal Any thoughts on Zenject vs Vcontainer ?
Unity 6 (2023.X), there's the Awaitable class to use in place of UniTask/Coroutines.
@@rechnight Thanks! Absolutely our attention is on it. Because it's not released yet we didn't mention it. Though we will now consider adding a note that it exists 💛
@@practicapiglobalSince years (Unity 2019 or so), you do not need UniTask anymore. Just use the TPL (System.Threading.Task et. al.)
Clean video! Interesting to see how you'll solve the growing reference issue. I would separe the managers into contsiners and load them at various stages!
+
It's not necessarly faster to remove everything from the scene as the script has hard references to prefabs which loads them into memeory once the scene is loaded!
EDIT:
Saw thst your aware of thede things from another comment! :)
@@niklasmikkelsen4701 hahaha Thanks!! Your solution is exactly what we do as well :) ofc there's more into it, and we will do a full video about it in the future.
This is excellent. Thank you very much.
Thanks! Appreciated💛
Is there a discord server for the channel? If not, I'd recommend you create one. I'd love to be a part of it.
@@successorbot9934 Thanks man! We are really thinking about it
How would you handle editor playmode support in that workflow?
Let's say I edit a level in the game and want to playtest it. With this approach I would be required to switch the scene, go with the full flow and then I would have to load the specified level.
It feels like shooting myself in the foot when it comes to iteration.
@@wokarolHi, you're absolutely right. This is indeed a whole topic in itself, which we intentionally ignored to keep things simple. However, the approach we recommend is for each scene to manage its own dependencies and setup data. This way, if we load the scene with mock data, it should load flawlessly. For example, we can create a ScriptableObject that contains mock data for the scene to load.
@@practicapiglobal // But don't we run back into the same problem? Now you have to add some manager with a player prefab and all that, which if I understand well was the problem we wanted to avoid. As now we have two points of entry, the Game scene and the Mock Manager
The way i did it in my "game" is to use a bootstrapper ([RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
) and load a prefab (i call it System) which contains everything (other prefabs like GameManager, UI, etc.) which should be in every scene. I call then Object.DontDestroyOnLoad(myInstantiatedPrefab). To prevent the bootstrapper to load this on scenes (e.g. test scenes, ...) I only load the "System" in the bootstrapper if the current scene starts with a specific name (in my case "Game_").
@@publicmmi Thanks for sharing! We're familiar with this approach as well, and it aligns with what we demonstrated in the video. However, we recommend avoiding grouping things based on their prefix, as this tightly couples the object's name to its purpose.
I think if you have references of prefab on your script which is in scene unity will take same time to load either it's an empty scene or not.
@@ManjeetKumar-xk8jf Yes you are totally right! But as we said in the video, this is a simple example and in a serious project we should load the assets async using AssetBundles/Addressables
@@practicapiglobal okay man got it i have just subscribed waiting for new videos.
@@ManjeetKumar-xk8jf Thanks!! New one coming in a few days :)
This is the issue im having with my project. The demo is so big that loading times are eek.
Awesome we hope this helped🙏
I don't understand single word u say and i started game development 2 days ago is it normal??
How much time should it take to understand this?? Can i learn it all in a month??
Please don't give me the answer like it depends on self.
take your time bro
take your time
if you enjoy the process just do it
to hell with what people say
if you struggel in some step just ask someone with more knowledge about that
@@jackwilliams4398 Don't worry. If you just started learning, this video will be full of things you don't understand, and that's normal. The reference in the title to 'Starting your unity game' is not meant to imply that it's a beginner-level video. It's 'starting' as in 'starting up the game', and an approach like this would only be appropriate for somebody who's been learning for much longer than you, and has a project so large the normal (beginner) way of doing things has become unweildy. I would suggest you just relax and focus on materials that you know are beginner-level for now.
It's normal to practice for years in order to understand this, This is intermediate level knowledge and such you don't need to trouble yourself with it. I suggest you get in a lot of game jams inorder to create some prototype. Practice will eventually lead you to realize the problem this content creator is trying to solve.
This video is for intermediate/advanced users. It will take a couple of years to get to that point. Eyes on the horizon, walk on.
Hi! It is totally normal don't feel bad for being overwhelmed. From the start this video was targeting an audience with basic+ knowledge in Unity. Luckily In our next video we will cover all the basics you need to know!💛
Holy pro dis is gud😎😎😎
Thanks so much!