Complete Roguelike Tutorial (Summer 2017)
Of course, people were invited to use their own language of choice and library of choice if they wanted. So we'll be using Haskell, obviously.
We'll also be using a display library that I developed called Hexes. We'll start with version 0.2 and possibly moving to a later version if some sort of major deficiency comes up and I need to update the library before this project is done. It uses OpenGL (via gl) and GLFW (via GLFW-b), so it works with basically any desktop OS that that those libraries support. If you really want a program that can run in a terminal instead you can try with something like vty or brick, but those don't work on Windows, so bleh. Hopefully our game code and display code will be sufficiently disconnected that you could compile the program for either display system easily enough anyway.
In terms of the non-graphical things that libtcod provides, we'll be doing those things ourselves. I'm sure there's haskell libraries available for the different things involved, and we'll talk about some of them perhaps, but we'll going to cover how to implement the parts ourselves as part of this exercise. Even Hexes itself is a "handmade" sort of thing that you could do on your own. I'm no OpenGL expert or anything, I just did the Getting Started guides and then cobbled together a display using lots of little quads that draw from a texture file.
If you do know Haskell you won't need those deep explanations, so you can perhaps just jump to the code and see how things are setup and you'll probably be good to go.
Further, it's based on a guide that's for Python programming with an imperative-OOP lean and such, so it will probably take on a little bit of a different shape than a normal Haskell program might. I'll try to not let that affect me too much though.