A number of reasons why OOP combined with careless programming sucks
Usually I try to be polite and not insult programmer doing bad OOP code, but today was one particularly day where I once again had no other option but to almost scream by the sheer mount of incredibly horrible code and program design. I don't even know where to start. First of all, a lot of people in this company seem to just not think about how they add stuff the their program. I've seen such truly nightmarish stuff where every proper programmer (whether OOP or not) would fall apart just thinking about it. Secondly, most of it is a result of trying to keep their own code in the same style of the underlying engine. This is bad idea by default. If you can't keep the same degree of stability or design philophy like the engine designers did, then you're likely to confuse your own problems with engine problems as well as doing stuff more worse than it would by would hand. Also, every engine isn't always a really appropriate way to realize your game. In fact, if skill, engine and used-to-dos don't fit, a lot of bad mojo and ignoring an engine's capability to process warnings is a bad in general. Every big commercial engine does handle errors well enough to be always sure that you really SHOULD catch everything that might happen. I've seen artists uploading half-finished files breaking down the whole system until a programmer noticed that he didn't catch his own, the engine's and hs co-workers return values. This brought down the whole system and it's getting worse if coders rework stuff with checking atleast whether the game starts or not. It's totally stupid. I mean they got all sorts of stuff they are changing and committing without checking it. They turned Python programmers into running C++ bombs and god know how often they blow up (currently, atleast once a week). And the worst of all is that they have any temporary branch for their own changes. The tactic is to dump in everything they have and only fix stuff efficiently if there's no more time. When the producer announced to change the whole thing to run via Scrum I didn't think of how important the many branches were that should come with it. Now that I realize how destroying the whole blocked day was, I start to hope that this setup will arrive as soon as possible. Seriously, who in hell is so dumb to not start the game after implementing new stuff. Compilation goes quite fast right now, so this is NO excuse. Anyway, back to OOP, it has no use if you just create singletons as this can be done with global variables and simple initialization order as well. It's disgusts me to just think about how careless these programmers work. That's why you shouldn't let convinced script programmers to get their hands dirty without a change of mind. I mean what's the use of code you don't document if you're only able to detect bugs if you coded it recently. What's the use of scattered object and temporary lists inside expressions if you can't watch their result afterwards cause your debugger can't track them this way. Right - there is no use. It's totally dumb and uneducated. Seriously, now I understand why don't get much money - lack of care and utter ignorance!