It's a DirectX9 based engine, using the D3DX sprite functions for drawing - pretty basic. I got up and running with the tutorials at
http://www.directxtutorial.com/LessonList.aspx?listid=9 , and then used the DX9 references on MSDN after that. For creating the window etc. I just used the Win32 API (I learned by looking up the functions from the basic Win32 template that comes with Visual Studio 2012).
For C I read the GNU reference manual (
http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html ) and for C++ the tutorial on
http://www.cplusplus.com/ , and learned the basic C/C++ libraries and STL from that site too (vector<> map<> and string<> are really useful). I used some of the Boost libraries too - property_tree, filesystem, random, and a couple others - lots of good stuff in there -
http://www.boost.org/ .
This is getting long

. Anyway for engine structure I stole a lot of ideas from Unity - I like a lot of their architecture and organization. Tried to make it so I can swap in an OpenGL renderer and other platform windowing/input etc. pretty easy in the future.
And yeah, FMOD for sound - they have a good help file.
BMFont for sprite fonts - had to cook my own renderer using the font files it generates.
I plan to do fancy stuff in the future (shaders, advanced audio, a little 3D here and there, etc.) so am mostly building my own stuff, but for small sprite-based games something like SDL or SFML would be a lot less time up front and more portable out of the box (but less flexible for doing advanced stuff later maybe).
Hope that helps

thank you for this great details it will be helpful for anyone googled something similer
