DarkPlaces engine 1.05 readme

Some of the changes to the game:

Optimized QuakeC interpreter

Bounds Checked QuakeC interpreter (optional, enabled by default, and still
faster than original quake - code can not harm your computer, well, except
using certain builtins in unintended ways perhaps)

Colored lighting

Optional lit particles (in color, of course)

External .lit colored lighting file support (intended for custom map authors,
who can now release classic quake compatible maps, with colored lighting in
DarkPlaces, QuakeForge newtree and other engines that support .lit)

HalfLife map support (place your HalfLife wads in quake/id1/textures/ or
quake/MODDIR/textures/ - HalfLife maps do not themselves contain textures...)

External texture support (.tga and .pcx supported, place a .tga or .pcx image
in id1/textures/ and it will override that texture in maps, also works with
HalfLife wads if they are listed in the "wad" key of worldspawn in the map)

Different dynamic light falloff (cooler)

Huge dynamic light speedup

Lightmap upload speedup

Selectable 24bit or 32bit lightmap format (gl_lightmaprgba 0/1) for compatibility, 24bit (RGB) is recommended for quality

Redesigned particle effects (may make them obey physics later)

Smoke trails

Bubble trails underwater, though currently only from rockets

Dynamically lit water

Rippling water surfaces (optional)

Fog (optional, map settable, emulated so it works on any card)

Interpolated model animations

Alpha blended sprites (disabled on Matrox G200, resulting in hard edges, and fading does not work on ATI Rage Pro)

Blended sprite animations (disabled on ATI Rage Pro)

Interpolated monster movement and rotation (very smooth) on server (will move to client at some point, so demos will benefit)

Transparent particles (partially working on Matrox G200 - particles are not
blended at the edges (hard edge) but smoke fades, different behavior on ATI Rage Pro - does not fade)

32bit color sprites supported (alpha disabled on Matrox G200, resulting in a
hard silohuette edge for G200 users - my only recommendation: upgrade)

24bit color model skins supported (same kind of change as the 32bit sprite
format, will be superseded by external replacement skin images)

TARGA and PCX textured skybox supported (map settable)

Stereo wav playback for music purposes

Non-directional playback of ATTN_NONE sounds for music purposes

Quake2 model support (anything but players, which are unskinned because they
do not contain a skin name list to load, I'm sort of considering adding
a "skin" console command and related network protocol stuff, which would also
support QW skins on the normal quake player model, although I'm not fond of
potential issues with loading models while the server is running, I also need
to support the weapon models...)

Lighting on sprites if desired (put ! anywhere in the sprite filename and it
will apply proper lighting, rather than making it fullbright)

Overbright lighting (optional, use lightmode 0 to get the old GLQuake style
lighting...  3DFX dithering looks nasty so 3DFX users might have to live
without overbright lighting)

Transparent polygon sorter (to draw polygons in the correct order)

Faster wall rendering (paving the way toward shaders and other stuff)

Fullbright support on walls (an easy addition due to the wall rendering system)

Skybox blocks view just like quake sky polygons did

Brightness controls ("brightness" and "contrast" console variables)

Directional model lighting (only a 0.1% slowdown and looks great :)

Vertex array based model rendering (fast like Quake3)

No messy .ms2 model mesh files (no glquake dir anymore either)

64 player support

Completely rewritten dynamic lighting engine, using a hybrid lightmap and vertex approach



New console commands:

loadsky <name>
loads a skybox, if the images can be found, searchs moddir/gfx/env and
moddir/env for them.
(a skybox named base is 6 images named baseft.tga, basebk.tga, baseup.tga, basedn.tga, baselt.tga, basert.tga)

fog "density red green blue"
experiment with numbers around 0.1 for density, the color is 0.0 to 1.0 range.

contrast <0 to 1>
1.0 is normal, reduce it in steps of 0.05 or so to brighten the screen,
gets pretty washed out below 0.9

brightness <1 to 5>
1.0 is normal, increase it to brighten the game, 5 is ridiculous

r_waterriple <0 to 16>
0 is flat water, 16 is very choppy, higher than that is just plain crazy...

r_particles <0 or 1>
0 disables all particle effects, 1 enables them.

pausedemo <0 or 1>
halts demo playback until you type pausedemo again, also works for recording.

play2 <filename>
plays the sound, a non-directional 'play' without distance fading.




movetype enhancements:

MOVETYPE_WALK on non-players - bot coders rejoice!

MOVETYPE_PUSH does not reset solid to SOLID_BSP, but rather to what it was
(fixes teleport train crash in end.bsp)

MOVETYPE_PUSH supports rotation
(untested, just enabled the Quake2 stuff for it)



mod enhancements:
add the included darkplaces.qc file to your mod and read the comments in it for info on the features.

fragment of wishlist:
Precise aiming (yeah yeah... belongs in a TODO list for new protocol version)
HalfLife model support (EWW the format is horrid)
Quake3 model support
Completely dynamic lighting (wishful thinking...  the CPU drain would probably be horrible)
Vertex lighting instead of lightmap
Model geometry tracing (bullets hitting the polygon mesh, not the bounding box)

Changes since previous update to readme (see below):
added back r_dynamic, r_particles
fixed several particle bugs (bubble trails were not working, other stuff I forget)
square particle textures, rather than triangle, reduces fillrate demand
lit particles
forgot what else

Changes since before recorded history (1.03?):
fixed HOM around view window when size < 100
made new model lighting optional (about 0.1% speed difference in my tests)
changed back model lighting scale to match world
emulated fog
eliminated most of the graphics options (gl_flashblend, gl_polyblend, r_lightmaps, r_norefresh, r_lightmaps, various others...  getting complaints already! :)
glowing lightning beams (not the QBism glows, these are real dynamic lighting)
improved directional lighting (per vertex direction and distance)
bounds checking on QuakeC interpreter (still faster than original)
QuakeC interpreter sped up (around 40%?)
128 dynamic sound channels (instead of 8)
particles are sorted like other transparent polygons
256 dynamic lights
"slowmo" cvar (scales time... 1.0 is normal)
fixed r_waterripple
removed BeginDisc (caused NVIDIA driver problems?)
redesigned chase_active (broken, will be fixed)
LINEAR text filtering only if conwidth < glwidth
QC player movement
multiple min/max (FrikaC's idea)
optimized wallpoly copying
optimized depthpoly copying
optimized out unnecessary softwaretransform calls
corrected misspellings in QSG extensions
updated QSG extensions
fixed color blocks in recent changes to score lists (remove 2 chars, make it less tall, use less spacing on main score list)
allow skin colormaps 14 and 15 (freaky :)
longer messagemode
relative dynamic lighting on bmodels
(numerous things omitted and forgotten)

