If you, after reading the article, still want to write a game engine. Continue reading.
What can the game engine you have in mind do? Is it capable of cross-platforming(Windows,Mac,Xbox,Ps3,etc)? Do you want to work with Win32, DirectX, OpenGL, etc?
Is it a 2D or a 3D engine? Will it be commercial, open source, private?
To get the cross platforming done you need to check how a window is created on all consoles, how the type id's are called, etc.
Here are some defines that will help you:
#ifdef _WIN32 || _WIN64 #elif __APPLE__ #if TARGET_OS_IPHONE #elif TARGET_OS_MAC #endif #elif __linux #elif __unix #elif __posix #else // unknown platform #endif
Win32, DIrectX, OpenGL:
Win32 is the standard library of C++. It's only supporting windows.
DirectX is the best choice, even it's not supporting cross-platforming yet. With the possibilities of this library you can create any application you have in mind!
OpenGL and DirectX were racing neck on neck a few years ago but they update of DirectX made OpenGL run behind. But it's an easy language to use.
Commercial, open source, private:
If you want to make a commercial engine like CryEngine, Unity... No chance on your own so forget this.
If you want to make it open source, be sure to really have everything bug-free, error-free. You don't want the clients to complain about your engine, even it's open source.
If you want to make it private, I think you are better of with a simple framework instead of an engine.
EDIT: I'm regretting this post immediately.