An innovative top-down shooter where your primary tool alters the environment.
Pros: simple and easy to understand, score-based rather than ending-based (great for jams!), one of the most creative uses of the theme I've seen. I love the fact that the chains actually alter the environment forcing you to plot out which order you trap the enemies in to avoid making it impossible to access the remaining runes without killing the ones that are already chained. The balancing is also very good, especially for your first jam, nearly every time I got cornered felt like a skill issue and not like I was getting screwed over by RNG.
Cons: the enemies spawning randomly will sometimes lead them to spawn right next to you which makes damage unavoidable due to RNG. There are two main methods to combat this, one is to have a reference to your player's transform either in a game manager or in the inspector if you find game managers too intimidating, and when you generate your random Vector2 (we'll call it spawnPos) just do:
if (Vector2.Distance(spawnPos, playerPos) < safeDistance)
{
//run randomizer again
}
or my personal favorite method using Physics2D.Overlap:
//constant string for player tag so that you don't mistype it
private const string player = "Player";
foreach (Collider2D col in Physics2D.OverlapSphereAll(randomPos, safeRadius)
{
if (col.tag == player)
{
//run randomizer again
}
}
or if you want to avoid strings you can attempt GetComponent on a script that's only on your player:
foreach (Collider2D col in Physics.OverlapSphereAll(randomPos, safeRadius)
{
PlayerMovement player = col.GetComponent<PlayerMovement>();
if (player != null)
{
//run randomizer again
}
}
these can be further optimized with things like while loops and separated methods to do a lot of the math more efficiently but I've already gone long-winded (if you're an experienced game programmer who already knows these techniques or even better ones and just didn't have time then I apologize for the tangent, however, if you're new to programming and ever want a hand optimizing scripts feel free to hit me up on Discord AudioDread#7997 for advice/review with future games. I'm always happy to help the community.
The only other con I have (and as a professional sound designer I may be a bit biased) I would have really loved to see some less stock sound effects. I HIGHLY recommend for your future games that you learn the basics of a DAW (digital audio workstation) such as Reaper, Nuendo, or even Audacity as a free option. Just learning the basics of layering and using really simple plugins is all you really need to at least put a unique spin on your games and just a few minutes of editing a stock sound effect to make it sound more distinct can make a world of difference.