This is actually a pretty good game man! the atmosphere is great, the upgrade system is solid, and the level design is impressive. is it just me, or did people beat the game without the music. when I found this out, it made a huge difference.
But I have noticed a few things about the player that just doesn't feel right.
- When the player touches the ground, it kind of feels like he can fall through it if he falls fast enough. I'd suggest changing his Rigidbody2D collision detection from "Discrete", to "Continuous".
- When I was playing the game, if the player gets hit, sometimes, the player loses 2, or 3 hearts in a few frames. If this was intended, I'm down with it. If not, fixing this one is kinda difficult explaining this in the comments section. But it requires 3 variables. "private float InvincibleTimer;" will be stored as the time left before you can get hit again. "public float InvincibleTime;" is how long your invincibility will last. And "private bool IsInvincible;" will determine whether you can get hit or not. now in the code where the player takes damage, put all of that code in an "if (!IsInvincible)" function. now inside the function, add this line of code in there "InvincibleTimer = InvincibleTime." and in "Void Update", Add these 2 functions in there. "If(InvincibleTimer > 0) {IsInvincible = true; InvincibleTimer -= Time.deltaTime;} else if (InvincibleTimer <= 0) {IsInvincible = false;}"
- The final one is the spikes. once you stand still in the spikes, you won't get hit. This can be fixed in the Rigidbody2D. try changing the sleeping mode from "Start Awake" to "Never Sleep". Warning: This is where bug "No. 2" is needed.