Wow, thanks. =)
Thanks for the feedback, I’ll definitely add an “how to play” button.
“vampire” is just the normal attack of the Blimp mech when flying: it steals life from nearby enemies.
Writing the game was a lot of trial and error. Elm has a lot of documentation about TEA which is a very hierarchical architecture (things interact with their parent and children only), but I wanted a structure more similar to Unity’s, where all entities belong to a flat hierarchy and everything can interact with everything else in any way.
I ended up using the architecture described by Carmack http://functionaltalks.org/2013/08/26/john-carmack-thoughts-on-haskell/ and unfortunately some optimizations he talks about are not available because of limits in Elm’s types.
The TL;DR version is “use partially applied functions to describe game state changes” and I am amazed by how easy is to prototype stuff and add weird effects to the game mechanics, which is something I struggled with my previous game.
Now I can definitely see FP being really good for games.