Games have a lot of objects, which do a lot of things, but sometimes these objects do some very similar things as well. This creates a great opportunity to practice object-oriented programming, an important programming paradigm that influences the application architecture and provides performance optimizations.