Skip to main content

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

MayoGhost

2
Posts
3
Followers
A member registered Jun 26, 2020 · View creator page →

Recent community posts

(1 edit)

Yeah! The scoring works like:

Name Timing window Points Bar effect
Nice! +-0.03s 1000 Increases bar by 1 unit
OK +-0.06s 500 Increases bar by 0.5 units
Boo... +-0.12s
0 Decreases bar by 1 unit
Miss +0.15s 0 Decreases bar by 1 unit

You can also score an extra boo if you hit a note 1 second away. It will not consume the note and you could still hit it again later. It was intended to prevent “cheesing” the third level if the player just kept hitting all 4 keys to the beat (but it’s not that effective right now)

(2 edits)

Thanks, glad you liked it!

Each circle has a hitTime property. I could get the current song time with LOVE using songTime = mySong:tell("seconds"). The note should be hit once hitTime is equal to songTime

Each circle also holds 2 math functions: easeFnX and easeFnY. These math functions take in the difference between the hitTime and songTime and returns a number representing the position it should be drawn on screen. So when hitTime and songTime are the same, the difference is 0. So when easeFnX receives 0, then the x position should return where the middle line is. The further away easeFnX is from 0, the further away the note will be from the middle line.

Each beatmap is stored in a lua file. They have access to a function like assembleNote(hitTime, easeFnX, easeFnY) to generate the notes. And I just call it a bunch of times in the file for each note.

Sounds tedious (it was haha), but I made a crude level editor that helped me write it all out!