HGE is the easiest game enginey thing I've ever had the chance to use, although it does carry with it the burden of requiring C++, which alone pretty much makes using it rather advanced (since you have to know what pointers are).
You create a HGE object, and then from then on you just create sprite objects, texture objects, etc, and it's all extraordinarily straightforward.
http://gpwiki.org/images/7/71/Main03.cpp is all the code nessisary to show some sprites on the screen.
If you want to use a different language, I haven't looked at it much, but SpriteCraft -
http://spritecraft.teggo.com/ - uses the Common Object Model so it's usable with virtually any language.
IF you want to code a game from scratch,then that means you have to know graphics apis, and all this stuff yourself. Having a pre-built engine means you can start much further ahead, and you dont have to worry as much about your code failing when dealing with memory pointers and stuff.
Plus, with HGE particularly, you don't have to link directly with the DirectX libs, so you dont need the DX SDK and you can do it entirely using free-for-commercial-use stuff like Code::blocks and mingw instead of having to buy Visual Studio.
If you want to do 3D, i suggest using
OGRE3D.