Every time I try to make one, I come across a key mechanic that prevents me from doing so . . .
One idea is to change your mindset from there being a key mechanic that crashes and burns your project, to just a challenge that needs hurdling.
When I come up against a brick wall, I make a small test project to try ideas out. Such as a very simplified version of your game just using a few coloured blocks as enemies to try different approaches to stop enemies stacking. There are even plenty of ideas above to try out in a small test project.
Sometimes I get stuck for days on something, like when my game hit the 2GB ram limit and wouldn't allow me to add any more sprites to my game, entirely my own fault for not remembering that there was a limit lol. I'd promised new content to players and I couldn't even add anything. I'm still pushing through this problem by learning to externally load sprites and optimise files / texture pages etc even now and have had to re-write a lot of code. In these times it is REALLY tempting to throw the towel in, but if you are
tenacious and
really stubborn as in thinking 'I don't know how to do this, but I'm going to learn, because if someone else like me can do it, then I can (insert swear word here) do it too!' you can push through each barrier or even learn how to get round the barrier - even if it takes you hours, or even days.
So in a nutshell, hitting a brick wall is normal, but pushing through setbacks is where you can learn so much, and is the key to finishing projects, especially during the notorious last 10 percent of work needed before you release your game. Or when you newly release a game and there's a nasty bug that needs fixing asap.
The good news is, the more mini projects you complete and the more setbacks you push through, the less setbacks come up in the future as you've already hurdled half of them or similar ones.
That top down shooter you are making might turn out to be a gem of a game that players will love - so please don't give up on your project - use tenacity and just stubbornly push through all the barriers.