I would not have mentioned OOP's drawbacks at all.
It has SOME drawbacks.
Game programming, and programming in general, is about managing complexity. OOP is an "almost" perfect tool to do that. Use OOP to help make code make sense.
99.99999% of all indie games are going to be limited by your ability to cope with complexity, and not performance. And when there are performance problems, 99% of those are due to using the wrong algorithm (e.g. n^2 / searching within a search, instead of a more appropriate setup), not related to OOP at all.
The only drawbacks of OOP are:
- It can add complexity when you shoehorn your non-OOP idea into OOP. (Two lists of things can remain as lists. They don't NEED to become fully encapsulated independent objects with getters, setters, that can only be operated on one at a time. A CPU is much faster with lists than singular objects.)
- It's slower. Slower is a hugely relative turn though. 99% of code running modular, or OOP are going to be indistinguishably the same speed. It doesn't matter how long your code takes (1 nanosecond VS 2 nanaseconds) when your code is calling a library / system call that takes 1 millisecond to execute.
Basically, new-comer advice: DO NOT WORRY about speed until it IS a problem. THEN, look first at using the right algorithm (and understand algorithm complexity). THEN after all of that, look at the coefficients which is something OOP is affecting.
There's no point is saving 1 millsecond when the routine takes 1 second to complete.