If your game is
1. 2D
2. Only target one kind of platforms (e.g. only Win+Linux+Mac but no mobile, or only mobile but no desktop/console)
You'll find almost any open source engine works. Rolling your own 2D engine based on a barebone one is just like writing a parser. If you never wrote one it seems like an impossibly hard problem. It's not.
Modern 3D graphics are built upon a lot of algorithms. From TAA to volumetric rendering to cascading shadow maps to SSAO to voxel-based global illumination... the list goes on an on. Surprisingly, none of these algorithm is truly hard. But you need to implement all of them to make things visually match up modern standard.
For 2D it's more like you know how to pass the offset to a shader? Boom you have sprite animation. If you want some super unique effects with clever shaders, yeah that's not easy, but using Unity doesn't make it less hard anyway.