I recently picked up a book on ATL and started learning about the basics of COM development. From what I've read so far, it seems that using COM to serve up a game engine within a DLL to a game executable is a feasible idea. Considering that you would have a well-known engine interface between the engine and the game, and that as the engine matures and adds features, the interface can be easily improved and used, I think it's quite possibly a working solution. You could then basically just distribute the DLL and the interface and new games could take advantage of the features by retrieving a newer interface from the DLL. I realize that DirectX is completely based on COM, but is COM a good idea for a game engine that overlays DirectX? Are there any significant disadvantages that would be suffered as a result other than the fact that it eliminates cross-platform code? Are there any well-known game engines that are currently based on COM? Thanks!