In Hamazed, you are a BattleShip pilot surrounded by flying Numbers. Your mission is to shoot exactly the Numbers whose sum will equate the current Level 's target number. The higher the Level (1..12), the more Numbers are flying around (up-to 16). And the smaller the World gets. Good luck !

animation, application, bsd3, education, game, graphics, library, program, Propose Tags , Imj.Game.Hamazed, Imj.Game.Hamazed.Color, Imj.Game.Hamazed.KeysMaps, Imj.Game.Hamazed.World, here, this, stack, code written by Rafael Ibraim, addition, ascii-art, ascii-game, ascii-graphics, collision, haskell, laser, mathematics, retrogaming
cabal install imj-game-hamazed-


What is it?

The monorepo for "Hamazed" game and its packages. Build Status

The haddock documentation explains the concepts used, both on the game side and on the game engine side.



Packages list

  • imj-game-hamazed
    • The game
  • imj-particlesystem
    • A library to create animated particle systems.
  • imj-base The "engine" library containing:
    • base classes and types,
    • geometry, text animations,
    • a "delta renderer" rendering in the terminal without screen tearing,
    • imj-base-examples-exe, a text animation demo: asciicast
  • imj-measure-stdout
    • An executable to measure the maximum capacity of stdout, and observe the effect of different buffering modes.
  • imj-prelude
    • The prelude I use in other packages.


Contributions are welcome!

Build / Dependencies


You need ftgl on your system, it is used to render fonts when using the OpenGL backend.

  • On OSX, you can install it using brew install ftgl


You can build using stack:

stack build --pedantic

And test using

stack test --pedantic