Quote Originally Posted by User137 View Post
I don't think there are good enough engines out there yet, to say that we have something finished for most needs. We don't hear about those supposed engines being used or maintained even monthly.
I'm sure that every single developer, author of such engines, will have reasons of why his/her engine is good enough and why are they doing it, but you are right - each of those engines is only "good" for whoever does them, but being "good" doesn't really mean "useful", even for the original author.

Think of it as if everyone would be trying to create his/her own car engine - we'd have many of these engines, all stuck in each person's garage, but you can't put any of them into any of the existing or newly built cars due to incompatibilities. This would be really sad as all those talented people could have used their talent to create something more useful both for themselves and people around them, rather wasting their time.

A popular YAGNI principle states that you shouldn't be working on particular functionality until you actually need it. You can find many other such principles, such as KISS, Overengineering, etc.

Therefore, once you have specific game idea in mind, and maybe even some spec for it, you can narrow down game's requirements, then work and implement them, effectively using minimal effort to achieve highest impact (the last part can be used to define "wisdom", by the way).

Looking at this engine, I see a lot of potential, but I would love to have a game associated with it that you can actually play; until then, it's just a random set of arbitrary functionality, not dissimilar with many others that I've linked earlier.

The real trick is that when you actually try to make a game out of your engine, is when you realize that you have to "adapt" your game ideas very much to the engine you've created, so you have to either redesign/rewrite your engine to fit your new game ideas (which would essentially restart the vicious cycle), abandon your game ideas, or deform them greatly to fit within the engine in such way that it makes the game senseless.

Instead, you can take the article's advice, and start working on actual game. After you have released one or several games, or their versions, you will start to find reusable patterns that you will eventually isolate, so they will be reused in multiple projects of yours, becoming your base framework (which, again, is not going to be an engine as such). Many of the "engines" Wagenheimer mentioned are exactly such frameworks, and even so they may not necessarily be useful for a particular project. For instance, in my personal experience, I've known GLScene for many years and it has a lot of fantastic solutions, but due to its design/implementation specifics (see my earlier post about functional and non-functional requirements), I could never use any of it in my projects, not even partially.