Salut à toi,
il n'y a pas vraiment de modèle fixe, tu es libre de gérer ton projet selon tes besoins et de façon à ce que le développement de ton projet soit le plus rapide et simple possible.
Moi je développe un petit jeu en 2D et au niveau de la structure j'ai fait en sorte de pouvoir modifier facilement chaque composants et ainsi garder cette base pour d'autres jeux, sans pour autant modifier la totalité du code.
Tu peux découper ton code en différents modules qui constituent chacun une partie du programme.
Par exemple toujours pou un jeu moi j'ai opté pour :
Une classe "Game" : Elle se charger de créer la fenêtre, de gérer la view, d'afficher le menu, de lancer une partie ect....
Une classe "Map" : Elle se charge de générer une map en fonction d'un fichier map et d'une texture.
Une classe "Character" : C'est la classe qui permet de gérer les personnages, jouable ou non, soumis ou non à la gravité ect...
Une classe CharacterAnimate: Elle se charge de gérer les animations de la classe Character (courir, marcher ect...)
J'ai aussi des classes qui me permettent de gérer la création de textures et de polices sans doublons ect...
Je t'ai donné ma façon de faire mais ce n'est pas la meilleurs, il est toujours possible d'améliorer pour rendre le programme encore plus dynamique, ce qu'il faut c'est que tu sois à l'aise dans le développement de ton code, que ce soit un maximum intuitif et dynamique pour éviter d'écrire 50 fois la même lignes si tu peux concentrer ça dans une classe.
Si tu veux encore d'autres informations tu peux regarder sur google: "UML Game 2D" par exemple, si tu fais un jeux sinon tu adapte ta recherche.
Tu verras des exemples pour structurer une application.