tracer/README.md
2018-09-30 11:00:44 +02:00

103 lines
2.2 KiB
Markdown

# 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:
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 <https://haskell.org> 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.
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.