There's always two sides to the debate as to whether or not a hobbyist or indie should ever bother with such a task, but I am going for it. I feel like I could learn a lot in the success and failure. The end result would give me a piece of software that I could reuse for rapid development. Of course, I also have a game in mind with which to use the engine, if I didn't I wouldn't even bother.
I've dubbed it "Machina Ex Machinis" (MxM for short) or "The Machine from Machines" because Latin makes everything sound a lot higher on the coolness scale. Current features include the following:
-Completely modular Object Oriented design.
-Written in the C# language.
-Cross Platform (thanks to Mono and Tao, Windows version may use MDX).
-Primarily 2D engine, will contain support for 3D rendering features.
-Highly scaleable through a modular design to promote a longer shelf-life.
Right now I am unsure as to whether or not I plan on making it open-source. I most likely will. As you can see I have a lot of details ahead, so now I'm working on the planning and design side of things. Hopefully more frequent journal updates will follow.
To get started, I would suggest some reading material:
3D Game Engine Architecture by Dave Eberly, and the accompanying website:
www.geometrictools.com which has the full (and very extensive) engine free for download. This is an excellent place to start, especially if you want to do object oriented design of the engine.
Good luck!