I would say that The way of thinking when you model the problem by its single elements is the base of object oriented modeling.
In a sufficient complex program you have classes that represent the problem that you want to solve. In a bank app coustomer, account, in your case, player, enemy, maybe level.
I other parts you have classes that represent the solution* of the problem, or the implementation part, such as regex class, maybe a sprite class, string class an so forth.
An object is a collection of functions and variables that have a common purpose, in some cases represent a real-world object, but it is not the mayority of the cases.
I suspect that the reason to a lot of programming book authors compare the programming language object with real world object is make is simple to get a first understanding of what OOP is. But if the author never continue to tell what an object really is a lot of people can be confused, at least for a while.