So I’m an enterprise software developer dabbling in game development, as many of you probably are. I’ve been playing around with Unity on and off over the past couple of years. I’ve participated in two game jams, completed a couple of tutorials, read some docs, etc. But something I’ve continuously struggled with in Unity is “putting it all together.” I don’t know if I’m missing some critical knowledge, or if it’s just practice, but it feels like transitioning from “making minigames and tutorials” to “making an actual game” in Unity feels unintuitive and cumbersome, and I can’t tell if it’s the engine or just a gap in my knowledge.
One of my major issues is that, from what I can tell, there is no “entry point” into the system (which is generally where I would build a DI container and register dependencies in an enterprise environment.) Unreal Engine has the concept of a “game mode”, which is your single source of truth and controls the overall game flow. I feel like the lack of this concept in Unity is making it very difficult for me to feel like I can orchestrate anything more complex than a minigame (or at least, without feeling like I’m bypassing the engine completely.) Are people storing everything that is “global game state” in ScriptableObjects? If you’re using a “master scene” to control the overall game flow and loading in others additively, how are you communicating between scenes? How are you testing additive-only scenes that rely on the overall game state? How are you handling cross-scene dependencies?
Is there a decent place to learn game architecture (in a way that is at least applicable to Unity) that is a bit more in-depth than just micro games, and that actually uses best practices and doesn’t feel like 100% throwaway code?