Some very brief background. I’ve been coding for a long time in multiple languages, but almost always on a single class, or solving a single complex problem, and having to do it very quickly. So in that vein, I’ve gotten used to a lot of sloppy coding, including global variables, singletons, and copying and pasting entire classes. In fact, often things are structured that I don’t use OOP at all.
I’ve spent quite a bit of time looking through the forums and unity answers, but with so many thousands of posts, I’m having trouble finding what I’m looking for, and instead I’m just reading a whole lots of opinions on why things shouldn’t be done, instead of the best approach to get it done.
Now is time for a new start though, I’m the tech lead on a small indie team. But I know for a fact my coding practices will not fly here. We’re going to be doing a fairly straightforward RPG, with a main hero, an inventory, and lots of enemies and NPC’s.
I’m not asking for any concrete answers or examples, but rather some direction on two topics.
- What’s a good way to organise my classes and sub classes. Should I use a lot of inheritance? Should I use a master-class? Should I use classes for each type of thing? etc. As I’ve said, I’m only used to dealing with one or two classes or objects at a time.
- What’s a good way to access other classes and scripts? Events? Dragged references? GetComponent? I’m guessing not singletons, and global variables / references

So If you have any insight, or preferably a link to a good resource / book / tutorial, I’d be really grateful. I really want to be the best I can be for my team, and not waste too much time. Incidentally, it’ll all be C#, simply because I’m already familiar with it, and on the surface it seems the cleanest and most flexible.
*** About me, if you’re wondering. I work at Weta Digital, and have just come off the post production end of The Hobbit. I work in special FX, so most of my coding is in the form of particle expressions, iterating through huge array’s of plants, that kind of thing, and usually in Python or C++. A far cry from organising the objects in a game! Also, because I’m just coming off of a film, I’m very tired from working hundred hour weeks, so if my post is ridiculous, annoying, or has been answered a hundred times already, at least yell at me creatively ![]()