That's such a wide and complex topic, So unfortunately I can't give a detailed explanation about it all in 1 reply.
For gameplay I find experimenting a lot to be very helpful, especially with the basic variables(enemy hp, run speed, bullet size, bullet speed, frame data, fire rate and so on ). Making the game fun on a basic level(like just running around and attacking enemies) is super important. The camera should also be carefully considered, like it's speed, zoom level and behavior.
In twwwr I spent a lot time just iterating on the most basic elements, with the game just having a player and 1 enemy. Instead of giving the player a complex moveset I only gave them one attack and made sure it was as fun as possible. After that the design was mostly coming up with bullet-hell patterns.
Game feel is also a big deal, and I learned a lot about it from here and here, as well as just looking at other games.
Hope this helps.