It can be okay, but trying in particularly to keep track of user interactions and changes in 'state' in this way is not very intuitive to follow. Lots of structured/nested if/else statements. One thing I will say is that trying to do things more 'procedurally' has led me to some complexities that I don't really prefer, even though I prefer this programming style. I somewhat don't like having to do everything in a compartmentalized per-object way, ie lots of small scripts all over the place, but I do like how that ties into prefabs and being able to just instantiate something and have it function right away rather than hacking into some kind of shared pool of data. I also like the idea of multiple 'layers' of managers that kind of map to different layers of abstraction. I'll use arrays over lists or objects anyday. I still like to have arrays of objects where possible simply because it's fast to iterate through and jump around, and its helpful that this can be stored/serialized. I also don't really like the model of 'sending messages' and getting into all this more advanced programming stuff, delegates and reflection and all that, maybe I don't understand it but it isn't as intuitive and 'direct' for me. I really don't like the idea of having to call a 'method' just to set some value on an object though when I could set it directly, if I know what I'm doing so I try not to put too many middle-men between things, but I do understand how providing that interface keeps the external and internal parts communicating properly without letting external script break internal data consistency. So I try to make them self-autonomous, at least as far as them having governance over stuff that is 'local' to them, and then I might have some other manager thing that takes care of bigger-picture stuff. Lately I've opened up to trying to give objects their own independent scripts more. It does however imply that everything is kind of exposed everywhere and there aren't going to be any function name clashes or any 'scope' or 'context' issues, so it isn't quite as organized, but it is easier at least for smaller stuff. I come from a procedural programming background so have my roots there, in particular Blitz Max where you simply use simple function calls to do various things rather than having to go through this whole object/model hierarchical structure all the time. Interesting subject, I was going to ask about this too. Minimize amount of intheritance and reduce number of classes.įor example, if you have a duck and a soldier in your game, then do not make "Duck" and "Soldier" class, instead use one "NPC" class for both, and express differences between duck and soldier via choice of mesh and animation controller. That is, unless you're making an accounting or database application in unity for some reason.Īlso, try to get a hang of unity comnponent architecture.Instead of using traditional programming approach (where everything is a class), you need to get used to the idea that everything in the scene is a GameObject (and not a subclass of a GameObject), and almost all functionality is implemented as MonoBehaviors attached to that game object. No "managers", every object is separate entity. Basically, imagine that you're writing a small robot for a robot swarm. Now that I think about it, why not? That would add constant exploration to the gameplay and require changing your strategy on-the-fly.The best idea is to forget about MVC, MVVM and whatever pattern you heard of and treat each in-game object as a separate self-contained system. I believe it would significantly hurt strategic planning, however I wouldn't characterize this as limiting your ability to "explore the galaxy." MoO has never had fog of war. Hmm, I understand your concern with star lanes. I hope there is an option to use that same map without the lines. That's where there are suns to absorb energy from and use for gravitational boosts and possibly to gain supplies. That would be obviously done first by any space traveling society. Geesh, there are some places some this map where one can't even travel in the same Galactic Arm. Since I am not one who is won over by pretty colors, the games mechanics have to be great and these starlanes will ruin replayabliity.