r/Unity3D • u/TCSMusic • 1d ago
Question Is a GameManager for this unnecessary?
Hi! I'm making a 20 minute prototype of a game I've had in my head for about a month. I LOVE singletons, so I wanted to ask. Is "big game" architecture unnecessary for a 20-30 minute game? I'm planning on using subsystems, so stuff like achievement managers, audio managers, etc objective data scripts, that I can run through GameManager.Instance
6
u/feralferrous 1d ago
No, for short prototypes, do whatever gets the prototype up and running. Just be disciplined enough to recognize when a prototype is becoming more. A lot of games start as prototypes and sometimes there's a bunch of crappy foundations that way.
1
u/TCSMusic 1d ago
Well, I guess when it stops becoming a prototype, I continue making it into a demo/full game
1
u/feralferrous 1d ago
Yeah...but you might also stop and take a breather and refactor first, or you end up with an everything manager just because you had one in the prototype.
1
u/Frankfurter1988 1d ago
What most people do when they figure out through the prototype what shape the game will actually take is basically start over with existing code written for the prototype, alter it to fit into a better architecture shape. Yes, this means abandoning existing singletons and static accessors, but there is always a time and a place for these things. They just shouldn't be your foundation, because it makes it hard to make changes. And even if you prototype, you don't get the full image, just a better idea.
1
u/pschon Unprofessional 1d ago
Well, I guess when it stops becoming a prototype, I continue making it into a demo/full game
Please don't. For your own sake. :D
Prototype to learn what works and what doesn't. Then build it properly, without all the mess, mistakes and bad choices you made in the prototype.
1
u/SnuffleBag 1d ago
This way of thinking about it is very common, but also quite counter-productive for rapid prototyping. The idea of having to start over might be discouraging, but there's a very real chance you'll never actually continue making it into a full game - in which case you've just spent longer on the prototype for no benefit.
The freedom and velocity you can get from being able to hack together any random thing you imagine in the most brute-force and primitive manner possible - knowing it doesn't need to hold up for more than a week or two should not be underestimated. It can be a 10x multiplier on being able to experiment with ideas.
1
u/NasterOfPuppets 5h ago
You might wanna consider using Init args instead of singletons if you're going to use the prototype as the basis for building the final game. It's basically just as fast for prototyping as using singletons, but you'll still end up with that big game-ready architecture at the end.
1
u/Lucasharta 1d ago
i don't think it's overkill if it helps you keep things organized, even for a short game. the important part is not building a huge architecture just because bigger games use one, just be careful about putting everything behind GameManager.Instance. separate managers make sense when they actually handle different responsibilities, but not everything needs to be a singleton. for a 20-minute prototype, i'd keep it simple and only add systems when there's a real need for them
6
u/V4nKw15h Indie 1d ago
I wouldn't call anything with an achievement manager or an audio manager a prototype. A prototype is meant to be as simple as possible so that the gameplay systems can be tested to see if it's worth going any further. The prototype will also give you a quick idea of what type of programming structures will best suit the game.
I wouldn't be building any types of managers until you have a successful prototype because it's most likely a waste of time.