Git Product home page Git Product logo

existence / fhdoom Goto Github PK

View Code? Open in Web Editor NEW

This project forked from id-software/doom-3

178.0 178.0 24.0 59.01 MB

Modernized DOOM3/idTech4 engine: ported to modern OpenGL (core profile), enhanced visual effects, improved performance, improved editor, more to come

License: GNU General Public License v3.0

C++ 68.73% C 21.85% CMake 0.22% Shell 0.93% Emacs Lisp 0.01% HTML 1.15% Awk 0.01% Perl 0.30% Makefile 1.23% Python 0.19% Objective-C 3.66% Objective-C++ 0.39% NSIS 0.01% GLSL 0.19% Batchfile 0.01% DIGITAL Command Language 0.02% Yacc 0.10% M4 0.39% Roff 0.63%
3d-engine 3d-graphics doom doom3 idtech4 opengl

fhdoom's People

Contributors

existence avatar hogsy avatar kortemik avatar raynorpat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fhdoom's Issues

Fog

Fog renders incorrect on geometry, especially on twosided materials. Those glitches are well observed ั–n enpro level (in reactor shaft).

Can't move mouse on main menu

The port boots up just fine, but the cursor is always stuck in the top-right corner of the main menu.

Things I've tried:

  • Renaming the exe (saw this on pcgwiki)
  • Installing into it's own directory adding only the necessary files
  • Installing right on top of my D3 installation
  • All compatibility modes and administrator privileges

Please let me know any relevant information I mightve overlooked, thanks.

Linux - error: 'next' was not declared in this scope

After having fixed an issue with intptr_t, Upon compiling I'm now running into this error:

[ 11%] Building CXX object neo/game/CMakeFiles/fhGame-x86.dir/ai/AI_pathing.cpp.o
/ramdisk/fhDOOM-master/neo/game/ai/AI_pathing.cpp: In function 'pathNode_t* BuildPathTree(const obstacle_t*, int, const idBounds&, const idVec2&, const idVec2&, obstaclePath_t&)':
/ramdisk/fhDOOM-master/neo/game/ai/AI_pathing.cpp:597:52: error: 'next' was not declared in this scope
  idQueueTemplate<pathNode_t, offsetof( pathNode_t, next ) > pathNodeQueue, treeQueue;

Google suggests:

https://stackoverflow.com/questions/24416857/c-error-function-was-not-declared-in-this-scope

I'm still looking into this but hopefully there's some flag I can pass to GCC to make it happy with non-scope declaration, probably another thing that Microsoft is cool with but GCC doesn't like.

Black Screen on AMD R9 390

As the title says there seems to be some problem with this engine and the AMD R9 series.
I can start the game and sound works but the screen is totally black.

Might be driver related but i tried several versions and none of them work :/

Performance on Linux

I have a build up and running on Linux, but performance is extremely poor ( half the speed of dhewm ).
I'm using Ubuntu 18.04 and an intel HD 500 GPU + Celeron n4000.

LINKER ERROR

I'm getting some linker errors.

13>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new_scalar.obj)
13>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMT.lib(delete_scalar.obj)
13>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) already defined in LIBCMT.lib(new_array.obj)
13>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) already defined in LIBCMT.lib(delete_array.obj)
13>D:\fhDOOM\build\msvc2019-x86\bin\Release\fhDOOM.exe : fatal error LNK1169: one or more multiply defined symbols found
13>Done building project "fhDOOM.vcxproj" -- FAILED.

Black boxes in Resurection on Evil

Some enemies, such as flying heads, have a circular area of unfocussed air around them.
On the first level, at the door of the temple as you go up the stairs, black blocks appear covering the entire door. With the flashlight and fists it does not happen.
If the options are removed other than see the weapons that are being used then you do not see these blocks in black.

Compilation fails on x64 Kubuntu 17.04

Hi,

Compilation appears to go well, right up until the linking phase:

