@ Canvas: I'm doing this in C# while using the Unity3D engine.
The things you talk about are pretty much the SOLID principles I've read somewhere, which reinforces how important they are.
@ DevLiquidKnight: Alright, UML will be useful, but not until I know how to design the architecture in the first place, so those books you recommended will be the first step.
@ Zoomulator: Your answer was very helpful. This is exactly the kind of information I was asking for, especially this bit:
Doesn't have to be UML, just atleast graph it out on paper so you have a rough idea how things are connected that is clear to you (and the future you). Some people like going with the top-down approach, all the way down. I don't remember which book it was that described the process, but it went something like this:
Start with a general overview of the whole system. Then for each object, make a general overview of it that's more specific. Re-iterate until it'd be easier to code it than to describe it, and so code it.
Also I really like how the event driven system sounds and is exactly what I'd prefer to build. Can you give any pointers on how you start building such architecture?
Again, I'm doing this in C#, if it matters.
@ L. Spiro: While I do agree with you that experience is a great way to learn, I'd argue that a good preparing education is a even better. Even now, I could just go ahead and start cowboy coding blindly and get something working, but it will be a mess and not robust, which is vital to this project of mine, because its meant to last.
I'd rather spend time studying and understanding how to properly use the tools I've got and have good understanding of healthy coding principles before starting to build anything. Doing otherwise is pretty much the same thing as shooting yourself in the foot. It will be frustrating and the end result won't be good either.
Sure, you could refactor constantly if you choose to develop your game in this brute-force like manner, but in the end that will also take time and effort, which you could have used to study the subject properly in the first place. Thats my opinion on this.
Anyway, I find your blog really helpful and not just the links you posted too, you've got some other very neat posts there too like, this one and that one, so I'm going to spend a good amount of time reading your blog, so thank you for writing it.