データ構造ありきで考えるから難しいんだって。

描画エンジンクラス
サウンドエンジンクラス
コントローラIOクラス
ゲームロジッククラス
セーブデータIOクラス
データローダークラス
リソース共有クラス

こんな風に機能ごとにクラス化していけばいいと思うよ。
モジュール化の基本はOOPでも同じ。