So I've been working on-and-off for several years on my hobby project. The project is around 90% complete. It includes a game, a level editor, as well as a general tool for adding/modifying game objects and mechanics. The engine also supports plug-ins that allow new functionality to be added via DLL's.
Although I'm happy with what I've accomplished so far, I sometimes have this nagging feeling that I could've accomplished everything so much quicker if I'd used Unity or Unreal instead of starting from scratch with C++.
There were a few factors to my choice:
My biggest concern was uncertainty that an existing engine would give me the flexibility to do everything I wanted, especially the level editor and engine tools. I think it's fair to say that engines like Unity and Unreal are proven for developing games, but it's not clear to me if this also applies for non-gaming applications like level editors? The tools are a very important aspect of my project because one of the primary objectives is to encourage creativity in players, including non-programmers (ideally, I want the level editor to be accessible enough that even a child can use it).
I also had some concerns over how much control I'd have over the precise functionality of an game itself. For example, collision detection is usually talked about in terms of cuboids and spheres, but this wouldn't have allowed me to get the exact feel I wanted in my game, and I have no idea how much leeway an engine like Unity would give me to customise something like that.
I'd hate to invest months in learning an engine only to find that it can't do something I need.
Now, with all that said, I should probably confess that I don't really know anything about modern game engines. I pretty much mastered the Build engine map editor (Duke Nukem 3D, etc.) in the 90's and I dipped my toes deep enough into UnrealEd to make a few decent deathmatch maps for the original Unreal, but I literally haven't touched any game engine tools since then.
My only exposure to Unity comes from reading a blog from a developer who was working on a similar project. Unfortunately, that blog seemed to confirm some of my fears about using an engine like Unity. Perhaps that wasn't a fault of Unity; maybe the developer didn't have enough experience or just didn't care about doing things in the best way.
So I wonder what your thoughts are on this? I'm too deeply committed to my own engine at this point to change, but I often wonder how things would've turned out if I had opted to use an engine such as Unity or Unreal.
I suppose at least I've gained some good experience from developing my own engine!
So what do you think? Could I have done better with an engine?