aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: c2bb7affe6b51633e5297d73c289b4e0a07eeb70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    /!\ ALART /!\ ALPHA PROOF OF CONCEPT /!\ ALART /!\

Currently the SM/MMS side of things builds exclusively against SDK 2013
Multiplayer. Accordingly, there are some underlying 32-bit assumptions.

srcds-nix
=========

This is a Nix package set and library for dedicated server hosting and general
content authoring with the Source Engine.

It currently features: 

* fetchers for Steam content: `fetchDepotCache`, `fetchDepotFile`, `mkDepot`
    * Courtesy of a patched DepotDownloader, derivations are fixed-output on
      the contents of deterministic manifests, then on the SHA1 hashes within.
    * This is quite distinct from the usual `steamcmd` approach, but yields a
      far more reproducible server environment. Additionally, the network
      traffic between `lib.fakeHash` and trust-on-first-use is measured in
      kilobytes, not potential gigabytes as with [steam-fetcher].
* AMBuild
* MetaMod: Source
* SourceMod
    * a standard extensible package set for plugins and extensions, including:
        * `mkDerivation` analogue: `buildSMPlugin`
        * setup hook for `spcomp` include paths
        * coming soon: development shells to replicate your server setup
* vtex2, Strata Source's VTF converter, which uses a heavily improved fork of
  VTFLib built against AMD Compressonator, which gets rid of the infamous
  [green tint] among other things.
* a less ambitious Linux port of VTFLib for compatibility

Usage
-----

* `default.nix` lets you `callPackage` this repository the old-fashioned way
  to get the top-level package set.
* `overlay.nix` adds it as `srcdsPackages` to the target. `srcdsPackages` is
  considered its canonical place in nixpkgs.
* `flake.nix` exposes:
  * `packages.${system}.default` is the top-level package set.
  * `overlays.default` points to `overlay.nix`.

[steam-fetcher]: https://github.com/nix-community/steam-fetcher
[green tint]: https://developer.valvesoftware.com/wiki/Fixing_DXT_Green_Tint_Compression