2018-02-07 00:22:07 +00:00
|
|
|
# tracer
|
|
|
|
|
2018-07-04 09:06:48 +00:00
|
|
|
**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 <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.
|
|
|
|
|
|
|
|
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.
|