Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

if i dont missremember bombs and walls just break your combo on open saber, blocks hitted in the wrong direction should not give points, ill look into that later

(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.