I've only just started but I already know that I LOVE the work that you have put into this project. The levels and tutorials are awesome and well thought out. As an experienced programmer I am humbled by the knowledge you've sunk into the text. I LOVE the music tracks too. This, to me, embodies real programming / hacking / software-engineering.
I'll admit that I had to stop myself from looking into the code "too close" after reading your comments in main.py -thank you for that honesty and candor. This is truly a work of art.
For those on recent 16.04 Ubuntu systems (mint 18x, etc.): There are several dependencies that need to be met -'pip(3) install <blah>' and wash rinse repeate. For those running pyenv environments it is likely that you may have to wrangle with numpy a little bit -it's not bad if at all.
Also, spoiler-ish: learn what setup.py does before you dig too deep. I'd been away from python basics for a few years so I'd forgotten what I was supposed to do with the package. All the clues are in the README otherwise.
Much love.
Get further in before you decide whether it's a "work of art" or not. :P
Funny thing about the music; it's all Creative Commons stuff but for some of the tracks this game is the only place they exist anymore, or at least they don't exist anywhere indexed by Google. The site I downloaded them from is just another paid stock music site now and if they have the stuff archived they aren't providing it anymore. Means I don't have to worry about it showing up in other games and such, I suppose.
In any case, thanks for the positive feedback. The game itself hasn't gotten an update in a year but that's only because I've been rewriting the "complete garbage" graphics library that backs the game and just started the work of porting it to the new replacement. It's pretty discouraging looking at four year old code that all of a sudden doesn't even build a playable game anymore, but comments like this keep me going.