I think "from scratch" needs to be defined before this can truly be answered. One could argue that using Direct3D, OpenGL, or Vulcan isn't "from scratch." One could also argue that making a game with Unity, Unreal, or UltraEngine is "from scratch."
Likewise, a game engine could be defined as any tool or toolset used to develop a game. It could also be defined as any tool or toolset used to manage and structure the development of a game.
So it really matters where you define your barriers. Unless there are standard definitions that I am not aware of, I don't think there is any one right answer to this question.
Let me know if I'm totally wrong I'm just an occasional hobbiest who isn't aware of much.