So long story short, I finally got going in Unity lately and programming in general when I found out that my problem solving/logic flow skills were weak. So I took it upon myself to really strengthen them and I have grown substantially in that respect. I have ‘brute forced’ several mechanics through basic logic and stringing components together, however tedious and non-scalable. I feel my logic fundamentals are in a much stronger place and I am ready to venture out to learn more beginner/intermediate concepts to help my structure and complexity issues I struggle with and to ultimately make better, cleaner code behind the experiences I create.
Things I’ve heard of - Delving more into OOP (havent messed with inheritance much at all, and many other things) C# (Constructors, etc…) Programming Patterns Interfaces Unity Events Delegates Enums
Now I’m sure these things intertwine and you use them together in different ways. I just don’t want to get too overwhelmed by taking on too many new concepts at once. I like tackling one or two things and getting a good foundational knowledge I can build upon.
I have no way of knowing which of the above things I mentioned (and didn’t mention) are essentially ‘fluff’/too intermediate for myself and where I’m currently at. I consider learning anything about graphics/asset creation ‘fluff’ at this time. Fluff being cool things to learn eventually but are used rarely. Cool things that distract from foundational things that cast a wider net of usability.
Advice on which things to start learning about? Can be any combo, interested to hear from a wide array of devs
Personally I’ve found the only way to get me interested in learning more complex programming concepts, like inheritance, constructors, interfaces ect. is after I’ve already been doing it wrong for so long and putting up with the drawbacks from not using these things. So that when I finally learnt how to use them my reaction was
“Holy crap this is awesome, I can do so mcuh with this”
instad of…
“Ok I guess that’s cool but why bother with the effort?”
So my general advice to you would be don’t stress about getting things right the first time around, just build cool projects and pick up these concepts when you actually have a need for them.
If you want to force that need to arrise, pick a project that’s both interesting to you and also has obvious needs for a concept you want to learn.
Ever play stardew valley / harvest moon? Grab a farm game asset pack and make your own, I guarantee you’ll get famiular with inheritance with all the different types of crops, animals, interactable objects, ect.
Non-affiliated plug for Shubibubi’s Cozy Farm assets:
I think everything you mentioned I learnt just assembling a reasonably comprehensive items + inventory system (including UI), throwing composition into that mix as well. So that’s a starting point for you if you like.
Really, if you find yourself doing something and it doesn’t seem to be a clean way to do so, ask yourself “Can I do this better…?” and go and do some research, read old forum posts, make a forum post, etc. You’ll be surprised how many things you pick up in a short period of time.