| Nearly everything is a special case... so it makes it hard to make an engine that is generic yet dynamic enough.|
Now I agree with everything you posted Disch, but feel I should comment on the quote and make clear for other people that are considering making their first game or don't have much experience with game making.
For some reason whenever someone decides to go into game programming (myself included) they think they need to have a game engine. Well to put it plainly you don't and it goes much more smoothly when you skip the engine and just write the game. Now this doesn't really apply to AAA quality game only indie type games, but then again I don't think beginners would be creating AAA quality games anyways (No offense :P).
The reason why is that since they are just starting they have no idea what should go into a game engine and what should be left out, what code is going be to reusable and what code is pointless in a engine. The 99% of the time when someone creates a game engine it ends up one of two ways.
1) They spend days, months, even years on the engine and never actually start building their game code and just end up giving up. So they have a half complete engine that is just laying around and no game to speak of.
2) They actually do finish the engine and even the game, but it took 3 or 4 times as long as it should have (Because you made you engine). The game is also usually not what it could have been because you spent so much time on the engine itself. And the worst part of it all is most likely you are left with a engine that is built around a specific game and can not be used in the creation of other games.
The point of this is that they don't need a game engine to make a game, and it doesn't necisarilly make the game better if they use a engine.
Now I'm not against ever using a game engine, the complete opposite in fact. All I'm saying is if you are just beginning in game programming it would be much better to skip the game engine all together until you gain more understanding of what goes into a game and what is commonly reused. The whole point of a game engine is for it to be reused on variety of projects.
Now if you are still keen on writing a game engine while you just learning whether it be for learning purposes or to create a amazing game I ask you to just try this.
Instead of writing that game engine create 5 little games. In all them games start pulling out snippets of code that you tend to reuse or that you think would be helpful in other projects. Put all them codes into a library or something for safe keeping. Then after you finish them 5 projects go through all them snippets of code and look to see what ones you reused a lot on your projects. This will give you the starting blocks for your engine and also show you what should be in a engine and what shouldn't be.
Sorry for hijacking this thread with my post I have just been seeing a lot of people lately on forums asking how to make a game engine and also saying they need a engine for their game.
Also here is a article that puts what I was saying into much better words and is much easier to understand then my rambling.