JoeJ said:
I would say a serious game engine is an engine which can implement any genre of current video games, and also found some use in the industry to proof that.
I consider those more like rendering or 3d engines rather than game engines, or more like a game frameworks. I think a serious engine is more or less a fixed-type solution, which makes it possible to do one type of game. This would be fine for a beginner (for example to make an rts with an rts engine). Once he grows out that engine, i think he should build his own code from bottom to top. And languages like c and javascript are a very good path.
The biggest problem with c++/c#/java is that then he limits himself to jobs where he ends up at some company doing some aabb collision engine from 5000 lines because its masked under decades of classes and objects, and no one knows how it works, why it works, why its 5000 lines instead of 50 line, looking forward for a miserable career, and getting jeeted from his position after the company licenses a collision engine, desperately trying to find another company, where he ends up maintaining the font engine for a gui interface, which relies on its own library written 10 years ago, which crashes after rendering the 2000th font, and he gets tasked to fix it, but no one knows what is wrong with it, because it uses high level language features combined with 20 year old opensource libraries eating up 2 mbyte of binary space where the creator died 10 years ago and his last commit was ,,obsolete, please do not use it'', but you are not allowed to rewrite it, or change it to normal code, because the game will call that library at 800 different locations in the code. Before you think i am over-exaggerating, these are real world examples from my circles :P No wonder there are so many job offers for positions like this - as they never find the ideal programmer for the task.