[ 99%] Building CXX object neo/CMakeFiles/fhDOOM.dir/sys/linux/input.cpp.o
[100%] Building C object neo/CMakeFiles/fhDOOM.dir/sys/linux/libXNVCtrl/NVCtrl.c.o
[100%] Building CXX object neo/CMakeFiles/fhDOOM.dir/tools/guied/GEWindowWrapper_stub.cpp.o
[100%] Building CXX object neo/CMakeFiles/fhDOOM.dir/sys/linux/sound_alsa.cpp.o
[100%] Building CXX object neo/CMakeFiles/fhDOOM.dir/sys/linux/sound.cpp.o
[100%] Linking CXX executable ../bin/fhDOOM
CMakeFiles/fhDOOM.dir/renderer/RenderSystem_init.cpp.o: In function R_InitOpenGL()': RenderSystem_init.cpp:(.text+0x2ff4): undefined reference to Sys_GetDisplays()'
collect2: error: ld returned 1 exit status
neo/CMakeFiles/fhDOOM.dir/build.make:4728: recipe for target 'bin/fhDOOM' failed
make[2]: *** [bin/fhDOOM] Error 1
CMakeFiles/Makefile2:298: recipe for target 'neo/CMakeFiles/fhDOOM.dir/all' failed
make[1]: *** [neo/CMakeFiles/fhDOOM.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Can you help?

expansion bug

I know the shaders are not done for it yet, but this one seems to not be shader related ? ->
error unknown weapon "weapon_pda".

keycard fallen through table

level 3 Mars City (revisited) the security keycard in the Reception Processing room has fallen through the table and can't be picked up. Happens every time I play the level in fhdoom, and not in the original engine. Makes it impossible to advance

keycard

State of the port as of today?

Hi, (don't even know if this is a proper place for this question). I have been following the project for quite some time now, thank you eXistence for this amazing port.

I'm wondering: how things are going in this end of 2018, and what is to be expected for 2019?

Projected shadows

Projected lights casts incorrect shadows ( in shadow map mode ) when light wolume is not quadratic.

"sort portalsky" in material file makes portal_sky texture render opaque black

I'm currently using fhDOOM in a personal project, and i'm using the d3xp dll for the graphical features like Portalskies. But when using a portalsky material with "sort portalsky" (or "sort 1", since that's the same render layer), the texture will render black.

If everything else is set up correctly, you can usually see the Portalsky rendering correctly when you noclip out of the map. You can also make it render correctly if you remove the sort line from the material, but that means the material no longer can block bsp properly, and it doesn't seal leaks. This means the option right now is not to use a portalsky, or to have it work, but not block leaks.

The Portalsky is rendering on a test material in these screenshots, showing that it is working correctly.

Another thing I've noticed, while gathering the screenshots, that the in game screenshot function is broken with this

I'm only submitting this as an issue as it may help with ROE compatibility, but also because I can't seem to tell any difference between my files and the versions used fine in another fork of Doom 3, i can't seem to source where this issue is coming from.

I went to take screenshots in game, but they only seem to be rendering the info_portalsky output, on maps without them it just stores the last frame of the loading screen. i don't know how related this may be to the issue at hand, i attached a comparison between what in game is showing vs what i'm seeing on my screen too.

I'm also attaching my material and def for the skyportal, which are basically identical to actual thing but still, just in case.

problem_nolabels
problem illustrated, no labels
problem_labeled
problem illustrated with labels
in_game_screenshot
in game screenshot only showing _currentRender(?)/what should be shown on portal_sky material
compare_with_in game
what i saw on my screen when i took the in game screenshot

portalsky.def.txt
portalsky.mtr.txt

Thanks. Hopefully this is helpful. I'll continue to try figure it out myself but uh, i'm not very good at this, haha.

Why replacing pk4 files?

I'm just wondering, why is there a need for replace the pakxxx.pk4 files instead of for example adding new ones?

_currentRender

Shaders that use _currentRender texture ( like heathaze ) are broken when there is fog or blend light in scene.

Compilation failed for Ubuntu X64 but succeed with modification to neo/sound/sound.h

At the first attempt to build, error happened complaining incomplete structure of struct EFXEAXREVERBPROPERTIES. Change line 129 ,
from :

struct EFXEAXREVERBPROPERTIES;

to :

struct EFXEAXREVERBPROPERTIES {
float flAirAbsorptionGainHF;
float flDecayHFRatio;
float flDecayLFRatio;
float flDecayTime;
float flDensity;
float flDiffusion;
float flEchoDepth;
float flEchoTime;
float flGain;
float flGainHF;
float flGainLF;
float flHFReference;
float flLateReverbDelay;
float flLateReverbGain;
float flLateReverbPan [3];
float flLFReference;
float flModulationDepth;
float flModulationTime;
float flReflectionsDelay;
float flReflectionsGain;
float flReflectionsPan [3];
float flRoomRolloffFactor;
int iDecayHFLimit;
};

and compilation can continue and the binary is playable. I don't know wether this is only affecting my system or can affect wider audience. I don't know either wether the change is necessary. My system is Ubuntu x64 with modest hardware of Intel Compute stick Atom X5-8300 1,6GHz, 2GB RAM and Intel HD graphics. Compiled using gcc|release option.

GPU skeletal from Doom BFG

It would be nice to port GPU skeletal from Doom 3 BFG into fhDoom. It would provide nice performance boost for mods with a lot of NPCs.

32-bitness

What I thought was a bug was just 32-bit dependencies. Is there a compelling reason we're stuck with 32-bit code? Has any attempt been made to bring the 32-bit deps up to 64?

I know for a game the argument is often made 'it doesn't matter' but being able to compile on 64-bit pure systems would be really nice. It's less about the feature and more about the utility of it, but it would also be awesome to have a doom 3 level that spanned more than 4GB of assets.

Building for Linux

Hello,

You've described building for Windows. But what if I want to build your engine for Linux instead?

Performance?

Hi there,

I suppose this isn't really an issue, but wanted to ask regardless.
Your latest push fixed my compilation problem, I can now compile and run fhDOOM (thanks)
However performance is rather bad on my machine, I've disabled things such as soft shadows which definitely helps but it's still nowhere near as fast as dhewm3 on my machine (x64 Kubuntu, running on an i5 with Haswell chipset, Intel HD4600 gpu, 8Gb ram), less than half the framerate :/

Are there other fhDOOM-specific settings I need to mess with? If not, is there room for optimization?

Thanks once again for your hard work

mirror scare in mars city 2 leaves game unplayable

compiled from latest, windows 10, nvidia. mars_city2, the mirror jump scare in the bathroom leaves the final frame of the old marine in hell visual covering everything but the crosshair (r_useframebuffer 1). With r_useframebuffer 0, that doesn't happen but the last frame of your reflection shows on every glass surface (like the skylight) after that.

framebuffer off:
http://chattypics.com/files/doom3_go7ly0ylxd.jpg

framebuffer on, the image of your player character fills the whole screen

Black screen on vid_restart, reloadengine, and mod load

Restarting the video subsystem, loading a mod, or restarting the entire engine causes a black screen that doesn't recover. However, the game can be heard and operated normally during this state (entering console commands, actually playing the game) until a visual event happens (imp throws a fireball), in which windows spits out "fhDoom has stopped working" and closes it.

Steps to recreate state after mod loading:
1. Load game to menu
2. Press mods and load a mod (even just a simple mod with no content)
3. Wait for mod to load

After this the game enters a black screen state that will not recover.

Steps to recreate state after vid_restart:
1. Load game to menu
2. Open console with ~
3. Type and submit the vid_restart command

Same as previous.

Repeat the same thing for reloadengine.

I have additionally tried the old method of loading mods by shortcut using +fs_game modname, but doom gives me the "fs_game is write protected" error and doesn't do anything. Opposite of what is normally expected.

This issue basically forces me to mod the base game files, which is less than ideal.

Linux - errors on compilation

Hello,

As described in the "Building on Linux" issue, I was getting errors about intptr_t and Class.h

I fixed this by adding:

#include <stdint.h>

to the beginning of Class.h

Apparently implementations, of intptr_t vary based on your environment or compiler, so sometimes it's implied, sometimes it's not, I'm guessing it's implied with the Microsoft stuff, but not with GCC 6.3

Either way, I've gotten past that now - just letting you know what fixed that particular issue.

Cheers

Error when compiling (undefined reference to `__cxa_throw_bad_array_new_length')

Compiling release build on ubuntu 18.04 with g++ 7.4.
CMakeFiles/fhDOOM.dir/renderer/draw_glsl.cpp.o: In function 'RB_GLSL_DrawInteractions()': draw_glsl.cpp:(.text+0x2867): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/cm/CollisionModel_load.cpp.o: In function 'idCollisionModelManagerLocal::ConvertPatch(cm_model_s*, idMapPatch const*, int)': CollisionModel_load.cpp:(.text+0xa2d0): undefined reference to '__cxa_throw_bad_array_new_length' CollisionModel_load.cpp:(.text+0xa2d8): undefined reference to '__cxa_throw_bad_array_new_length' CollisionModel_load.cpp:(.text+0xa2e0): undefined reference to '__cxa_throw_bad_array_new_length' CollisionModel_load.cpp:(.text+0xa2e8): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/framework/async/ServerScan.cpp.o:ServerScan.cpp:(.text+0x1b20): more undefined references to '__cxa_throw_bad_array_new_length' follow CMakeFiles/fhDOOM.dir/renderer/Model.cpp.o: In function 'idRenderModelStatic::ConvertOBJToModelSurfaces(objModel_t const*)': Model.cpp:(.text+0x921f): undefined reference to 'std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned int) const' Model.cpp:(.text+0xb305): undefined reference to '__cxa_throw_bad_array_new_length' Model.cpp:(.text+0xb36f): undefined reference to '__cxa_throw_bad_array_new_length' Model.cpp:(.text+0xb37a): undefined reference to '__cxa_throw_bad_array_new_length' Model.cpp:(.text+0xb3f3): undefined reference to '__cxa_throw_bad_array_new_length' Model.cpp:(.text+0xb3fe): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/Model.cpp.o:Model.cpp:(.text+0xb409): more undefined references to '__cxa_throw_bad_array_new_length' follow CMakeFiles/fhDOOM.dir/renderer/Model.cpp.o: In function 'std::_Hashtable<objVertex_t, std::pair<objVertex_t const, int>, std::allocator<std::pair<objVertex_t const, int> >, std::__detail::_Select1st, std::equal_to<objVertex_t>, std::hash<objVertex_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned int, unsigned int, std::__detail::_Hash_node<std::pair<objVertex_t const, int>, true>*)': Model.cpp:(.text._ZNSt10_HashtableI11objVertex_tSt4pairIKS0_iESaIS3_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEjjPNS5_10_Hash_nodeIS3_Lb1EEE[_ZNSt10_HashtableI11objVertex_tSt4pairIKS0_iESaIS3_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEjjPNS5_10_Hash_nodeIS3_Lb1EEE]+0x4b): undefined reference to 'std::__detail::_Prime_rehash_policy::_M_need_rehash(unsigned int, unsigned int, unsigned int) const' CMakeFiles/fhDOOM.dir/renderer/ModelManager.cpp.o: In function 'idRenderModelManagerLocal::PrintMemInfo(MemInfo_t*)': ModelManager.cpp:(.text+0xe16): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/ModelManager.cpp.o: In function 'idRenderModelManagerLocal::AddModel(idRenderModel*)': ModelManager.cpp:(.text+0x15ba): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/RenderSystem.cpp.o: In function 'idRenderSystemLocal::AllocRenderWorld()': RenderSystem.cpp:(.text+0x2a61): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/RenderSystem_init.cpp.o: In function '.L58': RenderSystem_init.cpp:(.text+0x494): undefined reference to 'std::__throw_system_error(int)' CMakeFiles/fhDOOM.dir/renderer/RenderSystem_init.cpp.o: In function '.L573': RenderSystem_init.cpp:(.text+0x32de): undefined reference to 'std::__throw_system_error(int)' CMakeFiles/fhDOOM.dir/renderer/RenderSystem_init.cpp.o: In function 'RB_PrintDebugOutput()': RenderSystem_init.cpp:(.text+0x398d): undefined reference to 'std::__throw_system_error(int)' CMakeFiles/fhDOOM.dir/renderer/RenderSystem_init.cpp.o: In function '.L806': RenderSystem_init.cpp:(.text+0x4e16): undefined reference to 'std::__throw_system_error(int)' CMakeFiles/fhDOOM.dir/renderer/ShadowMapAllocator.cpp.o: In function 'fhShadowMapAllocator::fhShadowMapAllocator()': ShadowMapAllocator.cpp:(.text+0x4d6): undefined reference to '__cxa_throw_bad_array_new_length' ShadowMapAllocator.cpp:(.text+0x503): undefined reference to '__cxa_throw_bad_array_new_length' ShadowMapAllocator.cpp:(.text+0x50b): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/ShadowMapAllocator.cpp.o: In function 'fhShadowMapAllocator::FreeAll()': ShadowMapAllocator.cpp:(.text+0x79c): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/ShadowMapAllocator.cpp.o: In function 'fhShadowMapAllocator::Make(int)': ShadowMapAllocator.cpp:(.text+0xb28): undefined reference to '__cxa_throw_bad_array_new_length' CMakeFiles/fhDOOM.dir/renderer/ShadowMapAllocator.cpp.o:ShadowMapAllocator.cpp:(.text+0xf89): more undefined references to '__cxa_throw_bad_array_new_length' follow collect2: error: ld returned 1 exit status neo/CMakeFiles/fhDOOM.dir/build.make:4676: recipe for target 'bin/fhDOOM' failed make[2]: *** [bin/fhDOOM] Error 1 CMakeFiles/Makefile2:261: recipe for target 'neo/CMakeFiles/fhDOOM.dir/all' failed make[1]: *** [neo/CMakeFiles/fhDOOM.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.