It should also be mentioned that you can go very, very far with absolutely abysmal code quality when making a game, and you can waste an insane amount of time attempting to lay a solid code foundation.
Also, inheritance is not evil.
Also, inheritance is not evil.