What I did on the project
What I mostly did was making sure the difficulty curve was as smooth as possible. One strategy I had was to make sure the player spent the same amount of time on each level when play testing. This often proved that the levels were a good challenge, not being too easy or too frustrating, enabling the player to enter the flow state.
I also tried being as creative as possible with the levels and scenarios I built to not bore the player since the game play loop is quite simple. I had to entertain them with the environment and setting as well. For example; scaling the outside of a huge tower, dodging a large group of spiraling pillars switching between clockwise and counter-clockwise, and flying down a tunnel that gets smaller and smaller and then at the most claustrophobic moment breaking out into a great view over an underground city.
This project was especially challenging, as the programmers were tasked to make the whole engine for the game, so we decided early on to go for a low scope. We cut enemies and checkpoints in our game, going for a race game with an arcade feel.
On the game design team I helped developing the core game play loop of the game and adding features.
Our main feature and the reasoning behind it; A problem with race games and having a timer of like 2 minutes is that new players don't have context to how they are doing when they don't know how much of the level there's left. To tackle this we added a timer of 10 seconds ticking down killing them when it reaches zero. To not die, the player has to collect these "time orbs" riddled along the level in tricky spots. This gives a more tangible idea of how they are doing, as well as opening paths for risk/reward in the level.