mirror of
https://github.com/id-Software/DOOM-3-BFG.git
synced 2025-03-14 22:50:45 +00:00
Merge remote-tracking branch 'RBDOOM-3-BFG/master'
This commit is contained in:
commit
720f8e8cdf
9 changed files with 163 additions and 31 deletions
46
README.txt
46
README.txt
|
@ -35,7 +35,7 @@ This file contains the following sections:
|
|||
|
||||
7) INSTALLATION, GETTING THE GAMEDATA, RUNNING THE GAME
|
||||
|
||||
8) CHANGES
|
||||
8) OVERALL CHANGES
|
||||
|
||||
9) CONSOLE VARIABLES
|
||||
|
||||
|
@ -43,7 +43,9 @@ This file contains the following sections:
|
|||
|
||||
11) BUG REPORTS
|
||||
|
||||
12) CODE LICENSE EXCEPTIONS
|
||||
12) GAME MODIFICATIONS
|
||||
|
||||
13) CODE LICENSE EXCEPTIONS
|
||||
|
||||
|
||||
|
||||
|
@ -102,20 +104,6 @@ The Doom 3 BFG Edition GPL Source Code release does not include functionality en
|
|||
of stencil shadows via the "depth fail" method, a functionality commonly known as "Carmack's Reverse".
|
||||
|
||||
|
||||
Mods:
|
||||
-----
|
||||
|
||||
The Doom 3 BFG Edition GPL Source Code release allow mod editing, in order for it to accept any change in your
|
||||
mod directory, you should first specify your mod directory adding the following command to the launcher:
|
||||
|
||||
"+set fs_game modDirectoryName"
|
||||
|
||||
as well as force the content of your mod directory over the content of the game with the following command:
|
||||
|
||||
"+set fs_resourceLoadPriority 0"
|
||||
|
||||
so it would end up looking like: RBDoom3BFG +set fs_resourceLoadPriority 0 +set fs_game mymod
|
||||
|
||||
|
||||
_______________________________
|
||||
|
||||
|
@ -268,7 +256,7 @@ Anyway:
|
|||
|
||||
___________________________________________________
|
||||
|
||||
8) CHANGES
|
||||
8) OVERALL CHANGES
|
||||
__________________________________________
|
||||
|
||||
- Flexible build system using CMake
|
||||
|
@ -283,6 +271,8 @@ __________________________________________
|
|||
|
||||
- Bink video support through FFmpeg
|
||||
|
||||
- PNG image support
|
||||
|
||||
- Soft shadows using PCF hardware shadow mapping
|
||||
|
||||
The implementation uses sampler2DArrayShadow and PCF which usually
|
||||
|
@ -291,7 +281,7 @@ __________________________________________
|
|||
All 3 light types are supported which means parallel lights (sun) use
|
||||
scene independent cascaded shadow mapping.
|
||||
The implementation is very fast with single taps (400 fps average per
|
||||
scene on a GTX 660 ti OC) however I defaulted it to 16 taps so the shadows look
|
||||
scene on a GTX 660 ti OC) however I defaulted it to 12 taps using a Poisson disc algorithm so the shadows look
|
||||
really good which should give you stable 100 fps on todays hardware (2014).
|
||||
|
||||
- Changed light interaction shaders to use Half-Lambert lighting like in Half-Life 2 to
|
||||
|
@ -344,11 +334,29 @@ If you want to report an issue with the game, you should make sure that your rep
|
|||
NOTE: We cannot help you with OS-specific issues like configuring OpenGL correctly, configuring ALSA or configuring the network.
|
||||
|
||||
|
||||
___________________________________________________
|
||||
|
||||
12) GAME MODIFCATIONS
|
||||
__________________________________________
|
||||
|
||||
The Doom 3 BFG Edition GPL Source Code release allows mod editing, in order for it to accept any change in your
|
||||
mod directory, you should first specify your mod directory adding the following command to the launcher:
|
||||
|
||||
"+set fs_game modDirectoryName"
|
||||
|
||||
as well as force the content of your mod directory over the content of the game with the following command:
|
||||
|
||||
"+set fs_resourceLoadPriority 0"
|
||||
|
||||
so it would end up looking like: RBDoom3BFG +set fs_resourceLoadPriority 0 +set fs_game modDirectoryName
|
||||
|
||||
|
||||
IMPORTANT: RBDOOM-3-BFG does not support old Doom 3 modiciations that include sourcecode modifications in binary form (.dll)
|
||||
You can fork RBDOOM-3-BFG and create a new renamed binary that includes all required C++ game code modifications.
|
||||
|
||||
____________________________________________________________________________________
|
||||
|
||||
12) CODE LICENSE EXCEPTIONS - The parts that are not covered by the GPL:
|
||||
13) CODE LICENSE EXCEPTIONS - The parts that are not covered by the GPL:
|
||||
_______________________________________________________________________
|
||||
|
||||
|
||||
|
|
97
RELEASE-NOTES.txt
Normal file
97
RELEASE-NOTES.txt
Normal file
|
@ -0,0 +1,97 @@
|
|||
____ ____ ____ _____ ____ ______ ______
|
||||
/ __ \ / __ ) / __ \ ____ ____ ____ ___ |__ / / __ ) / ____// ____/
|
||||
/ /_/ // __ |/ / / // __ \ / __ \ / __ `__ \ /_ < / __ |/ /_ / / __
|
||||
/ _, _// /_/ // /_/ // /_/ // /_/ // / / / / /___/ // /_/ // __/ / /_/ /
|
||||
/_/ |_|/_____//_____/ \____/ \____//_/ /_/ /_//____//_____//_/ \____/
|
||||
_________________________________________
|
||||
|
||||
|
||||
RBDOOM-3-BFG Release Notes - https://github.com/RobertBeckebans/RBDOOM-3-BFG
|
||||
|
||||
Thank you for downloading RBDOOM-3-BFG.
|
||||
|
||||
|
||||
|
||||
_______________________________________
|
||||
|
||||
7 March 2015 - RBDOOM-3-BFG 1.0.3
|
||||
_______________________________
|
||||
|
||||
- SDL 2 is the default for Linux
|
||||
|
||||
- CMake options like -DUSE_SYSTEM_LIBJPEG to aid Linux distribution package maintainers
|
||||
|
||||
- SDL gamepad support and other SDL input improvements like support for more mouse buttons
|
||||
|
||||
- Mac OS X support (experimental)
|
||||
|
||||
- XAudio 2, Windows 8 SDK fixes
|
||||
|
||||
- Better Mesa support (not including advanced shadow mapping)
|
||||
|
||||
- Added back dmap and aas compilers (mapping tools)
|
||||
|
||||
- Cinematic sequences can be skipped
|
||||
|
||||
- Localization support for other languages than English
|
||||
|
||||
- Improved modding support through loading of custom models and animations (see section 12 MODIFICATIONS in the README)
|
||||
|
||||
|
||||
|
||||
_______________________________________
|
||||
|
||||
17 May 2014 - RBDOOM-3-BFG 1.0.2
|
||||
|
||||
RBDOOM-3-BFG-1.0.2-ATI-hotfix1-win32-20140517-git-952907f.7z
|
||||
_______________________________
|
||||
|
||||
This release doubles the shadow mapping performance and allows the game to be played at solid 120 fps in 1080p with a Nvidia GTX 660 Ti.
|
||||
It also adds a graphics option to enable/disable shadow mapping and fixes a few problems with FFmpeg playing Bink videos.
|
||||
|
||||
|
||||
|
||||
_______________________________________
|
||||
|
||||
11 May 2014 - RBDOOM-3-BFG 1.0.1
|
||||
|
||||
RBDOOM-3-BFG-win32-20140511-git-f950769.7z
|
||||
_______________________________
|
||||
|
||||
This release improves the performance drastically and adds shadow mapping support for translucent surfaces like grates.
|
||||
|
||||
|
||||
_______________________________________
|
||||
|
||||
10 May 2014 - RBDOOM-3-BFG 1.0
|
||||
|
||||
RBDOOM-3-BFG-win32-20140510-git-14f87fe.7z
|
||||
_______________________________
|
||||
|
||||
- Added soft shadow mapping
|
||||
|
||||
- Added PNG image support
|
||||
|
||||
- Replaced QGL with GLEW
|
||||
|
||||
- base/renderprogs/ can be baked into the executable using Premake/Lua
|
||||
|
||||
- Replaced Visual Studio solution with CMake
|
||||
|
||||
- Linux port using SDL/SDL2 and OpenAL
|
||||
|
||||
- 64 bit support for Windows and Linux
|
||||
|
||||
- Sourcecode cleanup using Artistic Style 2.03 C++ beautifier and by fixing tons of warnings using Clang compiler
|
||||
|
||||
- Fast compile times using precompiled header support
|
||||
|
||||
- Tons of renderer bugfixes and Cg -> GLSL converter that supports ES 2.00, ES 3.30 additional to GLSL 1.50
|
||||
|
||||
- Netcode fixes to allow multiplayer sessions to friends with +connect <ip of friend> (manual port forwarding required)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -3436,10 +3436,14 @@ cm_model_t* idCollisionModelManagerLocal::LoadBinaryModelFromFile( idFile* file,
|
|||
}
|
||||
ID_TIME_T storedTimeStamp = FILE_NOT_FOUND_TIMESTAMP;
|
||||
file->ReadBig( storedTimeStamp );
|
||||
if( !fileSystem->InProductionMode() && storedTimeStamp != sourceTimeStamp )
|
||||
|
||||
// RB: source might be from .resources, so we ignore the time stamp and assume a release build
|
||||
if( !fileSystem->InProductionMode() && ( sourceTimeStamp != FILE_NOT_FOUND_TIMESTAMP ) && ( sourceTimeStamp != 0 ) && ( sourceTimeStamp != storedTimeStamp ) )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
// RB end
|
||||
|
||||
cm_model_t* model = AllocModel();
|
||||
file->ReadString( model->name );
|
||||
file->ReadBig( model->bounds );
|
||||
|
|
|
@ -427,10 +427,13 @@ bool idMD5Anim::LoadBinary( idFile* file, ID_TIME_T sourceTimeStamp )
|
|||
|
||||
ID_TIME_T loadedTimeStamp;
|
||||
file->ReadBig( loadedTimeStamp );
|
||||
if( !fileSystem->InProductionMode() && sourceTimeStamp != loadedTimeStamp )
|
||||
|
||||
// RB: source might be from .resources, so we ignore the time stamp and assume a release build
|
||||
if( !fileSystem->InProductionMode() && ( sourceTimeStamp != FILE_NOT_FOUND_TIMESTAMP ) && ( sourceTimeStamp != 0 ) && ( sourceTimeStamp != loadedTimeStamp ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// RB end
|
||||
|
||||
file->ReadBig( numFrames );
|
||||
file->ReadBig( frameRate );
|
||||
|
|
|
@ -169,10 +169,10 @@ public:
|
|||
virtual void EnableBackgroundCache( bool enable );
|
||||
virtual void BeginLevelLoad( const char* name, char* _blockBuffer, int _blockBufferSize );
|
||||
virtual void EndLevelLoad();
|
||||
virtual bool InProductionMode()
|
||||
{
|
||||
return ( resourceFiles.Num() > 0 ) | ( com_productionMode.GetInteger() != 0 );
|
||||
}
|
||||
|
||||
// RB begin
|
||||
virtual bool InProductionMode();
|
||||
// RB end
|
||||
virtual bool UsingResourceFiles()
|
||||
{
|
||||
return resourceFiles.Num() > 0;
|
||||
|
@ -783,6 +783,15 @@ void idFileSystemLocal::EndLevelLoad()
|
|||
|
||||
}
|
||||
|
||||
// RB begin
|
||||
bool idFileSystemLocal::InProductionMode()
|
||||
{
|
||||
//return fs_resourceLoadPriority.GetBool() && ( resourceFiles.Num() > 0 ) || ( com_productionMode.GetInteger() != 0 );
|
||||
|
||||
return ( com_productionMode.GetInteger() != 0 );
|
||||
}
|
||||
// RB end
|
||||
|
||||
bool FileExistsInAllManifests( const char* filename, idList< idFileManifest >& manifests )
|
||||
{
|
||||
for( int i = 0; i < manifests.Num(); i++ )
|
||||
|
|
|
@ -446,7 +446,7 @@ idBinaryImage::LoadFromGeneratedFile
|
|||
Load the preprocessed image from the generated folder.
|
||||
==========================
|
||||
*/
|
||||
bool idBinaryImage::LoadFromGeneratedFile( idFile* bFile, ID_TIME_T sourceFileTime )
|
||||
bool idBinaryImage::LoadFromGeneratedFile( idFile* bFile, ID_TIME_T sourceTimeStamp )
|
||||
{
|
||||
if( bFile->Read( &fileData, sizeof( fileData ) ) <= 0 )
|
||||
{
|
||||
|
@ -466,10 +466,13 @@ bool idBinaryImage::LoadFromGeneratedFile( idFile* bFile, ID_TIME_T sourceFileTi
|
|||
{
|
||||
return false;
|
||||
}
|
||||
if( fileData.sourceFileTime != sourceFileTime && sourceFileTime != 0 && com_productionMode.GetInteger() == 0 )
|
||||
|
||||
// RB: source might be from .resources, so we ignore the time stamp and assume a release build
|
||||
if( !fileSystem->InProductionMode() && ( sourceTimeStamp != FILE_NOT_FOUND_TIMESTAMP ) && ( sourceTimeStamp != 0 ) && ( sourceTimeStamp != fileData.sourceFileTime ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// RB end
|
||||
|
||||
int numImages = fileData.numLevels;
|
||||
if( fileData.textureType == TT_CUBIC )
|
||||
|
|
|
@ -366,10 +366,12 @@ bool idRenderModelStatic::LoadBinaryModel( idFile* file, const ID_TIME_T sourceT
|
|||
|
||||
file->ReadBig( timeStamp );
|
||||
|
||||
if( !fileSystem->InProductionMode() && sourceTimeStamp != timeStamp )
|
||||
// RB: source might be from .resources, so we ignore the time stamp and assume a release build
|
||||
if( !fileSystem->InProductionMode() && ( sourceTimeStamp != FILE_NOT_FOUND_TIMESTAMP ) && ( sourceTimeStamp != 0 ) && ( sourceTimeStamp != timeStamp ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// RB end
|
||||
|
||||
common->UpdateLevelLoadPacifier();
|
||||
|
||||
|
|
|
@ -301,11 +301,15 @@ idRenderModel* idRenderModelManagerLocal::GetModel( const char* _modelName, bool
|
|||
idStr generatedFileName = "generated/rendermodels/";
|
||||
generatedFileName.AppendPath( canonical );
|
||||
generatedFileName.SetFileExtension( va( "b%s", extension.c_str() ) );
|
||||
|
||||
// Get the timestamp on the original file, if it's newer than what is stored in binary model, regenerate it
|
||||
ID_TIME_T sourceTimeStamp = fileSystem->GetTimestamp( canonical );
|
||||
|
||||
if( model->SupportsBinaryModel() && r_binaryLoadRenderModels.GetBool() )
|
||||
{
|
||||
idFileLocal file( fileSystem->OpenFileReadMemory( generatedFileName ) );
|
||||
model->PurgeModel();
|
||||
if( !model->LoadBinaryModel( file, 0 ) )
|
||||
if( !model->LoadBinaryModel( file, sourceTimeStamp ) )
|
||||
{
|
||||
model->LoadModel();
|
||||
}
|
||||
|
|
|
@ -139,7 +139,7 @@ bool idSWF::LoadSWF( const char* fullpath )
|
|||
idSWF::LoadBinary
|
||||
===================
|
||||
*/
|
||||
bool idSWF::LoadBinary( const char* bfilename, ID_TIME_T sourceTime )
|
||||
bool idSWF::LoadBinary( const char* bfilename, ID_TIME_T sourceTimeStamp )
|
||||
{
|
||||
idFile* f = fileSystem->OpenFileReadMemory( bfilename );
|
||||
if( f == NULL || f->Length() <= 0 )
|
||||
|
@ -152,11 +152,13 @@ bool idSWF::LoadBinary( const char* bfilename, ID_TIME_T sourceTime )
|
|||
f->ReadBig( magic );
|
||||
f->ReadBig( btimestamp );
|
||||
|
||||
if( magic != BSWF_MAGIC || ( com_productionMode.GetInteger() == 0 && sourceTime != FILE_NOT_FOUND_TIMESTAMP && sourceTime != btimestamp ) )
|
||||
// RB: source might be from .resources, so we ignore the time stamp and assume a release build
|
||||
if( magic != BSWF_MAGIC || ( !fileSystem->InProductionMode() && ( sourceTimeStamp != FILE_NOT_FOUND_TIMESTAMP ) && ( sourceTimeStamp != 0 ) && ( sourceTimeStamp != btimestamp ) ) )
|
||||
{
|
||||
delete f;
|
||||
return false;
|
||||
}
|
||||
// RB end
|
||||
|
||||
f->ReadBig( frameWidth );
|
||||
f->ReadBig( frameHeight );
|
||||
|
|
Loading…
Reference in a new issue