# tracer **Diclaimer:** Tracer is an ongoing project, which is still under heavy development. ## About the project This is my first attempt at a game, which is not a clone or port of anything. I've been working on it since February 2018 and is to date not finished. The game itself is written entirely in [Haskell](https://haskell.org), using my own game engine [Affection](https://github.com/nek0/affection). I aim to get the game into a presentable, playable state in September 2018 for the conference [Datenspuren](https://datenspuren.de/2018). But there is still quite a lot to do until then... ## About the game In this game you play an anonymous hacker/spy for hire. You have recently been hired to steal the database of a company. The database is stored offline on-site at the company's headquarters, where you set out to intrude using means of social engineering. ## Building For building the game you need an installation of `ghc` and `cabal-install`. ### NixOS There is a `shell.nix` file to build you a nix-shell environment as build environment. There is only one assumption in this file: Aou have to have a recent version of [Affection](https://github.com/nek0/affection) lying right beside the project folder. I have not yet released the needed version of the engine on hackage. To get the build environment, just run ``` nix-shell shell.nix ``` in a console from the project's folder. After the environment has been built, run ``` cabal run ``` to build and run the game's executable. ### Other GNU/Linux systems #### System dependencies To get the build environment, make sure you have a recent version (>= 8.4.3) of `ghc` installed acompanied by a matching `cabal-install`. Both of these are available from in a bundle called `haskell-platform`. You can also check your system's package manager for it. Additionally you need the development libraries for: * sdl2 * libglew #### Haskell sandbox Before you install any haskell packages I recommend highly to build a sandbox for the project. To do this, invoke ``` cabal sandbox init ``` in a terminal in the project folder. After that you need to add the source location for the game engine to the sandbox, which you need to have cloned on your disc beforehand. This is done by ``` cabal sandbox add-source /path/to/affection/ ``` Now your sandbox is ready for installing all haskell dependencies by invoking ``` cabal install --only-dependencies -j ``` This may take some time, depending on your hardware. #### Compiling the game To compile the game, run ``` cabal build ``` in the sandbox. #### Running the game To run the game, invoke ``` cabal run ``` in the sandbox.