My programming education is a hodgepodge of constant trial and error, frequent visits to stackoverflow as well as the unity forums, with a framework of the occasional OpenCourseWare programming class. So naturally I lack the broad cognitive overview that one gains through attaining a bachelors in computer science at a 4 year.
Generally I attempt to get any system I want to exist, up and running as soon as possible. I’m really just trying to get everything talking and shambling about on bare bones, it’s not pretty. Once it’s ambulatory I worry about the scalability and make sure I actually like the design (from the game perspective.) After a time, my shambling bag of bones gets prettied but then it starts to bloat uncontrollably and can no longer move. Whenever this happens, I do a deep dive into the internet and figure out what ‘core programming principle’ I didn’t know about this time The most recent instance of this was on my move to truly understanding object oriented.
I am lucky to have some friends who are proper programmers that are willing to look at my code and tell me what I am doing hideously wrong. This last offense was from swelling ranks of if statement blocks. When combat starts, what skills will he be using? What if the opponent is holding a bludgeoning weapon? The bludgeon defense skill of course! What if our gladiator is using a sword? The sword attack skill of course! What if our gladiator is holding an ax? The ax skill of course! . . .You can see how this can get out of hand quite quickly.
While the conversion isn’t complete, there are still a few ‘what if blocks’ hiding, awaiting their end. It will be done. I will no longer have think about what if I am wielding a chainsaw, that’s the chainsaws job.