Jump to content
The Dark Mod Forums

stgatilov

Active Developer
  • Posts

    6784
  • Joined

  • Last visited

  • Days Won

    233

Everything posted by stgatilov

  1. dev16783-10307 is available. It would be great if people who had to set "r_useNewBackend 0" try to revert it back to default value. This is the last version with "old backend" code, I'll delete it shortly.
  2. It means that we need to choose a different font. Carleton looks like all caps. With a different font, we will probably get narrower messages automatically.
  3. Yes, I think it is possible to specify efx preset in location entity. Probably worth it to implement cross-fading of EFX settings simultaneously.
  4. There is no such thing as "number of characters that fit", since font is not monospace. The number of characters per line depends on the particular characters. So no, you cannot resize subtitle message while saving exactly the break locations. Except maybe for exactly proportional scaling of both message elements and fonts. I hope that is possible, but not sure.
  5. The problem with tweaking size and font is that any such change breaks existing subtitles. If you do that, you have to review all released subtitles. Maybe now it is only New Job and Saint Lucia, but as time goes, it would become virtually impossible. Just remember what happened recently after a small overflow fix in readables. So the issue of overlaps with item pickup message and HUD should be resolved quickly, and after that fixed forever. Reducing width and font size is perhaps the easiest approach now.
  6. tdm_message is shown on upper left corner, it should not overlap. Yes, I agree that there is overlap with item pickup message, and partly with some HUD elements. My opinion is that we should resolve this for standard GUI size, and simply ignore the problem on larger GUI size. There is not too much space on the screen to fit everything on the maximum that GUI size allows, and I don't like the idea of making subtitles font or amount of text per message smaller.
  7. Every weapon needs vast support both in core scripts and C++ engine, so I'm not sure it is possible to create fully custom weapons. On the other hand, you can take a sword and reskin it to hammer, maybe changing some parameters. Or you can take a bow + arrow, and create a custom type of arrows. The problem is that now the weapons are defined in player entityDef (atdm:player_base), so the only way to change it is to override the whole decl, which can be dangerous, because it is quite likely that the core def is updated. And I think we already discussed this problem once. One generic approach was to allow writing patches to entityDefs without overriding them completely. The other one is of course to just add a second place for setting def_weaponN and checking both of them in future. Somehow, we did not get to implementation. As for turning ordinary items into weapons, that would most likely be harder. For instance, you get the typical inheritance problem: such a weapon must inherit both from atdm:moveable_weapon_base and from atdm:weapon_base, which have a lot of different properties.
  8. Subtitles work during main menu cutscenes (video / briefing), where no HUD is available, that's why they have to exist as a separate entity. One reason why subtitles cannot be included into tdm_hud.gui is that they must be displayed during in-game cutscenes and any other cases when HUD is hidden. The game code maintains a set of overlays, every overlay is a separate UI with its own root "Desktop" window. If in-game subtitles become the part of HUD, then we would have to invent some custom code to not hide HUD but hide almost all the parts of it...
  9. Yes, the original subtitle would apply. What is really bad is that you cannot override subtitle for one sound easily. Now you can override one decl, but a decl often contains many subtitles.
  10. Tracked: https://bugs.thedarkmod.com/view.php?id=6270
  11. If you can provide a way to reproduce it reliably, that would be awesome. I'm pretty sure it was already reported, but I could not reliably reproduce it to understand what's the cause.
  12. I guess I should just implement the extension for inline subtitles, since now it is just a matter of convenience. SRT can allow you tweak the extension anyway. Would it be good to make duration extension a parsing state like "story" / "speech" ? If you write "inlineDurationExtend 0.5", then duration of all inline subtitles below are extended by 0.5 seconds. If you don't set anything, it is default = 0.2. I'm not very fond of this stateful approach, but it is already used with verbosity, and I believe the main idea was to avoid copy/pasting too much stuff (especially when new parameter is added). I hope that if the decls are kept small enough, then we won't have a problem that finding all the state variables gets too hard and error-prone.
  13. Can you give some examples of what should be extended and what should not?
  14. As a general question regarding configurability: are you really sure this is needed? I have added hardcoded global extension and minimum time. If you don't like these values, we can choose better values. Since the amount of space for one subtitle is very limited, all subtitles have more or less the same text size, and hence they take about the same time to read. So why do you think some particular sound should be extended by 3 seconds while most of the others are OK with 0.2 seconds?
  15. Just poll every second instead of every frame, and hopefully nobody would notice (also probably randomize offset uniformly up to 1 second to spread this polling uniformly). The problem is that there is a whole matrix of AI - location pairs. If someone decides to implement such a system, how would mapper specify these settings? Or you mean something like "location kitchen: want_to_eat_bark", and then add "want_to_eat_bark" to vocal set of a particular AI or a class of AIs. If AI has the corresponding entry, it is added to set of barks, otherwise it is not? By the way, isn't there already some system to notify AIs near a spot about something and force them to say something specific?...
  16. Here is the script event which should work for AIs: const idEventDef EV_GetLocation("getLocation", EventArgs(), 'e', "Returns the idLocation entity corresponding to the entity's current location.\n" \ "This was player-specific before, but is now available to all entities."); // grayman #3013 It works by traversing BSP tree from root to leaf according to the 3D point, so should be very quick. If you query it once per frame for every AI, then you would probably notice performance impact This is not true in TDM usually. Unseen AIs can switch to "interleaved thinking", i.e. move at something like 3-5 FPS rate instead of full rendering framerate. But they still do think and continue their patrols. The original Doom 3 made all AIs go "dormant" when surely out of reach, but this was disabled in TDM because dormant AIs stop patrolling, and this is usually a problem for a mapper. Only a few TDM missions enable dormancy explicitly, perhaps because it improved performance on release date.
  17. You understood it incorrectly Every sound emitter has its own set of channels, channels are different between emitters. So in a conversation, actor A has one VOICE channel, and actor B has another VOICE channel. They can talk simultaneously, but one actor A cannot say two sounds at once, and the same applies to subtitles (except that you can put two simultaneous subtitle lines into .srt file I think). How would it help? I'm rather reluctant to allow subtitles change the behavior of existing mechanics, i.e. extend duration of conversations. Anyway, I don't understand yet where the boundary between hardcoded and tweakable things should be. I definitely prefer to keep things hardcoded as long as they work well enough, but you think some tweaking is necessary, we can expose some values. Moreover, I think story-level subtitle is given more priority than various barks. P.S. Next I'd like to try to add positional cue, and some kind of debug text output to subtitles.
  18. I have implemented the extension, and seems to work fine (6262). Inline subtitle for a sound of duration = T lasts for max(T + 0.2, 1.0) seconds. This is configurable: 1.0 second minimum taken from this thread, and 0.2 addition was taken from hardcoded delay between actions in conversations. Also I noticed that while I planned subtitles to not move between slots, they indeed do move sometimes. Also, as noticed here, high-level subtitles are not guaranteed to be displayed in presence of many low-level messages. So with 6264, fixed this and I passed more information from sound engine. For instance, now subtitle slots can be reused by having same "emitter"... which is supposedly very close to the concept of "who says this". Also, the original Doom 3 has the following rules which affect subtitles. Every "sound emitter" has a bunch of "sound channels". Conversation sounds go into SND_CHANNEL_VOICE channel, but ordinary barks usually occupy any free channel. One channel can only play one sound at a time. If new sound is started on the same emitter and same channel, then the old sound is stopped and replaced with the new one. The consequence is that no matter how long subtitles show after the sound is over, you'll never see two subtitle messages from the same actor at once: the newer one would replace the older one. But in case of barks it is well possible, since new mesage can take a different channel.
  19. I'm afraid default extension won't do any good. Because the system does not know about conversations, it only knows about sounds. Suppose that person A says sound "Hello!", then he also says sound "How are you!". If you extend "Hello" far enough, then it will be displayed along with "How are you". The system won't magically guess that these two sounds are from the same speaker and thus should not happen at the same time. UPDATE: There is a chance that the system of channels on every sounds emitter already solves this problem.
  20. Well, I guess I should try to prototype length extension. I think I'll have to extend the time sound stays in the channel.
  21. The issue has testmap for reproducing the original issue. But nobody ever got the true reason why this is happening. And I'm not sure @duzenko is really working on it.
  22. 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
  23. Yes, it is possible to make subtitle lines less wide. And it is possible to do it only for gameplay. Not sure about avoiding overlaps in general. That would not allow us to move subtitles lines around, although I guess the idea of markers on the border for positional hint are better than moving the lines. As for font and size, I don't think GUI system supports anything like that. Maybe I'm wrong, but I don't remember any possibility to mix italics and bold in same text, the same applies to several sizes. Such thing can only be done with some kind of escape sequences in the text itself, and I don't remember any in GUI engine.
×
×
  • Create New...