Sc4Freak wrote:Oh, and I forgot one thing that I was going to say earlier:
Making a game engine on its own is actually not such a good idea. Game engines exist for only one purpose: to make games work. Constructing a game engine in a vacuum just plain doesn't work. You end up with a giant mess of very abstract, generic, reusable, and elegant code that's completely useless for game development. The best way to build a game engine is to build a game with an engine, then pull out the reusable parts into a standalone engine when you're done. That way the development of your engine is guided by the actual needs of building a game - and when you're done, you can point to your game as proof that your engine actually does work in practice.
tl;dr: make games, not engines.
Very much this. I have the weird feeling I said this in some other thread, but yeah - this. Doing abstract stuff is mostly useless for several reasons.
1. You don't have anything to show or anything complete.
2. Unless you're very experienced, you most probably have no idea what you need, or how to organize the thing that you know that you need.
Just think of some game - it shouldn't be too simple, but it shouldn't be too complicated, either. Think of some features that you want in it, what would those features require.
If you want to build an engine that can handle some of the most important (or more correctly said, commercially popular, those are things that practically every engine has) things up to date, here's a (very in-comprehensive) list of 'systems' your engine should have:
Mesh rendering, particle rendering, a material editor, resource manager, rigid body physics, collision detection, soft body simulations, animation, cutscene scripting, terrain analysis for navmesh generation, UI solution, serialization manager, some kind of reflection system, raycasting, shapecasting, shadows, post processing fx, control schemes, camera editor, procedural animation system.. and countless more that don't come to mind. Trying to implement all of those things from scratch, for a single person, is a herculean task, and one that you most probably can't accomplish unless you're very very stubborn (or motivated