Jump to content
The Dark Mod Forums

Search the Community

Showing results for '/tags/forums/work thread/'.

  • 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. I have quite a few assets from WIPs I'll probably never use elsewhere, so I thought I could share it here. Some of these are older and not necessarily matching the TDM lore, but I hope someone will find use for them. In terms of package format, I'll be creating 7zip packages with just model and/or texture files, so you can place them wherever you like in your project. I'll also include example material or def setup. I'll leave textures in .tga format, so you can make edits on uncompressed source and save as .dds later. So first up is a door/frame/key combo: Temp upload of all assets: https://we.tl/t-BOdrlNEXWJ See readme_notes for design / placement instructions.
  2. After some amount of work I'm happy to be able to share my Christmas gift for TDM! Or at least half of it, considering the other half is still only in design phase. I created an addon that implements detailed player functionality, inspired by the first DeusEx game (The Conspiracy). It's NOT a mission script but an addon, meaning you place the pk4 in your TDM directory to enable the system and it will automatically work in each and every FM. Note that due to using tdm_user_addons.script / user_addon_init() it may disable or get disabled by other addons you have installed... this is a design limitation which can hopefully be lifted at some point in the future. This plugin will be included in my cyberpunk total conversion The Dark Module and automatically active with it, but first I shall design it and make it available as a small independent addon for vanilla TDM. In the current initial release it implements just per-limb damage; The upcoming plan is to add a skill / augmentation system, allowing the player to use loot as skill points to enhance various body parts and gain new or improved abilities. Due to the scripting system being very limited in what it lets me modify, I'm still gathering documentation on how to implement those skills and which I can have. So until then detailed body damage with penalties remains the only part that's theoretically finished so far (further improvements are required here too)... including a HUD component above the lightgem showing the status of each body part: Green = full health, yellow = half health, red = (close to) no health, black = no health left. The individual limbs available: Head, Torso, Left Arm, Right Arm, Left Leg, Right Leg... arms and legs work in unity however. They each take damage with the player as well as healing together with them. The more damaged a group is, the more a respective penalty is applied to the player. Groups and penalties include: Head: When the head is damaged, the player begins to get dizzy and has their vision impaired. Currently the only effect replicates the flashbomb, causing white dots to appear around the player and disrupt their view until the head is healed. As the player can't live without a head, reaching 0 will cause instant death. More effects are possible and pending. Torso: Damage to the torso translates to damage to the cloak, increasing the player's lightgem and rendering them more visible even in dark spots. As the player can't live without a torso, reaching 0 will cause instant death. Given script limitations I'm unable to simulate lung damage and decrease / limit the amount of air the player has. Arms: Arm damage makes it difficult for the player to hold items: In-world objects being held will probabilistically get dropped, more often the worse your arms are hurt. When both arms reach 0 health, the player can no longer pick up anything in the world without instantly dropping it... you also become unable to use any weapons. Due to limitations in the scripting system, I'm unable to decrease the speed or accuracy of the blackjack / sword / bow as was desired. Legs: As expected leg damage will make the player walk more slowly. It was desired that when one leg is lost the player can no longer jump, whereas when both legs are gone you remain stuck in crouch mode until healed... due to limitations in the scripting system this part is also not possible at the moment. A crude limitation is the fact that limb damage is primarily based on the direction the player is walking toward... for example, increased likelihood of suffering damage to your right arm and leg if strafing right the moment you take the damage. The script system doesn't let you extract the vector direction of the last damage event, thus I can't use the real direction the hit came from when calculating which body part should absorb the most health loss. This means that even if an arrow comes from above and hits the player's head area, the player will only take damage to the legs if they're falling downward the moment they got hit... for the time being this provides a bare minimum amount of realism but is a very bitter implementation. For this reason it would be greatly appreciated if any of the code developers could join this discussion and verify if they can help with adding the necessary hooks to external scripts: With 2.09 getting periodic beta releases at this point in time, it would be a great opportunity to make changes to the builtin player script that allow an external function to modify more player variables. This includes the efficiency of weapons, if the player is allowed to jump or forced to always crouch, and I'd also really appreciate a hook to manipulate the breath so air can be lowered as if the player is underwater. I understand other priorities exist or if the work may be considered too much, however this would help in being able to finish this mod with the proper functionality and planned skill set. In the meantime let me know what you think of this idea and how I went about it! So far no new assets are included except the GUI graphics: Everything is done with less than 250 lines of script which I'd say is a good achievement I've attached the pk4 and since it's so lightweight I'll also add the main script straight in this post. player_damage_1.0.pk4 #define DAMAGE_WAIT 0.0166667 #define EXPOSURE_ARM_LEFT 2 #define EXPOSURE_ARM_RIGHT 2 #define EXPOSURE_LEG_LEFT 2 #define EXPOSURE_LEG_RIGHT 2 #define EXPOSURE_HEAD 3 #define EXPOSURE_TORSO 1 #define PENALTY_TORSO_LIGHTGEM 4 player self; float damage_gui; boolean dizzy; entity dizzy_particles; float bound(float val, float min, float max) { if(val < min) return min; if(val > max) return max; return val; } // Range based probability: Calculates a probability per frame independent of wait time (0 - 1 range at 1 chance per second) boolean prob(float x) { return sys.random(1) > x && sys.random(1) < DAMAGE_WAIT; } // Directional exposure calculator float dex(vector dir, float ex_front, float ex_back, float ex_right, float ex_left, float ex_up, float ex_down) { float maxvel = 100; float dir_front = bound(dir_x / maxvel, 0, 1) * ex_front; float dir_back = bound(-dir_x / maxvel, 0, 1) * ex_back; float dir_right = bound(dir_y / maxvel, 0, 1) * ex_right; float dir_left = bound(-dir_y / maxvel, 0, 1) * ex_left; float dir_up = bound(dir_z / maxvel, 0, 1) * ex_up; float dir_down = bound(-dir_z / maxvel, 0, 1) * ex_down; return dir_front + dir_back + dir_right + dir_left + dir_up + dir_down; } void player_damage_update_arm(float dmg_l, float dmg_r) { float hl_l = self.getFloatKey("health_arm_left"); float hl_r = self.getFloatKey("health_arm_right"); float hl = (hl_l + hl_r) / 2; if(dmg_l != 0 || dmg_r != 0) { hl_l = bound(hl_l - dmg_l, 0, 1); hl_r = bound(hl_r - dmg_r, 0, 1); hl = (hl_l + hl_r) / 2; self.setKey("health_arm_left", hl_l); self.setKey("health_arm_right", hl_r); self.setGuiFloat(damage_gui, "PlayerDamage_ItemArmLeft", hl_l); self.setGuiFloat(damage_gui, "PlayerDamage_ItemArmRight", hl_r); // Penalty #1: Disable the weapon once the arm are damaged to minimum health if(hl == 0) { self.selectWeapon(WEAPON_UNARMED); self.disableWeapon(); } else { self.enableWeapon(); } } // Penalty #2: Probabilistically drop held items based on arm damage if(hl == 0 || prob(hl)) if(self.heldEntity() != $null_entity) self.holdEntity($null_entity); } void player_damage_update_leg(float dmg_l, float dmg_r) { float hl_l = self.getFloatKey("health_leg_left"); float hl_r = self.getFloatKey("health_leg_right"); float hl = (hl_l + hl_r) / 2; if(dmg_l != 0 || dmg_r != 0) { hl_l = bound(hl_l - dmg_l, 0, 1); hl_r = bound(hl_r - dmg_r, 0, 1); hl = (hl_l + hl_r) / 2; self.setKey("health_leg_left", hl_l); self.setKey("health_leg_right", hl_r); self.setGuiFloat(damage_gui, "PlayerDamage_ItemLegLeft", hl_l); self.setGuiFloat(damage_gui, "PlayerDamage_ItemLegRight", hl_r); // #Penalty #1: Make movement slower self.setHinderance("health", 0.25 + hl * 0.75, 1); } } void player_damage_update_head(float dmg) { float hl = self.getFloatKey("health_head"); float time_current = sys.getTime(); if(dmg != 0) { hl = bound(hl - dmg, 0, 1); self.setKey("health_head", hl); self.setGuiFloat(damage_gui, "PlayerDamage_ItemHead", hl); // Penalty #1: Without a head the player dies if(hl == 0) self.damage(self, self, self.getOrigin(), "damage_suicide", 1); // Penalty #2: Simulate dizzyness starting at half health if(hl <= 0.5) { if(!dizzy) { dizzy_particles = sys.spawn("func_emitter"); dizzy_particles.setModel("flashbomb.prt"); dizzy_particles.setOrigin(self.getEyePos()); dizzy_particles.bind(self); dizzy = true; } } else { if(dizzy) { dizzy_particles.remove(); dizzy = false; } } } } void player_damage_update_torso(float dmg) { float hl = self.getFloatKey("health_torso"); if(dmg != 0) { hl = bound(hl - dmg, 0, 1); self.setKey("health_torso", hl); self.setGuiFloat(damage_gui, "PlayerDamage_ItemTorso", hl); // Penalty #1: Without a torso the player dies if(hl == 0) self.damage(self, self, self.getOrigin(), "damage_suicide", 1); // Penalty #2: Torso damage negatively affects the lightgem self.setLightgemModifier("damage", (1 - hl) * PENALTY_TORSO_LIGHTGEM); } } void player_damage() { sys.waitFrame(); self = $player1; damage_gui = self.createOverlay("guis/player_damage.gui", 1); float health_old = 100; // Init by sending a heal event filling the limbs to full health player_damage_update_arm(-1, -1); player_damage_update_leg(-1, -1); player_damage_update_head(-1); player_damage_update_torso(-1); while(1) { // sys.waitFrame(); sys.wait(DAMAGE_WAIT); float health_current = self.getHealth(); float dmg = (health_old - health_current) / 100; float dmg_arm_left = dmg * EXPOSURE_ARM_LEFT; float dmg_arm_right = dmg * EXPOSURE_ARM_RIGHT; float dmg_leg_left = dmg * EXPOSURE_LEG_LEFT; float dmg_leg_right = dmg * EXPOSURE_LEG_RIGHT; float dmg_head = dmg * EXPOSURE_HEAD; float dmg_torso = dmg * EXPOSURE_TORSO; // If this is damage and not healing, apply directional damage to each limb if(dmg > 0) { // Currently we estimate damage direction based on the player's velocity, we should fetch the real direction of a damage event when this becomes possible vector dir = self.getMove(); vector ang = self.getViewAngles(); // Protections based on the player's position and relation to the environment // protection_look: 1 when looking up, 0 when looking down // protection_low: Higher as the lower part of the body is exposed float protection_look = 1 - (90 + ang_x) / 180; float protection_low = 1; if(self.AI_CROUCH) protection_low = 0; else if(self.AI_ONGROUND) protection_low = 0.75; // Use the dex function to calculate directional exposure patterns, direction order: Front, back, right, left, up, down // Arms: Somewhat likely to be hit, no added protection // Legs: Somewhat likely to be hit, added protection when the player is crouching // Head: Unlikely to be hit, added protection when the player is looking down // Torso: Likely to be hit, no added protection float exposure_arm_left = bound(sys.random(0.375) + dex(dir, 0.5, 0.25, 0.0, 1.0, 0.0, 0.25), 0, 1); float exposure_arm_right = bound(sys.random(0.375) + dex(dir, 0.5, 0.25, 1.0, 0.0, 0.0, 0.25), 0, 1); float exposure_leg_left = bound(sys.random(0.375) + dex(dir, 0.75, 0.5, 0.0, 0.5, 0.0, 1.0) * protection_low, 0, 1); float exposure_leg_right = bound(sys.random(0.375) + dex(dir, 0.75, 0.5, 0.5, 0.0, 0.0, 1.0) * protection_low, 0, 1); float exposure_head = bound(sys.random(0.25) + dex(dir, 0.25, 0.75, 0.5, 0.5, 1.0, 0.0) * protection_look, 0, 1); float exposure_torso = bound(sys.random(0.5) + dex(dir, 0.75, 1.0, 0.0, 0.0, 0.0, 0.0), 0, 1); // Apply the exposure to damage, multiplied to simulate the sensitivity / resistance of each limb dmg_arm_left = exposure_arm_left * dmg * EXPOSURE_ARM_LEFT; dmg_arm_right = exposure_arm_right * dmg * EXPOSURE_ARM_RIGHT; dmg_leg_left = exposure_leg_left * dmg * EXPOSURE_LEG_LEFT; dmg_leg_right = exposure_leg_right * dmg * EXPOSURE_LEG_RIGHT; dmg_head = exposure_head * dmg * EXPOSURE_HEAD; dmg_torso = exposure_torso * dmg * EXPOSURE_TORSO; } player_damage_update_arm(dmg_arm_left, dmg_arm_right); player_damage_update_leg(dmg_leg_left, dmg_leg_right); player_damage_update_head(dmg_head); player_damage_update_torso(dmg_torso); health_old = health_current; } }
  3. Why would that work? What's in that directory to make it work? Modified missions.tdminfo ?
  4. Is this a burglars request thread? Edit: This question was raised onto the original title of this thread, which looked somewhat like a request for players of sorts.
  5. to remember @STiFU 's progessive music thread. here´s something i love most out off so called german Prog-Rock a french group of the 70´s called " Atoll " their first two albums are incredible : the first shown is their second from 1975 : l´araignée-mal the second is their first from 1974 : Musiciens-magiciens
  6. Does this work? https://www.pcgamingwiki.com/wiki/Thief#Disable_shroud_effect_.28black.2Fwhite_fog_at_screen_edges.29
  7. Are you going to build two separate missions knowing that player will only see one of them? I think this is "cool in theory", but in reality using such a feature requires tremendous amount of work from mapper, so nobody will use it.
  8. Sorry, I didn't mean to step on your toes and to dictate the title change on you. I was merely raising concerns, as the title and beginning of this thread reads an awful lot like one of these here... Full disclosure: I haven't played your FM, yet, so maybe I didn't get the full picture. But then again, there are probably more people as clueless as me that don't get it at first either. Futhermore, you had some avatar come in and tell us about the loss of a beloved community member, wheras in myhouse.wad, it was the opposite, i.e., some random dude nobody in the community knew was gone.
  9. This post differentiates between "gratis" ("at no monetary cost") and "libre" ("with little or no restriction") per https://en.wikipedia.org/wiki/Gratis_versus_libre * A libre version of TDM could: ** Qualify TDM for an article on the LibreGameWiki *** TDM is currently listed as rejected https://libregamewiki.org/Libregamewiki:Rejected_games_list because "Media is non-commercial (under CC-BY-NC-SA 3.0). The engine is free though (modified Doom 3) (2013-10-19)" ** Qualify for software repositories like Debian *** TDM is currently listed as unsuitable https://wiki.debian.org/Games/Unsuitable#The_Dark_Mod because 1) "The gamedata is very large (2.3 GB)", and 2) "The license of the gamedata (otherwise it must go into non-free with the engine into contrib)" and links to https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/LICENSE.txt Questions: 1) tdm_installer.linux64 is 4.2 MB (unzipped), which is far from the 2.3 GB which is said to be too large. Yes, the user can use it to download data that is non-libre, but so can any web browser too. If the installer itself is completely libre, does anyone know the reason why it cannot be accepted into the Debian repository? 2) If adding the installer to the repository is not a viable solution, would it be possible to package the engine with a small and beginner friendly mission built only from libre media/gamedata into a "TDM-libre" release, and add user friendly functionality to download the 2.3 GB media/gamedata using "TDM-libre" (similar to mission downloading)? 3) Would such a "TDM-libre" release be acceptable for the Debian repository? 4) Would such a "TDM-libre" release be acceptable for LibreGameWiki? 5) Would the work be worth it? * Pros: Exposure in channels covering libre software (e.g. the LibreGameWiki). Distribution in channels allowing only libre software (e.g. the Debian repository). * Cons: The work required for the modifictions and release of "TDM-libre". Possible maintenance of "TDM-libre". I'm thinking that the wider reach may attract more volunteers to work on TDM, which may eventually make up for this work and hopefully be net positive. 6) Are there any TDM missions that are libre already today? If not, would anyone be willing to work on one to fulfill this? I'll contribute in any way I can. 7) I found the following related topics on the forum: * https://forums.thedarkmod.com/index.php?/topic/16226-graphical-installers-for-tdm/ (installing only the updater) * https://forums.thedarkmod.com/index.php?/topic/16640-problems-i-had-with-tdm-installation-on-linux-w-solutions/ (problems with installation on Linux) * https://forums.thedarkmod.com/index.php?/topic/17743-building-tdm-on-debian-8-steamos-tdm-203/ (Building TDM on Debian 8 / SteamOS) * https://forums.thedarkmod.com/index.php?/topic/18592-debian-packaging/ (Dark Radiant) ... but if there are other related previous discussions, I'd appreciate any links to them. Any thoughts or comments?
  10. Alright, new problem with making these skins (or should I make a new thread about this?) Why are my skinned models coming up black? Here is my updated code for a simple skin. And here is the model in the skin editor, changed to its creamy, plaster version. Yet for some reason, all of my skins are pure black. The wiki says this is caused by the editor not finding the skin definition, and that there are spelling errors somewhere. I am not sure what this means, though, since all of my directory paths are spelled right (otherwise, how would the skin editor display them perfectly fine?) Does the name of the file have to match the declared skin name?
  11. Changelog of 2.13 development: dev17026-10712 * Nested subviews (mirrors, remotes, sky, etc.) now work properly (6434). * Added GUI debriefing state on mission success (6509 thread). * Sound argument override with zero now works properly under cvar (6346 thread). * Environment mapping is same on bumpy and non-bumpy surfaces under cvar (6354 thread). * Default console font size reduced to 5, added lower bound depending on resolution. * Added high-quality versions of panel_carved_rectangles (6515). * Added proper normal map for stainglass_saint_03 (6521). * Fixed DestroyDelay warning when closing objectives. * Fixed the only remaining non-threadsafe cvar (5600). * Minor optimization of depth shader. * Added cm_allocator debug cvar (6505). * Fixed r_lockView when compass is enabled. dev17008-10685 * Enabled shadow features specific to maps implementation (poll). * Auto-detect number of parallel threads to use in jobs system (6503). * Improved parallel images loading, parallelized sounds loading, optimized EAS (6503). * Major improvements in mission loading progress bar (6503). * Core missions are now stored uncompressed in assets SVN (6498). * Deleted a lot of old rendering code under useNewRenderPasses + some cleanup (6271). dev16996-10665 * Environment mapping supports texcoord transforms on bumpmap (6500). * Fully disabled shadows on translucent objects (6490). * Fixed dmap making almost axis-aligned visportals buggy (6480). * com_maxFps no longer quantizes by milliseconds on Windows 8+. * Now Uncapped FPS and Vsync are ON by default. * Supported Vsync control on Linux. * Added set of prototype materials (thread). * Fixes to Stone font to remove stray pixels (post). * Loot candlestick no longer toggle the candle when taken. * Optimized volumetric lights and shadows in the new Training Mission (4352). * Fixed frob_light_holder_toggle_light on entities with both skin_lit and skin_unlit. * Now combination lock supports non-door entities by activating them. * Added low-poly version of hedge model (6481). * Added tiling version of distant_cityscape_01 texture (6487). * Added missing editor image for geometric02_red_end_HD (6492). * Added building_facades/city_district decal material. * Fixed rendering with "r_useScissor 0" (6349). * Added r_lockView debug rendering cvar (thread). * Fixed regression in polygon trace model (5887). * Added a set of lampion light entityDefs.
  12. Obviously the change will only work in last night's dev snapshot and onward. But missions can already start implementing this: It's just that older TDM versions won't see the debrief screen and only future players or dev users will enjoy them.
  13. I usually share other people's photos of historical and industrial architecture in this thread, but I've decided to finally share some of my own photos that I've accumulated over the years. Over the years, especially the last twenty or so years, I've wandered many of the old town quarters in cities and towns all around my country, taking snapshots. Wereas many of the main streets and major landmarks have long since had nice and beautiful restoration work done, many of the more obscure side streets, back alleys and occassional overlooked corners had interesting sights to behold. I've particularly been fond of old townhouses that show elements from different eras of history, as well as all the wear accumulated over the years and decades. As much as I like that many of these eventually also receive decent restoration work and look nice again, the sight of a well-worn, dilapidated or even ruined house or ocassional public building can prove really stimulating for the imagination. They've got a lot of proverbial "texture" (not just in the surface sense) and "character" that can hike one's imagination, especially with regards to lived-in environments with long histories.
  14. I've seen fun workarounds like that in other game modding as well. Years ago, maybe even a decade, some fella who was making a mod for Mount & Blade over at the Taleworlds forums revealed that he put invisible human NPCs on the backs of regular horse NPCs, then put the horse NPCs inside a horse corral he built for one of his mod's locations/scenes and then did some minor scripting, so the horses with invisible riders would wander around the corral. The end result was that it looked they're doing this of their own will, rather than an NPC rider being scripted to ride around the corral slowly. Necessity is the mother of invention. I don't know about the newest Mount & Blade game, but the first generation ones (2008-2022) apparently had some sort of hardcoded issue back in the earlier years, where if you left a horse NPC without a rider in its saddle, the horses would just stand around and wait and you couldn't get them to move around. Placing an invisible rider in their saddles suddenly made it viable again, at least for background scenes, of riderless horses wandering around, for added atmosphere. First generation M&B presumed you'd mostly be seeing horses in movement with riders, and the only horses-wandering-loosely animations and scripting were done for situations when the rider was knocked off their horse or dismounted in the middle of a battle. Hence the really odd workarounds. So, an invisible NPC trick might not be out of the question in TDM, even though you could probably still bump into it, despite its invisibility.
  15. NOTE (3 March 2024): This mission has problems running on DarkMod 2.11. Be sure you are running the DarkMod 2.12 or later. A rare artifact, the Builder's Chalice, is available for the taking. Looks pretty straightforward, but looks can be deceiving... Yes, another mission for 2022. I think this makes eight this year already; we had eight for all of 2021! Great work, everyone! This is a smallish mission. It does not have any spiders or undead. It is a puzzle-heavy mission, with a built-in hints system in case you get stuck. This mission contains a couple of small homages to Grayman. This mission requires TDM 2.10. It uses some 2.10 features (subtitles, secrets, volumetric lights). Note that the volumetric lights are used in a specific way, such that your "Shadows Implementation" can be either Maps or Stencils, the volumetric lights will work either way. Version 2 of the mission is here: https://www.dropbox.com/s/pbz6spmqpo4vrg4/byanyothernameV2.pk4?dl=1 This fixes the "Open Doors on Unlock" problem. Have fun! Special thanks to JackFarmer, who created some wonderful and appropriate ambient sounds. He also did some Alpha testing to catch some early mistakes. Also thanks to the Beta testers, who struggled with some frustratingly-hard (or impossible) early variations: Cambridge Spy, Acolytesix, wesp5, datiswous, Bienie, Shadow Thanks to Chloe for some great voice work. I made plentiful use of sounds from freesound.org: https://freesound.org/people/HerbertBoland/sounds/75194/ https://freesound.org/people/craigsmith/sounds/482781/ https://freesound.org/people/InspectorJ/sounds/403005/ https://freesound.org/people/rhodesmas/sounds/322930/ https://freesound.org/people/fisch12345/sounds/325112/ https://freesound.org/people/BockelSound/sounds/489507/ https://freesound.org/people/ultradust/sounds/167747/ https://freesound.org/people/Crinkem/sounds/496328/ https://freesound.org/people/LucasDuff/sounds/467697/ https://freesound.org/people/RuidosoSoundFX/sounds/507161/ As always I've used some of Springheel's modules and Orbweaver's ambient sounds. And finally, huge thanks to the developers of The Dark Mod, especially 2.10, another milestone in this fantastic game. A few more screenshots
  16. After playing various Dark Mod FM’s, I become hooked to the game, like I was with Thief (and its FM’s). So, like I do to all games I love, I tried to find ways to improve it. Since my first contact with DM and after playing T1 and T2 with the fantastic “HD Mod”, it became apparent that graphically, TDM struck me strange. Of course, it is clearly a BIG improvement over T3 and it’s not worse then Thief 2014 -- if you remove all those post processing effects, the textures are actually very bad for today standards – but it could be a little bit better. So I started to change a texture here, a texture there, whenever I found a texture that could be improved. Initially, I made this for my own amusement, while i was playing, but as the changes increased, I started to think I it would only be fair to share it with the community. As a note, I really appreciate the amount of work done by the contributors to TDM. It’s amazing how an open source project of a game whose genre is unfortunately condemned to target a niche player base could attract so many talented people to work together and create what essentially is the Thief 4 we never had. So this is in no way a mean to disrespect the contributors and their work. What changed and how Currently, around 530 files were changed. The changes end up in one of the following categories: NOTE: “texture quality” noted below is subjective and represents only my point of view. Again, It is in no way a mean of disrespect for the original author and its work. The texture is good but is in a low resolution – upscale it using AI image enhancement methods. The texture is poor and low res, with poor AI upscale results – try to replace it using various free PBR or raw Image sources (1) or create my own. If necessary, adjust the image using (colors, saturation, contrast, …) The texture has a good resolution and its not quite good but can be improved – improve using gimp (ex: on textures with bur, use sharpen, noise reduction or/and other features) (2) The texture depicts an horrible stew – change it to a decent and delicious stew, because my Portuguese roots forced me to do it. Additionally, specular and normal maps were added to some textures. (1) Free textures and PBR sites already discussed on this forum (texturehaven.com, 3dtextures.me, cc0textures.com and so on). (2) Finding the right texture is not always easy. I always tried to follow the same “feel” and appearance of the original image, but i confess that this is not always the case. Again, very subjective. New version 2021.01.08 * Around 170Mb of textures processed Some tree barks enhanced Stucco change more enhancements on doors, paint paper, fire places, ground textures, curtains .. and much more Screenshots and Comparisons It’s obviously undoable to show the comparison for all changed textures, so keep in mind that the following screenshots are just a very small example of the whole project. Also, very important, keep in mind that there is so much you can do with screenshots and in game the differences are much more clear than what is shown below. Sir Talbot's Collateral https://imgsli.com/MTI2NDE https://imgsli.com/MTI2MzY https://imgsli.com/MTI2Mzc https://imgsli.com/MTI2Mzg https://imgsli.com/MTI2Mzk https://imgsli.com/MTI2NDA WS3: Cleighmoor https://imgsli.com/MTI1OTE WS1: In the North https://imgsli.com/MTI2MTY https://imgsli.com/MTI2MTc WS2: Home Again https://imgsli.com/MTI2MjM https://imgsli.com/MTI2MjQ https://imgsli.com/MTI2Mjc https://imgsli.com/MTI2Mjg https://imgsli.com/MTI2Mjk https://imgsli.com/MTI2MzE https://imgsli.com/MTI2MzM New (version 2021.01.08) Briarwood Manor https://imgsli.com/MzUwNDY https://imgsli.com/MzUwNDg https://imgsli.com/MzUwNTE https://imgsli.com/MzUwNjc The Builder's Influence https://imgsli.com/MzUxNjM https://imgsli.com/MzUxNjQ No honor among thieves: forest https://imgsli.com/MzU0ODE https://imgsli.com/MzU1NTQ https://imgsli.com/MzU1NTk How to install 1) download the pk4 file from here 2) drop it on your TDM game folder (where all the other pk4 files are) 3) Play! Uninstall Just remove z_TDM_HD.pk4 file from your TDM install folder. Disclaimer If you are a purist, please don’t use this texture mod. Don’t bash it for not being “exactly the same as the original ones but hires”. If you find some texture that is copyrighted, please let me know and i will replace it. Fell free to suggest changes, but please don't make requests. Understand that i am doing this while playing and if i start feeling that i'm working instead, i will probably start to loose my interest. PS: I really don't know if this is the right thread to make this post. Let me know if i need to change it to another thread.
  17. God knows since when have I last registered or posted on a traditional internet forum, but had to do so to pay my respects for the developers and map makers of this game. I have no history of the original thief series, and had no expectations for the mod. This is the first FM I played. After running around in a bit of a haste, becoming increasingly desperate of the complexity of the map, I learned to enjoy the feeling of being lost, calmed down and started to pay attention to the surroundings and listening to the ambient sounds and music. It is a truly immersive experience. I do have to admit that I could not find the entrance to the mansion, and had to resolve to a walkthrough to figure out how to enter, and at the end of the day did not manage to finish the mission. This mod is a great achievement, thank you for all the work and passion you have put into it.
  18. Thanks for the feedback @Rio_Walker As mentioned in other comments in this thread, the optional objective was meant to be for players who enjoy exploring every inch of the map. If all you want to do is complete the mission via the primary objective it's pretty straightforward. It was also meant to be sort of 'open world' in that if you explore everywhere you pick up little hints and bits and pieces and put them together at the end to solve that objective with. It wasn't meant to spoon feed the player. But again maybe not everyone enjoyed that approach. It was also kind of a knee-jerk reaction to players not liking 'linear' missions. But it seems some people still do like that And yeah, some players don't like big maps. I get that. I don't like playing them myself a lot of the time The issue with the bow crash is a known issue (not just with this mission) which we haven't got to the bottom of unfortunately:
  19. The concern that newcomers and players that play the game occasionally don't know or cannot figure out some features looks like a recurring topic. Since we cannot rely on the training mission alone I propose a "global tip system". First, we need a setting: In-game tips: Yes/No This setting must be easily accessible and therefore it should be included in the main menu or stand out in the settings screen. Now, when the setting is enabled players will get tips in ANY and ALL missions when triggering a condition for the first time. Examples: Player frobs a (shoulderable) ragdoll for the first time: To shoulder a body frob it and press "Use". Drop the body by pressing "Use" again. Player frobs a moveable extinguishable light for the first time: You can extinguish a candle by pressing "Use" while holding it. Find fire sources to relight candles. Player frobs a moveable switchable lantern for the first time: Press "Use" while holding moveable lights to switch them on and off. Player unlocks a door (or object) with a key for the first time: You can lock it again by selecting the appropriate key and pressing "Use". Player shoots a water arrow for the first time: Did you know water can clear blood stains and make moss grow stronger? Player shoots a rope arrow for the first time: Press "Attack" while hanging on the rope to swing. ...
  20. Reproduced with 3.9.0 on Ubuntu. This is the backtrace: ASSERT INFO: ../src/unix/threadpsx.cpp(1678): assert "This() == this" failed in TestDestroy(): wxThread::TestDestroy() can only be called in the context of the same thread BACKTRACE: [1] wxThread::TestDestroy() [2] wxutil::ThreadedResourceTreePopulator::ThrowIfCancellationRequested() [3] decl::DeclarationManager::renameDeclaration(decl::Type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [4] skins::Doom3SkinCache::renameSkin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [5] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) [6] wxEvtHandler::SearchDynamicEventTable(wxEvent&) [7] wxEvtHandler::TryHereOnly(wxEvent&) [8] wxEvtHandler::ProcessEventLocally(wxEvent&) [9] wxEvtHandler::ProcessEvent(wxEvent&) [10] wxEvtHandler::SafelyProcessEvent(wxEvent&) [11] wxTextEntryBase::SendTextUpdatedEvent(wxWindow*) [12..34] <internal GTK stuff> [35] wxGUIEventLoop::DoRun() [36] wxEventLoopBase::Run() [37] wxDialog::ShowModal() [38] wxutil::DialogBase::ShowModal() [39] cmd::CommandSystem::executeCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<cmd::Argument, std::allocator<cmd::Argument> > const&) [40] cmd::CommandSystem::execute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [41] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) [...] <Other GTK/wxWidgets stuff>
  21. I'll try that: I remember now there's an entity used to call script functions on other entities... show / hide are universal events at the core of the base entity, if that doesn't work something must be very broken. Another option I thought of: What if I teleport the atdm:mover_multistate_position entity instead? However I doubt that will work since to my knowledge, dmap compiles elevator positions to some extent so changing them in realtime will likely not work or break stuff, but just in case let me know if that might be safe.
  22. Omg, this thread is great. I hope to play the FM this weekend. Might even try it in VR. Edit to say: Congrats on another release!
  23. Interesting! Does it update all default textures so it's used on everything in the world? I should replay it and check that out: It would give us a good view of how the effect will feel in practice. Looking at the page, they seem to do it the conventional way I was thinking of trying out, which is currently supported by the engine but more limited than a proper implementation. It also looks like they're only doing it for the albedo channel, to be effective detail should be applied to all maps... the normal map is where the improvement should be most noticeable as it responds to lighting and modifies everything else. The implementation I'm thinking of should be universal like all effects and work on any FM new and old. It would be controlled by a menu setting, no one needs to enable it if they don't like how it looks or it impacts performance. Each detail pass should fade and be hidden with distance, we don't want to stress pixel lighting by having it compute thousands of dots on distant surfaces each frame. Just like the TDM ambient method, we'll likely need a special segment for materials meant to indicate what kind of detail each texture wants, then based on settings and camera position the renderer must modify each surface accordingly.
  24. There are a few ways to state the version number: Inside darkmod.txt, included in the .pk4. The version number in here is what should be shown ingame in the mission downloader. Mappers can write whatever they want inside the readme.txt included in the .pk4. This is the same as writing a version number into the release thread. There is also the internal version number, which always has to be a whole number. It's entered directly in the admin interface, and only team members can see it. The existence of the last, internal-only number has led to some confusion among mappers. I think I used to put whole version numbers into my darkmod.txt (i.e. v2 or v3), but declare a decimal update (i.e. v1.1 or v1.2) on the forum thread and in the readme.txt. It's also possible to have different version numbers in the darkmod.txt and readme.txt. This is something that should be caught during beta testing.
×
×
  • Create New...