Object oriented programming has actually been around since 1962 when two Norwegian computer scientists Ole Johan Dahl and Kristen Nygaard developed a language called SIMULA, which was designed to help simulate real world events. It took object oriented programming nearly 40 more years to finally get accepted as a practical tool, so just because an idea is proven to work doesn’t mean people will accept it if they can continue being comfortable and getting paid to keep doing something that doesn’t work.
To overcome the limitations of subprograms, computer scientists invented object-oriented programming abbreviated as OOP. Like structured programming, which encourages you to break a large program into subprograms, OOP encourages you to break a large program into smaller parts, or objects. Like subprograms, objects divide a large program into smaller, interchangeable parts.
The main difference is that subprograms divide a program into separate tasks whereas objects divide a program into real-world items. There’s no single “right” way to divide a large program into objects. Two programmers tackling the same problem will likely divide the same program into different objects. The way you define your objects reflects how you view a particular problem. This object may need data, representing X and Y coordinates, to define the monster’s location on-screen.