diff --git a/README.md b/README.md index d64ea15..5e4b18f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,114 @@ # tracer -Game in the making. Nothing to see here yet. +**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.