ECS (Entity-Component-System) has been the staple of game design since the 90’s. Unfortunately, it isn’t great in some ways – especially for the naïve implementations. While it sounds very object oriented to create objects for all the monsters, characters, rooms, and so forth – it turns out that the object classes usually become unmanageably huge, become overly complex when adding new functionality (duplicating functionality across types, start having multiple inheritance problems, etc), and often perform poorly once you get large numbers of assets.
Text roguelike games are great microcosms of game design. Because they don’t have fancy graphics – you can quickly learn good and bad patterns of game engine design.
Here Bob Nystrom, the author of Game Programming Patterns (free and worth checking out), describes some of the classic ECS issues he ran into when he built his roguelike game and how he used design patterns to solve some of them. Definitely worth the 20 minute listen as a good introduction to game engine issues.