Jump to content
The Dark Mod Forums

Search the Community

Showing results for '/tags/forums/input/'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General Discussion
    • News & Announcements
    • The Dark Mod
    • Fan Missions
    • Off-Topic
  • Feedback and Support
    • TDM Tech Support
    • DarkRadiant Feedback and Development
    • I want to Help
  • Editing and Design
    • TDM Editors Guild
    • Art Assets
    • Music & SFX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Hey! With the Thief series the slow pace make them perfect games to play on the big screen with a controller, However TDM has a lot of keys to set up (like the original Thief) so mapping all the keys to a controller is a challenge and requires some compromises to be made. I've been playing with a Xbox360 controller for a while now, and think I have a good setup for TDM, with all or most of the functions mapped. For those interested, I thought I'd share it here, and ask for any input you guys have on what could be improved. The Dark Mod Xbox 360 Controller =============================== Main ==== LS: WASD movement LS Press: Crouch RS: Mouse look / Rotate (with manipulate) RS Press: Eyeglass A: Frob / Interact B: Use item X: Jump / Mantle Y: Lantern Dpad Up: Lean forward Dpad Down: Put away weapons Dpad Left: Lean left Dpad Right: Lean right LT: Parry / Manipulate RT: Attack RB: Change to Set 2 LB: Run Back: ESC Start: Objectives Set 2 ===== LS: WASD movement LS Press: Clear inventory RS: Mouse look / Rotate (with manipulate) RS Press: Drop inventory item Y: Cycle lockpicks X: Cycle keys A: Cycle maps B: Cycle readables Dpad Up: Previous weapon / Zoom Dpad Down: Next weapon / Zoom Dpad Left: Next inventory item Dpad Right: Previous inventory item LT: Shortsword RT: Blackjack LB: Creep RB: n/a Back: Quick load Start: Quick save And here is the profile itself. Copy+paste to a profile file, you know how it works of you use Xpadder: ;--- Xpadder Profile Data --- DataType=Profile Version=2013.07.18 Name=Thief The Dark Mod Set1Name=Main Set1StickDeadZones=92,64 Set1DPadMode=FourWay Set2Name=Set 2 Set2StickDeadZones=92,64 Set2DPadMode=FourWay Set1Button1Name=Frob/interact Set1Button1Slots=Right Mouse Button (2) Set1Button2Name=Use item Set1Button2Slots=Enter Set1Button3Name=Jump/Mantle Set1Button3Slots=Space Set1Button4Name=Lantern Set1Button4Slots=L Set1Button5Name=Creep Set1Button5Slots=Left Shift Set1Button6Name=To Set 2 Set1Button6SetSelect=1 Set1Button7Name=Menu Set1Button7Slots=Escape Set1Button8Name=Objectives Set1Button8Slots=O Set1Button9Name=Crouch Set1Button9Slots=X Set1Button10Name=Spyglass Set1Button10Slots=G Set1DPadUpName=Lean forward Set1DPadUpSlots=F Set1DPadRightName=Lean right Set1DPadRightSlots=E Set1DPadDownName=Put away weapon Set1DPadDownSlots=Back-Tick Set1DPadLeftName=Lean left Set1DPadLeftSlots=Q Set1Stick1UpName=Forward Set1Stick1UpSlots=W Set1Stick1RightName=Strafe right Set1Stick1RightSlots=D Set1Stick1DownName=Backward Set1Stick1DownSlots=S Set1Stick1LeftName=Strafe left Set1Stick1LeftSlots=A Set1Stick2UpSlots=Mouse Move Up Set1Stick2UpMouseSpeed=32 Set1Stick2RightSlots=Mouse Move Right Set1Stick2RightMouseSpeed=32 Set1Stick2DownSlots=Mouse Move Down Set1Stick2DownMouseSpeed=32 Set1Stick2LeftSlots=Mouse Move Left Set1Stick2LeftMouseSpeed=32 Set1TriggerLeftName=Parry/Manipulate Set1TriggerLeftSlots=Middle Mouse Button (3) Set1TriggerRightName=Attack Set1TriggerRightSlots=Left Mouse Button (1) Set2Button1Name=Toggle maps Set2Button1Slots=M Set2Button2Name=Toggle readables Set2Button2Slots=I Set2Button3Name=Toggle keys Set2Button3Slots=K Set2Button4Name=Toggle lockpicks Set2Button4Slots=P Set2Button5Name=Run Set2Button5Slots=Left Control Set2Button6SetSelect=0 Set2Button7Name=Quick load Set2Button7Slots=F9 Set2Button8Name=Quick save Set2Button8Slots=F4 Set2Button9Name=Clear inventory Set2Button9Slots=Back-Slash[uS]/Hash[uK] Set2Button10Name=Drop item Set2Button10Slots=R Set2DPadUpName=Prev. weapon Set2DPadUpSlots=Mouse Wheel Up Set2DPadRightName=Prev. inv. item Set2DPadRightSlots=Right Square Bracket Set2DPadDownName=Next weapon Set2DPadDownSlots=Mouse Wheel Down Set2DPadLeftName=Next inv. item Set2DPadLeftSlots=Left Square Bracket Set2Stick1UpName=Forward Set2Stick1UpSlots=W Set2Stick1RightName=Strafe right Set2Stick1RightSlots=D Set2Stick1DownName=Backward Set2Stick1DownSlots=S Set2Stick1LeftName=Strafe left Set2Stick1LeftSlots=A Set2Stick2UpSlots=Mouse Move Up Set2Stick2UpMouseSpeed=32 Set2Stick2RightSlots=Mouse Move Right Set2Stick2RightMouseSpeed=32 Set2Stick2DownSlots=Mouse Move Down Set2Stick2DownMouseSpeed=32 Set2Stick2LeftSlots=Mouse Move Left Set2Stick2LeftMouseSpeed=32 Set2Stick2UpRightSlots=5 Set2Stick2DownRightSlots=0 Set2Stick2DownLeftSlots=8 Set2Stick2UpLeftSlots=3 Set2TriggerLeftName=Sword Set2TriggerLeftSlots=2 Set2TriggerRightName=Blackjack Set2TriggerRightSlots=1 Any input is appreciated, and hope it is useful for people -Shadrach EDIT: Changed LB to Run, while Set 2 LB has Creep - figured after playing some more that Run+Jump needs to be possible and Creep is very rarely needed. There certainly are some missions where running jump is a necessity at some places.
  2. Hi, this mission is crashing on my system and I cannot go on. Playing "Hidden Hands - The lost citadel" Version 6 on Fedora Linux Version 38. I paste the whole output of the console below. Perhaps someone can find the cause for the crash, that would be very nice [stefan@fedora darkmod]$ ./thedarkmod.x64 TDM 2.11/64 #10264 (1435:10264) linux-x86_64 Jan 30 2023 02:02:43 /proc/cpuinfo CPU frequency: 899.998 MHz 900 MHz Intel CPU with SSE & SSE2 & SSE3 & SSSE3 & SSE41 & AVX found interface lo - loopback Found Intel CPU, features: SSE SSE2 SSE3 SSSE3 SSE41 AVX TDM using AVX for SIMD processing. Found 0 new missions and 0 packages. ------ Initializing File System ------ Current search path: [M] /home/stefan/darkmod/fms/hhtlc [M] /home/stefan/darkmod/fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4 (665 files - 0xf04d8d7e) [C] /home/stefan/darkmod/ [C] /home/stefan/darkmod/tdm_textures_wood01.pk4 (382 files - 0x54c704d0) [C] /home/stefan/darkmod/tdm_textures_window01.pk4 (399 files - 0x50a48869) [C] /home/stefan/darkmod/tdm_textures_stone_sculpted01.pk4 (464 files - 0x3bd63c7c) [C] /home/stefan/darkmod/tdm_textures_stone_natural01.pk4 (141 files - 0x4d0836ff) [C] /home/stefan/darkmod/tdm_textures_stone_flat01.pk4 (302 files - 0x671a22d2) [C] /home/stefan/darkmod/tdm_textures_stone_cobblestones01.pk4 (271 files - 0xc46ab14f) [C] /home/stefan/darkmod/tdm_textures_stone_brick01.pk4 (527 files - 0x1d087cf8) [C] /home/stefan/darkmod/tdm_textures_sfx01.pk4 (69 files - 0x2c673886) [C] /home/stefan/darkmod/tdm_textures_roof01.pk4 (69 files - 0x24547b7) [C] /home/stefan/darkmod/tdm_textures_plaster01.pk4 (142 files - 0x9747529e) [C] /home/stefan/darkmod/tdm_textures_paint_paper01.pk4 (67 files - 0xa4a95a09) [C] /home/stefan/darkmod/tdm_textures_other01.pk4 (127 files - 0x36932451) [C] /home/stefan/darkmod/tdm_textures_nature01.pk4 (286 files - 0x19240606) [C] /home/stefan/darkmod/tdm_textures_metal01.pk4 (509 files - 0x441d098f) [C] /home/stefan/darkmod/tdm_textures_glass01.pk4 (51 files - 0x3f3721e) [C] /home/stefan/darkmod/tdm_textures_fabric01.pk4 (43 files - 0x649daf73) [C] /home/stefan/darkmod/tdm_textures_door01.pk4 (177 files - 0xb0130166) [C] /home/stefan/darkmod/tdm_textures_decals01.pk4 (474 files - 0xe2ff12c6) [C] /home/stefan/darkmod/tdm_textures_carpet01.pk4 (130 files - 0x79bc3d7c) [C] /home/stefan/darkmod/tdm_textures_base01.pk4 (435 files - 0xc07a324) [C] /home/stefan/darkmod/tdm_standalone.pk4 (4 files - 0xb3f36d20) [C] /home/stefan/darkmod/tdm_sound_vocals_decls01.pk4 (32 files - 0x53cda0aa) [C] /home/stefan/darkmod/tdm_sound_vocals07.pk4 (1111 files - 0xa13ec4c2) [C] /home/stefan/darkmod/tdm_sound_vocals06.pk4 (696 files - 0x44c85e78) [C] /home/stefan/darkmod/tdm_sound_vocals05.pk4 (119 files - 0x6cf23214) [C] /home/stefan/darkmod/tdm_sound_vocals04.pk4 (2869 files - 0xd7ec1256) [C] /home/stefan/darkmod/tdm_sound_vocals03.pk4 (743 files - 0xb3f2e0f1) [C] /home/stefan/darkmod/tdm_sound_vocals02.pk4 (1299 files - 0x5092940e) [C] /home/stefan/darkmod/tdm_sound_vocals01.pk4 (82 files - 0xf4d326b2) [C] /home/stefan/darkmod/tdm_sound_sfx02.pk4 (605 files - 0x31673482) [C] /home/stefan/darkmod/tdm_sound_sfx01.pk4 (987 files - 0x97451b7a) [C] /home/stefan/darkmod/tdm_sound_ambient_decls01.pk4 (8 files - 0x9404877c) [C] /home/stefan/darkmod/tdm_sound_ambient03.pk4 (24 files - 0xd28ca9ec) [C] /home/stefan/darkmod/tdm_sound_ambient02.pk4 (163 files - 0x84efad22) [C] /home/stefan/darkmod/tdm_sound_ambient01.pk4 (220 files - 0xee228c81) [C] /home/stefan/darkmod/tdm_prefabs01.pk4 (1017 files - 0x506baa0b) [C] /home/stefan/darkmod/tdm_player01.pk4 (127 files - 0xd983fc45) [C] /home/stefan/darkmod/tdm_models_decls01.pk4 (101 files - 0x146c787) [C] /home/stefan/darkmod/tdm_models02.pk4 (2241 files - 0x42cdbf62) [C] /home/stefan/darkmod/tdm_models01.pk4 (3326 files - 0x829270f2) [C] /home/stefan/darkmod/tdm_gui_credits01.pk4 (49 files - 0xbff51863) [C] /home/stefan/darkmod/tdm_gui01.pk4 (758 files - 0xcbf4fd2d) [C] /home/stefan/darkmod/tdm_fonts01.pk4 (696 files - 0x7c5027bf) [C] /home/stefan/darkmod/tdm_env01.pk4 (176 files - 0x8bd4045b) [C] /home/stefan/darkmod/tdm_defs01.pk4 (194 files - 0xe5f440dc) [C] /home/stefan/darkmod/tdm_base01.pk4 (223 files - 0x9704b43c) [C] /home/stefan/darkmod/tdm_ai_steambots01.pk4 (31 files - 0x26416485) [C] /home/stefan/darkmod/tdm_ai_monsters_spiders01.pk4 (80 files - 0x15c3ef89) [C] /home/stefan/darkmod/tdm_ai_humanoid_undead01.pk4 (55 files - 0x25e463ad) [C] /home/stefan/darkmod/tdm_ai_humanoid_townsfolk01.pk4 (104 files - 0xa6f7c573) [C] /home/stefan/darkmod/tdm_ai_humanoid_pagans01.pk4 (10 files - 0x566fb35a) [C] /home/stefan/darkmod/tdm_ai_humanoid_nobles01.pk4 (51 files - 0x5ca54cab) [C] /home/stefan/darkmod/tdm_ai_humanoid_mages01.pk4 (8 files - 0x5e7a666b) [C] /home/stefan/darkmod/tdm_ai_humanoid_heads01.pk4 (100 files - 0x45ec787e) [C] /home/stefan/darkmod/tdm_ai_humanoid_guards01.pk4 (379 files - 0x9801be8d) [C] /home/stefan/darkmod/tdm_ai_humanoid_females01.pk4 (172 files - 0xc7de4598) [C] /home/stefan/darkmod/tdm_ai_humanoid_builders01.pk4 (91 files - 0x6dea9b57) [C] /home/stefan/darkmod/tdm_ai_humanoid_beasts02.pk4 (229 files - 0x886c9a98) [C] /home/stefan/darkmod/tdm_ai_humanoid_beasts01.pk4 (23 files - 0xba9da54c) [C] /home/stefan/darkmod/tdm_ai_base01.pk4 (9 files - 0x1de319e8) [C] /home/stefan/darkmod/tdm_ai_animals01.pk4 (82 files - 0x6c0fda50) File System Initialized. -------------------------------------- Couldn't open journal files /proc/cpuinfo CPU processors: 2 /proc/cpuinfo CPU logical cores: 4 ----- Initializing Decls ----- WARNING:file materials/puzzle_paintings.mtr, line 228: material 'textures/puzzle/flower' previously defined at materials/puzzle_paintings.mtr:14 WARNING:file sound/ambient.sndshd, line 79: sound 'firstfloor' previously defined at sound/ambient.sndshd:51 WARNING:file sound/soul.sndshd, line 129: sound 'builder_tim_1' previously defined at sound/soul.sndshd:102 WARNING:file sound/video.sndshd, line 12: sound 'main' previously defined at sound/ambient.sndshd:1 ------------------------------ I18N: SetLanguage: 'english'. I18N: Found no character remapping for english. I18N: 1321 strings read from strings/english.lang I18N: 'strings/fm/english.lang' not found. Couldn't exec editor.cfg - file does not exist. execing default.cfg Gamepad modifier button assigned to 6 execing Darkmod.cfg execing DarkmodKeybinds.cfg execing DarkmodPadbinds.cfg Gamepad modifier button assigned to 6 Couldn't exec autoexec.cfg - file does not exist. I18N: SetLanguage: 'german'. I18N: Found no character remapping for german. I18N: 1321 strings read from strings/german.lang I18N: 'strings/fm/german.lang' not found. I18NLocal: 'strings/fm/english.lang' not found, skipping it. ----- Initializing OpenAL ----- Setup OpenAL device and context OpenAL: found device 'ALSA Default' [ACTIVE] OpenAL: found device 'HDA Intel PCH, CS4208 Analog (CARD=PCH,DEV=0)' OpenAL: found device 'HDA Intel PCH, HDMI 0 (CARD=PCH,DEV=3)' OpenAL: found device 'HDA Intel PCH, HDMI 1 (CARD=PCH,DEV=7)' OpenAL: found device 'HDA Intel PCH, HDMI 2 (CARD=PCH,DEV=8)' OpenAL: device 'ALSA Default' opened successfully OpenAL: HRTF is available [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) OpenAL vendor: OpenAL Community OpenAL renderer: OpenAL Soft OpenAL version: 1.1 ALSOFT 1.21.1 OpenAL: found EFX extension OpenAL: HRTF is disabled (reason: 0 = ALC_HRTF_DISABLED_SOFT) OpenAL: found 256 hardware voices ----- Initializing OpenGL ----- Initializing OpenGL display ...initializing QGL ------- Input Initialization ------- ------------------------------------ OpenGL vendor: Intel OpenGL renderer: Mesa Intel(R) HD Graphics 615 (KBL GT2) OpenGL version: 4.6 (Core Profile) Mesa 23.1.9 core Checking required OpenGL features... v - using GL_VERSION_3_3 v - using GL_EXT_texture_compression_s3tc Checking optional OpenGL extensions... v - using GL_EXT_texture_filter_anisotropic maxTextureAnisotropy: 16.000000 v - using GL_ARB_stencil_texturing X - GL_EXT_depth_bounds_test not found v - using GL_ARB_buffer_storage v - using GL_ARB_texture_storage v - using GL_ARB_multi_draw_indirect v - using GL_ARB_vertex_attrib_binding X - GL_ARB_compatibility not found v - using GL_KHR_debug Max active texture units in fragment shader: 32 Max combined texture units: 192 Max anti-aliasing samples: 16 Max geometry output vertices: 256 Max geometry output components: 1024 Max vertex attribs: 16 ---------- R_ReloadGLSLPrograms_f ----------- Linking GLSL program cubeMap ... Linking GLSL program bumpyEnvironment ... Linking GLSL program depthAlpha ... Linking GLSL program fog ... Linking GLSL program oldStage ... Linking GLSL program blend ... Linking GLSL program stencilshadow ... Linking GLSL program shadowMapA ... Linking GLSL program ambientInteraction ... Linking GLSL program interactionStencil ... Linking GLSL program interactionShadowMaps ... Linking GLSL program interactionMultiLight ... Linking GLSL program frob ... Linking GLSL program soft_particle ... Linking GLSL program tonemap ... Linking GLSL program gaussian_blur ... Linking GLSL program testImageCube ... --------------------------------- Font fonts/english/stone in size 12 not found, using size 24 instead. --------- Initializing Game ---------- The Dark Mod 2.11/64, linux-x86_64, code revision 10264 Build date: Jan 30 2023 Initializing event system ...873 event definitions Initializing class hierarchy ...172 classes, 1732032 bytes for event callbacks Initializing scripts ---------- Compile stats ---------- Memory usage: Strings: 56, 9048 bytes Statements: 23155, 926200 bytes Functions: 1358, 177432 bytes Variables: 107720 bytes Mem used: 2149432 bytes Static data: 408 bytes Allocated: 1152120 bytes Thread size: 7928 bytes Maximum object size: 816 Largest object type name: speaker_zone_ambient ...6 aas types game initialized. -------------------------------------- Parsing material files Found 0 new missions and 0 packages. Found 42 mods in the FM folder. Parsed 46 mission declarations. No 'tdm_mapsequence.txt' file found for the current mod: hhtlc -------- Initializing Session -------- session initialized -------------------------------------- Font fonts/english/mason_glow in size 12 not found, using size 48 instead. Font fonts/english/mason_glow in size 24 not found, using size 48 instead. Font fonts/english/mason in size 12 not found, using size 48 instead. Font fonts/english/mason in size 24 not found, using size 48 instead. WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count --- Common Initialization Complete --- ------------- Warnings --------------- during The Dark Mod initialization... WARNING:file materials/puzzle_paintings.mtr, line 228: material 'textures/puzzle/flower' previously defined at materials/puzzle_paintings.mtr:14 WARNING:file sound/ambient.sndshd, line 79: sound 'firstfloor' previously defined at sound/ambient.sndshd:51 WARNING:file sound/soul.sndshd, line 129: sound 'builder_tim_1' previously defined at sound/soul.sndshd:102 WARNING:file sound/video.sndshd, line 12: sound 'main' previously defined at sound/ambient.sndshd:1 WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count 15 warnings WARNING: terminal type 'xterm-256color' is unknown. terminal support may not work correctly terminal support enabled ( use +set in_tty 0 to disabled ) pid: 4247 Async thread started Couldn't exec autocommands.cfg - file does not exist. Found 0 new missions and 0 packages. Found 42 mods in the FM folder. reloading guis/msg.gui. WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count reloading guis/mainmenu.gui. WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:48 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:53 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:58 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:63 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:68 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:73 --------- Map Initialization --------- Map: hhtlc ------- Game Map Init SaveGame ------- ---------- Compile stats ---------- Memory usage: Strings: 57, 9144 bytes Statements: 23506, 940240 bytes Functions: 1379, 179716 bytes Variables: 108332 bytes Mem used: 2188540 bytes Static data: 408 bytes Allocated: 1176676 bytes Thread size: 7928 bytes collision data: 1373 models 163204 vertices (5100 KB) 273893 edges (12838 KB) 110189 polygons (8170 KB) 15680 brushes (2322 KB) 138243 nodes (6480 KB) 243924 polygon refs (3811 KB) 58507 brush refs (914 KB) 85771 internal edges 9795 sharp edges 0 contained polygons removed 0 polygons merged 39637 KB total memory used 2123 msec to load collision data. map bounds are (22831.0, 23151.4, 9093.0) 79 KB passage memory used to build PVS 52 msec to calculate PVS 252 areas 598 portals 14 areas visible on average 7 KB PVS data [Load AAS] missing maps/hhtlc.aas48 [Load AAS] loading maps/hhtlc.aas96 done. [Load AAS] loading maps/hhtlc.aas32 done. [Load AAS] missing maps/hhtlc.aas100 [Load AAS] loading maps/hhtlc.aas_rat done. [Load AAS] loading maps/hhtlc.aas_elemental done. WARNING:Couldn't load gui: 'guis/map_of.gui' WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer2.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer3.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer4.lwo' contains different model WARNING:Couldn't load sound 'explosion_all_clear.wav' using default [map entity: atdm_trigger_voice_12] [decl: explosion_all_clear in <implicit file>] [sound: explosion_all_clear.wav] No running thread for RestoreScriptObject(), creating new one. -------------------------------------- ----- idRenderModelManagerLocal::EndLevelLoad ----- 0 models purged from previous level, 2786 models kept. --------------------------------------------------- ----- idImageManager::EndLevelLoad ----- WARNING:Couldn't load image: lights/qc_comj [map entity: light_159] [decl: lights/qc_comj in <implicit file>] [image: lights/qc_comj] WARNING:Couldn't load image: guis/assets/game_maps/map_of_icon [map entity: MapMansion1] [decl: atdm:map_of in def/tdm_shopitems.def] [decl: guis/assets/game_maps/map_of_icon in <implicit file>] [image: guis/assets/game_maps/map_of_icon] 0 purged from previous 219 kept from previous 2070 new loaded all images loaded in 41.8 seconds ---------------------------------------- Linking GLSL program cubeMap ... Linking GLSL program bumpyEnvironment ... Linking GLSL program depthAlpha ... Linking GLSL program fog ... Linking GLSL program oldStage ... Linking GLSL program blend ... Linking GLSL program stencilshadow ... Linking GLSL program shadowMapA ... Linking GLSL program ambientInteraction ... Linking GLSL program interactionStencil ... Linking GLSL program interactionShadowMaps ... Linking GLSL program interactionMultiLight ... Linking GLSL program frob ... Linking GLSL program soft_particle ... Linking GLSL program tonemap ... Linking GLSL program gaussian_blur ... Linking GLSL program testImageCube ... Linking GLSL program depth ... Linking GLSL program interaction_ambient ... Linking GLSL program interaction_stencil ... Linking GLSL program interaction_shadowmap ... Linking GLSL program stencil_shadow ... Linking GLSL program shadow_map ... Linking GLSL program frob_silhouette ... Linking GLSL program frob_highlight ... Linking GLSL program frob_extrude ... Linking GLSL program frob_apply ... Linking GLSL program heatHazeWithDepth ... Linking GLSL program HeatHazeWithMaskAndDepth ... Linking GLSL program heatHaze ... Linking GLSL program heatHazeWithMaskAndBlur ... Linking GLSL program fresnel ... Linking GLSL program ambientEnvironment ... Linking GLSL program heatHazeWithMaskAndDepth ... ---------------------------------------- ----- idSoundCache::EndLevelLoad ----- 394497k referenced 125k purged ---------------------------------------- ----------------------------------- 77079 msec to load hhtlc Interaction table generated: size = 0/512 Initial counts: 6903 entities 665 lightDefs 5265 entityDefs ------------- Warnings --------------- during hhtlc... WARNING:Couldn't load gui: 'guis/map_of.gui' WARNING:Couldn't load image: guis/assets/game_maps/map_of_icon WARNING:Couldn't load image: lights/qc_comj WARNING:Couldn't load sound 'explosion_all_clear.wav' using default WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer2.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer3.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer4.lwo' contains different model 7 warnings Interaction table generated: size = 0/512 Initial counts: 6903 entities 665 lightDefs 5265 entityDefs WARNING:Restarted sound to avoid offset overflow: sound/ambient/environmental/water_pool02.ogg WARNING:Restarted sound to avoid offset overflow: sound/ambient/ambience/silence.ogg WARNING:Restarted sound to avoid offset overflow: sound/ambient/ambience/alien05.ogg Linking GLSL program environment ... The ambient volume is now -1.885291 decibels (range: -60..0), i.e., 87.749992% of full volume. Restarting ambient sound snd_ct_babtistery'(derelict03) with volume -1.885291 signal caught: Segmentation fault si_code 128 Trying to exit gracefully.. ----- idRenderModelManagerLocal::EndLevelLoad ----- 0 models purged from previous level, 2786 models kept. --------------------------------------------------- Regenerated world, staticAllocCount = 0. Getting threadname failed, reason: No such file or directory (2) --------- Game Map Shutdown ---------- ModelGenerator memory: 67 LOD entries with 0 users using 1072 bytes. --------- Game Map Shutdown done ----- Shutting down sound hardware idRenderSystem::Shutdown() ...shutting down QGL I18NLocal: Shutdown. ------------ Game Shutdown ----------- ModelGenerator memory: No LOD entries. Shutdown event system -------------------------------------- Sys_Error: ERROR: pthread_join Frontend failed shutdown terminal support About to exit with code 1
  3. Since Aluminum directed me here ( https://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/page/437/#comment-475263 ) can we have unlimited renderer effects? Well, maybe not unlimited, by maybe 3-5? Thanks.

     

    1. Show previous comments  1 more
    2. Nort

      Nort

      Since I wasn't the one mainly asking, I'll just cite you in the original thread instead.

    3. AluminumHaste

      AluminumHaste

      There already is a kind of sorting, sort nearest, sort decal, sort <n>. For things like windows and such, sort nearest should probably have the desirable affect, though looking through multiple translucent shaders might kill performance.

    4. Nort

      Nort

      Is having multiple render effects really killing performance that badly? I don't understand. You're saying that if I have two transparent objects side-by-side, then they'll just count as two render effects, but when combined, they somehow become something much more difficult to render?

      Never-the-less, unless we're talking some kind of infinite portal problem, why not let the mapper choose how much he wants to kill performance? Just warn him against putting too many effects close together.

  4. The devs didn't title this thread, and @datiswous said they're attempting to mislead people by using Russell's name and a retro style to make it resemble Thief, which is cynical. I grew up on forums like I'm sure anyone who likes a game from '98 did. I actually left the Discord immediately after joining it because it was more off-topic doom-posting than anything relevant to the mod. I thought the forums might be better, but it's mostly just grown men yelling at clouds and telling strangers how mature they are, and a few brave souls actually developing anything. Depressing place, I'll just stick to enjoying new missions every 6 months without an account.
  5. True, but, 1. this thread is called "Western stealth FPS with Stephen Russell", and, 2. nothing you said changes anything for me. The gameplay still doesn't look like something I'd enjoy. And, if you really think this forum is cynical, then you don't visit forums much. Actually, the majority of the users are are pretty mature, unlike in other forums.
  6. With TDM 2.12, after the credits finished, the "Mission Complete" screen did not display. I found that the screen was black and I could hear my footsteps when I tried to move around. I think the reason for the mission not completing successfully was that the "Do not kill or harm allies" objective was never marked as "1 = STATE_COMPLETE" instead it was left as "0 = STATE_INCOMPLETE". Note, I didn't use noclip throughout the mission. Same as: https://forums.thedarkmod.com/index.php?/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/&do=findComment&comment=458491
  7. How about using TDM automation framework (and maybe pcem/qemu)? More info see: https://forums.thedarkmod.com/index.php?/topic/19828-automation-features-and-discussion/
  8. We didn't make the holidays (such a busy time of year) so here's a New Year's gift, an unusual little mission. Window of Opportunity Recover an item for a regretful trader out in a wilderness setting, and discover more! Available within the in-game mission downloader or: Download: http://www.thedarkmo...ndetails/?id=79 Alternative: https://drive.google...WTMzQXZtMVFBSG8 Some unorthodox gameplay on regular/ghost difficulties. (Arachnophobes might prefer short mode...) Please expect to need your lantern in regular and ghost modes! Short ("easy") mode is a smaller map, so if you are looking for areas others reference below, or 100% of the loot, you'll need to play on another mode. I wanted to create my first mission before I became influenced by too many others' ideas, and limited myself to what has been done before. As such, this mission is not set in a city/town, and has some features that are likely to be provocative. There's a section some really like, which others don't, either way I kept it short to not last too long. That being said, I hope you do find it fun! :-) Special thanks to those who provided valuable testing and feedback: Goldwell, Kyyrma, plotzzz, 161803398874989, PPoe & Bikerdude (who also contributed a sound). (Please remember spoiler tags to not expose things meant to be discovered by playing.) Like so: [spoiler]secrets[/spoiler] If you are having trouble finding the main objective, here's what to pay attention to in the mission for hints: There is a spot it's possible to get stuck on the ground in the corner by the cliff/rockfall where there's a rope laying on the ground, please take care if you poke around there!
  9. Changelog of 2.12 development: release212 (rev 16989-10651) * Training Mission reverted to 2.11 state, except for text changes about new controls. beta212-07 (rev 16982-10651) * Fixed save/load of turrets. * Fixed some more cases of camera clipping during force-crouched mantle (6425). * Fixed crash if player wins twice in quick succession (6489). * Added angRotate script event. * Fixed church_altar prefab (6285). beta212-06 (rev 16970-10644) * Fixed light leaks workaround dropped after save + load (post). * Force doors which connect visportal to cast shadows regardless of light flow (post). * Improved candle vs junk detection for new frob controls (6316). * Fixed player getting stuck at start of "One Step Too Far" (post). * Fixed warning on spawning atdm:env_ragdoll_tdm_spider. * Fixed wrong skin in mechanical/switches/switch_rotate_lever prefab (6479). * Fixed double slash in lady02 subtitle decls (post). * Fixed rotated versions of safe03_wall prefab (6268). * Tweaked fogging of health potion. * Fixed overbright skins for nature bushes (6478). * Fixed Grandfather_clock_victorian_01 model (6383). * Removed pause from looping sound machinery/machines/m3_loop (6384). * Fixed broken func_portals in Training Mission (4352). * Minor improvements in Saint Lucia mission. * Doubled game scripts memory limit (post). * Improved normal map of long banners (6355). beta212-05 (rev 16950-10635) * Fixed player seeing through ceiling when mantling into crouched state (6425). * Improved how frobbing works on junk items (6316). * Toggled states of player movement are saved and restored properly (6458). * Fixed back image loading optimization. * Added canCloseDoors spawnarg on AI, which allows to block closing only (6460). * Rats and spiders are non-shoulderable by default (6456). * Increased wait in screenshot_viewpos macro command (6331). * Added forest models from The Valley abandoned mission. * Fixed frobstage on sign models (6457). * Added vine arrows to training mission (4352). * Improved Merry Chest prefabs (6459). * Fixed normal map of dirt_packed_muddy (4668). * Fixed nails in door_boarded_up01 model. * Fixed attachments of atdm:fireplace_place_base (6474). * Fixed editor image of blocks_large_sandstone, rough_grey_dirty_sepia_grey_trim (6281, 6464). * Added editor image for grey_dirty_trim material. * Adjusted tooltip for auto-search bodies. beta212-04 (rev 16932-10626) * Added massive package of subtitles for AI sounds (6240, thread). * Fixes in envshot command (5796). * Added nature/dirt/ash_and_coals texture (6441). beta212-03 (rev 16902-10623) * Improved subtitles layout and location ring picture (p1 p2). * Fixed broken remote render with soft stencil shadows. * Added color buffer clears to fix remote render breaking skybox (6424). * Fixed warning generated by remote render (6424). * Fixed min_lod_bias being ignored if no other LOD settings is specified (6359). * Now changing LOD settings effects objects with min_lod_bias immediately (6359). * Fixed text & background alignment in mission lists (6337). * Fixed gaps in chandelier models (6433). * Added missing editor texture for carpet/runners/ornate_red_black03_end (6435). * Further expansion of listRenderLightDefs and listLightEntityDefs commands. beta212-02 (rev 16889-10613) * Fixed underwater rendering due to missing doublevision shader (post). * Exclude more lights from the new light portal flow optimizations (5172, 6321). * black_matt is now fully black, no tiny green bias (post). * Fixed lockpick interruption when mouse cursor switches between door and handle. * Extended listRenderLightDefs and listLightEntityDefs commands. * Fixed church_altar.pfb (6285). * Added window01_curtains01.lwo in separate parts (6356). * tdm_open_doors now opens locked doors too. * Fixed rare case of getting NaN in spline mover. * Added r_skipEntities cvar, similar to "filter entities" in DR. * Added editor spawnargs for volumetric light properties (6322). * Fixed radius override and added position override for script-based stims. * Fixed warnings with wrong virtual function overrides. beta212-01 (rev 16879-10584) * Fixed player falling through elevator when shouldering a body (6259). * Rebalanced volume of all player footsteps (6348). * Fixed weird animation when mixing drawn bow and main menu (2758). * Fixed all kind of issues with bc_teatray material. * Added alternative frob controls mode tdm_holdfrob_drag_all_entities for dragging on hold. * Fixed non-actor entities always getting full splash damage. * Hide console before screenshot with screenshot_viewport command (6331). * Added tdm_subtitles_ring cvar to disable subtitles location ring. * Added mission.cfg as a temporary way for mission to override non-archived cvars (5453). * Cvars "pm_lean_*" are no longer archived (6320). * Removed some cvar overrides from atdm:player_base. * CFrobLock now supports script events: Lock, Unlock, ToggleLock, IsLocked, IsPickable (6329). * Simplified flee script event, supported fleeing from non-actor entity and fleeFromPoint. * Fixed crash on some non-standard cases of flinderize. * Can set spawnarg "douse 0" on damageDef to not extinguish lights from splash damage. * Added setFrobMaster script event. * Added script-based stim type, which triggers only when stimEmit script event is called. * Added on/off script events to func_emitter entity. * Added setSmoke script event to change particle decl for a func_smoke. * Added hasInvItem script event to check if player has some item. * Added launchGuided script event to start guided projectiles. * Added getInterceptTime script event for shooting projectile and running target. * Added "bounce_sound_min|max_velocity" spawnargs to control projectile bounce sounds. * Added "postbounce_*" spawnargs to change projectile properties after bounce. * Fixes to moor guard ragdoll (6345). * Fixed wench AI sounds (6284). * Added new experimental entityDef for an automatic turret. * Official missions no longer pretend to be part of 3-mission campaign (6338). * Removed AI PAIN messages console spam. * Removed excessive "s_volume 0" from base loot entityDefs (6346). * Replaced symbol on the proguard's belt. * Default value of com_maxfps increased from 144 to 300. * Improved idEntityPtr, fixed some warnings. dev16854-10518 * High mantle animation has become much faster (6343). * Crouching while on ladder/rope now causes player to slide instantly. * Added "forceShadowBehindOpaque" hack to workaround shadow leaks in old missions (5172). * Fixed and revised underwater "double vision" effect (6300). * Add scratch images have alpha = 1, which fixes some mirror materials (6300). * Added warning if material output color depends on input alpha, fixed it in core assets (6340). * Support several independent user addon scripts (6336). * Fixed missing headbob and footsteps at very high FPS (4696). * Fixed player hanging mid-air in a jump at very high FPS (6333). * Don't crash if player's head does not exist (6326). * Added "fade in fast" options for frobhelper (6342). * Removed "show tooltips" option, now it is always on (6344). * Added default spawnarg values to "text" debug entityDef (6325). * Fixed some uninitialized values, float overflows and NaNs across the code. * Reorganized covered furniture models from Seeking Lady Leicester (6289). dev16842-10488 * Major changes in frob/use controls: holding frob does different thing now (6316, thread). * Fixed some electric lights not spawning. * It is no longer necessary to specify extension to reference PNG image. * Added cvar tdm_show_viewpos and command screenshot_viewpos (6331). * Fixed hanging when light is moved through a plane with many visportals (3815, thread). * Fixed multipage readables stuck on empty page, improved page flipping (6313). * Fixed WAV sounds playing in main menu, all sounds are streaming now (6330). * Fixed light leaks along scissor rectangle boundary with soft stencil shadows (thread). * Better subtitles location visualization (6264). * Changed position of subtitle blocks and subtitle font (6264). * Internal refactoring of idImage class (6300). * Fixed rare bug in renderworld raycasting... might happen with particle collisions. * Fixed warnings in newspaper_bridgeport0X core readable GUI (6245). * Added vec4 GUI keyword (6164). * Renamed pm_lean_toggle cvar to tdm_toggle_lean. * Improved "head bob" and "mantle roll" settings in main menu. * Updated FFmpeg to 4.4.4 (6314). Known issues: * Various problems after image refactoring: underwater, mirrors, etc. dev16829-10455 * Allowed to mantle while carrying/manipulating an object (5892, thread). * Allowed to change weapon while mantling or on rope/ladder (6319). * Several leaning improvements (6320, thread). * Parallel shadow-casting lights are deprecated, use parallelSky instead (6306). * Added many menu settings for autoloot body, blackjack helper, and other (6311). * Deleted option for autolooting bodies with one item per frob, added menu setting (6257). * Added cvar to modify all head bobbing settings (6310). * Fixed some corner cases with multiloot (6270). * Fixed frob helper's "always visible" mode (6318). * New&fixed versions of atdm:lamp_electric_square_3_lit_unattached (6315). * Fixed UV map on Stove models (6312). * Reworked r_showPrimitives + deleted code for rendering from CPU buffers. * Shortened name of end-mission autosaves (6294). * Consistent names of various arrows. Known issues: * Some electric lights don't spawn. dev16818-10434 * Fixed projectiles flying through player and enemies sometimes (6292). * Lights with noshadows spawnarg pass through walls again (5172). * Disabled portal flow culling optimization for parallel lights (5172, 6306). * Faster light-entity interactions matching if light is noshadows due to spawnarg (6296). * Compression of images to DXT1/3/5 is done in software (6300). * Cleaned up rounding math routines (6300). * r_showportals 2 is easier to understand now * Changed rules for getting start areas of parallelSky light (6306). dev16814-10408 * Optimized portal flow culling for shadowing lights (5172). * Extended dmap diagnostics to info_portalSettings, improved editor descriptions (6224). * Added test commands: tdm_open_doors and tdm_close_doors. * Minor adjustments to ear-cutting algorithm in dmap. * Minor refactoring in image compression code (6300). dev16809-10394 * r_shadowMapSinglePass is enabled by default now. * Fixed lack of shadows in volumetric lights under r_shadowMapSinglePass (6271). * Fixed interaction rendering on materials with polygonOffset (5868). * Optimized code for finding light-entity interactions on large maps (6296). * Optimized moving shadowing lights: don't create interactions in unreachable areas (5172). * More refactoring in backend: tonemap shader (6271). * Added more covered furniture models (6289). * Added wall models from Seeking Lady Leicester (6293). Known issues: * Some noshadows lights no longer pass through walls. dev16801-10370 * Supported -durationExtend for inline subtitles (6262). * Added blue noise dithering to tonemap shader, which fixed color banding of fog (6271). * Optimized away unnecessary render copy under "useNewRenderPasses 1" (6271). * Refactored blend and fog lights into new backend architecture. For troubleshooting, reduce cvar useNewRenderPasses to 1 or 0 (6271). * Added 30 case to max FPS selection in settings menu. dev16792-10357 * Fixed particles bound to animated joints (6099). * idVec3 is no longer initialized to zero by default (6280). * Integrated Address Sanitizer tool and fixed a few found bugs (6280). dev16789-10349 * Deleted old backend completely + some cleaning (6271). * Fixed map icon wrong name (thread). * Now light entities support noPortalFog spawnarg (6282). * Support fonts aspect ratio correction (6283). * Fixed playerstart customization (thread). * Refactored "render pass" part into new backend architecture. For troubleshooting, try cvar "useNewRenderPasses 0". Also "textures/particles/blacksmokepuff" now works (6271) * Now arithmetic expressions in materials support min/max functions (6271). * Minor initialization cleanup (6280). dev16785-10319 * "r_shadowMapSinglePass 1" now respects noselfshadows flag (6271). * Continued refactoring in shadow maps and render-pass shaders (6271). dev16783-10307 * Backported new rendering backend to uniforms, should work like the old one now (6271). * "Auto" lockpicking difficulty now unlocks pin from after one cycle (6256). * Added "auto-search bodies" feature under tdm_autosearch_bodies cvar (6257). * Added r_shadowMapAlphaTested cvar for single-pass shadow maps (6271). dev16781-10289 * Added first version of direction and volume cues to subtitles (6264). * Allow subtitles to extend duration of sound sample (6262). * Improved slot allocation algorithm for subtitles, a subtitle no longer changes slot (6264). * Fixed bug that stereo sample plays for 2x duration due to length confusion. * Upgraded libpng and rebuilt third-party packages. * Internal fixes of depth bounds test asserts. dev16778-10275 * Allow limited mantling with a shouldered body (5892). * Fixed toggle creep and improved settings layout in the menu (6242). * Fixed bounding boxes of animated entities and particles, enabled r_useEntityScissors by default (6099). * Trigger call_on_exit before call_on_entry when switching locations. * Don't expand bounds of surfaces with turbulent deform (5990). * Removed "gui" spawnarg on GUI message to avoid first frame (6117). Known issues: * Particles bounds to animated joints broken. Changelog of earlier versions can be found here. Source: 2.12 beta testing thread
  10. Beta 11 Fix finished-on state auto-update was unreliable Slighty improve scanner title/author detect Tags are now named some whatever regular-version-looking thing to force GitHub to put the newest at the top
  11. Changelog of 2.12 development: release212 (rev 16989-10651) * Training Mission reverted to 2.11 state, except for text changes about new controls. beta212-07 (rev 16982-10651) * Fixed save/load of turrets. * Fixed some more cases of camera clipping during force-crouched mantle (6425). * Fixed crash if player wins twice in quick succession (6489). * Added angRotate script event. * Fixed church_altar prefab (6285). beta212-06 (rev 16970-10644) * Fixed light leaks workaround dropped after save + load (post). * Force doors which connect visportal to cast shadows regardless of light flow (post). * Improved candle vs junk detection for new frob controls (6316). * Fixed player getting stuck at start of "One Step Too Far" (post). * Fixed warning on spawning atdm:env_ragdoll_tdm_spider. * Fixed wrong skin in mechanical/switches/switch_rotate_lever prefab (6479). * Fixed double slash in lady02 subtitle decls (post). * Fixed rotated versions of safe03_wall prefab (6268). * Tweaked fogging of health potion. * Fixed overbright skins for nature bushes (6478). * Fixed Grandfather_clock_victorian_01 model (6383). * Removed pause from looping sound machinery/machines/m3_loop (6384). * Fixed broken func_portals in Training Mission (4352). * Minor improvements in Saint Lucia mission. * Doubled game scripts memory limit (post). * Improved normal map of long banners (6355). beta212-05 (rev 16950-10635) * Fixed player seeing through ceiling when mantling into crouched state (6425). * Improved how frobbing works on junk items (6316). * Toggled states of player movement are saved and restored properly (6458). * Fixed back image loading optimization. * Added canCloseDoors spawnarg on AI, which allows to block closing only (6460). * Rats and spiders are non-shoulderable by default (6456). * Increased wait in screenshot_viewpos macro command (6331). * Added forest models from The Valley abandoned mission. * Fixed frobstage on sign models (6457). * Added vine arrows to training mission (4352). * Improved Merry Chest prefabs (6459). * Fixed normal map of dirt_packed_muddy (4668). * Fixed nails in door_boarded_up01 model. * Fixed attachments of atdm:fireplace_place_base (6474). * Fixed editor image of blocks_large_sandstone, rough_grey_dirty_sepia_grey_trim (6281, 6464). * Added editor image for grey_dirty_trim material. * Adjusted tooltip for auto-search bodies. beta212-04 (rev 16932-10626) * Added massive package of subtitles for AI sounds (6240, thread). * Fixes in envshot command (5796). * Added nature/dirt/ash_and_coals texture (6441). beta212-03 (rev 16902-10623) * Improved subtitles layout and location ring picture (p1 p2). * Fixed broken remote render with soft stencil shadows. * Added color buffer clears to fix remote render breaking skybox (6424). * Fixed warning generated by remote render (6424). * Fixed min_lod_bias being ignored if no other LOD settings is specified (6359). * Now changing LOD settings effects objects with min_lod_bias immediately (6359). * Fixed text & background alignment in mission lists (6337). * Fixed gaps in chandelier models (6433). * Added missing editor texture for carpet/runners/ornate_red_black03_end (6435). * Further expansion of listRenderLightDefs and listLightEntityDefs commands. beta212-02 (rev 16889-10613) * Fixed underwater rendering due to missing doublevision shader (post). * Exclude more lights from the new light portal flow optimizations (5172, 6321). * black_matt is now fully black, no tiny green bias (post). * Fixed lockpick interruption when mouse cursor switches between door and handle. * Extended listRenderLightDefs and listLightEntityDefs commands. * Fixed church_altar.pfb (6285). * Added window01_curtains01.lwo in separate parts (6356). * tdm_open_doors now opens locked doors too. * Fixed rare case of getting NaN in spline mover. * Added r_skipEntities cvar, similar to "filter entities" in DR. * Added editor spawnargs for volumetric light properties (6322). * Fixed radius override and added position override for script-based stims. * Fixed warnings with wrong virtual function overrides. beta212-01 (rev 16879-10584) * Fixed player falling through elevator when shouldering a body (6259). * Rebalanced volume of all player footsteps (6348). * Fixed weird animation when mixing drawn bow and main menu (2758). * Fixed all kind of issues with bc_teatray material. * Added alternative frob controls mode tdm_holdfrob_drag_all_entities for dragging on hold. * Fixed non-actor entities always getting full splash damage. * Hide console before screenshot with screenshot_viewport command (6331). * Added tdm_subtitles_ring cvar to disable subtitles location ring. * Added mission.cfg as a temporary way for mission to override non-archived cvars (5453). * Cvars "pm_lean_*" are no longer archived (6320). * Removed some cvar overrides from atdm:player_base. * CFrobLock now supports script events: Lock, Unlock, ToggleLock, IsLocked, IsPickable (6329). * Simplified flee script event, supported fleeing from non-actor entity and fleeFromPoint. * Fixed crash on some non-standard cases of flinderize. * Can set spawnarg "douse 0" on damageDef to not extinguish lights from splash damage. * Added setFrobMaster script event. * Added script-based stim type, which triggers only when stimEmit script event is called. * Added on/off script events to func_emitter entity. * Added setSmoke script event to change particle decl for a func_smoke. * Added hasInvItem script event to check if player has some item. * Added launchGuided script event to start guided projectiles. * Added getInterceptTime script event for shooting projectile and running target. * Added "bounce_sound_min|max_velocity" spawnargs to control projectile bounce sounds. * Added "postbounce_*" spawnargs to change projectile properties after bounce. * Fixes to moor guard ragdoll (6345). * Fixed wench AI sounds (6284). * Added new experimental entityDef for an automatic turret. * Official missions no longer pretend to be part of 3-mission campaign (6338). * Removed AI PAIN messages console spam. * Removed excessive "s_volume 0" from base loot entityDefs (6346). * Replaced symbol on the proguard's belt. * Default value of com_maxfps increased from 144 to 300. * Improved idEntityPtr, fixed some warnings. dev16854-10518 * High mantle animation has become much faster (6343). * Crouching while on ladder/rope now causes player to slide instantly. * Added "forceShadowBehindOpaque" hack to workaround shadow leaks in old missions (5172). * Fixed and revised underwater "double vision" effect (6300). * Add scratch images have alpha = 1, which fixes some mirror materials (6300). * Added warning if material output color depends on input alpha, fixed it in core assets (6340). * Support several independent user addon scripts (6336). * Fixed missing headbob and footsteps at very high FPS (4696). * Fixed player hanging mid-air in a jump at very high FPS (6333). * Don't crash if player's head does not exist (6326). * Added "fade in fast" options for frobhelper (6342). * Removed "show tooltips" option, now it is always on (6344). * Added default spawnarg values to "text" debug entityDef (6325). * Fixed some uninitialized values, float overflows and NaNs across the code. * Reorganized covered furniture models from Seeking Lady Leicester (6289). dev16842-10488 * Major changes in frob/use controls: holding frob does different thing now (6316, thread). * Fixed some electric lights not spawning. * It is no longer necessary to specify extension to reference PNG image. * Added cvar tdm_show_viewpos and command screenshot_viewpos (6331). * Fixed hanging when light is moved through a plane with many visportals (3815, thread). * Fixed multipage readables stuck on empty page, improved page flipping (6313). * Fixed WAV sounds playing in main menu, all sounds are streaming now (6330). * Fixed light leaks along scissor rectangle boundary with soft stencil shadows (thread). * Better subtitles location visualization (6264). * Changed position of subtitle blocks and subtitle font (6264). * Internal refactoring of idImage class (6300). * Fixed rare bug in renderworld raycasting... might happen with particle collisions. * Fixed warnings in newspaper_bridgeport0X core readable GUI (6245). * Added vec4 GUI keyword (6164). * Renamed pm_lean_toggle cvar to tdm_toggle_lean. * Improved "head bob" and "mantle roll" settings in main menu. * Updated FFmpeg to 4.4.4 (6314). Known issues: * Various problems after image refactoring: underwater, mirrors, etc. dev16829-10455 * Allowed to mantle while carrying/manipulating an object (5892, thread). * Allowed to change weapon while mantling or on rope/ladder (6319). * Several leaning improvements (6320, thread). * Parallel shadow-casting lights are deprecated, use parallelSky instead (6306). * Added many menu settings for autoloot body, blackjack helper, and other (6311). * Deleted option for autolooting bodies with one item per frob, added menu setting (6257). * Added cvar to modify all head bobbing settings (6310). * Fixed some corner cases with multiloot (6270). * Fixed frob helper's "always visible" mode (6318). * New&fixed versions of atdm:lamp_electric_square_3_lit_unattached (6315). * Fixed UV map on Stove models (6312). * Reworked r_showPrimitives + deleted code for rendering from CPU buffers. * Shortened name of end-mission autosaves (6294). * Consistent names of various arrows. Known issues: * Some electric lights don't spawn. dev16818-10434 * Fixed projectiles flying through player and enemies sometimes (6292). * Lights with noshadows spawnarg pass through walls again (5172). * Disabled portal flow culling optimization for parallel lights (5172, 6306). * Faster light-entity interactions matching if light is noshadows due to spawnarg (6296). * Compression of images to DXT1/3/5 is done in software (6300). * Cleaned up rounding math routines (6300). * r_showportals 2 is easier to understand now * Changed rules for getting start areas of parallelSky light (6306). dev16814-10408 * Optimized portal flow culling for shadowing lights (5172). * Extended dmap diagnostics to info_portalSettings, improved editor descriptions (6224). * Added test commands: tdm_open_doors and tdm_close_doors. * Minor adjustments to ear-cutting algorithm in dmap. * Minor refactoring in image compression code (6300). dev16809-10394 * r_shadowMapSinglePass is enabled by default now. * Fixed lack of shadows in volumetric lights under r_shadowMapSinglePass (6271). * Fixed interaction rendering on materials with polygonOffset (5868). * Optimized code for finding light-entity interactions on large maps (6296). * Optimized moving shadowing lights: don't create interactions in unreachable areas (5172). * More refactoring in backend: tonemap shader (6271). * Added more covered furniture models (6289). * Added wall models from Seeking Lady Leicester (6293). Known issues: * Some noshadows lights no longer pass through walls. dev16801-10370 * Supported -durationExtend for inline subtitles (6262). * Added blue noise dithering to tonemap shader, which fixed color banding of fog (6271). * Optimized away unnecessary render copy under "useNewRenderPasses 1" (6271). * Refactored blend and fog lights into new backend architecture. For troubleshooting, reduce cvar useNewRenderPasses to 1 or 0 (6271). * Added 30 case to max FPS selection in settings menu. dev16792-10357 * Fixed particles bound to animated joints (6099). * idVec3 is no longer initialized to zero by default (6280). * Integrated Address Sanitizer tool and fixed a few found bugs (6280). dev16789-10349 * Deleted old backend completely + some cleaning (6271). * Fixed map icon wrong name (thread). * Now light entities support noPortalFog spawnarg (6282). * Support fonts aspect ratio correction (6283). * Fixed playerstart customization (thread). * Refactored "render pass" part into new backend architecture. For troubleshooting, try cvar "useNewRenderPasses 0". Also "textures/particles/blacksmokepuff" now works (6271) * Now arithmetic expressions in materials support min/max functions (6271). * Minor initialization cleanup (6280). dev16785-10319 * "r_shadowMapSinglePass 1" now respects noselfshadows flag (6271). * Continued refactoring in shadow maps and render-pass shaders (6271). dev16783-10307 * Backported new rendering backend to uniforms, should work like the old one now (6271). * "Auto" lockpicking difficulty now unlocks pin from after one cycle (6256). * Added "auto-search bodies" feature under tdm_autosearch_bodies cvar (6257). * Added r_shadowMapAlphaTested cvar for single-pass shadow maps (6271). dev16781-10289 * Added first version of direction and volume cues to subtitles (6264). * Allow subtitles to extend duration of sound sample (6262). * Improved slot allocation algorithm for subtitles, a subtitle no longer changes slot (6264). * Fixed bug that stereo sample plays for 2x duration due to length confusion. * Upgraded libpng and rebuilt third-party packages. * Internal fixes of depth bounds test asserts. dev16778-10275 * Allow limited mantling with a shouldered body (5892). * Fixed toggle creep and improved settings layout in the menu (6242). * Fixed bounding boxes of animated entities and particles, enabled r_useEntityScissors by default (6099). * Trigger call_on_exit before call_on_entry when switching locations. * Don't expand bounds of surfaces with turbulent deform (5990). * Removed "gui" spawnarg on GUI message to avoid first frame (6117). Known issues: * Particles bounds to animated joints broken. Changelog of earlier versions can be found here.
  12. To cater to both audiences. I mentioned LibreGameWiki as one example. nbohr1more mentioned other uses. Explicitly allowing reuse and spread will help TDM reach a wider audience and would hopefully attract more volunteers. More volunteers which can help improve both TDM versions. There are several benefits for a project of being in the Debian repo. One is that TDM Debian-users can report defects on any package directly to Debian (no need to register on separate forums). Debian may then fix the issue themselves (in their "TDM-libre" package) and will offer the patch upstream to TDM, who can then choose to accept or reject the patch. I envision "TDM-libre" to have the same capability of downloading any mission as regular TDM. The only difference is that "TDM-libre" would come packaged with the regular engine (which is GPL+BSD) and an included mission that has libre media/gamedata. When I play TDM by myself, I want the unlimited-play and can accept commercial restrictions. But if I were to promote it somewhere, or charge for a stream when playing online, or make a video, I would want a version without commercial restrictions (and can temporarily accept limited-play) to make sure I don't violate anyone's copyright. Perhaps. That's what I'm trying to find out.
  13. I suggest you use the term "I", to make clear that it is something YOU want, and that you speak for yourself. But, as wesp5 mentioned, I don't really know what this is about, at all. And, I'm also wondering about all the newly registered people lately, who just arrived at this forum, and already want to revolutionize this mod. This is a thing I noticed 2 or 3 years ago, and which hasn't been present in the 15 years I play this mod and frequent these forums now. Really seems like a common thing these days, to not knock on the door, but kick it in, and stomp right in.
  14. If the "mission fails as soon as stealth score turns non-zero," that would not be good for ghost players. They might need to find out "how" they failed and experiment to avoid alerting guards. They might need to take those score points as a "bust". They might need to take those score points to complete an objective. Then, mission authors would need to encode exceptions into their missions, which would be a lot of work (if they decide to do it at all). However, part of what makes ghosting challenging and fun is when mission authors do not create their missions with ghosting in mind. Please see: Official Ghosting Rules: https://www.ttlg.com/forums/showthread.php?t=148523 Writing code for these rules would be a huge undertaking. Ghost Rules Discussion: https://www.ttlg.com/forums/showthread.php?t=148487 Creating an official mode could alienate these dedicated ghost players, because it would clash with what is considered ghosting in the community. Including the Stealth Stat Tool mod in the official release would be more useful. Or, making the audible alert states of guards quick and easy to recognize could help as well. For these reasons, I don't agree with an official "Ghost" mode. If the dev team were to do it, we should consult with @Klatremus so we get it 100% correct or not pursue it at all. (This ghosting bit should probably be in its own thread.)
  15. TDM has tons of textures from "free" texture resources that do not allow redistribution and cannot be incorporated into a commercial project. Someone would need to create a huge replacement pack of textures that do not break the look of existing missions and do not infringe on the copyrighted textures. Also, many artists who contributed to this project do not want 3rd party entities to use their work in commercial projects. They intended the models, textures, sounds, animations to be exclusively used for Darkmod content. You would either have to replace ALL assets or contact every contributor and ask them to re-license their assets. Many contributors are no longer active with the project and haven't visited the forums in years so it would be no easy feat. I cannot speak to Debian policy but I think that they treat installers that add non-free content the same as non-free content itself. One could argue that Steam is such an installer but I guess Debian would counter that there are a few fully Libre games on Steam. I think Debian, Ubuntu, or Linux Mint need to consider a repo that allows for games (etc) that include non-libre content but intentionally offer this content for free to the community with no stipulations other than "don't try to sell it as a product".
  16. The gamepad implementation allows for a great degree of flexibility to personalize settings, aside from a few minor issues that I mentioned here: https://forums.thedarkmod.com/index.php?/topic/22337-gamepad-bindings/ I would say that playing TDM with a gamepad works very well, especially considering that it was implemented as experimental and hasn't been changed since then. If I could, I'd go back to 2021-you and congratulate you on buying that gamepad. I notice that your DarkmodPadbinds.cfg looks very different from mine...
  17. It seems like more and more "thief" and "thief players" is becoming a short hand to dismiss community members earnest desire to improve the game - which happens to be a barely legally distinct "thief style" game which was made by thief fans for thief fans and is "designed to simulate the stealth gameplay of Thief". Who is the predominant player base of the game supposed to be beyond fans of the thief games? Is there some better avenue to find feedback for the game beyond this forum? FOSS and linux forums? I have seen maybe half a dozen posts from that segment. I am a thief fan, I play thief fms, my association with those games is what drives me to play and make things for this game. Are we supposed to pretend the original games are not a huge reason why most of us are here at all? TL;DR version:
  18. Woo!! 2.10 Beta "Release Candidate" ( 210-07 ) is out:

    https://forums.thedarkmod.com/index.php?/topic/21198-beta-testing-210/

    It wont be long now :) ...

  19. Thanks! 1) Doing LONG_PRESS PAD_A (what I, for lack of knowledge, call "jump-mantle" or "_jumpmantle") differs from doing PRESS PAD_A ("_jump"). "_jumpmantle" differs from "_mantle", so they must be mapped to different button-calls. "_jumpmantle" differs from "_jump", so they must also be mapped to different button-calls. This appears to be the case, but it is not evident (or changeable) in DarkmodPadbinds.cfg. "_jumpmantle" seems to be hard coded to always connect to the same button as "_jump" but with a long press. It is as if bindPadButton PRESS PAD_A "_jump" is not actually just binding PRESS PAD_A to "_jump", but rather interpreted as "link PAD_A (regardless of button press time) to behave exactly like keyboard SPACE for short and long presses". I would have expected the default DarkmodPadbinds.cfg to explicitly read: bindPadButton PRESS PAD_A "_jump" bindPadButton LONG_PRESS PAD_A "_jumpmantle" bindPadButton PRESS PAD_B "_crouch" bindPadButton LONG_PRESS PAD_B "_mantle" ... but neither LONG_PRESS PAD_A or "_jumpmantle" is listed in the file. If there are actions "_jump" and "_mantle", I suppose there must also be an action "_jumpmantle" since it is possible for the player to do all those movements: * "_mantle" does the movements "crouch on the high surface, then stand up" * "_jumpmantle" idoes the movements "jump slightly forward, then land standing on the high surface" * "_jump" idoes the movements "jump up, then land exactly where you started" If the actions "_jump" and "_moveup" are not synonymous, then perhaps the action "_moveup" is what i call "_jumpmantle"? 2) Thanks for the link! It was useful in more than one way. I'll link to that page from https://wiki.thedarkmod.com/index.php?title=Bindings_and_User_Settings#Gamepad_Default_Bindings if I can get an account on the wiki, which proved more difficult than i thought (https://forums.thedarkmod.com/index.php?/topic/22327-how-can-i-create-an-account-on-the-tdm-wiki/). However, it does not answer my question how to find out the name ("<button>") used for a button on my gamepad. Basically, I would need to press the button on my gamepad and some program could tell me "That button is called 'PAD_A'". In my case, I have a gamepad "Logitech F310" (https://commons.wikimedia.org/wiki/File:Logitech_F310_Gamepad.jpg) which has a "Logitech button" (see image) that I want to use. I was hoping to find out the "button name" for that button and then edit DarkmodPadbinds.cfg to map it to a function. 3) ... but if that button has an "unusual name" that TDM does not recognize, then it may perhaps not work. E.g. if that button is called "PAD_LOGITECH" and TDM cannot recognize that name, then I cannot map anything to it via DarkmodPadbinds.cfg. Using QJoyPad I can map any keyboard key to it instead, as a workaround, but I cannot map MODIFIER to it (since MODIFIER cannot be set to a keyboard key). If current implementation is still called "experimental", then I must say it works very well; @cabalistic: kudos for that! I may not have continued playing TDM had it not worked with a gamepad.
  20. It is possible that this is a setting that needs to be activated to work: https://mantisbt.org/forums/viewtopic.php?t=23221
  21. I don't think there's a link to thedarkmod.com on forums.thedarkmod.com ...

    1. datiswous

      datiswous

      Yeah and the wiki and moddb. It should have those links in the footer I think. Probably easy to add by an admin.

      Edit: And a link to the bugtracker. I'm always searching for a post in the forum that links to that because I can't remember the url.

    2. Petike the Taffer

      Petike the Taffer

      I drew attention to this several times in the last few years. No one payed it any attention, so I just gave up.

    3. duzenko

      duzenko

      Reluctance to improve the forums is matched by reluctance to allow more people to work on it. Talk about trust and power.

  22. Hello, everyone! In this multi-part, comprehensive tutorial I will introduce you to a new light type that has been available in The Dark Mod since version 2.06, what it does, why you would want to use it and how to implement it in your Fan Missions. This tutorial is aimed at the intermediate mapper. Explanations of how to use DarkRadiant, write material files, etc. are outside of its scope. I will, however, aim to be thorough and explain the relevant concepts comprehensively. Let us begin by delineating the sections of the tutorial: Part 1 will walk you through four, distinct ways to add ambient light to a scene, the last way using irradiance environment maps (or IEMs). Lighting a scene with an IEM is considered image-based lighting. Explaining this concept is not in the scope of this tutorial; rather, we will compare and contrast our currently available methods with this new one. If you already understand the benefits IBL confers, you may consider this introductory section superfluous. Part 2 will review the current state of cubemap lights in TDM, brief you on capturing an environment cubemap inside TDM and note limitations you may run into. Three cubemap filtering applications will be introduced and reviewed. Part 3 will go into further detail of the types of inputs and outputs required by each program and give a walkthrough of the simplest way to get an irradiance map working in-game. Part 4 will guide you through two additional, different workflows of how to convert your cubemap to an irradiance map and unstitch it back to the six separate image files that the engine needs. Part 5 will conclude the tutorial with some considerations as to the scalability of the methods hitherto explained and will enumerate some good practices in creating IEMs. Typical scenes will be considered. Essential links and resources will be posted here and a succinct list of the steps and tools needed for each workflow will be summarized, for quick reference. Without further ado, let us begin. Part 1 Imagine the scene. You’ve just made a great environment for your map, you’ve got your geometry exactly how you want it… but there’s a problem. Nobody can appreciate your efforts if they can’t see anything! [Fig. 1] This will be the test scene for the rest of our tutorial — I would tell you to “get acquainted with it” but it’s rather hard to, at the moment. The Dark Mod is a game where the interplay between light and shadow is of great importance. Placing lights is designing gameplay. In this example scene, a corridor with two windows, I have decided to place 3 lights for the player to stealth his way around. Two lights from the windows streak down across the floor and a third, placeholder light for a fixture later to be added, is shining behind me, at one end of the corridor. Strictly speaking, this is sufficient for gameplay in my case. It is plainly obvious, however, that the scene looks bad, incomplete. “Gameplay” lights aside, the rest of the environment is pitch black. This is undesirable for two reasons. It looks wrong. In real life, lights bounce off surfaces and diffuse in all directions. This diffused, omni-directional lighting is called ambient lighting and its emitment can be termed irradiance. You may contrast this with directional lighting radiating from a point, which is called point lighting and its emitment — radiance. One can argue that ambient lighting sells the realism of a scene. Be that as it may, suppose we disregard scary, real-life optics and set concerns of “realism” aside… It’s bad gameplay. Being in darkness is a positive for the player avatar, but looking at darkness is a negative for the player, themselves. They need to differentiate obstacles and objects in the environment to move their avatar. Our current light level makes the scene illegible. The eye strain involved in reading the environment in these light conditions may well give your player a headache, figurative and literal, and greatly distract them from enjoying your level. This tutorial assumes you use DarkRadiant or are at least aware of idtech4’s light types. From my earlier explanation, you can see the parallels between the real life point/ambient light dichotomy and the aptly named “point” and “ambient” light types that you can use in the editor. For further review, you can consult our wiki. Seeing as how there is a danger in confusing the terms here, I will hereafter refer to real life ambient light as “irradiant light”, to differentiate it from the TDM ambient lights, which are our engine’s practical implementation of the optical phenomenon. A similar distinction between “radiant light” and point lights will be made for the same reason. Back to our problem. Knowing, now, that most all your scenes should have irradiant light in addition to radiant light, let’s try (and fail, instructionally) to fix up our gloomy corridor. [Fig. 2] The easiest and ugliest solution: ambient lights. Atdm:ambient_world is a game entity that is basically an ambient light with no falloff, modifiable by the location system. One of the first things we all do when starting a new map is putting an ambient_world in it. In the above image, the darkness problem is solved by raising the ambient light level using ambient_world (or via an info_location entity). Practically every Dark Mod mission solves its darkness problem1 like this. Entirely relying on the global ambient light, however, is far from ideal and I argue that it solves neither of our two, aforementioned problems. Ambient_world provides irradiant light and you may further modulate its color and brightness per location. However, said color and brightness are constant across the entire scene. This is neither realistic, nor does it reduce eye strain. It only makes the scene marginally more legible. Let’s abandon this uniform lighting approach and try a different solution that’s more scene-specific. [Fig. 3] Non-uniform, but has unintended consequences. Our global ambient now down to a negligible level, the next logical approach would be hand-placed ambient lights with falloff, like ambient_biground. Two are placed here, supplementing our window point lights. Combining ambient and point lights may not be standard TDM practice, but multiple idtech4 tutorials extol the virtues of this method. I, myself, have used it in King of Diamonds. For instance, in the Parkins residence, the red room with the fireplace has ambient lights coupled to both the electric light and the fire flame. They color the shadows and enrich the scene, and they get toggled alongside their parent (point) lights, whenever they change state (extinguished/relit). This is markedly better than before, but to be honest anything is, and you may notice some unintended side-effects. The AI I’ve placed in the middle of the ambient light’s volume gets omnidirectionally illuminated far more than any of the walls, by virtue of how light projection in the engine works. Moving the ambient lights’ centers closer to the windows would alleviate this, but would introduce another issue — the wall would get lit on the other side as well. Ambient lights don’t cast shadows, meaning they go through walls. You could solve this by creating custom ambient light projection textures, but at this point we are three ad hocs in and this is getting needlessly complicated. I concede that this method has limited use cases but illuminating big spaces that AI can move through, like our corridor, isn’t one of them. Let’s move on. [Fig. 4] More directional, but looks off. I have personally been using this method in my WIP maps a lot. For development (vs. release), I even recommend it. A point light instead of an ambient light is used here. The texture is either “biground1” or “defaultpointlight” (the latter here). The light does not cast shadows, and its light origin is set at one side of the corridor, illuminating it at an angle. This solves the problem of omnidirectional illumination for props or AI in the middle of the light volume, you can now see that the AI is lit from the back rather than from all sides. In addition, the point light provides that which the ambient one cannot, namely specular and normal interaction, two very important features that help our players read the environment better. This is about as good as you can get but there are still some niggling problems. The scene still looks too monochromatic and dark. From experience, I can tell you that this method looks good in certain scenes, but this is clearly not one of them. Sure, we can use two, non-shadowcasting point lights instead of one, aligned to our windows like in the previous example, we can even artfully combine local and global ambient lights to furnish the scene further, but by this point we will have multiple light entities placed, which is unwieldy to work with and possibly detrimental to performance. Another problem is that a point light’s movable light origin helps combat ambient omnidirectionality, but its projection texture still illuminates things the strongest in the middle of its volume. I have made multiple experiments with editing the Z-projection falloff texture of these lights and the results have all left me unsatisfied. It just does not look right. A final, more intellectual criticism against this method is that this does not, in a technical sense, supply irradiant light. Nothing here is diffuse, this is just radiant light pretending the best it can. [Fig. 5] The irradiance map method provides the best looking solution to imbuing your scene with an ambient glow. This is the corridor lit with irradiance map lights, a new lighting method introduced in The Dark Mod 2.06. Note the subtle gradients on the left wall and the bounced, orange light on the right column. Note the agreeable light on the AI. Comparing the previous methods and this, it is plainly obvious that an irradiance environment map looks the most realistic and defines the environment far better than any of the other solutions. Why exactly does this image look better than the others? You can inform yourself on image-based lighting and the nature of diffuse irradiance, but images speak louder than words. As you can see, the fact of the matter is that the effect, subtle as it may be, substantially improves the realism of the scene, at least compared to the methods previously available to us. Procuring irradiance environment maps for use in lighting your level will hereafter be the chief subject of this tutorial. The next part will review environment cubemap capture in TDM, the makeIrradiance keyword and three external applications that you can use to convert a TDM cubemap into an irradiance map. 1 “ Note that the color buffer is cleared to black: Doom3 world is naturally pitch black since there is no "ambient" light: In order to be visible a surface/polygon must interact. with a light. This explains why Doom3 was so dark ! “ [source] Part 2 Cubemaps are not new to The Dark Mod. The skybox materials in some of our prefabs are cubemaps, some glass and polished tile materials use cubemaps to fake reflections for cheap. Cubemap lights, however, are comparatively new. The wiki page linked earlier describes these two, new light types that were added in TDM 2.05. cubicLight is a shadow-casting light with true spherical falloff. An example of such a light can be found in the core files, “lights/cubic/tdm_lampshade_cubic”. ambientCubicLight is the light type we will be focusing on. Prior to TDM 2.06, it acted as a movable, on-demand reflection dispenser, making surfaces in its radius reflect a pre-set cubemap, much like glass. After 2.06, the old behavior was discarded and ambientCubicLight was converted to accept industry standard irradiance environment maps. Irradiance environment maps (IEMs) are what we want to make, so perhaps the first thing to make clear is that they aren’t really “handmade”. An IEM is the output of a filtering process (convolution) which requires an input in the form of a regular environment cubemap. In other words, if we want to make an IEM, we need a regular cubemap, ideally one depicting our environment — in this case, the corridor. I say a snapshot of the environment is ideal for lighting it because this emulates how irradiant light in the real world works. All radiating surfaces are recorded in our cubemap, our ambient optic array as it were, then blurred, or convoluted, to approximate light scatter and diffusion, then the in-game light “shines” this approximation of irradiant light back to the surfaces. There is a bit of a “chicken and the egg” situation here, if your scene is dark to begin with, wouldn’t you just get a dark irradiance map and accomplish nothing? In the captured cubemap faces in Fig. 6, you may notice that the environment looks different than what I’ve shown so far. I used two ambient lights to brighten up the windows for a better final irradiance result. I’ve “primed the pump”, so to speak. You can ignore this conundrum for the moment, ways to set up your scenes for better results, or priming the pump correctly, will be discussed at the end of the tutorial. Capturing the Environment The wiki has a tutorial on capturing cubemaps by angua, but it is woefully out of date. Let me run you through the process for 2.07 really briefly. To start with, I fly to approx. the center of the corridor with noclip. I then type “envshot t 256” in the console. This outputs six .tga images in the <root>/env folder, simply named “t”, sized 256x256 px and constituting the six sides of a cube and depicting the entire environment. This is how they look in the folder: [Fig. 6] The six cube faces in the folder. Of note here is that I do not need to switch to a 640x480 resolution, neither do I need to rename these files, they can already be used in an ambientCubicLight. Setting Up the Lights For brevity’s sake, I’ll skip explaining material definitions, if you’ve ever added a custom texture to your map, you know how to do this. Suffice it to say, it is much the same with custom lights. In your <root>/materials/my_cool_cubemaps.mtr file, you should have something like this: lights/ambientcube/my_test_IEM_light { ambientCubicLight { forceHighQuality //cameraCubeMap makeIrradiance(env/t) cameraCubeMap env/t colored zeroClamp } } We’ll play with the commented out line in just a bit. Firstly, let’s place the actual light in DarkRadiant. It’s as simple as creating a new light or two and setting them up in much the same way you would a regular ambient light. I select the appropriate light texture from the list, “my_test_IEM_light” in the “ambientcube” subfolder and I leave the light colored pure white. [Fig. 7] The corridor in DR, top view, with the ambient cubic lights highlighted. I can place one that fills the volume or two that stagger the effect somewhat. Remember that these lights still have a spherical falloff. Preference and experimentation will prove what looks best to you. Please note that what the material we defined does is load a cubemap while we established that ambientCubicLights only work with irradiance maps. Let’s see if this causes any problems in-game. I save the map and run it in game to see the results. If I already have TDM running, I type “reloadDecls” in the console to reload my material files and “reloadImages” to reload the .tga images in the /env folder. [Fig. 8] Well this looks completely wrong, big surprise. Wouldn’t you know it, putting a cubemap in the place of an irradiance map doesn’t quite work. Everything in the scene, especially the AI, looks to be bathed in slick oil. Even if a material doesn’t have a specular map, it won’t matter, the ambientCubicLight will produce specular reflections like this. Let’s compare how our cubemap .tga files compares with the IEM .tgas we’ll have by the end of the tutorial: [Fig. 9] t_back.tga is the back face of the environment cubemap, tIEM_back.tga is the back face of the irradiance map derived from it. As you can see, the IEM image looks very different. If I were to use “env/tIEM” instead of “env/t” in the material definition above, I would get the proper result, as seen in the last screenshot of part 1. So it is that we need a properly filtered IEM for our lights to work correctly. Speaking of that mtr def though, let’s not invoke an irradiance map we haven’t learned to convert yet. Let’s try an automatic, in-engine way to convert cubemaps to IEMs, namely the makeIrradiance material keyword. makeIrradiance and Its Limitations Let’s uncomment the sixth line in that definition and comment out the seventh. cameraCubeMap makeIrradiance(env/t) //cameraCubeMap env/t Here is a picture of how a cubemap ran through the makeIrradiance keyword looks like: [Fig. 10] Say ‘Hi’ to our friend in the back, the normalmap test cylinder. It’s a custom texture I’ve made to demonstrate cubemap interactions in a clean way. Hey now, this looks pretty nice! The scene is a bit greener than before, but you may even argue it looks more pleasing to the eyes. Unfortunately, the devil is in the details. Let’s compare the makeIrradiance keyword’s output with the custom made irradiance map setup seen at the end of part 1. [Fig. 11, 12] A closer look at the brick texture reveals that the undesired specular highlighting is still present. The normal map test cylinder confirms that the reason for this is the noisy output of the makeIrradiance keyword. The in-engine conversion is algorithmic, more specifically, it doesn't allow us to directly compare .tga files like we did above. Were we able to, however, I'm sure the makeIrradiance IEM would look grainy and rough compared to the smooth gradient of the IEM you’ll have by the end of this tutorial. The makeIrradiance keyword is good for quick testing but it won’t allow you fine control over your irradiance map. If we want the light to look proper, we need a dedicated cubemap filtering software. A Review of Cubemap Filtering Software Here I’ll introduce three programs you can produce an irradiance map with. In the coming parts, I will present you with a guide for working with each one of them. I should also note that installing all of these is trivial, so I’ll skip that instructional step when describing their workflows. I will not relay you any ad copy, as you can already read it on these programs’ websites. I’ll just list the advantages and disadvantages that concern us. Lys https://www.knaldtech.com/lys/ Advantages: Good UI, rich image manipulation options, working radiance/specular map filtering with multiple convolution algorithms. Disadvantages: $50 price tag, limited import/export options, only available on Windows 64-bit systems. cmftStudio https://github.com/dariomanesku/cmftStudio Advantages: Available on Windows, OSX and Linux, free, open source software, command line interface available. Disadvantages: Somewhat confusing UI, limited import options, missing features (radiance/specular map filtering is broken, fullscreen doesn’t work), 32-bit binaries need to be built from source (I will provide a 32-bit Windows executable at the end of the tutorial). Modified CubeMapGen https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/ Advantages: Free software, quickest to work with (clarified later). Disadvantages: Bad UI, only Windows binaries available, subpar IEM export due to bad image adjustment options. Let’s take a break at this point and come back to these programs in part 3. A lot of caveats need to be expounded on as to which of these three is the “best” software for making an irradiance map for our purposes. Neither of these programs has a discreet workflow; rather, the workflow will include or exclude certain additional programs and steps depending on which app you choose to work with. It will dovetail and be similar in all cases. Part 3 The aim of this tutorial is twofold. First, it aims to provide the most hands-free and time-efficient method of converting an envshot, environment cubemap to an IEM and getting it working in-game. The second is using as few applications as possible and keeping them all free software that is available for download, much like TDM itself. The tutorial was originally going to only cover IEM production through Lys, as that was the app I used to test the whole process with. I soon realized that it would be inconsiderate of me to suggest you buy a fifty dollar product for a single step in a process that adds comparatively little to the value of a FM, if we’re being honest (if you asked me, the community would benefit far more from a level design tutorial than a technical one like this, but hey, maybe later, I’m filling a niche right now that nobody else has filled). This led me to seek out open-source alternatives to Lys, such as Cubemapgen, which I knew of and cmftStudio, which I did not. I will preempt my own explanations and tell you right away that, in my opinion, cmftStudio is the program you should use for IEM creation. This comes with one big caveat, however, which I’m about to get into. Six Faces on a Cross and The Photoshop Problem Let’s review. Taking an envshot in-game gives you six separate images that are game-ready. Meaning, you get six, split cubemap faces as an output, you need six, split irradiance map faces as an input. This is a problem, because neither Lys nor cmftStudio accept a sequence of images as such. They need to be stitched together in a cube cross, a single image of the unwrapped cube, like this: [Fig. 13] From Lys. Our cubemap has been stitched into a cross and the “Debug Cube Map Face Position” option has been checked, showing the orientations of each face. In Lys only panoramas, sphere maps and cube maps can be loaded into the program. The first two do not concern us, the third specifically refers to a single image file. Therefore, to import a TDM envshot into Lys you need to stitch your cubemap into a cross. Furthermore, Lys’ export also outputs a cubemap cross, therefore you also need to unstitch the cubemap into its faces afterwards if you want to use it in TDM. In cmftStudio you can import single map faces! Well… no, you can’t. The readme on GitHub boasts “Input and output types: cubemap, cube cross, latlong, face list, horizontal and vertical strip.” but this is false. The UI will not allow you to select multiple files on import, rendering the “face list” input type impossible.2 Therefore, to import a TDM envshot into cmftStudio you need to stitch your cubemap into a cross. Fortunately, the “face list” export type does work! Therefore, you don’t need to unstitch the cubemap manually, cmftStudio will export individual faces for you. In both of these cases, then, you need a cubemap cross. For this tutorial I will use Adobe Photoshop, a commercial piece of software, to stitch our faces into a cubemap in an automated fashion (using Photoshop’s Actions). This is the big caveat to using cmftStudio, even if you do not want to buy Lys, PS is still a prerequisite for working with both programs. There are, of course, open source alternatives to Photoshop, such as GIMP, but it is specifically Photoshop’s Action functionality that will power these workflows. GIMP has its own Actions in the form of Macros, but they are written with python. GIMP is not a software suite that I use, neither is python a language I am proficient with. Out of deference for those who don’t have, or like working with, Photoshop, I will later go through the steps I take inside the image editor in some detail, in order for the studious reader to reconstruct them, if they so desire, in their image editing software of choice. At any rate, and at the risk of sounding a little presumptuous, I take it that, as creative types, most of you already have Photoshop on your computers. 2 An asterisk regarding the “impossibility” of this. cmftStudio is a GUI for cmft, a command line interface that does the same stuff but inside a command prompt. I need to stress that I am certain multiple faces can be inputted in the command line, but messing with unwieldy prompts or writing batch files is neither time-saving nor user-friendly. This tutorial is aimed at the average mapper, but a coder might find the versatility offered in cmft interesting. The Cubemapgen Workflow You will have noticed that I purposefully omitted Cubemapgen from the previous discussion. This is because working with Cubemapgen, wonderfully, does not need Photoshop to be involved! Cubemapgen both accepts individual cubemap faces as input and exports individual irradiance map faces as output. Why, then, did I even waste your time with all the talk of Lys, cmftStudio and Photoshop? Well, woefully, Cubemapgen’s irradiance maps look poor at worst and inconsistent at best. Comparing IEMs exported from Lys and cmftStudio, you will see that both look practically the same, which is good! An IEM exported from Cubemapgen, by default, is far too desaturated and the confusing UI does not help in bringing it to parity with the other two programs. If you work solely with Cubemapgen, you won’t even know what ‘parity’ is, since you won’t have a standard to compare to. [Fig. 14] A comparison between the same irradiance map face, exported with the different apps at their respective, default settings. Brightened and enlarged for legibility. This may not bother you and I concede that it is a small price to pay for those not interested in working with Photoshop. The Cubemapgen workflow is so easy to describe that I will in fact do just that, now. After I do so, however, I will argue that it flies in the face of one of the aims of this tutorial, namely: efficiency. Step 1: Load the cubemap faces into Cubemapgen. Returning to specifics, you will remember that we have, at the moment, six .tga cubemap faces in a folder that we want to convert to six irradiance map faces. With Cubemapgen open, direct your attention to these buttons: [Fig. 15] You can load a cubemap face by pressing the corresponding button or using the hotkey ‘F’. To ensure the image faces the correct way, you must load it in the corresponding “slot”, from the Select Cubemap Face dropdown menu above, or by pressing the 1-6 number keys on your keyboard. Here is a helpful list: X+ Face <1> corresponds to *_right X- Face <2> corresponds to *_left Y+ Face <3> corresponds to *_up Y- Face <4> corresponds to *_down Z+ Face <5> corresponds to *_forward Z- Face <6> corresponds to *_back ...with the asterisk representing the name of your cubemap. With enough practice, you can get quite proficient in loading cubemap faces using keyboard shortcuts. Note that the ‘Skybox’ option in the blue panel is checked, I recommend you use it. Step 2: Generate the Irradiance Map [Fig. 16] The corridor environment cubemap loaded in and filtered to an irradiance map. The options on the right are my attempt to get the IEM to look right, though they are by no means prescriptive. Generating an IEM with Modified CubeMapGen 1.66 is as easy as checking the ‘Irradiance cubemap’ checkbox and hitting ‘Filter Cubemap’ in the red panel. There are numerous other options there, but most will have no effect with the checkbox on. For more information, consult the Sébastien Lagarde blog post that you got the app from. I leave it to you to experiment with the input and output gamma sliders, you really have no set standard on how your irradiance map is supposed to look, so unfortunately you’ll have to eyeball it and rely on trial and error. Two things are important to note. The ‘Output Cube Size’ box in the red panel is the resolution that you want your IEM to export to. In the yellow panel, make sure you set the output as RGB rather than RGBA! We don’t need alpha channels in our images. Step 3: Export Irradiance Map Faces Back in the green panel, click the ‘Save CubeMap to Images’ button. Save the images as .tga with a descriptive name. [Fig. 17] The exported irradiance map faces in the folder. These files still need to be renamed with appropriate suffixes in order to constitute a readable cubemap for the engine. The nomenclature is the same as the table above: “c00” is the X+ Face, to be renamed “right”, “c01” is the X- Face and so on. Right left, up down, forward and back. That’s the order! This is all there is to this workflow. A “cameraCubeMap env/testshot” in the light material will give us a result that will look, at the very least, better than the inbuilt makeIrradiance material keyword. [Fig. 17] The map ended up being a little bright. Feel free to open Fig. 4 and this in seperate tabs and compare the Lys/cmft export with the cubemapgen one. A Review of the Workflow Time for the promised criticism to this workflow. I already stated my distaste for the lack of a standardised set of filtering values with this method. The lack of any kind of preset system for saving the values you like makes working with Cubemapgen even more slipshod. Additionally, in part 2, I said that Cubemapgen is the fastest to work with, but this needs to be qualified. What we just did was convert one cubemap to an irradiance map, but a typical game level ought to use more than a single IEM. Premeditation and capturing fake, “generic” environment cubemaps (e.g. setting up a “blue light on the right, orange on the left” room or a “bright skylight above, brown floor” room, then capturing them with envshot) might allow for some judicious reuse and keep your distinct IEM light definition count down to single digits, but you can only go so far with that. I am not arguing here for an ambient cubic light in every scene either, certainly only those that you deem need the extra attention, or those for which the regular lighting methods enumerated in Part 1 do not quite work. I do tentatively assume, though, that for an average level you would use between one and two dozen distinct IEMs. Keep in mind that commercial games, with their automated probe systems for capturing environment shots, use many, many more than that. With about 20 cubemaps to be converted and 6 faces each to load into Cubemapgen, you’ll be going through the same motions 120 whole times (saving and renaming not included). If you decide to do this in one sitting (and you should, as Cubemapgen, to reiterate, does not keep settings between sessions), you are in for a very tedious process that, while effective, is not very efficient. The simple fact is that loading six things one by one is just slower than loading a single thing once! The “single thing” I’m referring to is, of course, the single, stitched cubemap cross texture. In the next part, I will go into detail regarding how to make a cubemap cross in Photoshop in preparation for cmftStudio and Lys. It will initially seem a far more time-consuming process to you than the Cubemapgen workflow, but through the magic of automation and the Actions feature, you will be able to accomplish the cubemap stitch process in as little as a drag-and-drop into PS and a single click. The best thing is that after we go through the steps, you won’t have to recreate them yourself, as I will provide you with a custom Actions .atn file and save you the effort. I advise you not to skip the explanations, however. The keen-eyed among you may have noticed that you can also load a cube cross in Cubemapgen. If you want to use both Cubemapgen and Photoshop together to automate your Cubemapgen workflow, be aware that Cubemap gen takes crosses that have a different orientation than the ones Lys and cmftStudio use. My macros (actions) are designed for the latter, so if you want to adjust them for Cubemapgen you would do well to study my steps and modify them appropriately. For the moment, you’ve been given the barebones essentials needed to capture an envshot, convert it to an irradiance map and put it in your level at an appropriate location, all without needing a single piece of proprietary software. You can stop here and start cranking out irradiance maps to your heart’s content, but if you’re in the mood for some more serious automation, consider the next section.
  23. If TDM were an RPG with an inventory system like CP2077 or a bethesda game yeah I imagine the primary function of interacting with a body might be related to inventory management. Again the developers of that game had a context sensitive input, they prioritized what it should do based off of their game and what the player is mostly likely to need. This is not making a stronger case we should not do the same thing for our game. You have never bothered to explain why in this game a player would need to prioritize dragging and manipulating a body over shouldering it beyond it being being “inconsistent”.
  24. @wesp5 Make sure you skip thief, thief2, deus ex, dishonored, dishonored 2, etc. Not sure what military grade hallucinogens they were smoking but they all have physics object you can pick up and bodies you can shoulder - tied to the same input! It was quite the scandal - all anyone could talk about at the time is “why don’t the bodies just float in front of my camera when I pick them up just like this potted plant does?” What they didn’t have that the current build of TDM does was the ability for players like you turn this troublesome development off in the main menu. Thankfully I am absolutely certain you’ve been spared the pain of playing of these games, as it is seemingly the only explanation I can come up with for you to still be posting the same comments over and over and over again in this thread. Seriously though these interactions in the game were never really the same thing, you do not drag most physics objects in the game slowly along the ground, you pick them up kind of like how shouldering the body is a non goofy way to display you have picked it up, so no idea how it is inconsistent and even why that matter so much.
  25. It is quite litigated in the thread already whether it is particularly important or common in games for a context sensitive input be "consistent" or whether this inherently means something is intuitive - so I won't repeat my thoughts on it. I will say It seemed like it was quite difficult to get this change as it is into the game, so while I think anything can be improved I am not sure anyone wants to go through another 10 pages, polls, etc. So I hope I don’t sound short or dismissive, it’s really not my intention, it’s just been a very long thread. I will say if an object is frob highlighted, ie subject to an interaction prompt, if frobbing it then does not do anything or provide any feedback the game immediately feels very strange and broken. I do not think it is good a idea to have objects which can only be interacted with via long press. The current design is around primary interactions being on short press and the secondary more situational actions being on hold, while also retaining compatibility with all legacy interactions. There is some disagreement as far as what is a "primary" interaction, but I find it pretty intuitive in practice as it is today. There are some exceptions that did not work out in testing. I will the example of candles/lanterns - having extinguish as the primary interaction makes a lot of sense, but in practice didn't work very well. The game is full of extinguished candles, empty candle holders, etc that are now simple physics objects that require a long press to pickup and have no primary interaction - see issue above. You also have to handle lanterns differently, which can be toggled off/on. You could code in the TDS method which is extinguish a lit candle on frob, then it becomes a physics object (“junk” in the parlance of your table) so the primary interaction should then be grabber. There seemed in general to be a lot of concern about keeping the code clean. Being able to grab moveable inventory objects on hold without having to do the current dance of bringing them into inventory first and then “dropping” them - like keys and tools - could be a nice addition. Many loot objects are not moveables so these might be a bit of issue?
×
×
  • Create New...