Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 11/29/22 in Posts

  1. TDM 2.11 is ready for beta test This is how to get beta versions: Upgrade from any version (fast): 1 - Start tdm_installer in darkmod folder. 2 - On the first screen, check "Get custom version" and click "Next". Choose the first name in beta/2.11 list, should look like "beta211-NN". 3 - Click on "Refresh" button to ensure that it is not going to download too much stuff. 4 - Continue installing with "Next". Fresh install (slow): 1 - Create darkmod folder anywhere you like. 2 - Download the TDM Installer from downloads section of the website. Extract tdm_installer executable from the downloaded ZIP and place it into your darkmod folder. 3 - Start tdm_installer (in case of Linux, first edit file permissions to allow executing it). 4 - On the first screen, check "Get custom version" and click "Next". Choose the first name in beta/2.11 list, should look like "beta211-NN". 5 - Continue installing with "Next". In general, upgrade is recommended over fresh install. If you don't want to lose your current TDM installation, then you can copy the whole TDM directory and upgrade the copy. This way you can have both 2.11 beta and 2.10 at the same time. At the end of installation, tdm_installer resets your config by renaming darkmod.cfg to darkmod_{datatime}.cfg. This is a recommended procedure on upgrade, otherwise you are likely to have issues due to old config. If you need your old config for some reason, you can always find it in darkmod folder. 32-bit builds of TDM are deprecated, so they are not present in beta versions. They will be added at the very end of beta phase. Notes 1 - This effort is to find out if we broke anything in TDM with our 2.11 changes, if a new 2.11 feature isn't working correctly. We won't be trying to fix bugs that have been around for a long time. Instead, we will create an issue in bugtracker (if not yet present), to fix it after beta. 2 - If you find something wrong, it would be helpful if you report whether the issue happens in 2.10 too. By the way, you can easily get 2.10 version: just copy your darkmod folder and run tdm_installer on the copy, selecting "release210" on the custom version screen. 3 - Please try to be specific when reporting a problem. What you were doing, where you were when the problem occurred, can you reproduce it, etc. This wiki article provides many suggestions for good bug reports. Thank you for testing !
    9 points
  2. Improved on the central area today, still lots to do everywhere else, quite happy with this though.
    9 points
  3. PLAYERS * Volumetric lights appeared late before the previous beta, so the quality of volumetrics in 2.10 was rather poor, and the dithering pattern was very annoying to look at. The feature received a lot more development, and now adheres to the standards of modern rendering. The dithering pattern is gone, performance should be much better, and now you won't miss volumetrics even if you prefer to play with stencil shadows all the time! (thread) * Thanks to a certain "AI-heavy" mission, the game code has received major optimizations. It is most noticeable in low performance conditions, when game modelling takes a lot of CPU time. Previously the game could easily descend into the "spiral of death" with FPS falling below 5, now it is way harder due to better scheduling of AI thinking. There is a variety of other game code optimizations which make our lives slightly better. * New version includes several optimizations for shadows, mostly stencil shadows. A long-standing inefficiency of stencil shadows with antialiasing is fixed, new tile-based optimization is added for soft stencil shadows (thread), small lights with large meshes work faster due to BVH efforts (thread). On the side of shadow maps, the rules for distributing the resolution budget are changed: small distant lights no longer steal precious bandwidth for themselves. * There are several improvements on gameplay side as well. The core mechanics of blackjacking enemies has received subtle, yet helpful improvements (thread). Now you can grab many close pieces of loot by holding down the frob button, instead of picking up each item individually. There are several improvements to crouching, making it more responsive (thanks to @Daft Mugi). The in-game downloader now supports "sort by release date" ordering. * There were a ton of small bugfixes for issues like: bow stuck after load, wrong strafe-walk sound, crash when saving shortly after the death of an elemental, issues with leaning onto doors, missing fracture sounds after loading a save, X-ray glitch in the first frame, toggling solidity/visibility, etc. MAPPERS * The engine now supports OBJ model format. This format is much more popular than ASE and LWO. The engine loading code is very lightweight: it will use your model exactly is as, and load it very quickly. The OBJ format is preferred for large meshes due for faster loading times. The only possible downside is somewhat larger download size compared to LWO, although not much and not always (thread). * Renderer should deal with large meshes much faster, thanks to BVH optimizations. Recall that idTech4 was made for very low-poly models. When renderer frontend sees a "surface" in a model, it always treats this surface as an atomic piece, doing all computations for all of its vertices and triangles. This is very good for low-poly models, can heavily drag performance down with large meshes, as several recent missions noticed during beta. The BVH data structure breaks every surface into smaller chunks, allowing renderer to quickly cull away whole chunks. This makes a big difference in case of large meshes (e.g. terrain) lit by many small lights (thread). * You no longer have to write frob-highlight stages in materials, since they are added implicitly. The problem with these stages was that were very easy to forget, which resulted in no highlight on frobable items. Also it increased cognitive load and scared mappers away. While writing frobstages is no longer necessary, the old stages work just fine. So mappers can still customize frob-highlighting if they really want to (thread). * It is now legal to override a single decl of core game in your mission. Recall that "decl" means a material, a skin, an entityDef, a particle, etc. Note that overriding a whole file from core game always worked as expected, but overriding a single decl from a file did not work reliably before (despite the common belief that it should). * The major cleaning of shaders resulted in some changes in lighting model. The aim was to make TDM lighting closer to the standard Phong model, and make it more logical in general. The changes should rarely make a big difference, aside from probably stronger specular (thread). * Added error-reporting to the GUI scripting engine. Implementing GUI scripts is very hard, error-prone, and confusing. Aside from surprising differences in Doom 3 GUI behavior compared to e.g. Javascript in DOM, a lot of confusion was caused by total lack of any error handling whatsoever! In the new version, all possible errors should result in easy-to-understand console warnings, so writing correct GUI is much easier. Also, we fixed a few features, and added a few new ones to the GUI engine (thread). * dmap command received minor improvements. Yet another big rewrite happened for T-junctions fixing code, since it took tremendous amount of time on one mission. Also a few precision improvements were made. * Other small fixes and additions: added script functions getAnimRate / setAnimRate for tweaking animations added script function setObjectiveNotification for silent objective change added script function getCurInvItemCount for interaction with inventory added script variable "AI_ENEMY_TACTILE" to the base AI scriptobject, which is true whenever the AI is in tactile range of an enemy added spawnarg absence_alert_increase for loot items as a proper substitute for absence_alert, giving control over how much an AI gets alerted if that piece goes missing added spawnargs allow_idle_anims / allow_random_headturning for customization during a running mission, useful i.e. for cutscenes AIs notice broken fracture entities trigger_multiple now works on stationary AIs almost doubled tracemodel limits, raising the restrictive limits for making collision meshes for moveable items ASSETS * We fixed all loading warnings on all assets. This became possible after creating an automatic map generator which forces the engine to load all assets from every group. All the references to missing files are fixed too, which means a variety of assets have become available: old noblewoman skin moor helmet electrical arcs stone window decals yellow banner skin wine barrel lampion lights graffiti decals by Necrobob * New assets were added: Full-scale modular ship prefabs with interiors, allowing anyone to assemble a ship for a nautical mission in a matter of seconds. 1 merchant galleon and 2 smaller sailing ships are available. Camgoyle sentry, a magical stone guardian based on the security camera shooting magical projectiles at the player, first seen in Written in Stone. The prefab also includes a power source pedestal. Fully useable audiograph for playing recorded sounds, first seen in the Accountant and Shadow of Northdale missions. A new full-featured scriptobject makes them easy to implement and control via spawnargs. Wiki A set of 6 bronze vintage lamps has been added for particulary posh establishments. A new open-top carriage, the barouche. PROGRAMMING Under the hood, we updated third-party libraries, and moved to Visual Studio 2022. The "Debug With Inlines" configuration was split into "Debug Editable" (with hot-reload support) and "Debug Fast" (fastest debuggable). Marking the final step in transition to tdm_installer, the old tdm_update program is finally removed, with TDM packaging code extracted to standalone program.
    8 points
  4. Very early WIP... less than half of the base map done so far, design subject to change but mostly stabilized by now. My first experience with the building modules: While I find the origins and seemingly unnecessary backfaces on some a little overhand, they're amazing and it's hard to think how we went without them for so long.
    7 points
  5. Remade SeriousToni's painting model, so it can serve both as decoration and loot item. 500 coins for such a sloppy cutout job might be a bit of a wishful thinking though
    6 points
  6. alright, this one is my bad. I just deleted the entire archive and redownloaded the FM. Now the issue seems to be gone. Perhaps I had an extraneous material file that overwrote something? I don't know, but everything seems to be working as normal. Thanks for looking into this. And now I have learned to delete and reinstall an FM before reporting a bug
    3 points
  7. I found two objects with missing textures in 2.11 beta 1 (also, missing in earlier 2.11 dev asset versions). They look fine using 2.10 assets. Are these actually missing textures or another issue? Hazard Pay. Crumpled note. 2602.16 -275.42 -2215.75 40.6 67.4 0.0 Iris. Trash can. 363.84 1181.95 -381.25 27.4 -142.7 0.0 Is there a way to automate finding these? @AluminumHaste Using your getviewpos screenshot trick. Thanks!
    3 points
  8. I think I fixed it on the latest trunk.
    3 points
  9. Got volume lights, AI patrols, snow and more working. Half of the map still hasn't been put in place, doing a few readables then hoping to get to that after a few more changes.
    3 points
  10. 2.11 beta 01 is currently in the installer list. The thread about it will be out soon but you can test it now. That said, we need to bisect your performance problem by having you test older builds starting with 2.08
    3 points
  11. Changelog of 2.11 development: dev16481-9881 * Updated Visual C++ from 2017 to 2022, build game and idlib as on VC project (5820). * Updated all third-party libraries (5881). * Render scale does not affect main menu GUI. * Optimized compass rendering: don't copy depth buffer. * Fixed debug polygons not showing up. * Don't draw debug lines in subviews. * Don't open game console by tilde if com_allowConsole is 0 on Linux (post). * Moving GUI slider with mouse now results in discrete increments. * Restored code for 16-bit colors (via r_fboColorBits cvar only). * Game console bottom line gets thinner on smaller console font. * Added tuneDown command to quickly ender very low graphics mode. * Added r_fboScaling cvar which allows to change Render scale filtering to nearest. * Avoid purging/reloading all images on Alt+Tabbing in Windows. Known problems: * Won't boot on Windows 7 dev16485-9903 * Optimized iteration over active entities by switching from linked list to array. * Fixed bow sometimes not working on savegame load (5928). * Allow headbob cvar changes to persist between sessions (post). * Player speed modifiers (like pm_runmod) are no longer archived (post). * Applied Clang build fixes by @Partmedia (post). * Fixed "testVideo withAudio" command. * Fixed unbounded brush AAS warning by trying to process each edge of brush once (5648). * Use double precision for winding splits in dmap and collision. * Reworked FFmpeg player to not use deprecated functions, fixed protocol warning (5881). * Fixed 2GB overflow in printMemInfo. Known problems: * Won't boot on Windows 7 * JPEG saving and loading crashes on Linux. Setting r_screenshot_format to "png" may help... dev16487-9919 * Fixed saving/loading JPEG crash on Linux (5881). * Fixed wrong sound on strafe right (5554). * Major refactoring and optimization on LOD system, LOD entities no longer "think" (5944). * Improved time distribution of stims and LOD checks for more solid performance. * Optimized creation/destruction of script threads. * Optimized idClip = broad phase collision detection (5954). * Reduced size of Linux executable back from 24 MB to 18 MB by removing globals. * Now in-game downloader prints URL of download to game console. Known problems: * Won't boot on Windows 7 dev16498-9944 * Updated Tracy library, hopefully fixed running on Windows 7 (post). * Fixed crash on loading save done while elemental is dying (5845). * Implemented multiloot on holding frob button (5984). * Crouched state does not affect player speed on ladder/rope (5961). * Crouch-toggle takes effect on keydown rather than release (5973). * Added setviewpos to screenshot filename (5819). * Show estimate for total number of pickpockets on end-mission screen (5678). * In-game downloader: show asterisk/sharp at the beginning (5842). * Trigger entities now work on AI which stands still (5319). * Added setObjectiveNotification, which allows to change objective silently (5967). * Added script functions to add/remove frob peers (5976). * AIs notice destroyed fracture entities (5978). * Enabled frobhelper by default (post). * Fixed some architecture skins by Nort. * Fix graffiti materials (5930). * Now default quicksave/quickload are F5/F9 (post). * Minor optimizations: SSE in idRenderMatrix, cache "drunk" spawnarg. * Looped bind does not cause crash, although behavior is undefined (post). Known problems: * Night to Remember, Cole Hurst 1 Eaton: cannot start missions due to hard error. * Painter's Wife: killing elemental should cause hard error (mission fixed). dev16519-9985 * Now AIs think once per frame on low FPS when several game tics are modelled (5992). * More responsive crouch toggle (5973, thread). * Added "absence_alert_increase" as correct implementation of "absence_alert" (5987). * Allow drawing up to 4 postprocessing surfaces, as long as draw order is right (thread). * Missions can be sorted by date in in-game mission downloader. * Added getAnimRate/setAnimRate script events (540). * Fixed lean-peeking sound not always stopping when player goes away from door (5899). * Fixed wrong sounds of func_fracture after save/load (5363). * Fixed scorch and smear01 decals (5970). * Fixed fx/sparks effect, set "triggered 1" for newly added effects (5034). * Fixed startup image/sound warnings on some AIs (5993). * Fixed joints warnings on zombies (5466). * Fixed "screw" skin not showing in DR on appropriate models (5217). * Fixed for frobability in kitchen_cupboard_openable.pfb (5989). * Added editor images for panel_halfcircle_walnut and panel_vase_polished_walnut. * Bumped maximum number of edges to 1 million for stencil shadows, added overflow warning. * Fixed debug cvars tdm_ai_opt_forceopt and tdm_ai_opt_forcedormant 5992). * Tiny optimization: memcpy is now using streaming stores only at vertex cache. * Removed support of bindless textures (5891). * Extracted tdm_package and removed tdm_update source code (5076). dev16574-10036 * Add Dragofer's fully mapped ship prefabs, vintage lamps set, barouche carriage and camgoyle sentry turret with power source (4687) * Added BVH-based interaction culling for large meshes (5886, thread). * Added warnings for wrong GUI code, fixed them in core GUI (5869, thread). * Fixed leaning against non-axis-aligned door (5899). * Fixed skin of non-rotating security camera (6004). * Tweaked inlining and optimization, new debug builds Fast/Editable. * Disabled multiple rendercopies for warping materials (post). * Created materials for previously unreferenced textures, now available for use (5563, 5178) * Fixed 50 skin-related, auto-detected bugs that were generating console warnings (6019) * Female mage legs are now textured (5994) * Adjusted LOD offsets for atdm:nature_pine to avoid popping (3987) * Wooden torches now have burning/burnt tops (1293) * tdm_grass_clump and tdm_wildgrass particles no longer render fullbright (5689) * Added inclusion guards to all core script files (4427) * small_round_furnace_openable.pfb fixed with regards to model gaps and door origin (6018) * Fixed underwater_bubblesbubbles particle (5198) * Fixed burnt log end cap texture alignment (4896) * Added unlit and moonlit versions of textures/darkmod/window/ornate/round_spokes01 (5857) * Added specularmap to rivet_strip01 textures (5999) * Restored plain_robes skin for mages, pagan_orb_effect particle, fix windows in tudor building4 etc. (5690) * Fixed models that made use of missing materials (4390) * Diffusemap for wallpaper_ornamental_01_red now matches its normalmap (4798) * Hardwood materials now use wooden footstep sounds (4988) * Fixed skins for 6-candle chandeliers and nails (5900, 5217) * All fence_spike_01_tall models are now solid (6010) * Fixed typo in shouldered manbeast name (5877) dev16599-10071 * Fixed startup error on: Night to Remember, Cole Hurst 1 Eaton (5845). * Shadow maps refactoring: now volumetrics work if stencil shadows are selected (5880, post). * Fixed SSAO on new AMD driver (post). * Ensured that mission decls silently override same-named core decls (5766). * Fixed order of operations in expressions in materials and GUI scripts (6026). * GUI scripts: do not block autoupdate for window registers referenced in scripts; fixed vector component indexing, allow expressions on the right side of Set command (6028, thread). * Major refactor of objectives GUI: checkboxes no longer empty on failure screen (5852). * Added pm_mantle_tilt_mod cvar to tone down mantle movements. * Fixed noclip while shouldering a body (5244). * Fixed textures/skies/cubeSky material (5218). * Fixed items frobability in cabinet prefabs (6025). * Hundreds of fixes for core asset issues that were detected by a new systematic procedure. There should be far fewer broken assets and console warnings. Ongoing process (6019). * testmap command no longer sets developer mode, saving us from some warnings. * Started refactoring of interaction shaders (5828). dev16617-10107 * Major changes in ambient/interaction shaders for more consistency (5828, thread). * Major changes in blackjack knockout behavior (4289 thread). * Optimized stencil shadows with antialiasing by using scissors (5851). * Stencil shadow shadows tile-based culling optimization (6076 thread). * Added wiki article (link) about Tracy timeline profiler; thread names fix, print version. * More asset changes to fix warnings, added "load all assets" test maps (6019). * Added teleportArea command, which allows to find area by number (6083). * Refactored ambient interaction shader, deleted unused ambientRimColor (5828). * Fixed overflow crash in idAASBuild::GetFaceForPortal. * Enabled GL debug groups by default, fixed borderless FBO mismatch warnings. * Added transparent grate textures (6089). * Fixed textures/common/mirror. Known issues: * ambientCubicMap broken yet, will be restored in future (6090). * Visual look has changed, mostly with stronger specular. dev16625-10132 * "Light from above" behavior applies only to lights of ambient_world type (6090). * Major changes in normal-dependent ambient shading (6090). * Optimized FixGlobalTJunctions in dmap, restored vertex grid snapping (6085). * Updated "Tears of Saint Lucia" mission with EFX and other fixes (thread). * Replaced algorithm for assigning shadow maps resolution. * Fixed a brief wrong frame with X-ray (6109). * Added getCurInvItemCount script function (6096). * Fixed old rendering backend. * Slightly better culling due to fixed depth bounds computation. * Added textures/darkmod/window/metal_irregularpanes_moonlit_bright (6119). dev16629-10139 * Added implicit generation of frobstages and simple customization macros (5427, thread). * Added support for OBJ models (thread). * Fixed chandelier_gas4 model (6125), improved wooden chest prefab sounds (4206). * Optimized silhouette preprocessing during model loading. dev16650-10157 * Volumetric lights reimplemented: dither pattern removed, performance improved (5850). * Added audiograph entity and assets. * Fixed shader compilation with r_softShadowsMipmaps on some Linux AMD GPUs (post). * Fixed bug in new frobstage_xxx material macros (5427). * Massive frobstages refactoring in materials: new macros are used now (5427). * Trace model: limits increased and refactoring (5887). * Massive cleaning of prefabs, automaton station script fix (6013). * Fixed rotten_paper_nancy_hand GUI in world view. * Perfume bottle model uses smooth shading, lampion skin fixes. * Some cleanup: idRenderMatrix memory alignment, face planes in SEED model clone, Elbrus FFmpeg compile fix, old shaders disabled. beta211-01 (rev 16656-10189) * Many improvements in new volumetric lights implementation + added cvars (5850, thread). * r_softShadowsMipmaps: fixed render scale, fixed screenshots. * Faster shadow volume generation with BVH, more cvars and tweaking (5886). * Optimized stencil shadows: turbo shadow vertices are static on GPU. * Improved solidness / visibility logic on models (6175). * Added spawnargs allow_idle_anims and allow_random_headturning. * Avoid sound amplification due to negative sound loss spawnarg (5913). * Fixed weird glitch on game load (6149). * Removed one frame of latency from "com_smp 0" mode (5875). Changelog of earlier versions can be found here.
    3 points
  12. Shadow maps are still too limited to function without stencil shadows, and too GPU-expensive. Another problem is that even now shadow maps often offer bad quality in TDM. Stencil shadows don't support alpha-testing and volumetrics, but they just work and provide you with pixel-perfect shadows without huge performance cost. Shadow maps just cannot work perfectly by themselves. Of course this is partly caused by weak implementation. But I regularly see the same pixelization artifacts in modern AAA games, which makes me think that without constant tweaking by artists they can't work properly.
    3 points
  13. What about it?
    3 points
  14. Psst! In the latest dev build try setting: r_useDebugGroups 0 This was set to 1 in dev16617-10107
    2 points
  15. The old spawnarg was not working they way it was advertised: 5987 It only allows NaN to be stored, but is not the reason. Just like bloom expands them to large quads.
    2 points
  16. @stgatilov I found an issue with screenshots and r10197. I'm sorry to bother you with this yet again. Artifacts can show behind volumetric lights at the time of a screenshot. The attached screenshot is at Hazard Pay 3197.94 1807.48 337.08 9.5 36.6 0.0. Using stencil shadows, the top circle shows artifacts (from the gate?) and the bottom circle shows that the shadow changed (or at least became darker). Using shadow maps, the top circle artifacts are not present but the bottom circle shadow did change (stencil shadows use shadow maps here as well, so that makes sense). Note: The artifacts can be seen in game at the time of the screenshot, so looking at the resulting screenshot is not necessary.
    2 points
  17. Beta testing for 2.11 has now been officially opened!
    2 points
  18. I'm locking this thread until 2.11 beta testing is over.
    2 points
  19. Also, that building module is missing a back face, might want to fill it in with a patch or brush.
    2 points
  20. I'm not, that's a standard torch with no extra spawnargs. For a moment I thought there was something wrong with the setup in my map, just noticed what's happening: There are still issues with lighting not being recorded properly in screenshots, even when using shadow maps instead of stencil shadows where it was previously known to occur.
    2 points
  21. I've applied some fixes for the 2 stealth statistics issues that I'm aware of: 1) fleeing civilians don't add to stealth score or total sighting time if they were suddenly fully alerted at a close distance. 5286 2) combatant AIs fighting you in darkness, using their sense of touch to detect your position, don't add to stealth score or total sighting time. 6186 I think these changes missed the window for inclusion in 2.11 beta build 1, so it'll probably be in 2.11b2. I've tweaked kcghost's inventory item stealth counter to show "total time seen" instead of "bodies found", which should be useful for anyone interested in betatesting.z_tdm_loot_stealth_stats.pk4 For people who can already build the latest code from source, you'll also need a modified AI scriptobject, which goes into the script folder: tdm_ai.script @Araneidae The 1st issue you described in CoS sounds like another matter than those issues I addressed. You say you never seemed to alert anyone, but the objectives considered you spotted?
    2 points
  22. Using projected textures doesn't mean the lighting is static though. Doom3 had all sorts of moving lights with projected textures, from ceiling lights that you could knock around, to the flashlight. Also TDM's lantern uses a (very nice) projected texture onto the environment to avoid being a uniformly strong light in all directions. I think you can even project video/animations if you want to. Admittedly texture projection takes a lot more work to set up and especially to make look good, but it works regardless of which shadows implementation is in use.
    2 points
  23. Yeah, my change caused the same light to use different shadows implementation in ordinary rendering and lightgem, which does not work. I think it is fixed now.
    2 points
  24. Moddb voting for mod of the year is open again. Consider giving the Dark Mod an endorsement here.
    2 points
  25. Yes, just create it as a func_animate entity. I believe you can make them play a specified animation when triggered, otherwise take a look at animation script events in the TDM script reference.
    2 points
  26. @ Peter_Spy: I understand what you mean. I ran the image through my photo editor and this is what I got. I added the stone texture effect...
    2 points
  27. The dev build dev16574-10036 includes many engine changes for better error reporting in GUI code. Not that GUI scripting has become any better, but at least now you'll see warning messages if you mess up (my favorite example is forgetting to put a semicolon where necessary or putting it where it must not be). This work is mostly done, although some more changes will probably follow. Notes: If a mission seems to have broken GUI (especially its briefing), please report. Some modifications actually changed behavior of obscure cases, so breakage could happen. If you see a GUI warning which you think does not represent a problem or is unclear, please report too. False warning are usually as bad as lack of true warnings. Also note that I did not introduce any hard errors, only warnings. So the situation when you edit GUI code and engine crashes on start will probably still happen. In this case I recommend enabling "logFile 2" and looking at qconsole.log: most likely some warnings are emitted before crash. UPDATE: There are more changes in dev16599-10071, this time potentially more mission-breaking. It is possible to use arithmetic expressions in GUI scripts and materials. Previously, same-priority operations in such expressions were evaluated in right-to-left order, so a - b - c was evaluated as a - (b - c) = a - b + c. This is fixed in the new version. Also, logical AND is given greater priority than logical OR. Of course, these changes can break stuff I also fixed indexing vector values for individual components, which was totally broken. Another weird mechanics was that if you reference a window register anywhere, then its auto-updates were disabled on startup (really hard to find good example for this). Now auto-updates are disabled only after you assign to this register using Set script command. Lastly, it is now possible to write expressions on the right side of Set script command: make sure enclose the right side in parentheses to use expressions mode. Here are some examples of this new syntax (combined with vector component indexing): set visible (1 - "OtherWindow::visible"); set backcolor (backcolor[0], backcolor[1], backcolor[2], 1 - backcolor[3]); This allows to implement some basic logic purely in GUI. For instance, scrolling in the new objectives GUI code is implemented without C++ interoperability, with button working like this: onAction { set "gui::ObjStartIdx" ("gui::ObjStartIdx" + 1); Yep, it's year 2022 and our GUI engine has just learned how to increment a variable! But keep in mind that all expressions are evaluated before script gets executed, so if you copy/paste this incrementing line several times, the behavior will not change (same for "if" conditions).
    2 points
  28. The attached screenshot is what I'm getting with 2.11, which looks like your 2.10 screenshot to me. Does the attached screenshot look right to you? If so, I wonder what is causing it not to look right for your setup. I'm using Linux with AMD GPU.
    1 point
  29. You can get the same issues by setting "r_useScissor 0" --- that's what screenshots did before svn rev 10198. They no longer do that, so now they should look fine.
    1 point
  30. Yeah no difference. Still getting the black squares, only with 64bit color.
    1 point
  31. OMG, guess what's baaaaaacccckkkk!!! Good job AMD fucking shit up, again. @stgatilov@duzenko
    1 point
  32. Load up the map, in the console type setviewpos 3363.84 1181.95 -381.25 27.4 -142.7 0.0 In the console type r_showSurfaceInfo 1 and now you can see the texture name when you look at it.
    1 point
  33. The elevator is implemented in the source code as a multi_state_mover spawnclass, allowing AIs to interact with it. In any case, in one of my previous posts I detailed how to setup button-specific orientations & colour fades via scripts alone.
    1 point
  34. 1 point
  35. https://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor#Available_effects I don't have experience with it, but I just read about it, so thought I mention it.
    1 point
  36. You can find a test map here. Note that I remember not being too happy with it. https://forums.thedarkmod.com/index.php?/topic/19825-negative-spectrum/&do=findComment&comment=432949
    1 point
  37. I think you want to use a func_rotating. Not sure how. Check out @JackFarmer's 'Hidden Hands: The Lost Citadel' mission - there are objects that rotate when you push a button.
    1 point
  38. There are various ways of calling scripts that are able to pass one or more variables. Most commonly they can pass the entity that called the script. This is handy because you can set various custom spawnargs on that entity and let the script look them up. The best way is to let each button target a callscriptfunction entity with the spawnargs “foreach” “1”, “call” “move_target” and targetting the desired mover, which can pass up to 3 different entities. Each button should have a custom spawnarg storing the desired new color and angles. Need the 1st entity (target) and 2nd entity (button that triggers the callscriptfunction entity) in this case: void move_target(entity ent_target, entity ent_button, entity ent_callscriptfunction) { //fade the color float colorFadeTime = 1; vector newColor = ent_button.getVectorKey(“_color_new”); thread crossFadeEnt( ent_target, ent_target.getColor(), newColor, colorFadeTime ); //move the target, if needed float moveSpeed = 30; vector newAngles = button.getVectorKey(“angles_new”); vector delta = newAngles – ent_target.getAngles(); float moveTime = sys.vecLength( delta ) / moveSpeed; if( moveTime > 0 ) { ent_target.time( moveTime ); ent_target.rotateOnce( delta ); } } tdm_util.script contains various pre-made utility scripts including crossFadeEnt, which I used above to perform the colour fade.
    1 point
  39. Sure, I've added the modified AI script to the previous message. It needs to go into the folder "script".
    1 point
  40. I haven't tried this myself yet, but I found some script code in another project that fades a light from one color to another: // Transition vector delta = col2 - col; float starttime = sys.getTime(); float endtime = starttime + fadeSeconds; float nowtime = sys.getTime(); while ( nowtime < endtime ) { float frac = ( nowtime - starttime ) / fadeSeconds; theLight.setLightParm(0, col_x + (frac * delta_x) ); theLight.setLightParm(1, col_y + (frac * delta_y) ); theLight.setLightParm(2, col_z + (frac * delta_z) ); sys.waitFrame(); nowtime = sys.getTime(); } // Finalize colour theLight.setLightParm(0, col2_x ); theLight.setLightParm(1, col2_y ); theLight.setLightParm(2, col2_z ); 'col2' is the new color, 'col1' is the old one. 'fadeSeconds' is how fast to fade. Give this a try?
    1 point
  41. Execute: listcvars and listcmds You can also use * (asterisk) to find by substring, although I have never understood why it works
    1 point
  42. No, Artbreeder merge existing images to an new different one, it's collaborative between AI and the user. It's differnt from those like Craiyon, nightcafe and others, which crete images by a promt rom the user. You put f.Exmple Middleage city in a starry night, and the AI create an image which show this. Criyon is 100 free to use, also Nightcafe, but only with limited resolution. There are also a lot of others, but mostly only free with limitation. https://creator.nightcafe.studio https://deepdreamgenerator.com https://www.craiyon.com https://beta.dreamstudio.ai/dream https://deepai.org/machine-learning-model/text2img https://dream.ai/create https://replicate.com/pixray/text2image https://www.diffusion.land ....and some more Rhere are also some to create videos in this way f.Exmple https://app.fliki.ai This I made now in NightCafe
    1 point
  43. It sure does! But strangely, I found that stuff like that is everywhere in video games and it works for me as well. It's gross oversimplification, to the point of looking utterly silly, but somehow it gets the job done. I guess this one just screams "you've already stolen this!" at you, and you can see it from quite afar.
    1 point
  44. Yeah, the painting itself is fairly reflective. I've been experimenting with things on normalmap, but adding patterns there turned out to be quite distracting. No no, you're right, there is a fair bit of specularity thrown in there. There are some things on specular, like dust bits, and a subtle stuff on normalmap to make the painting look as if there are paint layers. I tried some brush strokes as well, but it seemed a bit much
    1 point
  45. I came across this site: https://www.rijksmuseum.nl/en They offer incredible quality pictures of art. I emailed them about including their images free of charge under CC license and they replied with: They are pretty amazing quality, just for testing I made one with a pretty picture and threw it in the game. They have a ton of stuff that would fit our time period I think. https://www.rijksmuseum.nl/en/rijksstudio
    1 point
  46. I recommend going to changelog and roadmap in bugtracker and looking through issues that are about GUI scripting. I'm pretty sure there were some major changes which are worth taking into account when writing a tutorial. Maybe even give a list of these tickets somewhere, because if people come from other Doom 3 mods, they can get wrong impression, since stock Doom 3 engine has more bugs and some different behavior. Speaking of putting double-quotes vs not putting them: I think it is a good idea to enclose every item in double-quotes. Literal numeric values are perhaps the only exception. Internally, lexer breaks the text into tokens, and each token is treated as single item. Characters like colon, dot, or dollar break name into several tokens, so you have to enclose such items into double-quotes. In fact, adding double-quotes is never a problem since lexer always removes them, emitting their contents as single token of type "string". The only case where it is a problem is with literal numeric constants, since the GUI parser expects to see them as tokens of type "number". Regarding "initialization" and "updates" of properties. When you declare a property, you can write any expression on the right side, potentially referencing some non-constant things there. Normally, when some of these things change, the property is reevaluated automatically. However, this can get you into trouble is you assign something into the property using Set command... so there is a concept of "active" and "non-active" properties, or "enabled/disabled" properties (not sure about canonical terms). Some things disable/deactivate a property. The rules of original Doom 3 were weird in this regard (6028), but in upcoming TDM 2.11 I think the only way to deactivate a property is to Set something into it, or start a Transition of it. Deactivation happens in runtime, not statically, so the property will keep updating before the first Set is done. The section User Variable says this is OK syntax: float crouch_scale=0; I'm sure this is not correct, and hope that recent dev builds produces a warning on it. String comparison section says that there is some special "quoted comparison operator": if ("LSGSaveGameNameEntry::text" "!=" "") { I don't recall seeing anything specific regarding double-quotes around operators. Moreover, GUI parser cannot see double-quotes, since lexer will replace it with a single two-character token of string type, that won't work properly with GUI parser. Moreover, I don't see any occurance of quoted "!=" in current .gui files, so I guess it was a buggy code that got fixed. I think there is no string comparison, because all expressions and their intermediate values are floats, they simply cannot hold strings. In Precedence section, there is discussion about parentheses. Yes, you can put parentheses in GUI expressions, and rely on normal evaluation order otherwise. The discussion about macros here might be a bit confusing, because GUI engine has nothing to do with #defines, in fact it does not even see them. Just like in C language, all the directives starting with #sharp are handles by totally separate thing called preprocessor, the GUI parser will see all macro references replaced by whatever they point to, so for the GUI parser it would be just a gigantic expression with two levels of nested parentheses. I would probably be better to stress this in tutorial, because this understanding of preprocessor as an entirely separate step can help on many occasions. There is Multiple If section, which totally lacks the most important caveat of GUI ifs that usually kills all attempts of writing any complicated logic in GUI scripts! While you can write expressions inside If conditions (and now also on the right side of Set command), they are evaluated not when you normally expect it to! All the expressions are evaluated before script commands are executed. So if you Set the value of "gui::myvar" from 0 to 1, the following "if (gui::myvar)" will still be considered false. I believe all the expressions are evaluated at the same time, regardless of whether they are on the right side of property definition (aka 'visible "gui::LootIconVisible"') or inside script. This is very important to understand when you write expressions, since normal people assume that script commands are evaluated sequentally, and their changes are propagated immediately. And yes, you can write nested ifs, but with the caveat of early evaluation they probably won't give you much. UPDATE: I see it mentioned in Changing User Variables. And yes, it should apply to properties too, simply because the problem is on the other end: the change is applied immedately, but conditions and expressions are evaluated earlier. Perhaps correct this misconception here, and mention it in Multiple If section too (never too much). Regarding onTime event. You wrote there '"reset" command', perhaps change it to '"resetTime" command'. Regarding onTime 10 instead of onTime 0 in main menu. I think one reason of doing so is to ensure order of triggering handlers. Imagine that you have 50 "onTime 0" handlers, but you want to ensure that some of them are evaluated after the others. Adding small time offsets is the only way of hacking around it. Regarding vector components. The original Doom 3 code intended to make them accessible via indexation, like v[0], v[1], v[2], v[3]. But the code had a terrible bug, so it did not work. In TDM 2.11, it works (6028). UPDATE: also here
    1 point
  47. The latest dev build (dev16617-10107) contains major changes to shaders, which means that the visual look has changed. The goal of the changes is to remove inconsistency between ambient and interaction, and make TDM lighting math closer to standard Phong (or Blinn-Phong) model which is so familiar to everyone. 1) Now specular term in ambient shader is modulated by specularColor instead of diffuseColor. The same problem was in interaction shader, and it was fixed back in 2.08 (5044), now the same change is applied to ambient shader for consistency. 2) Specular term in ambient shader is no longer modulated by diffuse texture. Previously it was additionally modulated by diffuse texture, as if you baked all diffuse textures into specular textures... but only for ambient. In interaction shader, specular term did not depend on diffuse texture (almost --- read below). 3) Directional part of diffuse term in ambient shader is no longer modulated by "(1,1,1) - specular texture color". This was again some kind of hack against the standard Phong model, not present in interaction shader. 4) Removed dependency of specular term on diffuse texture contents in interaction shader. Previously there was additional modulation by (75% + 25% * diffuse texture color). On one hand, it was not changing much because 75% of intensity still goes unmodulated. On the other hand, this is again some rather arbitrary hack on top of Phong model. Overally, I'd say specular has become a bit stronger now. The main trouble with these changes is of course that they can devastate your carefully tuned assets. So please report here your experience with the new version. P.S. The changes were tracked as 5828.
    1 point
  48. When a light interacts with a surface, Doom 3 engine goes through all triangles of the surface in order to detect which ones are within light volume and front-facing. If the light constantly moves, then this processing has to done every frame. If stencil shadows are used, then engine has to look through triangles once again in order to build shadow volume. This implementation detail means that large static meshes with small dynamic lights nearby can be surprisingly slow. I think this issue happened several times recently: Black Mage: the lava cave Moving Day: rocks in the starting area The workaround was usually to split large mesh into several pieces. The latest dev build dev16574-10036 includes BVH-assisted filtering algorithm, which is enabled by default. It does the same job faster, without the need of touching clearly out-of-volume triangles. As far as I know, it totally solves the original problem, so you no longer need to be wary of how large your terrain mesh is. The new algorithm is enabled by two cvars, which can be changed at runtime: r_modelBvhLightTris r_modelBvhShadows Default values 3 and 1 mean precise filtering with BVH (default), zero values mean precise filtering using Doom 3 code. Note that the new algorithm reorders triangles in static meshes, so it has some influence even if you disable the above two cvars. The total kill switch which disables all BVH code is cvar r_modelBvhBuild, which must be set before starting mission. Here is a test map to show results (Bikerdude stripped for me from NHAT forest). All the terrain and stones are a single LWO mesh: 28 MB size, 127K vertices and 212 K triangles. P.S.: There is no performance difference on most existing missions. You can notice the difference only in critical cases.
    1 point
  49. In general many museums offer high quality content for free download, it is worth looking for the official pages of the museums on the net.
    1 point
  50. Examples of the "low quality" images they offer right of the website. https://imgur.com/a/HwwImD8
    1 point
×
×
  • Create New...