Do not build a game engine unless your goal is to be selling a game engine. If you're going to make a game that requires a game engine, use another engine that's already built.
Lets put this in terms of web development: You wouldn't start building a webapp by building your own web framework first.
> You wouldn't start building a webapp by building your own web framework first.
Umm, yeah, I kinda did this. And as I am not ready to promote either the framework or the app, I can certainly relate to the OP.
Having said that, I don't regret my decision at all, and I'm now using the framework in some production work for clients. This is very satisfying.
I also have a mortgage and two kids, and I am paying the bills while my wife is in grad school. So my side projects must remain just that. But they keep me sane, so for me it's not just about the end result.
Having kids makes moonlighting much harder than having a day job does, IMHO. (But what do I know, I've been freelancing since Katrina.)
And I really am going to publish them this year! Really!
"You wouldn't start building a webapp by building your own web framework first."
If I were starting from scratch TODAY, then I agree with you.
I started a small ecommerce site back in 2003, and django, etc didn't exist. So I did develop a framework from scratch in C. 10 years later, it's the engine my new data storage startup (Nuevo Cloud).
Point is, things like web app engines and game engines aren't things that pay off immediately. They require _a lot_ of development, and during the entire time that you're working on it, you're basically handicapped until it catches up with other engines/frameworks. But after it's far enough along, it can be a big advantage, letting you do something unique compared to your competitors.
First, yes: You can only tell someone, "Don't reinvent the wheel" if the wheel has already been invented.
Re: your last sentence: Isn't it even more likely that it could end up being a complete waste of time and effort and be inferior to other frameworks/engines?
Lets put this in terms of web development: You wouldn't start building a webapp by building your own web framework first.