DarkPlaces is a Quake modification I have built over the course of 6 years on and off experimenting, it got somewhat of an overhaul when the Quake engine source code was released, and I began developing a custom OpenGL-only engine for it and other mods, which supports Windows WGL and Linux GLX, and has greatly improved graphics and image quality.
It can not easily be described, as it is simply an improved Quake, not a total conversion (yet, anyway).
The realism of shell casings falling to the floor, much improved bullet impacts, 32bit color alpha blended explosions, blood flying everywhere and sticking to the walls...
Behind the scenes the code has changed a great deal, I was not content with the original QuakeC code, and I have greatly changed the engine while maintaining compatibility with normal quake modifications.
Please read the ReadMe for additional information.
New darkplaces update:
Revised collision code for q3bsp again, collision_enternudge/collision_leavenudge cvars have been set back to 0 and removed due to problems on terrain maps such as the Nexuiz map ons-reborn, the other collision improvements should still help significantly.
New darkplaces update:
Fixed a model lighting bug on certain q1bsp maps where some entities were being lit incorrectly (black green armor in dm4 being one example) - thanks to jitspoe for discussion leading to this fix.
Fixed the cvar sv_jumpstep which was being inverted (this made it too easy to jump up ledges in id1).
Changed collision code to prevent getting stuck in many q3bsp maps and some q1bsp maps (the new collision_extendmovelength cvar affects this, as well as collision_enternudge/leavenudge).
Fixed occasional black screens caused by r_useportalculling (a portal closer than the nearclip plane was being culled in some cases, portal bounds are now expanded according to r_nearclip).
Fixed a bug in vid_soft when using a custom compiled SDL2 client (the regular SDL client is SDL1 based) where the decals would show garbage due to alpha compositing, alpha compositing is no longer used (thanks to divVerent for fixing this).
New darkplaces update:
FXAA added : r_fxaa 1 in console to activate it (thanks graphitemaster)
r_glsl_postprocess will no longer force a blur effect unless the corresponding uservecs are in use (thanks divVerent).
Updated ip address for master server dpmaster.deathmask.net and added ip6 address for it as well (someday we'll use threaded dns lookup instead).
Increased effectinfo.txt limits as requested by JKoestler who managed to have *that* many effects defined.
Allow .rtlights files to use style -1 for compatibility with fteqw-produced rtlights files.
New vid_desktopfullscreen cvar will use your desktop resolution instead of changing video mode, this is better behaved on all platforms but especially Linux.
gl_vbo_dynamicvertex and gl_vbo_dynamicindex have been optimized (but seem to still be slower on desktop GL than using conventional vertex arrays).
Fixed some issues with the unmaintained D3D9 renderer pertaining to vid_sRGB and vid_stereobuffer.
Fixed a bug with EF_FLAME and EF_STARDUST effects still emitting particles when paused.
Changed behavior when stuck in brush models such that you can will not be stuck in an entity such as a door or platform, only stuck if in solid world geometry (an intentional quake behavior).
New darkplaces update:
Fix a crash on OpenGL 2.0 (DX9-class) video cards where glGetUniformBlockIndex is NULL, this was not properly guarded with an extension check, OpenGL 3.1 or higher drivers (DX10-class) have this function.
New darkplaces update:
added support for RMQe maps like "Something Wicked This Way Comes" by Tronyn, this map format is slightly worse (smaller coordinate limit) than the BSP2 that darkplaces already supported.
fixed bug with the two shalrath not spawning in hip2m3 - this took a far-reaching analysis and bugfix effort for droptofloor and MOVETYPE_STEP in general, this should improve compatibility with other maps too.
sv_gameplayfix_ cvars default off now, this should make most mods compatible by default rather than requiring tweaked cfg files, these cvars do default on for non-quake games however (Nexuiz, Steel Storm: Burning Retribution, etc).
skeletal model animation is now hardware accelerated where possible (OpenGL 3 / DX10 cards), this greatly improves fps in Nexuiz and other games with skeletal models.
New dpmod release to reenable the sv_gameplayfix_ cvars that are disabled by default now.
New darkplaces update for the survivors of the end of the world:
support for X360 gamepad (joy_enable 1 required).
fixed hip1m1 gold key door bug.
fixed some bugs with effectinfo.txt parsing that could cause effects to not be properly initialized.
sound() builtin now supports speed control (pitch shifting) and 128 channels with snd_channel*volume cvars controlling their volume level independently (make weapon sounds louder/quieter compared to other sound types, etc).
reduced memory usage (sounds are now resampled during mixing rather than at load time).
better support for static (non-animated) iqm models.
added dpshaderkillifcvar keyword in q3 shader files which allows alternative shaders to be used based on cvars (games can use this to swap in different kinds of water shader among other things).
removed r_hdr cvar (use r_viewfbo 2 instead).
multiple bugs with vid_sRGB 1 have been fixed.
made mdl rendering mode faithful to software Quake by removing an unwanted half-pixel texcoord offset.
added cvars r_nearest_2d and r_nearest_conchars which let you decide whether to use nearest filtering on the entire 2D UI or just the console font.
support for BSP2 format (modified Quake bsp with higher limits) to match the new hmap2 feature.
fix missing runes on the hud (due to previously bugged detection of hipnotic/rogue qc code).
fixed playback of intro demos in Malice game.
fixed a bug where playing back demos and changing slowmo cvar would not immediately take effect.
New hmap2 release bringing support for much more complex maps (beyond Quake limits), it is much less likely to crash on complex maps now and will write BSP2 format if necessary.
New dpmod release with some minor fixes.
New dpmaster master server release from Mathieu Olivier, version 2.2 brings the following features:
Flood protection against abusive clients (contributed by Timothee Besset).
Support for Return To Castle Wolfenstein servers.
Support for Wolfenstein: Enemy Territory servers.
New DarkPlaces engine release to fix the following issues with the previous release:
OSX build now supports .ogg music and .ogv theora video recording as intended (and as the other platforms do).
New DarkPlaces engine release to fix the following issues with the previous release:
Really fixed the solid water bug on dedicated servers this time.
New DarkPlaces engine release to fix the following issues with the previous release:
Fixed a bug where dedicated servers would incorrectly load Quake1 BSP Files and treat water as solid.
New DarkPlaces engine release with many improvements and bugfixes, including:
Significantly optimized rendering, much higher framerates than previous release.
Photon traced 3D texture radiosity in realtime world mode (r_shadow_bouncegrid 1).
Experimental Software Renderer (vid_soft 1;vid_soft_threads 4;vid_restart), not recommended for serious play, framerate is poor (but it renders very accurately), not feature complete yet; no fog for instance...
Experimental Direct3D9 renderer choice (vid_dx9 1;vid_restart), not recommended because the D3D9 shadowmapping method is very slow compared to the OpenGL method, with shadows off it performs almost identically to the OpenGL 2.0 renderer.
In other news, the DarkPlaces-powered game Steel Storm: Burning Retribution has been released on Steam, for those who love overhead arcade shooters and multiplayer mission editing.
Also important, the web-based Quake Expo 2011 is well underway and nearing the end of its week-long run, be sure to check out the booths.
Updated download page with autobuild download links for those who want to follow the latest in-development version, also added separate downloads for Windows and Windows 64bit without the Linux and OSX builds to decrease download size for most people.
New DarkPlaces engine release with many improvements and bugfixes, including:
High quality shadowmapping - r_shadow_shadowmapping 1 to enable, or r_shadows 2 for shadowmapped model shadows only.
New Bounding Interval Hierarchy collision culling system to improve server performance on Q3BSP maps (mod_collision_bih cvar is on by default).
In other news I am actively working on the console Nexuiz game coming this summer on Playstation Network and Xbox Live Arcade, powered by DarkPlaces engine, I had lots of fun at GDC, thanks everyone for the support and this game is going to rock (on the topic of licensing please see the interview at timedoctor.org), this means I have even more reason to actively maintain DarkPlaces engine and will continue adding great features.
There is now a DarkPlaces wiki for modders, see this inside3d thread for more information and to contribute.
New hmap2 (q1bsp compiler) release with the following changes:
Fixed rotating door compilation, it was generating corrupt hull data for player and shambler collisions, now works perfectly. (To see this in action in your own q1 maps, try making a "func_wall" entity and setting the "origin" key to the center of rotation you want, then set "nextthink" "999999999" and "avelocity" "0 90 0" to see it spin 90 degrees per second on yaw and push you around)
New dpmaster master server release from Mathieu Olivier, version 2.1 brings the following features of interest to game developers:
A game type value can now be any name, not just a number. (Needed by Warsow 0.5)
New DarkPlaces engine build, this is purely a bugfix release - the ogg dlls were missing in the previous build, making sound/cdtracks/track002.ogg and other emulated cd tracks fail to play (if you were not aware of this feature, see the readme for instructions on encoding and installing the Quake CD music for play without the CD in the drive).
New DarkPlaces engine build, bringing more of the usual optimizations and bugfixes, this release is mainly to fix a permissions problem that kept the Mac version from starting in the last stable build.
New dpmaster master server release from Mathieu Olivier, version 2.0 brings the following features of interest to game developers:
Game type filters in server list queries (and ability to restrict supported games in the master server, may be of interest to game teams hosting their own master server).
Updated documentation and many fixes and improvements.
(Note: dpmaster is only of interest to game development teams who have a game engine that supports the Quake3(r) master server protocol, or the extended dpmaster protocol, it is not of interest to users)
New DarkPlaces engine build, this release is mainly to fix the crash caused by recent ATI windows drivers when changing resolution or quitting.
New DarkPlaces engine build with the following major changes:
Made savegames compatible with other Quake engines.
Extended savegame format with new features (no longer glitches when you reload a savegame on a mod that randomly replaces monsters or items with other ones).
Disabled use of GL_ARB_texture_non_power_of_two extension on Mac because it often crashes or runs slowly (some graphics chips fully support it but not all, and crashing is unacceptable).
New DarkPlaces engine build adding missing files to the Mac build (SDL.framework was not included and thus it would not run).
New DarkPlaces engine build with a fix for specular lighting issues.
New DarkPlaces engine build including Mac binaries, mostly bugfixes since the previous release.
New DarkPlaces engine build, many minor improvements have occurred, as well as optimizations and bugfixes.
Note: no Mac binaries included this time, I have not set up compiling on a Mac I have access to yet, if you need Mac binaries please email me to remind me.
New dpmodel build with fixed md3 normals (they were being calculated incorrectly - apparently Quake3 uses a strange latitude/longitude angle format instead of pitch/yaw), this utility converts .smd model files (saved by HalfLife export plugins for various modeling programs) to .dpm and .md3 model formats.
New hmap2 build with better time estimates for vis and light, still not multithreaded however.
Posted Elric's new dpmaster version 1.7, featuring a perl-based test suite, several bugfixes and minor one-time memory leak fixes, increases in default server limits, corrections to techinfo.txt, and other improvements.
(Note: this server-list database program is only interesting to independent game development teams and tournament administrators)
New DarkPlaces build:
Improved performance on lowend cards (probably only slightly) by skipping a screen clear.
Improved performance of reflections on water.
Improved performance of GL 2.0 shader - glow layer was accidentally always enabled.
Improved performance of GL 2.0 shader - directional shading was being used in Quake1 levels despite the fact Quake1 maps do not have any directional model lighting information (Quake3 maps do), this was using a very slow software code path to generate directional shading information on models, which went unused.
Fixed bug with loading a savegame while demos are playing.
You can now load/save multiplayer games (just remember to have everyone rejoin in the same order before loading).
Improved performance of decals (split particle system into particle and decal subsystems with more finely tuned code for each).
More than doubled blood opacity, it was hard to see before at default settings.
Probably a few other fixes and changes I should mention bug forgot about.
Known bugs: water does not reflect sky for unknown reasons (not a new bug).
New dpmod build:
Updated episode 1 rtlights files from romi's site.
Updated screenshots page due to popular demand.
New DarkPlaces build, this is the same as the previous one but adds Mac OSX binaries which failed to build last time (due to my friend's Mac being offline).
New DarkPlaces build:
Fixed the guardian boss in mission pack 2 (Dissolution of Eternity) not waking up.
Fixed some misplaced code causing the score display on the left side of the hud in multiplayer to show up even at viewsize 120.
Added support for mouse button 4 (left side button on some mice) in -dinput mode (in case anyone actually uses that), button 5 (right side button) still not supported in -dinput though.
Improved fps significantly in some maps such as masque.bsp (Masque of the Red Death) by using larger lightmap textures for maps with lots of lightmaps.
Rewrote OpenGL 2.0 shader in a way that may make it work with broken GL drivers on Mac OS X (it already worked on ATI Radeon X1600 and above but not other cards, let's see if this fixes it on other cards).
Implemented (very slow) experimental pixel shader water (Try the following commands if you wish to try it:
r_glsl_water 1;r_shadow_bumpscale_basetexture 4;r_restart;r_waterscroll 8;r_novis 1;r_wateralpha 0.1)
In other news I put up a tech notes page which may be helpful to other engine developers, or to anyone interested in the technologies used in darkplaces.
Rygel's 2.7GB ultra texture pack is amazing, be sure to set gl_texturecompression 1 before installing it however, it may not even load otherwise, and it takes about 3 minutes to load the first level!
New DarkPlaces build to fix timing issues in Nehahra movie playback at scene transitions.
New DarkPlaces build and dpmod build (just for good measure), many bugfixes and improvements.
New DarkPlaces build, this has the following significant changes:
Renders faster using the GL_ARB_vertex_buffer_object extension if available to store the map, models, and shadow volumes on the video card for faster drawing.
Fixed crashes and broken lighting (which mostly affected ATI cards which have a more strict shader compiler).
Fixed a significant issue in timing code that had been causing subtle timing issues such as inconsistent ping times, erratic shot timing, jerky movement of players using prediction.
Known bugs and workarounds:
If your cl_maxfps is near your rendering framerate it can be very jerky, if this happens please enter this in the console:
cl_nettimesyncmode 1 (a better fix is in the works)
DarkPlaces source code has moved from the cvs versioning system to the svn versioning system, if you are an avid DarkPlaces tester obsessed with having the latest in-development version at all times, or are maintaining patches for darkplaces for your games/mods, please do a fresh svn checkout and migrate your changes (use cvs diff >patch.txt and then patch -i patch.txt to apply it in your new svn checkout, you may need to copy other files as necessary), all future changes will only be committed to the svn, the cvs will not be updated, and will eventually die whenever icculus convinces all other projects to switch to svn.
All future build zips will lack the CVS directories and can not be updated (sorry, but the .svn directory doubles the size of every zip, which is unacceptable), if you need to update please do a checkout instead of downloading a build zip.
This also means that I can now add more developers to the DarkPlaces project as I now have control over the logins for DarkPlaces (for cvs, icculus was having to add real unix users for every developer and told me he wouldn't add any more, so some people were only able to submit patches to me, now they can commit directly without my intervention).
If you are just a player, don't worry about this versioning system nonsense. :)
New darkplaces engine and dpmod release:
Fixed a really bad bug in dpmod deathmatch 7 code that made all monsters spawn at only one of the spawn points, rather than a randomly chosen one as was intended.
Fixed bug that made ambient sounds not play (except in demos).
Doubled default hearable sound range to match ProQuake.
Added support for the strange macros often found in FuhQuake/ezQuake .loc files.
Cleaned up the options menu and added some selectable presets for effects and lighting.
Changed default value of con_closeontoggleconsole cvar to 1, to put an end to the nearly 2 years of complaints about the tilde key not closing the console.
Added code to setinfo pmodel/emodel when connected to a quakeworld server (incase anyone cares about what version of player.mdl/eyes.mdl are being used).
Fixed bugs in server query code when using sv_protocolname QUAKE, the server now properly responds to quake1 query tools when running quake protocol.
Disabled cl_bobmodel code when cl_bob is 0 for better compatibility with quake configs that expected the gun bobbing to be off when view bobbing is off.
Fixed a crash in the "maps" command.
Optimized "maps" command which was taking seconds to execute with large numbers of files.
Disabled movement prediction code on Quake servers, as it never works right without proper synchronization of moves (which only DP6/DP7/QW protocols offer).
New darkplaces engine release fixing some bugs with .loc files that proquake accepted but darkplaces did not parse properly, no other noteworthy changes.
New darkplaces engine and mod release:
Many bugs fixed, some new features, fixed some map compatibility bugs (items falling out of levels and such), fixed many network issues (MUCH better now), some new network features (such as automatic downloads of missing files from darkplaces servers), fully updated readme (which has been converted to HTML and posted here, and now includes cvar and command lists), some optimizations, supports more OpenGL extensions to accelerate stencil shadows and other features, changed the look of rtlights to be a bit more realistic (small performance penalty).
Removed pentium3-optimized builds (darkplaces_p3.exe and such) because they weren't really any faster from the few reports I've gotten, this reduces download size.
No longer posting nexuizengine builds because the Nexuiz team make their own anyway.
Note: no Mac version included in this release either, sorry.
New darkplaces engine release:
Several bugs fixed, not much in the way of new features.
Note: no Mac version included in this release either, sorry.
Happy QuakeExpo 2006 everyone!
New darkplaces engine release:
Many changes, bugfixes, features, and optimizations...
Note: no Mac version included because my friend's Mac is currently out of commission (drive failure, already replaced but the system is not fully functioning yet).
Happy 6-6-6 everyone!
New dpmaster release, version 1.6:
Several getserversResponse may now be sent for a single getservers.
A getserversResponse packet can no longer exceed 1400 bytes.
The maximum number of servers recorded by default has doubled (now 256).
The default hash size has been increased from 5 bits to 6 bits.
Several updates and corrections in the documentation.
Compilation on FreeBSD was fixed.
A couple of minor changes in "COMPILING DPMASTER" (in techinfo.txt).
New dpmod release, just more tweaks and scraps of code of interest to modders, nothing really new. (Note: I'd welcome a critique of the highly experimental Ragdoll stick physics code in gore.qc from an experienced physics programmer, I'd like to find out how to fix the many problems with the stick physics)
New darkplaces engine release, monsterously huge summary of changes follows: (the changelog itself is much larger)
Fixed a bug that was making models twice as bright as they should be in the merged renderer.
Added a special check for entities with NAN origins in server networking code to prevent a crash (NAN origin means it has no location at all, it is everywhere at once, a very bad situation).
Black and LadyHavoc changed normal/tangent smoothing to use areaweighting rather than summing normalized vectors, this looks a little better and is a lot less cpu work on animated high poly models (r_smoothnormals_areaweighting enables/disables this).
Black fixed some bugs preventing Tenebrae light entities in q3bsp maps from loading in the rtlights loader.
Elric fixed a crash with the mod coopmod.
Improved memory debugging capabilities of developer_memorydebug 1 setting, now detects double-free attempts and other errors quite reliably.
Added v_deathtilt, cl_deathscoreboard, and cl_deathnoviewmodel cvars to make certain clientside death behaviors optional.
Fixed a really bad mistake in the client login process, it was sending \n (newline) characters at the end of the signon commands (the server does not expect newlines in these commands).
Added a small check to prevent the "cmd" command from forwarding an empty command to the server when given nothing to forward.
Added support for GL_NV_half_float OpenGL extension for a noticable lighting speedup on GeForce6 and a minor speedup on GeForceFX.
Black made changelevel start a map if there is no server running. (so changelevel is now similar to QW's map command.
Black added DP_CON_EXPANDCVAR and DP_CON_ALIASPARAMETERS extensions.
DarkPlaces should now support 64bit file sizes on non-windows platforms since windows makes it more difficult (that's 16 Exabytes, or 16,384 Petabytes, or 16,777,216 Terabytes, or 17,179,869,184 Gigabytes).
Fix problems with missing cubemap textures in GLSL.
Tomaz fixed a bug in the Windows client with vsync where it was not applied when the window first opened.
Black merged the menu and server QuakeC virtual machines for the most part, in preparation for client QuakeC.
Fixed a bug that was only allowing one active lightning beam owned by world.
Fixed a rare bug where stencil shadow volumes were not projected far enough to reach the light box.
Default Offset Mapping off (as it messes up model skins).
Black added sv_playerphysicsqc to control whether the qc physics function is called (if it is available).
Black added support for loading LNO files produced by fteqcc (for reporting line numbers of QuakeC errors).
Black made the server try up to 100 ports above the default (26000) if the default one fails to open, automatically assigning ports when running multiple servers.
Added a patch from Christian Holmberg to make XK_section key (I do not know what this is) type ~ character for binds.
Removed r_editlights_rtlightssizescale and r_editlights_rtlightscolorscale cvars (now they behave as if they were both 1.0) added r_editlights_edit commands radiusscale sizescale and colorscale (use these to fix old-format .rtlights files).
Cured the 'can't bunnyhop' bug.
Black added support for 's BX_COLORTEXT extension. (BX = Betwix engine.
Fixed crashes after level changes involving lightning bolt models that got unloaded during the level change (was happening often in The Ascension of vigil).
Changed server to set self to world before calling SetNewParms qc function (to intentionally crash any broken mods which assume self is valid in that function).
Fix a bug with savegames containing line breaks in their titles.
Tomaz added gl_picmip (Texture Quality) slider and r_restart button (Renderer Restart) to Graphics Options menu.
Tomaz added -demo and -demolooponly options (-demo plays a demo and then quits, -demolooponly stays in the demo loops and only allows the escape key, which quits).
Elric added basic support for Q3's "getstatus" messages from Q3 server query tools (based on a patch by divVerent).
Fixed several issues in filesystem searching functions (now "dir *.cfg" should actually report the right files, as well as "ls maps/*.bsp" and so on).
Fixed a compile problem on Mandriva Linux (patch by Zero_Dogg).
Elric added DP_SOUND_API targets (NULL, OSS, ALSA, BSD, WIN, COREAUDIO) in the makefile to allow choosing different sound drivers.
No longer averages ping times, just uses the latest ping time (now all the ping numbers are nice round multiples of the server sys_ticrate).
Fixed several bugs with prydon cursor tracing (including it constantly reporting world origin as the impact point).
Fixed a bug that was causing impulses to lost very often.
Now only gives shareware Quake warning if running GAME_NORMAL (Quake).
Black added the cvars net_slist_timeout and net_slist_maxtries to query servers multiple times.
Server browser now queries servers over time to avoid flooding out requests and getting very bad pings (net_slist_queriespersecond and net_slist_queriesperframe cvars control the rate of queries).
EvilTypeGuy added Solaris 10 x86 support.
Tomaz revised the embedded font to support all the special Quake font characters.
Fixed two severe geometry bugs in the zym loader (which were causing parts of models to not render).
Fixed a bug in SDL client which was preventing typing after vid_restart.
Fixed some crashes with server commands (kick, view* commands).
Fixed an endian swapping issue in Q3BSP loading (so Q3BSP loading now works on Mac).
Added somewhat hacky support for Mac OS X .app packaging to allow proper Mac OS X binaries to be made.
Fixed bmodel trails (if anyone ever dares to try them) to come from the center of the bmodel, this also cleaned up the sound code (and fixed a weird bug with a sound played in the same frame as an entity is removed).
Added DarkPlaces7 network protocol with QW-style local player movement capabilities, warning: this has speedcheat/lagaport potential (and currently no way to force off cl_movement from the server).
Added DP_QUAKE3_MAP extension.
zym models now support TraceBox calls (bullet tracing among other things).
Fix bug with ClientDisconnect not being called if a client drops between "spawn" and "begin" commands, now it is reliably called.
Dhanged default heartbeat_period to 120 seconds so that usually two packets come in before the 5 minute timeout, this should help with packet loss in server heartbeats to the master servers.
Fixed bug that rotated all sounds 90 degrees to the right in Nexuiz (because it has seriously messed up player models).
Fix portal clipping of lighting in a single cluster map (box map) which has no portals.
Fixed snow fluttering so it works properly again.
Fixed crashes with .lit files of the wrong size (a start.lit in id1 for instance when running a mod which has its own start.bsp which is not compatible with the start.lit from id1).
Fixed envmap command to save the proper skybox layout (matching Quake2).
Fixed 64bit compatibility issues in QuakeC VM, so DarkPlaces 64bit builds now work.
Completely merged Q1 mdl, Q2 md2, Q3 md3, Nexuiz zym, Q1 BSP, and Q3 BSP rendering, this is a massive code reduction and (more importantly) easier to maintain (which means less bugs).
Fixed problems with getting stuck in wedges in maps (by turning off sv_newflymove cvar).
Added sv_gameplayfix_blowupfallenzombies and sv_gameplayfix_findradiusdistancetobox cvars (to allow these changes to be disabled).
Fixed a bug with dead explosion shells not being removed (resulting in them ceasing to work after a while).
Fixed a bug that made menu sounds come from world origin (they are now global).
Revised notes in r_shadow.c on Creative Labs' patent on the Carmack's Reverse stencil shadow volume technique.
Rewrote scissor calculation to use brush clipping of the light box to determine which part is on screen and restrict rendering more exactly than before.
Improved readability of "memlist all" reports, they now include the filename/linenumber of each allocation.
Cleaned up init process again, now parses configs only once (not twice for video settings and such) and opens video as soon as the first map/startdemos/connect/playvideo/cd play command is executed (connect actually waits until it connects and won't open the window if it fails).
Made r_restart/vid_restart reload models as intended.
Fixed a bug that made view-attached entities render in third person.
SDL builds are now enabled by default in the makefile.
Silenced some texture loading warnings in dedicated servers (thanks to Biomass for reporting this).
Black changed the SDL window icon back to DP's icon.
Black changed commands, cvars and aliases to be sorted by name (for better console listings).
Fixed a stupid bug in the te_customflash server qc builtin, it was fading instantly.
Fixed a very minor bug in TE_CUSTOMFLASH parsing (forgot to add 1 to radius).
Fixed missing gfx/net.lmp warning (and a few others in gfx.wad), they are now accessed properly.
Fix a bug that made rtlighting crash (thanks to Vic for reporting this).
No longer shows extra time reports in r_speeds report when using r_showtris 1.
Added developer_texturelogging cvar (logs all attempts to load images to textures.log, useful for texture replacement projects to know what textures matter to a map).
Default DLight shadows on.
Fixed a bug where the player would be stuck in place (for a very long time) when going from singleplayer to multiplayer.
Added cl_capturevideo_sound cvar (defaulted to 0) to allow enabling/disabling sound saving, with sound disabled you can save videos at a framerate your machine can't maintain (no sound sync to worry about).
Fixed bugs that made doors and other pushers ignore some entities.
Fixed transparency issues in q3 shader parsing.
Fix fogging in hlbsp by clearing view to fog color (since sky polygons are missing in hlbsp).
Changed script init in Nexuiz to play the logo video if there's nothing else to do.
Changed crosshair mode to static by default (center of screen rather than showing where your shots will hit in the world).
Changed in_pitch_min/max defaults to 90 degrees so you can now aim straight up/down (unlike in Quake).
Fixed an items parsing bug when playing hipnotic demos.
gl_texture_anisotropy now only affects mipmapped textures (should fix issues with lightmaps).
Fixed a bug where gl_texturemode was changing textures that aren't supposed to be affected by it.
Default to insert mode instead of replace mode in console.
Cursoring past the end of the current commandline no longer takes characters from an old commandline.
Allow typing international characters in the console (non-ASCII) for mods that use Latin1 fonts rather than quake's white/brown set.
Fixed a crash in network parsing when an entity is tagged to an entity that is outside the current range of entities.
Fixed a severe server bug affecting frikbots (the engine was running physics code on disconnected clients).
Improved compliance with Targa spec in treatment of alpha and colormaps (palettes) in truecolor images - NOTE: this means many Paintshop Pro and Photoshop TGA files are no longer transparent, GIMP knows how to write them properly.
Renamed r_shadow_cursor cvars to actually have the word cursor in their name like they were supposed to.
Added playerclip and monsterclip brush support for q3bsp levels.
Elric added the DP_HALFLIFE_SPRITE extension.
Fixed a server bug that was only allowing 256 model animation frames to be used.
Reduced client memory usage by 29MB by making cl_max_entities dynamically grow as needed.
Elric fixed a number of bugs in the server browser.
Elric added Quake2 sprite support (DP_QUAKE2_SPRITE extension).
Rewrote server timing code again to make the (evil) host_framerate cvar work again for the game The Ascension Of Vigil.
Fix some bugs in HalfLife sprite loading.
Black fixed a bug where a server was pinged multiple times for the server list.
Added tag attachment support to zym models for Nexuiz (to allow player models to hold weapons, etc).
Fixed a bug that messed up the server after a failed level load.
Fixed a skybox texture leak on level changes.
Disabled item bobbing by default.
Changed intermission behavior a bit to allow Nexuiz to freeze the action at level end.
Fixed a bug with decals that made them never really disappear.
Minor memory reduction in particles (3.8MB down to 3MB for 32768 particles), difficult to trim any more.
Added a game mode for The Hunted Chronicles.
Early exits (error during startup) no longer save a broken config.cfg.
Now searchs for servers on your LAN (using a broadcast message to port 26000 like Quake did).
Video capture no longer has 25% sound volume.
Added back particles in teleport splash effect.
Improved r_texturestats command output (now gives a total for each pool).
Default dedicated servers to public (listen servers remain non-public by default as they are usually not professionally hosted).
Made the key below escape bindable and like other binds it only works while ingame (Note: you must now hit escape to close the console, I use shift-escape instead).
Now pops up the menu at startup if there is nothing to do and no demo loop.
Added splashes to rain effect.
Added Venim's dpmaster server (now up to 3 masters).
Black fixed net_slist command to only print servers once.
Added DP_CON_STARTMAP extension which defines two configurable aliases to choose a start map.
Now smoothly interpolates weapon recoil (punchangle) in multiplayer.
Added key repeat in SDL client.
Fixed gl_flashblend so it overrides dynamic lighting (as intended).
Fixed issues with r_editlights_edit cubemap command.
Fixed bugs with cl_particles_size cvar so it works again.
Fixed a bug where vsync was not restored properly after a vid_restart.
Black added Quake3 color codes to text printing (console and elsewhere).
Reduced quality of Offset Mapping in GLSL light shader to work on ATI Radeon 9500-9800/X300 cards (I hate limits!).
Changed q3bsp curve loading slightly to allow finer curves.
Skill values outside 0-3 are now allowed (mainly for Transfusion which uses 0-4).
Fixed bugs with zoom in Nexuiz (zoom was being applied twice to fov).
Now detects and avoids software fallbacks in GLSL shaders (mainly limited ATI Radeon cards).
All text file access now supports Mac and Windows line endings consistently, and all text files (config.cfg, savegames, and files written by QuakeC) are now saved in UNIX format.
Added documentation on glsl cvars to r_shadow_help.
Implemented a GLSL shader per pixel lighting path (enabled by default), it even supports Offset Mapping (aka Parallax Mapping, not as good as Relief Mapping or Virtual Displacement Mapping, but still rather cool in the right situations).
Fixed a stupid typo with the cl_netlocalping cvar (it is now in milliseconds as intended).
Disable vsync by default.
Games now have their own config directories (instead of always being ~/.darkplaces) so that Nexuiz doesn't look in ~/.darkplaces/.
Newly spawned projectiles (rockets, etc) no longer appear in midair at low framerates.
Fixed some geometry issues with beam polygons (such as the nex beam in nexuiz).
Fixed a crash with rtlights outside the level.
Added Ludwig Nussel to Thanks to section in readme.
Fixed unnecessary warnings about missing skins/frames on q1bsp/q3bsp models.
Fixed a rare "Got signon 1 when at 1" error in client (still not sure why it gets this however).
Elric fixed PK3 and Ogg Vorbis support on NetBSD.
Fixed a compile error with snd_alsa.c (patch by Ludwig Nussel).
Linux/BSD libz, libvorbis, and libvorbisfile .so names are now versioned so they work without development packages installed (patch by Ludwig Nussel).
Added ~/.darkplaces support to the filesystem (patch by Ludwig Nussel).
Tomaz fixed more memory leaks.
Tomaz added CL_Shutdown to fix 14 memory leaks totalling over 30mb.
Updated email address in readme. (thanks to zarquon for pointing out that it was outdated.
Black improved server browser to support sorting and filtering.
Now saves seta cvars with the seta command and normal ones without it.
Elric fixed JPEG and Ogg Vorbis support on Mac OS X, and fixed a big-endian bug in MD3 loading.
Black added "sv_progs" cvar (default is progs.dat) to allow loading other QuakeC server programs in Nexuiz.
Added vsync support for GLX clients using GLX_SGI_swap_control.
Black made video playback system able to play multiple videos at once (may be useful to QC menus).
Tomaz fixed an issue with sys_ticrate bounds checking which was spamming cvar changed messages in developer mode.
Disabled vsync during timedemo.
Elric fixed PK3 archive support on Mac OS X.
Made sensitivity cvar affect cl_prydoncursor.
Added Bloom effect (r_bloom* cvars or use the menu).
Renamed cl_stainmapsclearonload to cl_stainmaps_clearonload and made it default to 1 (this should stop the bug reports about stainmaps staying after a reload).
Filesystem now checks for attempts to access files outside the Quake directory and rejects them.
Fixed a Sys_Error in input message building when connected to a QUAKE protocol server.
Elric made DarkPlaces work on Mac OS X.
Black added ' quote support in script parsing and elsewhere.
Black added NEXUIZ_PLAYERMODEL extension.
Elric fixed a HalfLife WAD loading bug in the filesystem code.
Fixed animation glitches when weaponmodel changes.
Now clears screen at startup so you don't see leftover garbage from the last 3D application.
Added PRYDON_CLIENTCURSOR extension to allow FrikaC's Prydon Gate mod to have a clientside mouse pointer (more responsive, even highlights things as you mouse over them).
Added DP_BUTTONUSE extension (+use/-use button).
Added DP_BUTTONCHAT extension (true while input is not focused on the game).
Added back DP_ENT_COLORMOD extension due to popular request (changed to allow colors above '1 1 1' which can brighten models.
Upgraded network protocol to DP6 which uses less bandwidth and allows precaching models/sounds during the game (used for player models in Nexuiz).
Added sv_gameplayfix_setmodelrealbox cvar which can be set to 0 to improve compatibility with some broken mods (TargetQuake, QuakeRally, probably others).
Changed loading plaque to simply be an overlay on the last fram rendered.
Added cl_capturevideo_rawyv12 mode (supported by some mpeg tools).
Added scr_screenshot_gamma cvar (defaults to 2.2 gamma to make quake's linear color space appear correctly on PC monitors) --- THIS FEATURE IS NOT A BUG.
Elric fixed a bug that was making ambient sounds silent.
Fixed a bug with invisible dlights in FrikaC's Vile mod.
Fixed skybox layout (front and back were swapped, and all other sides were rotated/flipped), now matches Quake2 layout as intended.
Fixed Nehahra movie support (again).
Fixed a bug that made corpses quickly get up and fall down again in Nexuiz.
Reduced cpu use when at cl_maxfps limit.
Improved showfps 1 accuracy.
Fixed a cpu hogging bug in dedicated servers.
Files now override paks, this makes it easier to patch things and is what users expect (however it loads slower).
Fixed a rendering crash if unused lightmaps exist in q1bsp.
Fixed bug that called PlayerPreThink and PlayerPostThink on unspawned clients.
Upgraded rtlights format to have separate ambient, diffuse, and specular intensity scales, and also coronasize, this also allows corona-only lights by setting all scales to 0, and added normalmode/realtimemode flags so that lights can appear in normal mode, not just realtime mode (primarily useful for adding corona effects to a normal level) added ambient light support to RenderLighting (non-bumpmapped diffuse), and some dlights now use ambientscale (this has not been exposed as a qc extension yet, qc lights remain the same).
Fixed a nasty bug with bind ";" in config saving.
Removed "lightmapindex -3" warning in q3bsp maps compiled with q3map2.
Now warns about missing textures in q3bsp maps.
Added DP_SV_BOTCLIENT extension to allow bots to spawn as actual players on a server (no more scoreboard hacks!).
Q3 alphafunc shaders now render as transparent.
VorteX fixed bugs in gettaginfo and gettagindex builtins.
Fixed a runaway loop problem in server code if machine is too slow for server.
Centerprint can now use full screen size (no longer limited to 40 columns).
Added DP_SV_CLIENTCOLORS and DP_SV_CLIENTNAME extensions.
Added DP_SV_PING, DP_SV_PUNCHVECTOR, DP_SND_FAKETRACKS, and DP_FS_SEARCH extensions.
Added DP_CON_SET and DP_CON_SETA extensions (set and seta commands in console, set creates a cvar, seta creates a saved cvar, or makes one be saved in the future).
Black added backslash-" quoting support in the console and elsewhere.
Realtime video capture (see cl_capturevideo cvars, raw yv12 format recommended if you have suitable encoders). Warning: video capture aborts if your machine can't keep up.
Rewrote timing code, renamed host_maxfps to cl_maxfps, removed host_minfps, now runs server faster than client if framerate is too low to honor sys_ticrate cvar.
Fixed the "Joe changed name to Joe" bug.
* Improved quake.rc config execution to start a map even if startdemos is not used.
Sound loader now supports sounds with and without sound/ directory, to allow mods to support sound and music entities in Quake3 maps.
r_editlights mode now shows light number and total lights.
Elric fixed a brief sound bug when a new level started.
Fixed a rare sound crash that apparently occurs in Fiend Run Lite demos.
Don't spam the console with warnings about missing frames and skins in models that failed to load.
Elric added FreeBSD support (NetBSD and OpenBSD already supported).
Fixed a bug with traceon/traceoff QC builtins not taking effect immediately (for printing Quakec code as it executes).
Added DP_SV_DROPCLIENT extension.
Fixed a bug that messed up the first scoreboard entry when players left a server.
CD track emulation uses 3 digit replacement tracks (id1/sound/cdtracks/track002.ogg and such.
Fixed a crash if dlights try to cast shadows when there is no map loaded.
Fixed a crash in console logging of a memory corruption (sentinel) error report.
RTLights system now supports .ent override files.
Fixed a mouse twitch in GLX client after raising/lowering console (mouse grab).
Fixed a messagemode/messagemode2 issue in which you could type ";quit" as a chat message and have your client quit.
Fixed an r_restart crash in skybox code.
New hmap2 release which now works properly when given .map filenames for vis and light stages (which really want .bsp), this should fix problems with the GTKRadiant build menu, hmap has not been fixed (it is obsolete).
I have moved all download files to the files directory to make beta builds easily accessible (I do not make frequent official releases due to the work involved in making the "What's new" descriptions). This breaks any pages directly linking to old betas, please update links to point to the new directory instead.
A couple videos of the hard skill hall in start have been added to the screenshots page to demonstrate the darkplaces experience (totally stock data except for a .rtlights file).
Released new version of lmp2pcx with .tga output, and conversion of .mip files (it already converted .lmp), now also outputs .lmp from gfx.wad images (in summary: wad outputs .mip/.lmp/.bin (depending on lump type) plus .pcx and .tga of each image, lmp and mip output .pcx and .tga of each image).
Released some old maps (ladyhavocmaps.pk3) with source .map files included:
ctfgold8 - my map for the CTF Gold pack, designed to be a very linear map from base to base with two paths through the middle area, and a quad to spice things up, the bases are well equipped for prolonged fights, but full of deadly corners which make combat freightening at best in the base itself, the rooftop is relatively safe, and the traps at the sniper outposts are quite an odd touch, it has 1 quad and 2 red armors, 1 yellow armor, 3 rocket launchers, and all the other weapons can also be found, one goal of this map was to be difficult to quickly flag run despite being a small map, but due to the grappling skillz of many this turned out to be one of the fastest flag run maps and spawned a small competition to see the fastest cap possible, the fastest ever recorded on my server was 13 seconds (9 seconds has been reported from singleplayer using slow motion cheats to perfect it exactly, but that doesn't count).
lhca1 - a Clan Arena map with a dm3 theme comprised of 3 massive interconnected arenas connected to eachother in a ring fashion with a central hub that was the site of many heated battles as it was smaller than the arenas themselves, the arenas turned out too large scale (Quake rockets aren't that fast), inspired dpdm1 connectivity and design. (previously unreleased).
lhdm4 - a DM map I made on request for a DM tourney, very inconsistent connectivity and layout, although varied in theme as well, never got used because it was too small so I expanded it a bit, and then was told it was too large, go figure (previously unreleased).
metlhell - a DM map I made very early, far too experimental and I was thinking more in a singleplayer theme when I made it, which resulted in terrible connectivity and lava laden rooms rather than arenas conducive to combat. (previously unreleased).
rampcity - a DM map based on a very simple concept, this turned out better than expected, almost infuriatingly difficult vertical combat map, and the first map I ever made in the BSP map editor - still my favorite editor. (previously unreleased).
New hmap2 release, what's new:
Vic sent a patch that checks for incomplete brushes, removes them and prints warnings instead of exiting with a CheckWinding error (Thanks to Tomaz for committing the patch).
fixed origin key handling in brush loader, so rotating bmodels should work properly (I hope).
added -harshshade option.
New darkplaces release, what's new:
Fixed a number of problems with scoreboard updates (names/colors/frags) in the server.
Fixed duplicate name bug in client mini-scoreboard (the one to the right of the statusbar in multiplayer).
Tomaz enlarged particle font from 256x256 to 512x512 and added some code to allow saving it to a .tga (and an example one has been posted on the download page).
Quitting without using the "quit" command in the console now disconnects from the server, and properly kicks off everyone on a local server.
Credited romi and |Rain| for their contributions in the readme.
Added 32bit color support to SDL builds.
New darkplaces release, what's new:
Rewrote Quake3 curve loading which finally makes maps look correct in all cases.
Added DP_QC_GETTAGINFO extension written by VorteX so modders can find out where md3 model tags and attached entities are, thanks VorteX!
New darkplaces release with various bugfixes, what's new:
Now detects a few quake3 shader types to make quake3 maps look mostly correct (additive shaders are detected, as well as autosprite/autosprite2, and twosided shaders, also loads first pass texture if it can't find a texture of the same name as the shader, and transparent textures in quake3 maps now require a shader to indicate they are transparent).
Fixed a bug that was preventing dynamic lights from lighting up quake3 maps.
Now prints 8 QuakeC opcodes instead of 5 when a crash or warning occurs.
MoALTz fixed the r_stereo_separation code so the anaglyph stereo glasses support works properly now.
Rewrote chat message handling code to be cleaner.
Added DP_LITSPRITES extension string (the feature existed already but was not documented).
Fixed connect status messages in join game menu (it was only showing them in server list menu).
Simplified cl_net* cvars to just cl_netlocalping and cl_netpacketloss and removed sv_netpacketloss cvars.
Made tenebrae light cubemaps work on model entities again (they were being disabled because the requested skin did not exist in the model, so the cubemap was being set to 0).
Greatly optimized findradius builtin (it now uses the physics culling data to avoid searching all entities).
Removed cl_nodelta cvar as it never worked properly, and is unnecessary with the current network protocol.
Fixed a bug that made the game world seem to freeze after a level change in multiplayer (networking was falling apart).
Fixed framegroup animation on normal entities (static entities like Quake's torches worked already).
Changed movement interpolation a bit to better handle less frequent updates on far away entities.
Fixed a "blue dlight" bug when a map uses tenebrae dlights but the progs.dat did not support them (it was a silly typo in the engine).
Fixed a crash when dedicated servers tried to talk to the players.
Fixed a "blue glow_trail" bug, it was not properly interpreting the palette color.
New darkplaces release with various bugfixes, what's new:
fixed lingering entities in quake protocol, demos for example
added cl_beams_* cvars to effects options menu
now can connect to another server while remaining connected to current server up until the connection is accepted
now shows loading screen at appropriate times which also stops sound
fixed nehahra movie support
sprites now support EF_NODEPTHTEST
watershader now disabled on lightmapped water
now compiles on x86_64 successfully, server still crashes though (will be fixed at some point)
added commandline options to readme
fixed an entity colormapping bug which caused players to be white in dpmod
skybox works in hlbsp again
fixed weird player model angles when looking down
negative frags display correctly again
Mathieu fixed a logging problem which was not recording cvar creation notices to the log
Mathieu fixed sound channel volume clipping to work the same on 16bit and 8bit sounds
removed detection of GL_NV_vertex_array_range as it's not used
added -novideosync disable for WGL swap control
fixed qc builtin cvar_string to not crash engine if the cvar does not exist
New darkplaces mod release:
Just added my dpdm1.rtlights file, only of concern to people playing that map.
New darkplaces release, what's new:
It works a LOT better than the previous release, has many more menu options, has a readme, GOOD network performance (smoother than qw, although no prediction or clientside movement)
It's just plain better :)
Thanks again to Tomaz for his ongoing efforts to beat down the todo list.
P.S. Hopefully I won't be so lazy about posting new releases in the future; then again I've said that a few times before.
New darkplaces mod release: More of the usual little changes and balance tweaks, got rid of nailgun casings because they looked a bit silly (although cool for making a pile of casings) and dragged down network performance a lot, added back nails sticking in walls though (and you can blast them loose).
New version dpmaster released:
- version 1.5:
Address mapping added (see ADDRESS MAPPING in readme)
Servers on a loopback address are accepted again if they have a mapping
A valid "infoReponse" is now rejected if its challenge has timed out
The size of the challenge sent with "getinfo" has been made random
A timed-out server is now removed as soon as a new server needs a slot
Several little changes in the printings to make them more informative
A technical documentation was added
Compiling dpmaster with MSVC works again
Fixed link to download hmap2, sorry about that. Thanks to Gleeb for reporting this.
Updated sv_user.qc with bugfixes supplied by Sajt, it no longer moves slower when looking up/down, pitch no longer affects swim up/down when underwater, and FL_ONGROUND is cleared when noclipping or swimming, thanks Sajt!
First release of hmap2, a combined hqbsp/hvis/hlight/bsp2prt/bspinfo utility written by Vic based on hmap, and with further additions by me, tyrlite compatible (hlight lighting no longer supported, sorry), compiles q1/hammer/q2/q3/doom3 .map files (bp texturing not supported in q3 map files, texturing not properly supported in doom3 map files which use bp texturing exclusively).
Tomaz changed the website layout and cleaned it up to use css. Thanks Tomaz!
Posted a new litsupport zip updated by Tomaz to fix a few minor things (no actual bugs, just passing one parameter too many to a function, and fixed some begin/end comments).
Changed email address because my telefragged account stopped working (and I don't think I can get it back, I have no telefragged site), I was also getting 10 spams a day, and telefragged has ssslllooowww email (300 spams downloaded in 15 minutes)... So my email has changed, and is no longer a simple email link to confuse spammers.
(Yes there's still a new build in the works, it is delayed until I rewrite the networking to fix an annoying bug)
romi has completed his .rtlights file collection for Quake Mission Pack 1: Scourge of Armagon (also known as hipnotic), and for those not aware of his Quake .rtlights file collection as well, I recommend it :)
romi also has some videos in the works to show his lighting creations better than the screenshots do.
(If anyone doesn't remember, to experience an rtlights file it must be placed in the maps directory, make sure in the Video Options menu that you are in 32bit color mode (sorry this can't be done on a 3Dfx Voodoo1/2/3/Rush/Banshee), load up the map you want, and then simply type r_shadow_realtime_world 1 in the console, enjoy. Maps without rtlights files are often slower and less colorful.)
U8Poo has sent a nice screenshot running of realtime lighting mode in a q3bsp map he made, to spice up the screenshots section, thanks!
In other news another release is still in the works (as expected), already fixed some significant physics bugs (which date back to july) but for some reason still am not quite in the mood to release it.
Another new engine release (20031207b):
Added r_wateralpha cvar to the effects options menu.
New engine release:
No longer limits framerate to 20fps while in console because I got so many complaints about this (no REALLY that was not a bug like everyone assumes, that was a feature, just a very misunderstood one), so now it only drops to 20fps when not the active window (it already did this).
Changed hardware gamma handling in glx to no longer turn on/off based on mouse being in the window or not, but simply whether it is the active window.
Fixed 16bit video modes in Linux support. (oww this was broken, I only use 32bit :)
Fixed a bug with console parsing that existed in almost all versions of quake except quakeworld by switching to the qwcl COM_Parse for console parsing (in english: fixed connect commands involving a port, like 127.0.0.1:26000), thanks very much to Fuh for mentioning this bug.
Removed need for gfx/menuplyr.lmp, some old unused code required it, no idea why that was still there (in english: this has no importance to quake players, only modders making standalone stuff).
Due to popular demand I put up some new screenshots of qe1 textures in e1m1 running realtime lighting mode.
New engine release, now parses scripts/*.shader files (including inside pak/pk3 archives) when loading q3bsp maps to check for surfaceparms (nodraw and trans and such) this fixed up q3bsp rendering a bit (at least in the sense that transparent textures for tricky opaque shaders are now rendered opaque).
Another new engine release, now uses the surfaceflags inside the q3bsp for all flags it can (transparency is still read from shader surfaceparms as there is no surfaceflag for it), this may or may not affect anyone but it's more correct.
New engine release, this fixes the bullet holes in Scourge of Armagon (and any other mods using oriented sprites).
New hmap release with some enhancements by Vic:
hqbsp now properly calculates node bounding boxes making them much smaller for non-axial planes (this means maps run faster in engines other than darkplaces; darkplaces already did this on loading)
detects and skips degenerate edges
corrected CheckWindingArea for portals area checking
precise .prt files output (may fix some vis errors on complex maps)
New dpmaster release from Elric, this fixes two buffer overflow vulnerabilities so anyone hosting a dpmaster master server should update. Here's the readme's words on the matter:
- version 1.3.1:
SECURITY WARNING: 2 exploitable buffer overflows were fixed
Verbose option parsing fixed
Paranoid buffer overflow checkings added, in case of future code changes
New engine release, this one has a few known bugs (short summary: rtlights don't handle animated textures or water motion) but fixes enough very annoying bugs to warrant a new release anyway, and adds some features, such as:
Quake3 BSP file loading with rtlight support. (rtlight editing note: q3map2 and probably q3map itself, remove light entities when compiling, so don't expect any lights until you add some)
Now defaults to 32bit color (I think this will still work on 3Dfx because I know they support 32bit screen modes with 16bit rendering) and stencil is now automatically enabled on 32bit color modes.
Added r_editlights_help and r_shadow_help commands to give some information so people don't have to ask me about these subsystems.
Added a lot of QuakeC builtin error checking regarding bogus entities being passed in (like trying to copyentity to/from world for example, or a free entity).
Input sticking through a level change has been fixed! (thanks very much to Black for his work on this and other bugfixes in the input system :)
Now supports non-QWERTY keyboards in windows (it already supported them in Linux). (thanks to Black and Mercury for their combined work on this)
Added Anisotropic Filter setting to menu. (thanks to zinx for coding this, note: use r_restart to reload textures to make it take effect)
DirectSound should work in windows again (been a long time since this worked because of DirectSound strangely needing an open window) so the sound rate has been bumped to 44khz (44khz ran into issues with many drivers with no window open) and the sound system is restarted by snd_restart or vid_restart (due to the window).
Note: q3bsp support has NO SHADERS, this was meant for mods to use, not to play existing maps (which often have very odd alpha textures for shader effects), and as yet has no global fog support or volumetric fog support because of lacking shaders, and there are no plans to add q3 shader support because they are quite incompatible with rtlights.
I would also like to announce that a new member called Black has joined the darkplaces team, and has been contributing a great deal of effort on the QuakeC subsystems (as well as bugfixes particularly in the input subsystems), he has been working hard on a QuakeC menu system (still experimental), and then after that, clientside QuakeC can begin to expand the horizons for quake mods :)
New mod release, this one doesn't really fix many bugs to my knowledge (probably introduces a few), but contains a new weapon management system that allows more weapons than quake ever had, so now for example you can shoot an enforcer and grab a laser rifle from the backpack (being unable to use certain monster weapons like this always irritated me), note: laser rifle is a second weapon on impulse 3, and there is an experimental 'plasma shotgun' on impulse 2 which needs cells as well as shells.
New engine release, hopefully this finally fixes the 'doesn't work through NAT routers' problem (also known as DSL routers, cable modem routers, etc) by reducing the connection packet size (it is once again split up like netquake did).
New mod release, intended to fix some bugs that popped up such as backpacks giving no ammo, and other inventory glitches.
New engine and mod release, the engine should fix a few bugs, and the mod reverts the Fury to Quad and allows "coop" difficulty settings to be changed during the game (coop controls monster health scale), but is otherwise mostly the same as the version released on the DarkPlaces booth at QExpo, and I also posted the versions (including Revelation) that were released on the booth, for completeness.
New hmap release adding support for HalfLife WorldCraft texture alignment (as requested by FrikaC).
Updated sv_user.qc to fix the name of the cl_rollangle variable (apparently I typed cl_rollspeed for some reason originally), sorry about that. Thanks to Electro for reporting this.
New lhfire release:
Added spritetype command (to allow types other than vp_parallel, like oriented for example)
Documented spritetype command
Documented worldbox command (which was not previously documented)
Fixed the download link for hmap build 20030607, note to self: do not release in a hurry with no time to test links.
Fixed the download link for darkplaces mod build 20030607, sorry about that being broken before!
Another new release of darkplaces, changes:
Fixed savegame loading crash someone reported a few days ago (thanks for reporting it).
Fixed a SOLID_BSP with non-BSP model error that often occurred after Host_Error (this one's been tormenting me for ages).
New release of darkplaces, dpmod, dpmaster, hmap, lhfire, lmp2pcx. No information because I can't remember what changed since the last versions, however I do remember there were important bugfixes in hmap and dpmaster, and many changes in darkplaces and dpmod. I really should set up nightly builds or something as most of these changes are quite old but never made it into builds until now. I hope these new builds are useful (and as always feel free to email me with suggestions/bug reports).
New darkplaces release, changes are:
loading saved games should work again
playing dpv video streams should work again
added DP_QUAKE3_MODEL extension for mods to check for
New darkplaces release, changes are:
fixed savegame menu so it displays saved games again (thanks to the two people who reported this bug - yes your saves are fine, it just wasn't showing them).
split r_shadow_realtime into cvars r_shadow_realtime_world (requires stencil) and r_shadow_realtime_dlight (which does not require stencil, and infact works on a voodoo (but it's ugly) or decently on voodoo 2) and r_shadow_visiblevolumes.
PK3 archive support and jpeg texture and screenshot support (scr_screenshot_jpeg 1), HUGE thanks to Elric of the Transfusion project for these features!
New darkplaces release. Some of the new features I can remember: Color Control Options, hardware gamma now works in Linux, .viewmodelforclient now works (useful for modders), should be able to connect through NAT (such as Linux ipmasq, ADSL routers, etc), FrikaC's file access and string handling extension FRIK_FILE has been added, more extensions added for some effects that have been around for quite a while. Thank/blame diGGer for pestering me to release this new version (his mod needs it), I wanted to upgrade the entity protocol (to implement "rate" limiting for modemers - or people trying to play helm18) and bugtest for a few days, but here it is without either rate or bugtesting :)
New dpmaster release, major bugfix (no longer locks up after running for a very long time when someone asks for a server list, encountered this on my own dpmaster), thanks Elric!
New dpmaster release, offering nice improvements (such as an extra-secure daemon mode on UNIX/Linux and improved commandline options), thanks Elric!
New engine release to fix bugs with using OgrO's model skins (for example the models are no longer invisible) and changed gloss brightness from external textures to mimic tenebrae (this is sad because I would imagine doom3 will not have a 25% brightness hack).
New engine release (yes it hasn't even been months since the last one!), MAJOR improvements to realtime lighting consistency and correctness (even added back 3D attenuation texture use on supporting hardware), also fixed a graphical bug with the Chthon lightning trap in e1m7 (it now looks like in quake, no polygon lightning falling short of the end nonsense).
New engine release to fix realtime lighting mode on non-NVIDIA cards (* LadyHavoc slaps self for using GL_CLAMP when she knew better), no other changes.
New engine, mod, and dpmaster releases, sorry very little explanation on these, I'm in a bit of a hurry (as usual). The new engine release fixes a lot of very annoying bugs in 20021103, and should improve performance all-round (especially in realtime shadowing mode), and can cope with totally insane mods (at least as entity limits go). The mod includes some weapon changes and new rtlights files for various id maps.
Some features in the works for next release: rate limiting (this is mainly for sake of making banshee's helm18 (and successive maps) not croak if you spawn in the middle of 10000 knights), more realtime shadowing optimizations (must... make... it... faster!), hopefully more goodies
I really should have released these rtlights files much earlier (they are dated 2002-11-17) but here they are, rtlights for most of e1 (start, e1m1, e1m2, e1m3, e1m4, e1m5, e1m6, e1m7, and dm6 thrown in), also available on the download page. Note: dm6 actually runs fairly quick in realtime mode for me, amazing :)
Next engine release still under development, it will have light reduction support so you can make the map a little darker for performance (better results can be had by manually relighting it with r_editlights mode though), md3 model support, qe1m1 texture support (qe1m1 uses some paletted and greyscale targas), and some optimizations (to both normal rendering mode and realtime).
Decided to post some new pics of realtime shadowing mode in the screenshots section, and here's two pics 1 2 of dpdm2 soaked in blood from a game of deathmatch 7 in dpdm2 last night... Much fun was had. Still experimenting with the new charge-up plasma rifle utilized so effectively by SSJ4-Death and others in that game last night. Discovered a few bugs too, which I need to fix (teleporting fiends being the most annoying).
New engine release 20021103, greatly improved and optimized r_shadow_realtime mode, ingame light editing (r_editlights 1, and r_editlights_* cvars/commands - I should write up a guide for doing this, it's not simple to explain, one tip though: r_editlights_edit and r_editlights_spawn use this list of parameters - radius red green blue style - and you do not need to type the whole set of them, for example 200 makes a normal white light, and 200 0.5 makes a dim white light), also note this fixes all Geforce2 compatibility problems (just make sure you're using vid_bitsperpixel 32 and vid_stencil 1), if you want to force gloss on type r_shadow_gloss 2 (looks cheesy in my opinion and is a slowdown, but useful for benchmarking in comparison to tenebrae), also note this release is CPU limited on my tbird 900mhz, I need to optimize the model lighting more (caching bumpmapping info). Oh and a note, this probably makes normal rendering mode even slower, sorry about that, I need to re-optimize the normal mode.
Here's my .rtlights files for start and e1m1 respectively (these were made solely with r_editlights commands), drop them in your id1/maps directory to get a performance boost, a bit of extra realism, and colored lighting. note: these files only affect r_shadow_realtime mode.
Since some people keep telling me I need to post pics to prove that darkplaces is doing the whole doom3 rendering thing, here are some pics taken in e1m2 with exagerated bumpmap settings (and gloss forced on):
1: gloss, nogloss
A new pic of r_shadow_realtime 1 mode in start (relit by hand) with scissor clipping working (gives about a 20-60% speed gain), mostly just working on speeding it up and fixing any bugs I can find (only one persists and it's rare, I don't understand it yet, and it may be related to the map loading bug (which seems to only occur with gcc 2.95.3, not with VC++) I've been trying to hunt down for months), finally DP's realtime lighting mode is CPU limited by my athlon 900mhz instead of fillrate limited by my Geforce4 Ti4200 :)
A new pic of r_shadows 3 mode in e1m1 (relit by hand) with gloss working, reminds me of a sunset on water, not sure how soon the next release will be.
A new pic of r_shadows 3 mode in dpdm2 (yes the map with 116 enormous lights in one room with ridiculous poly count) taken toward the end of dpdemo2 posted here, I've more than tripled the performance of r_shadows 3 mode with some new code, not sure how soon the next release will be however, and it's still not very playable even in more sane maps than dpdm2.
Thanks to John Truex for hosting a master server on his cable, anyone who wishs to use it (as a client or server) should use a command like this:
I will be adding it to the next release as sv_masterextra1. (which will not be saved to config, sv_master1, 2, 3, and 4 settings are saved to config so I can't just change them as they would not take effect for most people)
I will also be adding a cvar sv_public which defaults to 0, set it to 1 to have your server show up on master servers. In other news, anyone trying out r_shadows 3 who suffers from severe slowness on their Geforce2 (or crashing - that's a driver bug, not my fault) or similar, try r_light_quality 0. This is a temporary workaround for the fact it's detecting 3D texture support (albeit software emulated), I'll fix this in the next release.
New engine release: fix for crash when starting r_shadows 3 mode, MSVC's stack space is truly pathetic...
New engine release: many bugfixes and r_shadows 3 mode now works correctly (except for a few shadow bugs I have not figured out yet) and looks great, it also now works on Geforce 2 class hardware (it's still horribly slow though), now includes both mingw (darkplaces-mingw.exe) and msvc (darkplaces.exe) builds of the engine because the mingw builds (which all builds this year have been) have a lot of strange crashs I have not been able to find (this irritates me a great deal because the same errors occur in Linux gcc 2.95.3), also now uses a specially constructed infinite farclip matrix (got the code from tenebrae), I hope this works with all drivers, if it does not work for someone please email me about it.
New dpmaster release: now has commandline options, and some bugfixes, thanks again Elric :)
Took another picture of the in-development realtime lighting mode, this one is more recent and shows off the fact I have bumpmapping working, and much less obviously the fact I have Geforce2 support working (the lowest card this mode supports).
Took some pictures of the in-development realtime lighting mode.
Here, Here, and Here.
(yes I will be making it faster, it's currently unplayable, also currently requires a Geforce3 or Radeon 8500 class card because it relies on quadtexture)
Emailed John Carmack about merging attenuation and normalization (for per pixel lighting and bumpmapping) into one texture, his reply is here.
New engine, very minor update to try to make 3D texture support work with drivers that don't report GL_EXT_texture3D (strangely GF2 drivers don't? I would think they would... very odd) by checking for the OpenGL 1.2 built in support for 3D textures. (This only matters to those uncontrollably curious people who want to try r_shadows 3)
New engine 20021006, fixes the numerous map/changelevel/restart/load bugs in the previous release (that release was embarassing).
Full dynamic shadowing in development.
I advise no one try r_shadows 3 unless they are uncontrollably curious, it is very incomplete/useless/etc (and really only works in hlight maps like dpdm1 - which is pathetically slow), you have been warned.
New engine, now has ingame video mode switching (vid_restart and various vid_ variables), and the 2D renderer now uses the 3D renderer (this may work around bugs in some drivers), explosions now have sparks.
(Technical note to engine coders: cl_particles.c is intended to be reasonably easy to drop into glquake engines (rename it to r_part.c and add #define WORKINGLQUAKE to the top, some other pieces of glquake need to be altered to use the new functions, requires programming knowledge).
New mod, rocket launcher's altfire now fires spiraling rockets, a few bugfixes and cleanups elsewhere (can't remember them).
New engine, now has an internet master server browser (net_inetslist command or use the menu), rendering has been a lot faster, and the spark effects look better now.
New mod, bots can play any simple map (they're idiots around liquids, doors, etc), weapons changed a bit (pistol now has an altfire for rapid fire, plasma gun changed a bit and now fires 8 shots at once when sniping (doubling the damage), grenade launcher now fires impact and proximity grenades (detonate is gone), rocket launcher can load multiple rockets with it's altfire (detonate is gone)), and various little bugfixes.
Please someone host a master server and tell me the IP so I can add it to the default master server list.
The website returns, on it's new home at
Unfortunately the most recent release I've made is an old version (20020831), I'll try to find the time to make a new release someday soon.