QuakeSpasm-Spiked

  ---------
  1.  About

  QuakeSpasm-Spiked <http://fte.triptohell.info/moodles/qss/> is an
  even more modern Quake 1 engine based on everyone else's hard work
  that I stole, as well as some of my own stuff from FTE.
  (It's still GPLed guys!)

  It includes networking fixes and improvements, which means you can
  actually stand a chance of being able to use this thing as a server.
  It also includes a whole load of QuakeC extensions so that
  modders are no longer limited to what is essentially crippleware.
  If the way I explain that grates on you, then you're probably part of
  the reason why I got annoyed enough to spend my time on this.

  -------------
  2.  Downloads

  Sourcecode for this branch is available from:
  https://github.com/Shpoike/Quakespasm

  Windows builds are available from:
  http://fte.triptohell.info/moodles/qss/

  Linux and Mac builds are not currently available. These users will need
  to build their own from source.
  You may be able to find third-party versions prebuilt by other people.

  Users familiar with Quakespasm shouldn't have any issues. This thing
  will still feel like QuakeSpasm, except for the optional additions,
  so the Quakespasm readme is included, its pretty much all still valid.

  The included dlls are identical to the versions from an equivelent
  copy of regular QuakeSpasm, you should be able to have both installed in 
  the same game directory without issue - on the condition that they're
  both win32 or both win64, not a mix.
  Note that advanced users can use the -basedir argument in order to install
  engines within sub-dirs/where-ever in order to avoid conflicts be they
  win32 vs win64, qs vs qss, or even qss vs any other engine - this argument
  should exist in ALL quake engines, and thus it need not be just qss that
  is given it. However, this will not prevent other sorts of conflicts.

  -------------
  3.  New Toys!
      (This is all relative to the regular QuakeSpasm at the time of writing)

  ----------------------
  3.1.  User Features

  o  New 'extras' menu (inside options) that can be used to configure stuff.

  o  Smartjump feature added.

  o  Weapon impulse rollover
     ('impulse 8 2' will select the LG if you have it+cells, otherwise shotgun).

  ----------------------
  3.2.  Protocol Changes

  o  host_maxfps now caps all networking to 72 automatically.
     This means that you can FINALLY uncap framerates without flooding servers
     and without physics glitches.
     Note that to uncap framerates, set host_maxfps to 0.
     You may wish to disable sys_throttle too, if you care more about framerates 
     or benchmarking than electricity.

  o  VOIP. Yes, voip is a thing.
     +voip or cl_voip_send 1 to use.
     cl_voip_test 1 will let you listen to yourself (*sigh*) to
     get volume levels acceptable.
     WARNING: vanilla quakespasm distributes a libopus-0.dll that lacks encoding.
     This results in opus playback but not transmission, transmission will instead
     fall back on the much-simpler-but-inferor PCM-A codec, which is built-in.
     FIXME: QSS still provides the same broken opus version. I need to compile my own.

  o  Split signons. Maps are no longer limited by the number of
     baselines or static ents etc. Go crazy if you dare.

  o  Decent deltas (using FTE's network protocol).
	 You can have 5000+ ents visible at a time.
     They won't randomly disappear any more.
     Gracefully downgrades for old clients like QS or MarkV.

  o  More accurate view angles compatible with ProQuake.

  o  Rcon support compatible with most other NQ engines.
     rcon_password empty leaves this disabled.

  o  Single-Socket-Servers. You no longer need to re-route every single
     port to the QuakeSpasm Server. If you're hosting a public server,
     you simply need to (identity-)route a single port, as determined by 
     the port cvar.

  o  IPv6. Future ready! Even Windows 2000 had support for it...
     IPv6 was finalised 20 years ago, and its still not even
     available in most of the world.
     So lets change that!

  o  Master server support. Servers will be advertised globally. Set
     sv_public 0 to disable this.
     You can also view other people's servers too. Vital feature.

  o  File download support. No more hunting for maps!

  o  BJP3 protocol support. In case anyone ever cares.

  o  Partial clientside compatibility with DarkPlaces Protocol 7.
     No prediction, no csqc, a few other omissions.

  ----------------------
  3.3.  Modding features

  o  Support for custom huds (or even menus) via Simple CSQC.
     Check the devkit for an example.

  o  Supports MenuQC.

  o  Supports IQM, MD5 (for rerelease compat), MD3 (no shaders, no tags).

  o  Raised limits for the mdl format (much rewritten, vertex limit is somewhere north of 32k, which should be enough...).

  o  Fixed sprite framegroups (vanilla bug).

  o  Support for .spr32, although its a bit of a poo format.

  o  Supports .pk3 archives (ie: renamed zips) common with large mods.

  o  Package wildcard support.
     -nowildpaks on the commandline to disable, if desired.

  o  Particle system, for custom effects, explosions, blood, decals!
     Ripped from FTE.
     Supports both FTE-style particles as well as DP-style ones.
     Docs for each style are elsewhere.

  o  Supports .png textures. Not just for saving screenshots!

  o  set and seta console commands. No more crappy configs.

  o  Custom binds can be added to the binds menu.
     Because noone reads readmes.
     ... I seriously don't know why I'm bothering to write this.

  o  Late precaches. Because why not.

  o  Increased runaway limit, so that people may flee in terror.

  o  Player limit raised to 255. In case I ever get any friends.

  o  Lots of QC extensions.
     Not as many as FTE of course...
     Use pr_dumpplatform to see the new builtins/toys.
     If you're called Scrooge, you can block these from mods by setting
     pr_checkextension 0.

  o  Runs a range of new mods that will just fail in regular QS.

  ----------------------
  3.4.  Mapping features

  o  Raised limits:
     Static Entities     (limit removed)
     Static Sounds       (limit destroyed)
     Baseline Limits     (limit annihilated)
     Visible Entities    (limit nuked from orbit)
     Lightmap Data       (limit obliterated)
     Max Lightmaps       (limit amputated)
     Max Lightstyles     (now 4096 - via bspx, up to 16 per face).
     Lightmap Dimensions (now 256, for surface dimensions up to 4080qu)

  o  BSPX support.
     Lits can be embedded now, for fewer files to distribute.

  o  Lightmap scaling, for higher res lightmaps (or possibly lower).
     Requires tyrutils-ericw to use (_lmscale field).

  o  Autodetects watervis on a per-surface-type basis.
     Opaque lava and transparent water works fine.

  o  Doesn't bug out from tyrutils-ericw's -notex argument, which
     can help with certain copyright issues by not distributing textures.

  o  Doesn't crash from qbsp run with the -noclip argument.

  o  Understands the hexen2 bsp format, but don't expect it to work
     without rampant palette issues.
     (Use replacement textures. Also requires mod support.)

  o  Particle system, for rain or random custom effects!
     Emit from textures, or see below.

  o  Special fields that can be used on any entity without QC changes:
     "emiteffect" field - to specify a constantly emitting effect.
     "traileffect" field - for particles any time the entity moves.

  o  Optional HDR lighting (via LIGHTING_E5BGR9 bspx lump), allowing for much 
     greater overbrights without stacking styles (to compensate for overly dark textures).

  --------
  4.  Todo

  o  opus voip encoder library

  o  improve dev kit, with proper docs (ahahaha!).

  o  remove hull size limitation.

  o  rgb9e5 lighting.

  -----------
  5.  Copyright And License

  o  Quake and Quakespasm are released under the GNU GENERAL PUBLIC
     LICENSE Version 2: http://www.gnu.org/licenses/gpl-2.0.html

  o  stb_image component is labeled as public domain.

  o  Additional code and binaries are released under the same license.

  o  The public linux build statically links against various common libraries
     in order to reduce version conflicts (compiled on a Debian 8/Jessie system).
     For system integration, it still requires the SDL 1.2 package from your distro.

     . libjpeg 9b
     . libz 1.2.11
     . libpng 1.6.34
     . lobogg 1.3.3
     . libvorbis[file] 1.3.5
     . libopus 1.3-beta
     . libopusfile 0.9
     . libmad 0.15.1b

  -------------------
  6.  Links / Contact

  Homepage: http://fte.triptohell.info/moodles/qss/

  Source + Issue tracker: https://github.com/Shpoike/Quakespasm

  Forum: http://www.celephais.net/board/view_thread.php?id=61351

  ------------
  7.  Footnote

  Wow, you actually read this far? dude, you must be bored.
  Go play a computer game or something. Go now!

