I\'m trying to create a small WASD demo game in macOS. I\'m using NSEvent for handling the key events. To detect the key presses, I\'m searching for keyDown
You should ignore key-repeat events (with isARepeat true). Instead, when you get a key-down event, start a timer that fires however often you want to advance your game state. Advance the game state in that timer's firing code. When you get a key-up event, stop the timer.