tout dépend de l'envergure de ton projet, de la réutilisabilité que tu veux pour ton moteur. Si tu te compares directement à un moteur clé en main quand tu dis SDK (genre ceux de Crytek ou Epic), ca va être bien plus complexe que ce dont tu as besoin si tu veux te faire un petit jeu de tir en directX 11 sans te poser de question.
La complexification vient des besoins des différents corps de métiers qui vont travailler avec le SDK (un graphiste ne va pas mettre les mains dans le code, même s'il veut ajouter un shader par exemple) ou du support du multiplatform (qui exige parfois qu'on mette les données au bon format pour la console ou la machine qu'on vise)
Il peut y avoir une multitude de raison pour rajouter de la complexité qui te passeront au dessus de la tête (faire de la compression d'animations, des optimisations de vertex buffers, ...) pendant que tu feras ton projet et c'est normal : si tu t'y attaques en solitaire, tu t'embarque dans un travail de titan, tu ne verras jamais le bout de ton jeu.
Pour l'instant, gère tes fichiers "natifs" en entrée (genre png pour les textures, fbx ou dae pour les modèles, etc ...) et ne te pose pas trop de souci sur les format des données.
Ensuite, pour ce qui est de l'architecture interne de ton moteur, tu vas sans doute te retrouver avec quelque chose de standard actuellement : un système d'entités qui aggrège des composants, un graphe de scène, des interactions entre les deux à gérer au mieux, un thread dédié au rendu alors qu'un autre thread est dédié au gameplay, etc ...
---------------
last.fm