
One thing I wonder, is it possible that Array#each will die because you are deleting objects in its iteration block, or is there a protection? Not that it happened while playing, but I'm curious because I remember having this problem. Oh, and you can shoot while dead ;)
The game states & transitions are very clean, I think I'm going to link this from the end of the tutorial. State management is really underdocumented right now :)