Straightforward controls, straightforward physics, straightforward enemies.
The complexity of the game comes from the level design, and it's brilliant. Instead of making any one mechanic too complicated, they string together a series of simple and intuitive mechanics together to make something complex.
The difficulty on the first run is pretty stanard in the precision platformer genre. You die a lot as you get aquainted with the game, and the parts that seem hard are all because you're generally still improving. After you've done a section it gets significantly easier less because you've memorized the level and more because you've just gotten better at the game, although knowing a level layout doesn't hurt.
The game also handles replayability extremely well. You have two ways to play the game "better". Speed running and score running. Both require you to essentially give up on placing checkpoints, which help you survive in your initial runs. But how you approach a level in is vastly different depending on what you're going for.
Speed and score runs require memorization, but that's because figuring out what to do is half of it.
Speed runs are all about avoiding combat and getting through the levels quickly. Occasionally that means taking damage to rocket yourself across the screen, and actively avoiding the free point orbs.
Score runs, on the other hand, are all about forcing the AI to do what you want, then using the map to perform the most point intensive combos. The combos aren't obscure either, which is refreshing. Each attack has a clear job and is easy to perform, and the map is what decides the best combo.
My only gripe is that there's no map editor.