7 hours ago, NikiTo said:
When people have to program a whole game by themselves, aren't they in a natural way creating their own engines(kind of)?
Furthermore, if somebody has this goal in mind, he could build a game plus an engine almost simultaneously.
Yes. This was the normal thing before commercial engine licensing became a thing. When you say "engine" nowadays, people picture the Unity or Unreal editor GUIs... but back in the day, it basically meant the massive framework that had been built up underneath any one specific game.
Once you'd made one game, and were about to make another one, you copy the first game, delete all the parts you won't need, and start making the second game from there. The parts that you've kept, are your "engine". This kind of practice still carries on today at a lot of game companies!
Early commercial engines, such as Quake or Doom, were never meant to be commercially licensed engines! People went to Id software and begged to buy the code, and they laughed and said "sure, for a million dollars", and people actually paid them... They became a commercial engine provider by total accident. However, they still didn't bother trying to make general purpose engines. Quake 2 and Quake 3 were rewritten mostly from scratch with the specific needs of those games in mind. It just so happened that Quake 1/2/3 were generic enough as FPS games that everyone else wanted to use them as an "engine", so Half Life, Medal of Honour, Call of Duty, etc were born out of Quake by accident too...
If you're making an engine, this is exactly what you should be doing. You should have a list of requirements for the game that you're making and then build ONLY engine features that are actually required for that game. Any other method will put you on the path of writing engine code for 6 years and still not having a game.