The comments are great but for me it's old-style c makes it hard to follow, it uses lots of short var names that are forward declared, doesn't pass length with char* arrays, etc. But I don't want to criticise any particular thing, because it works amazingly well. It's one of my top 10 games.