Сначала классные вещи - хорошая попытка в булетхелл и ОСТ на фоне прям очень в тему и очень зашел
Теперь к проблемам:
Я игру прошел со второго раза, в первый раз, я даже не понял что меня что-то ударяло, хотя визуально ничего не попадало, а значит и не должно было ничего сниматься
В таких играх хитбокс обычно делают буквально точкой. Плюс делают замедление на кнопку, где становится видимым хитбокс и движение делается точечным за счет этого. Либо сделать хитбокс всегда видимым -
Далее босс. В целом хорош, есть разнообразные абилки, как таргетные, так и просто волновые. Правда секция в лесу супер странная, потому что там можно стоять в одном месте буквально по середине экрана и ничего не делать, в тебя ничего не попадет. Для такого делается сдвиг в функции, чтобы не дать игроку соскучится. Чтобы добавить такого, допустим, босс делает спираливидную волну, то нужно делать сдвиг по количеству волны ( i ):
for (int i = 0; i < bulletsPerWave; i++)
{
float angle = currentAngleOffset + (360f / bulletsPerWave) * i;
float rad = angle * Mathf.Deg2Rad;
Vector3 dir = new Vector3(Mathf.Cos(rad), Mathf.Sin(rad), 0);
// тут спавн или пуллинг, не так важно, и задается поворот и направление
}
Код на C#, но суть та же
Плюс еще к боссу хотел бы добавить, что было бы хорошо с точки зрения геймдизайна - слабое место на морде, чтобы у игрока была мотивация двигаться не только доджить снаряды, но и максимизировать урон.
И отсюда дилема - нанести больше урона с большим риском, либо сыграть сейфово, но с меньшим уроном
+ таймер добавить, что если игрок тупо отсиживается и не пытается убить босса - то он проигрывае
