Ever since I've started to develop games on Unity, I've come across many tutorials here and there. Since I was already a somewhat experienced programmer by the time, I quickly outgrew them and started to use the manual and reference guide. After a couple of years, I knew a lot about Unity, but I lacked the knowledge to use its full power. And that's what this tutorial is about!
I've learned to develop on Unity by thinking as an Object Oriented programmer. The tutorials showed me how to do this. People around taught me how to do this. There was a glimpse of another paradigm that quickly I learned to recognize as “the round-about, bad style way of accomplishing something”. That paradigm was called Component Orientation.
Now, don't get me wrong. Object Orientation is not bad, but you CAN'T put Unity at its best if you don't use Component Orientation (Unity is a Component Based System, after all). And what's most troublesome, is that Objects Orientation and Components Orientation often does not get along well. If you're solving a problem with inheritance, for example, chances are that you're definitely wasting components potential!
So, I've decided to make this short series of tutorials in which I'll develop a top-down shooter game called Infinite Sail. In this series, I'll try to to convince you why Component Orientation is a good way to go, and how to think in this paradigm. However, I'm not a professional and even less a master in this paradigm myself, so I might not be able to use its full power.
Finally, I'll assume you already know how to program C# and the basics of Unity. I don't think things will get so complex, but I might omit things that I think that are too obvious, and you might need to research on them yourself if you're a newcomer (i.e Mathf.Atan2).
To keep things organized (in the blog), I'll finish this part here, and start the coding in the next post. See you there!