For anyone who has put some thought into developing their own game in the past, you've probably heard recommendations against building your own engine from scratch. Anyone who has actually gone the extra mile and did it anyways, can probably give you a few examples of why doing so was a terrible idea. While it does allow the developer some increased control on how to construct the engine, the development time trade-off is too significant to ignore.
I'm bringing this up because throughout university I attempted to make a game engine from scratch a few different times. Each attempt resulted in me becoming bored of the game I was trying to develop and ultimately giving up on it. I learned the hard way that trying to re-invent the wheel by making my own game engine is just draining. It doesn't matter how good the developer is, a game engine is a large product and it takes a lot of time to build.
The one roadblock which I always got caught on was the construction of the level editor. I learned to make games using Game Maker back when it only costed $30 to get the full version. I still remember when they moved to the YoYoGames domain, I didn't realize how popular it would become at that point. What I liked about that platform was that it had a fully integrated level editor that I could use to position tiles, enemies and other pieces of the level. Everytime I got to the point where I wanted to start developing levels using the engines that I built, I realized it is much harder to do without an editor. I never learned to do level design on paper and knew making my own editor would take a significant amount of time. Unfortunately, this usually resulted in me giving up on the engine altogether.

This brings back a lot of memories.
When I finally made the decision to start and finish my next game, I decided that I would make use of existing tools to simplify my own development. Around that time I had read a lot of articles talking about Unity3D. It sounded like exactly what I needed to streamline my development due to the support for many platforms and a built-in 3D level editor. In hindsight, I probably could have just used Game Maker again since I had already created an adjustable platforming engine, but I wanted to venture into new territory.
Since then, I actually haven't consistently thought that Unity is the perfect solution for me. While it did offer me a simple way to build for many platforms and create levels, it also gave me loads of other features that I didn't really want. I won't go into too much detail in this post, but I spent a fair amount of time fighting against the engine which I chose to use in order to simplify my work. That being said, I did eventually grow accustomed to it and I wouldn't switch to another engine at this point. I've learned how to build around the things that I dislike about Unity, ultimately making it what I would consider the best solution for me after all.