We made one for our previous games, but have switched to Unity for our latest. As your games grow in complexity, the developer ecosystem around more popular engines is helpful for not having to build out every piece of functionality (much of which is just redoing what others have already figured out how to do better a thousand times) from scratch. It’s not a silver bullet – we are extremely picky about the code quality and performance of any plugins we use and still create our own implementations often – but it makes a big difference.
It sounds like OP has written their own engine to do one particular thing better than any other engine; that can be cool to see if the trade-offs in the rest of the scope aren’t bad.
I understand that. For me, tooling it the hardest part, especially as I decided to go with certain things that aren’t one hundred percent compatible with preexisting solutions, or are still relatively new (MIDI 2.0).
I always have a slight regret for not making my own engine for Cloak and Dasher. I use Unity, but I coded about 98% of it myself. I even ended up writing my own UI layer on top of theirs since I didn’t like their controller support. It probably would have made things a lot faster and smoother if I didn’t keep fighting the engine to get what I want.
I’m currently working on my own engine in Rust. It’s focused on future games I want to do, so it’s not going to be something universal. It’s not my first attempt, though I used mostly 3rd party engines in the past (Unity, Godot). But they always make it difficult to make things the way I want, I’m tired with them.
The engine is open-source, and you can get it from here: https://github.com/ZILtoid1991/pixelperfectengine
In short: it’s written in D, and it’s main purpose is to display “pixel perfect” retro graphics, without the janky mismatched pixels other engines often allow. Currently it uses SSE2 to render its graphics, but I’ll try to use some OpenGL tricks to make it also work there (rendering to a low-resolution texture, then upscaling it, with the added benefit of getting some 3D capabilities too).
I tried making my own game map out of just php and divs once, mostly out of nostalgia for Neopets. Then I wisely decided javascript would be a million times better.
I then experimented with making characters move around on a divs based map instead of canvas. It was… okay. Probably not optimal.