Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(1 edit)

That makes sense.

I've experimented a bit more with block cutting. Cutting in the opposite direction to what's indicated gives a score most or all the time. On the other hand, cutting at 90 degrees to the indicated direction results in either a small number of points or no points (X shown). Stabbing a block made for cutting typically sometimes gives points. Cutting with the wrong saber consistently gives no score. I haven't yet tried cutting a block made for stabbing. 

(2 edits) (+1)

Currently your score is obtained by adding the angle, cut and beat accuracy. I would suggest that after adding these three components, you zero the score when the angle or cut accuracy is zero. I did that in my personal copy and it feels right: it prevents cutting in the wrong direction or stabbing instead of cutting. 

It might be worth thinking whether one should zero the score when the beat accuracy is zero. I would personally prefer to keep that part of the scoring as is, however, since I normally play with the music volume at zero, as I am one of the small minority of people who don't like music.

Here's my code:

func note_cut(position: Vector3, beat_accuracy: float, cut_angle_accuracy: float, cut_distance_accuracy: float, travel_distance_factor: float) -> void:# point computation based on the accuracy of the swing
  var points_new := 0.0
  if cut_angle_accuracy >= 1e-10 and cut_distance_accuracy >= 1e-10:
    points_new += beat_accuracy * 50.0    
    points_new += cut_angle_accuracy * 50.0
    points_new += cut_distance_accuracy * 50.0
    points_new += points_new * travel_distance_factor
    points_new = roundf(points_new)
  add_points(position, int(points_new))

After testing, I think it's better to zero the score only if the angle is wrong, but not if the distance is wrong.