Translations for our friends around the world.

Author Topic: Neverwinter Nights: Enhanced Edition  (Read 30141 times)

0 Members and 1 Guest are viewing this topic.

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #45 on: December 02, 2020, 04:04:44 AM »
Beta Test 2: Is the NWNEE Patch Ready for Release?
Tue, 1 December 2020

Help us test the updated Beta for Neverwinter Nights: Enhanced Edition!

Greetings everyone!

We’re just about ready to ship Patch 8193.20 for Neverwinter Nights: Enhanced Edition— but we need your help to test the Beta (Round 2)!

Based on your feedback from the latest beta test, we’ve updated the build of the next Neverwinter Nights: Enhanced Edition patch with a few fixes. Huge thanks to all testers for their feedback on this!

Now we'd like to gather your thoughts on the new build: Is it stable & solid? Is it ready for release? Let us know!

How to Participate:

•   In your Steam Library, Right-Click Neverwinter Nights: Enhanced Edition and choose “Properties”
•   Click on the Beta Tab
•   Choose the build8193.20 in the drop down menu
•   Play the Beta on Steam
•   Vote in the Comments Below, or on the Beamdog Forums https://forums.beamdog.com/discussion/81032/seeking-beta-testers-is-the-nwnee-patch-8193-20-ready-for-release-part-2/
•   Yes, it's Ready to Release! - or - No, it's not ready (please explain)


Keep in mind, we plan to release future patches, so if a fix or feature you’re keen to see added isn’t here, we may be able to address it in a future update. The feedback we need from you today is to make sure this patch is stable and moves the game in the right direction! Is Beta Build 8193.20 ready to release as a patch for Neverwinter Nights: Enhanced Edition?

Patch Highlights:

Last month we shipped an epic patch with some huge graphical upgrades. This month we’re looking to tackle a few bugs that the big patch introduced, and improve the overall polish of our favorite RPG.

•   Fixes issue where Non-English voice overs played in English
•   Fixes several crashes in campaigns, menus & toolset
•   Refines the shaders and lighting renderers added in the last patch
•   Added a few fixes based on user feedback in the previous test, including the hardness fix

Vote on the Beta (Round 2)!
•   Yes, Ready to Release!
•   No, It's not ready (please explain)



funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #46 on: December 16, 2020, 02:25:22 AM »
New Patch for Neverwinter Nights: Enhanced Edition— Available Now!
Tue, 15 December 2020



Download the Stable Patch 82.8193.20 today for tons of new fixes & updates.

Greetings Adventurers,

We just launched Patch 8193.20 for Neverwinter Nights: Enhanced Edition! The update adds scores of features & fixes to the core campaigns, premium modules and toolsets. Today’s patch also addresses the voiceover issue for non-english localizations.

Huge thanks to our amazing community for helping to test out the beta versions of this patch— we couldn’t have done it without you!

Check out the Patch Highlights & Full Details below!


 
Patch Highlights

•   Non-English Voiceover: We fixed the issue causing english voiceover to play for non-english localizations
•   NPC Movement: We improved the movement/navigation of Non-Player Characters (NPCs) and Creatures
•   Multiplayer: We fixed a server-side issue and increased the module description size so players get the full details
•   Dozens of Fixes: We’ve added dozens of fixes to improve the overall experience in adventures, toolsets and the Dungeon Master Client
•   New Scripting Functionality: See details below!


Check out the full patch notes below!

Patch Notes

NPC Movement
•   Improved navigation of NPCs and Creatures
•   Creatures now move in a logical direction when they are bumped or pushed

Performance Improvements
•   Optimized “Hardness” (placeable damage resistance) in the game so it no longer imposes heavy impact on server loads

Fixes
•   Non-English localizations now use correct voiceovers
•   Fixed the multiplayer UI not saving the network port configuration
•   Increased module description size to avoid cutting off text in the multiplayer browser
•   Fixed an issue causing invalid skill point messages and preventing level ups
•   Fixed a rare crash when loading custom content models
•   Fixed a crash occurring in character selection when existing character files have an invalid player class or race
•   Added a fix to make sure NPCs, like Deekin, level up correctly
•   Fixed issues in the Premium Module Darkness over Daggerford
•   Fixed an issue with the Daggerford Wagon
•   Fixed minor issues in the Great Cheese Caper quest

Graphics
•   Improved the appearance of armor and metals
•   Shadows now fade more smoothly in relation to distance, height and angles.
•   The Dynamic Contrast Shader now has adjustable settings in the options menu
•   The Depth of Field Shader now has adjustable settings in the options menu
•   Lights now fade in and out out more smoothly
•   Texture animations now animate consistently
•   Fixed the water shader showing seams
•   Water now always uses the env map
•   Grass now fades in smoothly rather than appearing abruptly
•   Skyfade fog coloured model below the horizon now covers below area, so missing meshes and keyholing show a black backdrop

Renderer Improvements
•   Optimised renderer GL buffer handling
•   Fixed clear colour erroneously reverting to black when loading into an area if a game object was received at exactly the wrong time
•   Fixed some erratic keyholing behaviour in certain situations
•   Reduced the number of shader reloads
•   Fixed dropped items floating too far over the ground
•   Fixed weather not correctly cleaning up after lightning events, sometimes resulting in heavy FPS drops
•   Fixed skin meshes (cloaks, robes) occasionally being warped or dislocated when animating
•   Normal maps are now read as two-channel textures (three are still supported, but this was needed for BC5)
•   Water reflections now ignore subsurface alpha
•   Env map tex coords are now always calculated per-fragment in HQ mode
•   Specular lighting now ignores material transparency
•   Refined light occlusion calculations
•   Shared material uniform data is now reset for each draw call. This fixes issues where a material incorrectly adopts parameters from the previously-rendered, if the current material has none.

NWSync Optimizations
•   Dedicated servers can now load their module data from a specially prepared NWSync repository, instead of having to have a copy of the module and hak files. (This mainly benefits big servers that have a CI/CD pipeline set up.)
•   Added argument -moduleurl, from which the module data will be sourced
•   Added a new optional argument -modulehash; which is considered to be `latest` if omitted
•   Generate the server/module repository with --with-module
•   You can reuse the public repository to save on duplication/disk space; or use a separate/private one. If you reuse the same repository and do not want to leak the module data, turn off http content listing and write the data with --no-latest.
•   Data is stored in SERVERHOME/nwsync (this works the same as on the client). It will auto-prune old data if the group_id matches. The rest is left up to you.

Content Updates
•   Added half-dragon tail to half-dragon blueprint
•   Added missing texture for worldmap placeables
•   Rendered new icons for the gem shields
•   Fixed Tanarukk Blueprints, Factions & Script
•   Fixed some tile models resulting in Access Violation in the toolset
•   Set all weapons for Ambient and Diffuse of 100% (1 1 1), in alignment with the new graphics & lighting
•   Fixes to Shadow, Mesh and Bounding Boxes
•   Added in several missing art models and portraits, along with toolset blueprints (DoD Flags, Signs, & Duke Painting; Tyrants Flowering Plants & Wavy Water 1x1, Invisible Ground 4x4, Worldmaps - Floor and Wall-Mounted)
•   Rebuilt placeable walkmeshes on several larger models to be 3D instead of a flat plane
•   Low Ambient Values raised to 1 1 1 (to allow other forms of tinting)
•   Shields/Cloaks/Robes: Compiled shield models and turned Ambient and Diffuse values to 1.0 1.0 1.0, so area lighting and tinting can have fullest effect as well as clothing matched-up from race-to-race
•   Skybox, Black: Added missing model
•   XP3 placeables: Many fixes for useability, shadows, z-fighting, walkmesh, and appearance
•   XP3 Gem Golems: Adjusted appearance for proper translucency & shine (creatures/weapons/shields)
•   Daggerford & Tyrants of the Moonsea Placeables: Reworked placeable Use nodes to strict 13-character length requirement, cleaned up PWK walkmesh settings
•   Glass and Metal textures: Fixed TXI settings, added an alpha channel to maps for specularity and custom environment mapping (new textures)
•   Candles (Non-Ambient): Added a dynamic light with shadowing (Disclaimer: nearby props must not be set to Static in order to cast shadows, but work much better than Ambient lights)
•   Elven Lanterns: Fixed candle flame not showing through panes and added ambient/dynamic versions, as with candles
•   Kochrachon: Fixed deformed arms & a floating "thumb"
•   Appearance.2DA: Curst Swordsman: Removed undesired environmental mapping
•   Kobolds/Goblins/Orcs/Golems/Giants: Added default environmental mapping
•   Orcus (Blueprint): Added missing creature hide and Wand to inventory
•   Gem Greatswords, Warhammers, Shields and Placeable Gemstones: Fixed UV's and self-illumination settings
•   Doortypes.2DA: Added proper blueprint ref's for the two new elven doors (TTF02)
•   Loadscreens.2DA: Added default tileset entries for DoD and Tyrants loadscreens
•   Placeables.2DA: Fixed various settings on placeable entries
•   PlaceablePalStd.ITP: Added new entries for missing blueprints, removed a couple bogus entries
•   Portraits.2DA: Added missing entries, for missing blueprints
•   Tailmodel.2DA: Changed entry 5000 from "karandas" to "Half-Dragon"
•   PLC_C10 (Placeable Door): Fixed a bad set of Use Nodes (“secret door” fix)
•   TNO01: Fixed a SQRT Domain error in TNO01 Boat (at last!)
•   TNO01: Fixed a crash in TNO01 Ship1 and Market Stall, Long: caused by too many mesh parts
•   TNO01: Fixed chimney & window animations in Inn, Coach 2x2
•   TTF02 and TTS02 Doors: Fixed DWK naming and settings
•   TTF02 Water: Fixed bad transparency settings in stream tiles (as seen through tree branches)
•   TSS13 (Seaships): Added edge tiles TSS13_edge.2DA
•   TSS13_C07_04: Fixed a bad water reference
•   TCN_UDoor_02: Fixed a shifted walkmesh and transition mesh (you could transition the door w/o opening)
•   TDM01_O11_01: Replaced a missing face in the doorway mesh
•   TCN01_A06_01: Fixed some meshes which had shifted from bas X-Forms
•   TRM02.SET: Added a missing crosser entry
•   TCM02.SET: Fixed typos in a couple tile names
•   TCM02: Replaced small/misaligned water meshes on several tiles
•   IIT_Torch02: Adjusted smoke to be much more minimal than a standard torch
•   TTF02_I07_02: Removed a bunch of extra/ugly tree foliage meshes
•   TTF02_T13-14_01: Set meshes from Render 0 to 1, fixed UV's on tent flap, added bottom mesh to lean-to
•   TWC03_C53_01, TWC03_C54_06: Fixed broken fireplace animations, added a woodpile for fuel
•   TDE01, TNI02, and TSW01: Restored the "Lightning Tiles" in TDE01, TNI02, and TSW01, added animloops for shutdown where needed

Toolset
•   Fixed some shadows not rendering properly
•   Fixed VFX emitters not rendering properly

Other Updates
•   Fixed minimap data being assigned incorrectly when deleting an area via VM::DestroyArea
•   Fixed cloaks and robes not inheriting visual transform animation speed
•   Fixed items losing the possessor reference when failing to merge a stack out of a container, resulting in dead/unusable items and eventually a crash
•   “Hide Second Story Tiles” setting is now disabled by default
•   Linux binaries are now built against Debian Stretch (9), fixing requirements to Debian 9, Ubuntu 18.04 LTS, or newer. This should take care of the glibc issues some folks were seeing, as well as the stray libsndio linkage
•   Danglymesh is now properly frozen when the game is paused
•   Model loader: Set mesh ambient and diffuse to vec3(1.0) by default
•   NWSync command line args now verify the URL and Hash formats
•   Fixed an issue where the first texture in a material was replaced with the NULL texture after an area change
•   Fixed classstat abilities modifiers not being considered for feat requirements on levelup, when the abilities are gained on the very same level
•   Fixed class stat ability modifiers sometimes not updating after a levelup (for example, for STR damage bonus)
•   Fixed blank value in SkillPointModifierAbility in racialtypes.2da failing ELC
•   Debug UI: Fixed a client crash in the NWScript Widget when inputting a invalid object ID
•   nwscript.nss: Added missing tileset resref constants
•   Config: The default value for 2D/3D bias is now 1.0 which should fix sound effect quietness (you need to reset it manually in Options if you want to try this)
•   Scripting:
•   Fixed material parameters not being updated for single float changes
•   Cutscenes: Fixed Hide Second Story Tiles not being saved/restored correctly
•   Cutscenes: Fixed camera being reset with incorrect values despite VM::StoreCameraFacing not having been called
•   ActivatePortal: Fixed some cases where NAT punchthrough or relaying failed to work
•   Fixed a crash when calling area management functions twice (e.g. CopyArea(CopyArea()))
•   EnterTargetingMode() now also triggers when the user cancels out, with the target area or object returned as INVALID_OBJECT
•   Material filenames and params now allow underscore

New Scripting Functionality
// Sets the current hitpoints of oObject.
// * You cannot destroy or revive objects or creatures with this function.
// * For currently dying PCs, you can only set hitpoints in the range of -9 to 0.
// * All other objects need to be alive and the range is clamped to 1 and max hitpoints.
// * This is not considered damage (or healing). It circumvents all combat logic, including damage resistance and reduction.
// * This is not considered a friendly or hostile combat action. It will not affect factions, nor will it trigger script events.
// * This will not advise player parties in the combat log.
void SetCurrentHitPoints(object oObject, int nHitPoints);

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #47 on: March 15, 2021, 01:04:05 AM »
Development Build 8193.21
Thu, 11 March 2021


Fair greetings, one and all!

This development build is a huge one. As usual, you can use it to play on .20.1 servers (current stable release); and we’d like to encourage you to do so and report any issues you find with us!

Thank you.

Executive overview
•   A new game launcher UI that also includes a curated content repository, free for everyone (see below)
•   Full TTF font support throughout the game, for clearer and more adaptive text rendering
•   Fractional/floating-point UI scaling
•   Better UI skinning
•   Game/renderer performance improvements
•   Renderer: soft particle support, blending with fog
•   Water: Screen-space refractions and reflections
•   Pathfinding improvements
•   Visual Object Transform Lerping (smooth transitions)
•   New advanced script commands
•   Three new portraits sourced from the community portrait contest
•   Hundreds of fixes and smaller features

Curated Content
 


This patch ships with a new (singleplayer) game launcher UI. It showcases all campaigns and premiums in a nicer way, with header images and descriptions; access to screenshots, and more. There is a split view for Premium and user modules, as well as filtering and search facilities.

We also bring in a curated content repository, hosted by Beamdog, that gives all players access to selected community content.

To start with, we are honoured to offer both the full Aielund Saga by Savant, and the Auren Saga (Almraiven/Shadewood) by Fester Pot.

All you need to do to play them is click Download and wait a bit.

As part of this development patch release cycle, we will be reaching out to others that have authored widely popular modules on the Neverwinter Vault and elsewhere.

The UI also allows adding third party content repositories, which can be hosted by anyone without going through the Beamdog curation process.

This new UI, and the curated content repository bundled with the game now, is a work in progress. We will be making changes and improvements in the future.

TTF and UI scaling
The game now supports TTF fonts, and decimal UI scaling (e.g. 1.3x, not just 1x, 2x).


 
Water improvements



Visual Object Transform lerping
Visual effects applied via scripting can now lerp. This means that, for example, a creature size change can appear smoothly over a configured time, and not instant.



All existing visual transforms can be interpolated this way.

To accommodate this, the script API has been amended:
float SetObjectVisualTransform(object oObject, int nTransform, float fValue, int nLerpType = OBJECT_VISUAL_TRANSFORM_LERP_NONE, float fLerpDuration = 0.0, int bPauseWithGame = TRUE);

int OBJECT_VISUAL_TRANSFORM_LERP_NONE = 0; // 1
int OBJECT_VISUAL_TRANSFORM_LERP_LINEAR = 1; // x
int OBJECT_VISUAL_TRANSFORM_LERP_SMOOTHSTEP = 2; // x * x * (3 - 2 * x)
int OBJECT_VISUAL_TRANSFORM_LERP_INVERSE_SMOOTHSTEP = 3; // 0.5 - sin(asin(1.0 - 2.0 * x) / 3.0)
int OBJECT_VISUAL_TRANSFORM_LERP_EASE_IN = 4; // (1 - cosf(x * M_PI * 0.5))
int OBJECT_VISUAL_TRANSFORM_LERP_EASE_OUT = 5; // sinf(x * M_PI * 0.5)
int OBJECT_VISUAL_TRANSFORM_LERP_QUADRATIC = 6; // x * x
int OBJECT_VISUAL_TRANSFORM_LERP_SMOOTHERSTEP = 7; // (x * x * x * (x * (6.0 * x - 15.0) + 10.0))

Code: [Select]
[size=12pt][b]New script commands[/b][/size]

// Returns the currently executing event (EVENT_SCRIPT_*) or 0 if not determinable.
// Note: Will return 0 in DelayCommand/AssignCommand. ExecuteScript(Chunk) will inherit their event ID from their parent event.
int GetCurrentlyRunningEvent();

// Get the integer parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 8.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or 0 on error/when not set.
int GetEffectInteger(effect eEffect, int nIndex);

// Get the float parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 4.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or 0.0f on error/when not set.
float GetEffectFloat(effect eEffect, int nIndex);

// Get the string parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 6.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or "" on error/when not set.
string GetEffectString(effect eEffect, int nIndex);

// Get the object parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 4.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or OBJECT_INVALID on error/when not set.
object GetEffectObject(effect eEffect, int nIndex);

// Get the vector parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 2.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or {0.0f, 0.0f, 0.0f} on error/when not set.
vector GetEffectVector(effect eEffect, int nIndex);

// Check if nBaseItemType fits in oTarget's inventory.
// Note: Does not check inside any container items possessed by oTarget.
// * nBaseItemType: a BASE_ITEM_* constant.
// * oTarget: a valid creature, placeable or item.
// Returns: TRUE if the baseitem type fits, FALSE if not or on error.
int GetBaseItemFitsInInventory(int nBaseItemType, object oTarget);

// Get oObject's local cassowary variable reference sVarName
// * Return value on error: empty solver
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
cassowary GetLocalCassowary(object oObject, string sVarName);

// Set a reference to the given solver on oObject.
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
void SetLocalCassowary(object oObject, string sVarName, cassowary cSolver);

// Delete local solver reference.
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
void DeleteLocalCassowary(object oObject, string sVarName);

// Clear out this solver, removing all state, constraints and suggestions.
// This is provided as a convenience if you wish to reuse a cassowary variable.
// It is not necessary to call this for solvers you simply want to let go out of scope.
void CassowaryReset(cassowary cSolver);

// Add a constraint to the system.
// * The constraint needs to be a valid comparison equation, one of: >=, ==, <=.
// * This implementation is a linear constraint solver.
// * You cannot multiply or divide variables and expressions with each other.
// Doing so will result in a error when attempting to add the constraint.
// (You can, of course, multiply or divide by constants).
// * fStrength must be >= CASSOWARY_STRENGTH_WEAK && <= CASSOWARY_STRENGTH_REQUIRED.
// * Any referenced variables can be retrieved with CassowaryGetValue().
// * Returns "" on success, or the parser/constraint system error message.
string CassowaryConstrain(cassowary cSolver, string sConstraint, float fStrength = CASSOWARY_STRENGTH_REQUIRED);

// Suggest a value to the solver.
// * Edit variables are soft constraints and exist as an optimisation for complex systems.
// You can do the same with Constrain("v == 5", CASSOWARY_STRENGTH_xxx); but edit variables
// allow you to suggest values without having to rebuild the solver.
// * fStrength must be >= CASSOWARY_STRENGTH_WEAK && < CASSOWARY_STRENGTH_REQUIRED
// Suggested values cannot be required, as suggesting a value must not invalidate the solver.
void CassowarySuggestValue(cassowary cSolver, string sVarName, float fValue, float fStrength = CASSOWARY_STRENGTH_STRONG);

// Get the value for the given variable, or 0.0 on error.
float CassowaryGetValue(cassowary cSolver, string sVarName);

// Gets a printable debug state of the given solver, which may help you debug
// complex systems.
string CassowaryDebug(cassowary cSolver);

// Overrides a given strref to always return sValue instead of what is in the TLK file.
// Setting sValue to "" will delete the override
void SetTlkOverride(int nStrRef, string sValue="");

// Constructs a custom itemproperty given all the parameters explicitly.
// This function can be used in place of all the other ItemPropertyXxx constructors
// Use GetItemProperty{Type,SubType,CostTableValue,Param1Value} to see the values for a given itemproperty.
itemproperty ItemPropertyCustom(int nType, int nSubType=-1, int nCostTableValue=-1, int nParam1Value=-1);

Pathfinding
•   Makes PC pathfinding no longer use simplified pathfinding at certain distances. Given that PC pathfinding is given more time, it is generally well able to handle this and benefit from it.
•   Fixed inaccurate calculation of grid step tolerance when using grid pathfinding.
•   Fixed potential endless loops with ActionMoveAwayFromLocation.
•   Fixed inconsistencies between when to use Z when comparing distances, which would result in certain actions failing when they shouldn't.
•   Adds lacking safety checks which was causing pathfinding to floor performance if trying to interact with a door that was unreachable.
•   Server settings: Removed experimental enhanced pathfinding toggle (now always on).
•   Fixed some minor errors related to collision resulting in imprecisions.

Other Features
•   GUI/NUI: Implemented floating point UI scaling.
•   GUI/NUI: Implemented TTF font rendering.
•   NUI: Implemented 9-slice gui skinning.
•   NUI: Now using a cassowary constraint solver system to layout widgets.
•   Floating damage numbers are now colourised based on the damage type taken.
•   NUI: Redesigned the Options UI.
•   NUI: Redesigned the NWSync Storage Management UI. (Now called Storage in the menu, and also accessible via the new game launcher).
•   NUI: Fixed up some other UI panels to layout properly even when scaled.
•   NUI: Added a panel to show Open Source Licences to config UI.
•   NUI: Made sound effects more immersive/in line with base UI usage (different click noises depending on widget).
•   GUI: Added a windowed/fullscreen/borderless dropdown to the Config UI and fixed the mode sometimes not initialising correctly.
•   Async loading of files and images via http streaming. (Backend system work)
•   ResMan: Movies can now be stored and played from override, ERF (hak, mod) and NWSync.
•   SQLite: Added a configurable busy timeout, so that just externally running something on a campaign/nwsync database doesn’t immediately abort queries running in the game. (3s default)
•   SQLite: Added builtin functions for NWCompressedBuf compression, base64 de/encode, and hashing. See SQLITE_Readme.md in data.
•   HTTP: Added a disk caching service to avoid repeated requests; added alias CACHE: (USERDIR/cache) by default. Configurable in settings, default max size is 100MB.
•   Base: Game windowed size is now 1024x768 by default, because some UI just got too big.
•   Base: TLK files now have a local cache, improving repeated lookup performance.
•   Base: API cleanup for NWNX support
•   Server: Removed some superfluous service updates (very minor perf).
•   Renderer: Tweaks to palettes for PLTs to prevent metallic looks. Tweaks to PLTs for armour to prevent alpha dithering: https://nwn.beamdog.net/web/compare/custom_mat/
•   Renderer: Added unique shader for particles; now with soft particle rendering; enable particle blending with fog: https://nwn.beamdog.net/web/compare/softparticles/, https://nwn.beamdog.net/web/compare/particles_fog/
•   Renderer: Improved colour overflow for transparent objects: https://nwn.beamdog.net/web/compare/alpha_overflow/
•   Renderer: Implemented proper OpenGL buffer orphaning.
•   Renderer: Unified and simplified the shader setup, allowing the default vs/fslit_nm/sm shaders to be used for all standard PBR setups.
•   Renderer: Made displacement offset a uniform that can be passed from materials to set a base level. To use it, add parameter float DisplacementOffset in a material. By default, the shaders assume the base (zero) level of the heightmap is 1 (white), so if base level is 0.6, the value needs to be -0.4, etc.
•   Renderer: Made alpha level adhere to Fresnel effects at high shader quality.
•   Renderer/Debug UI: Added a dropdown to select various rendering modes helpful for debugging (Material modes, Lighting channels, ..)
•   Renderer: Improvements to FBO, grant all shaders access to color and depth buffer textures
•   Renderer: Quickbar icons can now reload via SetTextureOverride #121
•   Renderer: Fixed broken normal and tangent generation for skinmeshes due to invalidated render hints. Improved shader picking based on tangets/handedness.
•   Renderer: Shader compilation errors are now printed to the game log file.
•   Renderer: Separated out area wide lighting from area point lights. (Small perf improvement).
•   Renderer/OVT: WALKDIST and RUNDIST now scales properly with visual transforms for you, in order to keep footsteps in sync.
•   Renderer: Added material files for icy tileset.
•   Renderer: Added material files for male and female old human heads so their hair no longer appears metallic.

Fixes
•   Fixed main menu music not playing when intro movies are skipped.
•   Renderer: Fixed a bad hashing algo for PLT textures resulting in excessive cache misses.
•   Renderer: Fixed incorrectly initialised null textures in some cases, resulting in incorrect textures and unnecessary texture binds.
•   Renderer: Removed redundant skinmesh bone remapping. Slight performance improvement, especially for models with many nodes.
•   Renderer: Made texture management more efficient, streamline for future changes to PBR.
•   Renderer/ResMan: Disabled the async model loader. Addresses the bodyparts missing issue. #145
•   Renderer: Maximum number of bones of a single skinmesh is now 64, to match mobile. This should fix the case where the game runs with 1-2fps on some GPUs.
•   Renderer: Fixed crashes due to NULL textures.
•   Renderer: Fixed crashing due to broken skinmesh models.
•   Renderer: Regression: Fixed compiled light models having issues due to memory misalignment/struct packing.
•   Renderer: Fixed an issue that would potentially cause scenes using custom shaders to malfunction in the event that a user changes video options in game.
•   Renderer: Fix text input caret pulsing when paused. Fix caret colouring following text in some situations.
•   Renderer: Safeguard against crashes when an animation was missing
•   Renderer: Optimised animesh buffer uploading; reduce time spent on GUI rendering.
•   Renderer: Make the `decal` property actually disable lighting, rather than just self-illuminating brightly. Fixed some GUI scenes by adding decal to txis.
•   Renderer: Fixed issue with darkness and similar negative light effects always being pushed to the end of the light priority list.
•   Renderer: Fixed tile lights being added to the BSP before having their radii set (causing minor imprecisions.)
•   Renderer: Fixed an issue with setting custom shaders when objects were using just one material for all parts while having more than one part.
•   Renderer: Fixed a minor regression with the high contrast shader.
•   Renderer: Removed a good chunk of dead/redundant code.
•   Nuklear: Fixed a memleak that would degrade long play sessions
•   VM: Fixed crash when calling DestroyArea() on a invalid object.
•   VM: Stopped ExecuteScriptChunk from writing “!chunk.ndb” to override.
•   VM: sqlite commands: Added missing newline in log output.
•   VM: Fixed issue in string handling (also: VM: SubString()) that would have resulted in memory leaks or crashes.
•   Game: Don’t use weapon AB for ranged touch attacks anymore.
•   Fixes to passive attack target selection. This should address Cleave etc. sometimes failing to find a followup target. #172
•   Game: Effect Miss Chance/Blind Fighting: Fix erroneous re-roll against target concealment, fix effect being ignored against blind fighting. #15
•   Game: Fixed error in levelup validation related to SkillpointModifierAbility being starred out #180
•   Game: Fixed ResistSpell() when called from AOE spell scripts.
•   Game: Fixed classstat modifiers applying incorrectly to polymorph. #185
•   Fixed the DM flag being set incorrectly on player characters when copying files around. #216
•   Fixed a rare crash in game object update netcode when writing out the party state of a player that just exited.
•   Fixed a loop wraparound overflow game hang/crash when removing effect icons.
•   Game: Fixed a crash when the game tried to write a log entry as it was shutting down.
•   Emitters: fixed them not interpolating if not both size_y start and end were set (correct behaviour is to do if either is non-zero).
•   Game: Never allow the window size to shrink below (100, 100). This works around the case where the window was too small to spot or resize back up0.
•   Fixed a crash when clicking the Recommended button on chargen package selection with no packages available.
•   Fixed a string type conversion error resulting in some empty strings in UI
•   http: Made http errors more verbose. Verbosity is Friend.
•   Fixed nwsync-enabled savegames not loading due to missing TLK error.
•   Input: Character input is now correctly converted from the language charset. This should address broken polish text input.
•   NUI: Fixed codepage glyphs cutting text off due to incorrectly-set codepage.
•   NUI: Fix window flickering from (0,0) to center pos on first frame after opening.
•   NUI: Fix window sometimes scaling down to (0,0).
•   NUI: Pressing Escape now closes the currently focused window.
•   NUI: Fixed UI not properly hiding when pressing Alt-F4/X to close the game.
•   NUI Skinning: Made font white in all widgets, instead of grey.
•   NUI Skinning: Skinned text input box.
•   NUI Skinning: Title bars now look like native windows.
•   NUI Skinning: Close/Minimise buttons match native style.
•   NUI Skinning: Fixed combo box style.
•   NUI Skinning: Window and group borders are now rendered 9-sliced.
•   NUI Skinning: Fixed scrollbars not aligning properly.
•   NUI: Fixed windows not properly auto-centering when ui-scaled.
•   NUI: Fixed line fitting code to no longer repeat words when word-wrapping; improved performance to only do line flowing once.
•   NUI: Fixed layouting reflow triggering once per frame when UI-scaled.
•   NUI/GUI: Fixed TTF font rendering for Polish. #191 #235
•   GUI: Fixed input caret; now back with extra cyan and more blinkage.
•   GUI: Fixed password input box not accepting your passwords, no matter how good they were.
•   Movie player: Optimised so it doesn’t create the movie texture as often.
•   Toolset: Fixed floating point drifting for X/YOrientation
•   Toolset: Now reads DEVELOPMENT: (but it might not live-reload the same as the game would).

Art
•   Added three content winner portraits to base game (aragnosh/human male, seafaref/halfelf female, seafarem/halfelf male).
•   Fixed torch model flicker.

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #48 on: April 17, 2021, 12:00:02 AM »
Development Build 8193.22
Fri, 16 April 2021

https://cdn.cloudflare.steamstatic.com/steam/apps/704450/ss_ae79dcee2c425095af7504f6513b82c2b14b4aec.1920x1080.jpg

Hello, friends!

A new patch marks another iteration towards an upcoming stable release. Please help us test this build and report any issues you spot.

New Game UI
•   Content is now presented as Official vs Community, instead of Campaigns vs Standalone.
•   Search filtering works better, can now filter by campaign names, authors.
•   More consistently-styled button sizes and UI elements.
•   Kingmaker, ShadowGuard and WitchesWake have been moved out of Premium into extra content on the Official content tab.
•   Filled in missing screenshots on the Premium modules.
•   Module sort order is now persisted to configuration
•   Various text/wording changes.

Water shader
•   More uniform appearance between shader quality modes.
•   Improve refraction and reflection precision/quality.
•   Water renders now after shadows and the SSAO pass.
•   Waves more natural-looking.
•   Translucence is now relative to source texture alpha.
•   Translucence now shadows the surface beneath the water.

NWScript Debugger
•   Added back script debugger binary into bin/win32/.
•   Added configuration keys to UI.
•   Fixed incorrect address parsing resulting in it not connecting. Also fixes setting debugger addresses other than localhost.
•   Fixed heap overflow parsing NDB files resulting in crashes.
•   Now renders all internal fields of CGameEffect.
•   Now renders all internal state of CScriptEvent.
•   Now renders cswysolver and sqlquery types instead of crashing in pitiful confusion.
•   Will no longer attempt to launch from within nwmain, you now need to run the binary by hand. On the plus side, it should now work on Linux and Mac (via wine/wine32to64).

Other
•   Linux: Fixed exclusive(fullscreen) and borderless window modes.
•   ResMan: Fixed crash that could happen when exiting the game, especially seen after failing to load a savegame.
•   Renderer: Restore the check for bumpshinytexture, fixing regression where meshes appeared transparent or invisible #298
•   Renderer: Tweaked horizontal TTF font spacing a bit more to make it match old visual feel.
•   Renderer: Fix regression introduced with previous preview where static tile lights didn’t update properly.
•   Renderer: Fixed static lights not updating properly. #290
•   Nui: Fixed some windows not centering properly when UI-scaled.
•   Nui: Limited UI scale so that new game/options windows will still fit. #288
•   Config UI: Don’t show horizontal scrollbar when UI scaled.
•   Config: Add toggle that allows showing damage numbers as totals or split.
•   nwhak: Fixed it not starting.
•   VM: Fixed GetObjectVisualTransform stack underflowing on existing modules (.21 regression)
•   VM: SetTlkOverride now parses tokens
•   Game: Fixed SetColor() not updating in some cases (such as heads/hair)
•   Game: Fix attacking non-creature objects #302
•   Game: Fixed DM character creation. #294
•   TTF/Fonts: Pixel alignment now respects GUI scale, improving rendering quality
•   Fonts: Fix some characters in codepages (‘, etc) not showing correctly #278 #279
•   Fonts: Fixed text in password fields not showing up
•   Fonts: Enable flexible font spacing; fixes dialog UI being cut off when many options are present
•   Fonts: Make ingame fonts space out less
•   Fonts: Fixed caret no longer showing on top of text
•   MP UI: Fixed another potential crash running custom modules.
•   NWSync hosting mode: Fixed rules not being reloaded properly after the initial manifest was added to the embedded server, resulting in missing creatures in Aielund Saga due to wrong appearance.2da having loaded.
•   Pathing: Fixed failing to update move click action when setting new target #286
•   Input: Added new manual config key game.language.codepage that can be used to force a different codepage (e.g. cp1251 for cyrillic). Together with a TTF override, this should restore compatibility for russian language overrides.
•   Toolset: Fixed some backgrounds not filling the full icon pane. #240
•   Art: Fixed forest facelift tileset (ttf02) referring to missing envmap, resulting in transparent metal textures.


funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #49 on: May 03, 2021, 11:37:27 PM »
Development Build 8193.23
Mon, 3 May 2021



Greetings, dear community!

This patch release contains another set of small bug fixes and improvements that will hopefully see us shipping this to the stable branch really soon.

Thank you for reporting any issues you find! Your help will catch all the corner cases with multiplayer and custom content we cannot test for.

Fixes
•   Renderer: Minor tweaks to water shader parameters to make it look more natural.
•   Pathfinding: Fixed a case where creatures failed to path to a near point in a straight line.
•   New Game Launcher: Show author line on campaign tabs.
•   New Game Launcher: Show advisory about potential savegame/manifest mismatch issues when downloading new versions.
•   New Game Launcher: Allow selecting campaign tabs when a module in the same campaign is selected.
•   Fix adding custom repositories.
•   New Game Launcher: Added a small spacer between campaigns and modules in custom content repos.
•   New Game Launcher: Empty bottom bar on the Official content tab is now hidden.
•   New Game Launcher: Campaigns are now deselected when selecting a non-campaign module on the same pane that have both.
•   Savegames: When loading a savegame with a missing manifest, attempt to load the newest manifest of the same UUID instead (upgrade path for New Game UI modules). Emit a message to the client log indicating such - no UI support for showing this yet.
•   NWSync: Client now downloads wbm movie files if part of the manifest.
•   Pathfinding: Addressed regression where NPCs fail to open doors. #285
•   Pathfinding: Fixed interacting with objects when Z-offset was implied (e.g. stairs). This should alleviate some troubles where having to manually force the PC near the object before it would interact.
•   UI: Allow exceeding safe UI scale if needed for accessibility reasons. There is a toggle under Config->UI->Accessibility->Advanced.
•   UI: Now clamp lower bound of UI scale to 1.0.
•   UI: horizontal window constraint is now 900 instead of 960 before requiring scaling.
•   Nui: Fixed more panels erroneously showing a horizontal scrollbar when scaled.

Art
•   Art: Shifted collision box for tcn_udoor_01 #313

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #50 on: May 20, 2021, 11:09:00 PM »
Patch 8193.23 Launches for Neverwinter Nights: Enhanced Edition
Thu, 20 May 2021



Greetings friends!

We’re launching a new patch for
Neverwinter Nights: Enhanced Edition
with some of the biggest feature sets yet! Today’s update brings a new game launcher with featured community content, performance improvements, plus hundreds of fixes.

Check out full details on Patch 8193.23 below...
Patch Highlights

New Game Launcher
| A new game launcher highlights some amazing community content that’s free for everyone!
New Portraits
| Added three new character portraits (sourced from the community portrait contest)
TrueType Font
| Added full TrueType font (TTF) support throughout the game, for clearer and more adaptive text (as well as fractional/decimal point UI scaling)
Pathfinding Improvements
| Smoother movement and navigation
Performance Improvements
| Enjoy smoother gameplay with significant performance improvements
Bug Fixes
| Hundreds of bug fixes and polish features added
New Scripts
| Added dozens of new script commands for use in custom servers, including improved scaling and transformation (lerping)
Water Graphics
| Added realistic water reflections and refractions
New Game Launcher with Community Highlights

This patch ships with a new (singleplayer) game launcher. It showcases all campaigns and premium modules with header images, descriptions, screenshots, and more.

We’ve also added a repository of community content, hosted by Beamdog. This gives all players easier access to some amazing (and free) community adventures. For example, we are honoured to offer both the full Aielund Saga by Savant, and the Auren Saga (Almraiven / Shadewood) by Fester Pot. Now all you need to do to play them is click Download (...and wait a bit).







Aielund Saga
By Savant


 
Embark on a journey through the Kingdom of Aielund, a realm weakened by war and beset by enemies from without and within. Defend the people of Aielund against monsters from mythology, and ones that clothe themselves in a more human form. Uncover evidence of foul play, delve into the deepest caves, travel the breadth of the land and even the planes of reality. Secure the kingdom from foes more powerful than you can imagine, while you rise from simple mercenaries into the mightiest of heroic legends.
Auren Saga
By PJH



The Auren Society of Weavers draw their power from a Weave that spans into the Land of the Dead. It allows such members to grasp a better understanding of the spirits that roam that realm and use it to their advantage. It is this very Weave one will use to scour murderous scenes and unravel the mysterious deaths that surround the region of Calimshan.
TrueType Fonts and UI scaling

The game now supports TrueType fonts (and fractional/decimal point UI scaling). This means when you adjust the User Interface the text scales much more clearly for readability.
Note
: Currently, fonts cannot be overridden by custom content, but we are looking at options for a future release.



Water Visuals
We’ve added brand new water visuals! Water now has realistic reflections and refractions to make your adventures more beautiful.



Art Changes
•   Added three contest winner portraits to base game (Aragnosh: human male, Seafaref: half-elf female, Seafarem: half-elf male)
•   Fixed torch model flicker
•   Fixed forest facelift tileset (ttf02) referring to missing envmap, resulting in transparent metal textures

Pathfinding Improvements

We have been carefully making some changes to pathfinding to improve efficiency and reliability. Here are some of the technical details of the changes:
•   Pathfinding on Windows, macOS and Linux no longer uses simplified pathfinding at certain distances.
•   Fixed inaccurate calculation of grid step tolerance when using grid pathfinding.
•   Fixed potential endless loops with ActionMoveAwayFromLocation.
•   Fixed inconsistencies between when to use Z when comparing distances, which would result in certain actions failing when they shouldn't
•   Added lacking safety checks which was causing pathfinding to floor performance if trying to interact with a door that was unreachable
•   Server settings: Removed experimental enhanced pathfinding toggle (now always on).
•   Fixed some minor errors related to collision resulting in imprecisions
•   Fixed interacting with objects when Z-offset was implied (e.g. stairs). This should alleviate some troubles where having to manually force the PC near the object before it would interact
•   Fixed a case where creatures failed to pathfind to a near point in a straight line

New Scripting
Visual Object Transform Lerping

Script commands can now transform objects smoothly over time.

All existing visual transform types (translate, rotate, scale) can be applied this way, and there is a built in selection of algorithms available.


 
New Script Commands

This release adds a set of new script commands:

// Returns the currently executing event (EVENT_SCRIPT_*) or 0 if not determinable.
// Note: Will return 0 in DelayCommand/AssignCommand. ExecuteScript(Chunk) will inherit their event ID from their parent event.
int GetCurrentlyRunningEvent();
// Get the integer parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 8.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or 0 on error/when not set.
int GetEffectInteger(effect eEffect, int nIndex);
// Get the float parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 4.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or 0.0f on error/when not set.
float GetEffectFloat(effect eEffect, int nIndex);
// Get the string parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 6.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or "" on error/when not set.
string GetEffectString(effect eEffect, int nIndex);
// Get the object parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 4.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or OBJECT_INVALID on error/when not set.
object GetEffectObject(effect eEffect, int nIndex);
// Get the vector parameter of eEffect at nIndex.
// * nIndex bounds: 0 >= nIndex < 2.
// * Some experimentation will be needed to find the right index for the value you wish to determine.
// Returns: the value or {0.0f, 0.0f, 0.0f} on error/when not set.
vector GetEffectVector(effect eEffect, int nIndex);
// Check if nBaseItemType fits in oTarget's inventory.
// Note: Does not check inside any container items possessed by oTarget.
// * nBaseItemType: a BASE_ITEM_* constant.
// * oTarget: a valid creature, placeable or item.
// Returns: TRUE if the baseitem type fits, FALSE if not or on error.
int GetBaseItemFitsInInventory(int nBaseItemType, object oTarget);
// Get oObject's local cassowary variable reference sVarName
// * Return value on error: empty solver
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
cassowary GetLocalCassowary(object oObject, string sVarName);
// Set a reference to the given solver on oObject.
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
void SetLocalCassowary(object oObject, string sVarName, cassowary cSolver);
// Delete local solver reference.
// * NB: cassowary types are references, same as objects.
// Unlike scalars such as int and string, solver references share the same data.
// Modifications made to one reference are reflected on others.
void DeleteLocalCassowary(object oObject, string sVarName);
// Clear out this solver, removing all state, constraints and suggestions.
// This is provided as a convenience if you wish to reuse a cassowary variable.
// It is not necessary to call this for solvers you simply want to let go out of scope.
void CassowaryReset(cassowary cSolver);
// Add a constraint to the system.
// * The constraint needs to be a valid comparison equation, one of: >=, ==, <=.
// * This implementation is a linear constraint solver.
// * You cannot multiply or divide variables and expressions with each other.
// Doing so will result in a error when attempting to add the constraint.
// (You can, of course, multiply or divide by constants).
// * fStrength must be >= CASSOWARY_STRENGTH_WEAK && <= CASSOWARY_STRENGTH_REQUIRED.
// * Any referenced variables can be retrieved with CassowaryGetValue().
// * Returns "" on success, or the parser/constraint system error message.
string CassowaryConstrain(cassowary cSolver, string sConstraint, float fStrength = CASSOWARY_STRENGTH_REQUIRED);
// Suggest a value to the solver.
// * Edit variables are soft constraints and exist as an optimisation for complex systems.
// You can do the same with Constrain("v == 5", CASSOWARY_STRENGTH_xxx); but edit variables
// allow you to suggest values without having to rebuild the solver.
// * fStrength must be >= CASSOWARY_STRENGTH_WEAK && < CASSOWARY_STRENGTH_REQUIRED
// Suggested values cannot be required, as suggesting a value must not invalidate the solver.
void CassowarySuggestValue(cassowary cSolver, string sVarName, float fValue, float fStrength = CASSOWARY_STRENGTH_STRONG);
// Get the value for the given variable, or 0.0 on error.
float CassowaryGetValue(cassowary cSolver, string sVarName);
// Gets a printable debug state of the given solver, which may help you debug
// complex systems.
string CassowaryDebug(cassowary cSolver);
// Overrides a given strref to always return sValue instead of what is in the TLK file.
// Setting sValue to "" will delete the override
void SetTlkOverride(int nStrRef, string sValue="");
// Constructs a custom itemproperty given all the parameters explicitly.
// This function can be used in place of all the other ItemPropertyXxx constructors
// Use GetItemProperty{Type,SubType,CostTableValue,Param1Value} to see the values for a given itemproperty.
itemproperty ItemPropertyCustom(int nType, int nSubType=-1, int nCostTableValue=-1, int nParam1Value=-1);
NWScript Debugger

We’ve revived the script debugger with several improvements:
•   Added back script debugger binary into bin/win32/.
•   Added configuration keys to UI.
•   Fixed incorrect address parsing resulting in it not connecting. Also fixes setting debugger addresses other than localhost.
•   Fixed heap overflow parsing NDB files resulting in crashes.
•   Now renders all internal fields of CGameEffect.
•   Now renders all internal state of CScriptEvent.
•   Now renders cswysolver and sqlquery types instead of crashing in pitiful confusion.
•   Will no longer attempt to launch from within nwmain, you now need to run the binary by hand. On the plus side, it should now work on Linux and Mac (via wine/wine32to64).

Other Feature Changes

In addition to the major features listed above, we’ve added dozens of minor polish features to improve the game:
•   GUI/NUI: Implemented floating point UI scaling.
•   UI: Allow exceeding safe UI scale if needed for accessibility reasons. There is a toggle under Config->UI->Accessibility->Advanced.
•   GUI/NUI: Implemented TTF font rendering.
•   Input: Added new manual config key game.language.codepage that can be used to force a different codepage (e.g. cp1251 for cyrillic). Together with a TTF override, this should allow modding in compatibility for russian language overrides.
•   NUI: Implemented 9-slice gui skinning.
•   NUI: Now using a cassowary constraint solver system to layout widgets
•   Floating damage numbers are now colourised based on the damage type taken.
•   Add config toggle that allows showing damage numbers as totals or split
•   NUI: Redesigned the Options UI.
•   NUI: Redesigned the NWSync Storage Management UI. (Now called Storage in the menu, and also accessible via the new game launcher).
•   NUI: Fixed up some other UI panels to layout properly even when scaled.
•   NUI: Added a panel to show Open Source Licences to config UI.
•   NUI: Made sound effects more immersive/in line with base UI usage (different click noises depending on widget).
•   GUI: Added a windowed/fullscreen/borderless dropdown to the Config UI and fixed the mode sometimes not initialising correctly.
•   Async loading of files and images via http streaming. (Backend system work)
•   ResMan: Movies can now be stored and played from override, ERF (hak, mod) and NWSync.
•   SQLite: Added a configurable busy timeout, so that just externally running something on a campaign/nwsync database doesn’t immediately abort queries running in the game. (3s default)
•   SQLite: Added builtin functions for NWCompressedBuf compression, base64 de/encode, and hashing. See SQLITE_Readme.md in data.
•   NWSync: Client now downloads wbm movie files if part of the manifest.
•   HTTP: Added a disk caching service to avoid repeated requests; added alias CACHE: (USERDIR/cache) by default. Configurable in settings, default max size is 100MB.
•   Base: Game windowed size is now 1024x768 by default, because some UI just got too big.
•   Base: TLK files now have a local cache, improving repeated lookup performance.
•   Base: API cleanup for NWNX support
•   Server: Removed some superfluous service updates (very minor perf).
•   Renderer: Tweaks to palettes for PLTs to prevent metallic looks. Tweaks to PLTs for armour to prevent alpha dithering. Check out the comparison here
•   Renderer: Added unique shader for particles, with soft particle rendering and enabled particle blending with fog. Check out soft particle shader here and fog rendering here
•   Renderer: Improved colour overflow for transparent objects. Check out the comparison here
•   Renderer: Implemented proper OpenGL buffer orphaning
•   Renderer: Unified and simplified the shader setup, allowing the default vs/fslit_nm/sm shaders to be used for all standard PBR setups
•   Renderer: Made displacement offset a uniform that can be passed from materials to set a base level. To use it, add parameter float DisplacementOffset in a material. By default, the shaders assume the base (zero) level of the heightmap is 1 (white), so if base level is 0.6, the value needs to be -0.4, etc
•   Renderer: Made alpha level adhere to Fresnel effects at high shader quality.
•   Renderer/Debug UI: Added a dropdown to select various rendering modes helpful for debugging (Material modes, Lighting channels, ..)
•   Renderer: Improvements to FBO, grant all shaders access to color and depth buffer textures
•   Renderer: Quickbar icons can now reload via SetTextureOverride.
•   Renderer: Fixed broken normal and tangent generation for skinmeshes due to invalidated render hints. Improved shader picking based on tangets/handedness.
•   Renderer: Shader compilation errors are now printed to the game log file.
•   Renderer: Separated out area wide lighting from area point lights. (Small perf improvement)
•   Renderer/OVT: WALKDIST and RUNDIST now scales properly with visual transforms for you, in order to keep footsteps in sync
•   Renderer: Added material files for icy tileset so that ice no longer appears metallic
•   Renderer: Added material files for male and female old human heads so their hair no longer appears metallic

Fixes

In addition to feature changes, this patch release also contains a sizeable selection of bug fixes:
•   Fixed main menu music not playing when intro movies are skipped.
•   Renderer: Fixed a bad hashing algo for PLT textures resulting in excessive cache misses.
•   Renderer: Fixed incorrectly initialised null textures in some cases, resulting in incorrect textures and unnecessary texture binds.
•   Renderer: Removed redundant skinmesh bone remapping. Slight performance improvement, especially for models with many nodes.
•   Renderer: Made texture management more efficient, streamline for future changes to PBR.
•   Renderer/ResMan: Disabled the async model loader. Addresses the bodyparts missing issue. #145
•   Renderer: Maximum number of bones of a single skinmesh is now 64, to match mobile. This should fix the case where the game runs with 1-2fps on some GPUs.
•   Renderer: Fixed crashes due to NULL textures.
•   Renderer: Fixed crashing due to broken skinmesh models.
•   Renderer: Regression: Fixed compiled light models having issues due to memory misalignment/struct packing.
•   Renderer: Fixed an issue that would potentially cause scenes using custom shaders to malfunction in the event that a user changes video options in game.
•   Renderer: Fix text input caret pulsing when paused. Fix caret colouring following text in some situations
•   Renderer: Safeguard against crashes when an animation was missing
•   Renderer: Optimised animesh buffer uploading; reduce time spent on GUI rendering.
•   Renderer: Make the `decal` property actually disable lighting, rather than just self-illuminating brightly. Fixed some GUI scenes by adding decal to txis.
•   Renderer: Fixed issue with darkness and similar negative light effects always being pushed to the end of the light priority list.
•   Renderer: Fixed tile lights being added to the BSP before having their radii set (causing minor imprecisions)
•   Renderer: Fixed an issue with setting custom shaders when objects were using just one material for all parts while having more than one part
•   Renderer: Fixed a minor regression with the high contrast shader
•   Renderer: Removed a good chunk of dead/redundant code
•   Nuklear: Fixed a memleak that would degrade long play sessions
•   VM: Fixed crash when calling DestroyArea() on a invalid object.
•   VM: Stopped ExecuteScriptChunk from writing “!chunk.ndb” to override.
•   VM: sqlite commands: Added missing newline in log output.
•   VM: Fixed issue in string handling (also: VM: SubString()) that would have resulted in memory leaks or crashes.
•   Game: Don’t use weapon AB for ranged touch attacks anymore.
•   Fixes to passive attack target selection. This should address Cleave etc. sometimes failing to find a followup target. #172
•   Game: Effect Miss Chance/Blind Fighting: Fix erroneous re-roll against target concealment, fix effect being ignored against blind fighting. #15
•   Game: Fixed error in levelup validation related to SkillpointModifierAbility being starred out #180
•   Game: Fixed ResistSpell() when called from AOE spell scripts.
•   Game: Fixed classstat modifiers applying incorrectly to polymorph. #185
•   Fixed the DM flag being set incorrectly on player characters when copying files around. #216
•   Fixed a rare crash in game object update netcode when writing out the party state of a player that just exited
•   Fixed a loop wraparound overflow game hang/crash when removing effect icons
•   Game: Fixed a crash when the game tried to write a log entry as it was shutting down
•   Emitters: fixed them not interpolating if not both size_y start and end were set (correct behaviour is to do if either is non-zero)
•   Game: Never allow the window size to shrink below (100, 100). This works around the case where the window was too small to spot or resize back up
•   Fixed a crash when clicking the Recommended button on chargen package selection with no packages available
•   Fixed a string type conversion error resulting in some empty strings in UI
•   http: Made http errors more verbose. Verbosity is Friend
•   Fixed nwsync-enabled savegames not loading due to missing TLK error
•   Input: Character input is now correctly converted from the language charset. This should address broken polish text input
•   NUI: Fixed codepage glyphs cutting text off due to incorrectly-set codepage.
•   NUI: Fix window flickering from (0,0) to center pos on first frame after opening.
•   NUI: Fix window sometimes scaling down to (0,0).
•   NUI: Pressing Escape now closes the currently focused window.
•   NUI: Fixed UI not properly hiding when pressing Alt-F4/X to close the game.
•   NUI Skinning: Made font white in all widgets, instead of grey.
•   NUI Skinning: Skinned text input box.
•   NUI Skinning: Title bars now look like native windows.
•   NUI Skinning: Close/Minimise buttons match native style.
•   NUI Skinning: Fixed combo box style.
•   NUI Skinning: Window and group borders are now rendered 9-sliced.
•   NUI Skinning: Fixed scrollbars not aligning properly.
•   NUI: Fixed windows not properly auto-centering when ui-scaled.
•   NUI: Fixed line fitting code to no longer repeat words when word-wrapping; improved performance to only do line flowing once.
•   NUI/GUI: Fixed TTF font rendering for Polish. #191 #235
•   GUI: Fixed input caret; now back with extra cyan and more blinkage.
•   GUI: Fixed password input box not accepting your passwords, no matter how good they were.
•   Movie player: Optimised so it doesn’t create the movie texture as often.
•   Toolset: Fixed floating point drifting for X/YOrientation
•   Toolset: Now reads DEVELOPMENT: (but it might not live-reload the same as the game would).
•   Toolset: Fixed some backgrounds not filling the full icon pane. #240
•   Linux: Fixed exclusive(fullscreen) and borderless window modes.
•   ResMan: Fixed crash that could happen when exiting the game, especially seen after failing to load a savegame.
•   Renderer: Restore the check for bumpshinytexture, fixing regression where meshes appeared transparent or invisible #298
•   Renderer: Fixed static lights not updating properly. #290
•   Config UI: Don’t show horizontal scrollbar when UI scaled.
•   VM: Fixed SetColor() not updating in some cases (such as heads/hair)
•   Savegames: When loading a savegame with a missing manifest, attempt to load the newest manifest of the same UUID instead (upgrade path for New Game UI modules). Emit a message to the client log indicating such - no UI support for showing this yet.

Known Issues
Steam Workshop | Modules in the Steam Workshop do not show in the game launcher

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #51 on: July 08, 2021, 11:23:09 PM »
New Patch Arrives Today: Stable Build 8193.28 is Live!
Thu, 8 July 2021

Stable Build 8193.28 just released for Neverwinter Nights: Enhanced Edition


Hello, dear community!

We just released a small update for Neverwinter Nights: Enhanced Edition. Thank you all for your continued support— read on for details!
Today's patch (aka Revision 28) includes:

•   Toolset:
Fixed a crash when rendering some custom content.
•   Nuklear/Nui:
Fixed line breaks with non-ASCII characters: Module descriptions for polish and russian should now wrap properly.
•   LoadAliases:
Fixed DOCINSTALL not working on some systems (Options -> Open Source Licences tab was empty).
•   Movies:
Fixed EndMovie() not working for nwsync-sourced content, such as Eye of the Beholder (because the manifest had already been unloaded).


If you are feeling adventurous, why not give the development build a try, with many more fixes and features in it?!
Game

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #52 on: July 23, 2021, 11:35:52 PM »
Development Build 85.8193.30
Fri, July 23, 2021


Hello, dear friends!

Today, we have a development build for you. We appreciate your assistance in testing it, and reporting any issues you find.

The module compatibility has once again been bumped - to version 1.85 - due to the new script commands that allow tile/area actions in the radial menu, and a bit more GUI modification.

Fixes
•   Renderer: Disabled soft particles on world-aligned emitters; fixes faded/missing effects such as spell mantle.
•   Renderer: TSB are now generated correctly for animated/danglies.
•   Renderer: Removed creature preloading code; it was doing nothing useful on desktop platforms.
•   Renderer: Drawbucket implementation for caching transform lists; also fixes additive blending render issues (such as water making visual effects wavy; water showing geometry from own model).
•   Renderer: Fixed highlight gobs ("tab glow") not correctly scaling along visual transforms.
•   Renderer: Fixed static placeables incorrectly disabling/breaking animations of non-static placeables with the same model.
•   Game: Fixed a memleak in pathfinding.
•   Game: Fixed placeables not bumping creatures out of the way when being spawned into an area. #349
•   Game/VM: Fixed Get*DurationRemaining returning the wrong value due to time overflow.
•   Game: Fixed a rare crash when exiting the game while a NWSync download is in progress.
•   Startgame UI: Fixed URL escaping for URLs with long paths.
•   Startgame UI: Removed superfluous text warnings about "Clicking link opens browser".
•   Startgame UI: Improvements to the promotion panels for custom repositories.
•   Startgame UI: Images loaded in the new content browser are now correctly served from cache if no internet connection is available.
•   UI: Put most hardcoded strings in StartGame, NWSync and Config panels into the tlk (not translated yet).
•   Config: On Windows, codepage is now auto-detected from the system locale.

Tile/Radial actions, surfacemat.2da
•   You can now assign custom radial actions on tiles (There is a new module event you can access via SetEventScript).
•   surfacemat now support 64 materials, up from 32.
•   surfacemat.2da is re/loaded as part of custom content.

// Gets the ID (1..8) of the last tile action performed in OnPlayerTileAction
int GetLastTileActionId();

// Gets the target position in the module OnPlayerTileAction event.
vector GetLastTileActionPosition();

// Gets the player object that triggered the OnPlayerTileAction event.
object GetLastPlayerToDoTileAction();

New Script Commands
You can now pop up or restrict GUI panels.

We added a event that triggers clientside interaction with some panels (There is a new module event you can access via SetEventScript).
int GUI_PANEL_PLAYER_DEATH = 0;
int GUI_PANEL_MINIMAP = 2;
int GUI_PANEL_COMPASS = 3;
int GUI_PANEL_INVENTORY = 4;
int GUI_PANEL_PLAYERLIST = 5;
int GUI_PANEL_JOURNAL = 6;
int GUI_PANEL_SPELLBOOK = 7;
int GUI_PANEL_CHARACTERSHEET = 8;

int GUIEVENT_CHATBAR_FOCUS = 1;
int GUIEVENT_CHATBAR_UNFOCUS = 2;
int GUIEVENT_CHARACTERSHEET_SKILL_CLICK = 3;
int GUIEVENT_CHARACTERSHEET_FEAT_CLICK = 4;
int GUIEVENT_EFFECTICON_CLICK = 5;
int GUIEVENT_DEATHPANEL_WAITFORHELP_CLICK = 6;
int GUIEVENT_MINIMAP_MAPPIN_CLICK = 7;
int GUIEVENT_MINIMAP_OPEN = 8;
int GUIEVENT_MINIMAP_CLOSE = 9;
int GUIEVENT_JOURNAL_OPEN = 10;
int GUIEVENT_JOURNAL_CLOSE = 11;
int GUIEVENT_PLAYERLIST_PLAYER_CLICK = 12;
int GUIEVENT_PARTYBAR_PORTRAIT_CLICK = 13;
int GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN = 14;

// Gets the player that last triggered the module OnPlayerGuiEvent event.
object GetLastGuiEventPlayer();

// Gets the last triggered GUIEVENT_* in the module OnPlayerGuiEvent event.
int GetLastGuiEventType();

// Gets an optional integer of specific gui events in the module OnPlayerGuiEvent event.
// * GUIEVENT_CHATBAR_*: The selected chat channel. Does not indicate the actual used channel.
// 0 = Shout, 1 = Whisper, 2 = Talk, 3 = Party, 4 = DM
// * GUIEVENT_CHARACTERSHEET_SKILL_SELECT: The skill ID.
// * GUIEVENT_CHARACTERSHEET_FEAT_SELECT: The feat ID.
// * GUIEVENT_EFFECTICON_CLICK: The effect icon ID (EFFECT_ICON_*)
// * GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN: The GUI_PANEL_* the player attempted to open.
int GetLastGuiEventInteger();

// Gets an optional object of specific gui events in the module OnPlayerGuiEvent event.
// * GUIEVENT_MINIMAP_MAPPIN_CLICK: The waypoint the map note is attached to.
// * GUIEVENT_CHARACTERSHEET_*_SELECT: The owner of the character sheet.
// * GUIEVENT_PLAYERLIST_PLAYER_CLICK: The player clicked on.
// * GUIEVENT_PARTYBAR_PORTRAIT_CLICK: The creature clicked on.
// * GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN: For GUI_PANEL_CHARACTERSHEET, the owner of the character sheet.
object GetLastGuiEventObject();

// Disable a gui panel for the client that controls oPlayer.
// Notes: Will close the gui panel if currently open.
// Does not persist through relogging or in savegames.
// Will fire a GUIEVENT_DISABLED_PANEL_ATTEMPT_OPEN OnPlayerGuiEvent for some gui panels if a player attempts to open them.
// You can still force show a panel with PopUpGUIPanel().
// * nGuiPanel: A GUI_PANEL_* constant, except GUI_PANEL_PLAYER_DEATH.
void SetGuiPanelDisabled(object oPlayer, int nGuiPanel, int bDisabled);

Tyrants of the Moonsea
•   one dialog branch in Hlesson's conversation breaks his quest
•   fixed a rare situation in the Marel fight where the exit door wouldn't open
•   removed Sharalyn's Cloud of Bewilderment spell because it caused in-party hostility
•   the Kur-Tharsu areas are now "No PVP" to reduce in-party hostility

Darkness over Daggerford
•   a cutscene in smuggler's cave sometimes did not trigger
•   a cutscene in smuggler's cave sometimes was aborted early

Known Issues
•   The toolset tilefade setting "Always" doesn't work correctly.


funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #53 on: September 16, 2021, 11:29:48 PM »
Development Build 85.8193.31
16 Sept 2021



Hello friends!
 
How have you been doing? The Beamdog team has been hard at work on the next Neverwinter Nights: Enhanced Edition patch! Today, we are shipping release 8193.31 to the development branch of NWN:EE.
 
This is a huge beta patch, with many new and exciting features. We appreciate your assistance in helping us test them, and reporting any/all issues you find.
 

Highlights

Significant renderer performance improvements & better shadows.
 
New Curated Content: A Hunt Through The Dark, by Markus Schlegel.
 
Scriptable UI.
 
Apple M1.
 
Many other new features, script commands & fixes. https://steamcommunity.com/games/704450/announcements/detail/4937623885470421006


 
funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #54 on: September 22, 2021, 11:56:13 PM »
Patch 8193.32: Apple M1 support, Performance Improvements & more!
Wed, September 22, 2021

Greetings, Neverwinter Nights players and modders!

Today we’re releasing Patch 8193.32 for Neverwinter Nights: Enhanced Edition! This update brings dozens of bug fixes and new features— including some exciting updates for content creators! Curated community content is also getting a new addition: A Hunt Through The Dark, by Markus Schlegel!

Patch Highlights
•   Renderer
 | Significant performance improvements & better shadows
•   New Curated Content
 | Play as a drow in Markus Schlegel’s campaign, A Hunt Through The Dark
•   Scriptable UI | Module authors can now create custom UI panels!
•   Apple M1 support
 | Owners of Apple M1 devices now will have a much better experience playing NWN:EE!
•   More than 100 fixes
 | Many other new features, script commands & fixes

Changes over build .31

This build is following the beta build from last week, and includes the following changes on top of it:


•   Renderer: Fixed SetTextureOverride() not working for custom content.
•   Nui/Scriptable UI: Fixed combo() widget not decoding UTF8 correctly.
•   ResMan: Fixed RESTYPE_JUI having the wrong ID, and added to nwscript.nss.
•   nwscript.nss: Minor text/documentation updates.

Renderer Improvements

Many improvements have been made to the rendering and shadows engine:

•   Greatly reduced the amount of CPU time spent on rendering shadows (50-90% less) by moving more work to the shaders and just doing things more intelligently.
•   Reduced buffer transfers related to rendering shadows (perf+)
•   Fixed some common shadow rendering issues related to "behind" stencil tests. It does not fix every issue, however, and in rare cases, some issues may become more apparent - but all in all, the benefits should outweigh the drawbacks. The old approach can be restored with using "shadowfliporder 1" in the console.
•   Shadow and beam volumes now use their own unique shaders.
•   Fixed a number of other shadow rendering issues by doing view frustrum clipping in the vertex shaders. This (beyond improving performance) alleviates issues with shadows sometimes being cut off in odd places (and similar).
•   The game now uses tiledata bounding box to determine lower clip of shadow volumes. This fixes shadows not being applied to geometry below the z position of the tile.
•   The game now adjusts shadow alpha based on the vertical distance between the shadow plane used for drawing projections and the projection source. This gives a more correct shading.
•   Removed the “experimental optimized shadow rendering” toggle. It is now always enabled.
•   Added some minor refinements that help reduce the visual oddities caused by shadows being projected by erroneous models.
•   Fixed dynamic shadow rendering performance dropping significantly on certain devices due to the new streaming setup.
•   Added new debug outputs that help content artists to debug models from within the game. This includes rendering mesh bounding boxes, pivots (centers), emitter and light ranges, as well as shadow volumes. The options are accessible through the normal debug panel (ctrl+shift+f12).
•   Optimized generation of shadow volumes to better fit the size of the shadow plane used for rendering shadows. Improves performance in GPU limited situations.
•   Fixed an issue that made shadows fade out too quickly at low view angles.
•   Fixed an issue with the scene manager that made geometry culling less effective.
•   Made the game automatically downsize textures larger than the client GPU supports (instead of just failing to render).
•   Optimized the size of the baked font textures to minimize texture memory footprint.
•   Tweaked the subsurface light algorithm and made the normal debug outputs also apply for water.
•   Removed some redundant GPU data buffer uploads.
•   Fixed soft particles reading the screen depth at an offset position, resulting in occasional halos appearing around objects.
•   Fixed automatic tile texture rotation (`rotatetexture 1`) causing normal and displacement maps to malfunction.
•   Added a new console command ‘printvertexdata’. Prints an overview of the amount of memory currently used for vertex data (model geometry) to the client log.
•   Fixed rendering unlit models with envmap (chargen colour picker shader issue; Halaster model issue).
•   Fixed object view culling not respecting visual transforms, resulting in objects sometimes not appearing if transformed into view.
•   Fixed some static parts being removed after having been auto-combined, resulting in erroneous shadows for some static geometry.
•   Fixed skinmesh bone hierarchy to initial model layout. This solves certain issues caused by skinmeshed bodyparts being dynamically attached and removed.
•   Fixed low quality render mode darkening water too much.

Curated Content: A Hunt Through The Dark
by Markus Schlegel



Presenting the classic six-part campaign by Markus Schlegel - A Hunt Through The Dark!
Did you ever want to play the dark side, the bad, the evil, the worst of all, the drow?
Take part in a hunting trip through the Underdark. It is on you to enslave goblins, betray comrades and spoil the plans of your leader Mistress Piwiewien – or not.

Scriptable UI

Modules can now spawn custom UI panels, either defined in NWScript or JSON datafiles.

•   The layouting is done via a constraints solver and currently presents as a row/layout flow.
•   Most native widget types available, including lower-level drawing primitives to create your own.
•   Data binding is two-way between clients and the module, and allows synchronising sliders, input fields, buttons, and window geometry/properties. Mouse input events are supported as well.
•   There is a new include file: nw_inc_nui.nss. There is also a demo script (nw_nui_demo.nss) that showcases some basic widget types. Finally, there is a more complex inspector example (nw_nui_insp.nss) that can show bind values for all open scripted windows.
•   See the mentioned include file and demo for starting points. The new nwscript.nss API is reproduced at the end of this document.

NWScript JSON Datatype Support

NWScript now has a new native datatype, `json`. The API is documented at the end of these notes.

The engine can also serialise game objects to/from json, similar to how the sql data binder works. There is a new data format “.caf” for area objects that combines .are and .git, so you can de/serialise areas into a single json object. The serialisation format is compatible with neverwinter.nim.

There is a small helper library in nw_inc_gff.nss so you can construct GFF data on the fly (e.g. dynamic area/object creation and spawning).

The API also supports JSON Pointer, Diff, Patch and Merge. The SQLite API has been amended for both Campaign DB and custom databases.

Other Features

•   Added more GUI events, some suppressible, when the player interacts.
•   Added device property queries to get player screen width height and scale.
•   Added VM commands to query the game resource manager.
•   PLT textures can now be phenotype-specific.
•   Added a setting that allows players to control their non-PC party members in the same way as DMs do (drag, ctrl+click, etc). This is off by default, and can be enabled in server settings.
•   Mac: Provided universal binary with a build for Apple M1. If you are on M1 and on Steam, you will have to launch the game directly, NOT via Steam, for the binary to run natively. Otherwise, it will run via Rosetta.
•   Mac only: GOG Galaxy SDK no longer supported on x64 and arm64 (no native M1 build for the library).
•   Mac only: Steam SDK/Workshop not supported on M1 (no native M1 build for the binary).
•   Toolset: Added support for custom caster classes.
•   Curated Content UI: Added support for promotion panels to show links to the Vault, Wikis, etc.

Smaller Changes

•   Script compiler now supports `\xFF` style escape sequences to put arbitrary bytes into a string literal. NB: \x00 will terminate the string, do not use.
•   Cleaned up ovr/, moved everything except scripts into keybif.
•   Debug UI: You can now use the RunScript/Chunk Debug UI in SP even when DebugMode is off (for testing convenience).
•   VM: Store/RetrieveCampaignObject, SqlBindObject, SqlGetObject, ObjectToJson, and JsonToObject now support an additional parameter; bSave/LoadObjectState; which handles local variables, effects, action queue and transition info (for doors and triggers).
•   Updated game credits for 2021, moved button out of OC Campaign to top level Movie menu.

Fixes

•   Game: Fixed savegames causing creatures in areas re-triggering the OnAreaEnter event. This was causing HotU chapter 3 to malfunction after saving and loading.
•   Game: Fixed a rare crash when doors were melee-attacked by a null creature (PW-specific crash).
•   Game: Fixed not storing fog clipping distance for areas when saving games.
•   Game: Fixed a crash when showing a polymorphed creature on the party bar.
•   Game: Fixed Steam Workshop modules not showing up if the .mod extension wasn’t all lowercase.
•   Toolset: Fixed inconsistencies with shadow rendering.
•   Toolset: Fixed second story tile fade in “Always” mode not working correctly.
•   Toolset: Areas are now considered modified when undo stack is changed
•   Toolset: Undo now works for mouse wheel object scaling
•   Toolset: Undo now works for Adjust Location dialog
•   Toolset: Fixed a crash when right-clicking a tile with a recently-selected creature on it.
•   Toolset: Fixed Replace All not working in backwards search mode.
•   VM: Fixed crash in CreateArea() due to heap-use-after-free
•   VM: Fixed a crash when SetResourceOverride was targeting a missing/invalid resource.
•   VM: Fixed a memleak every time CopyObject, CreateObject or CreateArea was called.
•   VM: Area serialisation: Do not save item state twice to GFF (this would needlessly duplicate temporary effects and local vars into savegames and serialised objects).
•   Framelimiter: Opening up the radial menu is no longer considered background/modal.
•   Nui: Fixed nuklear receiving input meant for the console.
•   Nui: Fixed nuklear eating mouse clicks that should go to the radial menu instead.

Tyrants of the Moonsea

•   Prevented use of the map inside the navigation cabin after traveling to a destination.
•   Covered some poor camera rotations when transitioning out of the sea map.
•   Removed an xp exploit in Ulblyn's conversation.

NWScript API Additions
https://steamcommunity.com/games/704450/announcements/detail/4937623885488560123

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #55 on: September 30, 2021, 11:48:20 PM »
Patch 8193.33: Pathfinding Improvements & Bug Fixes
Thu, September 30, 2021

Greetings from the Neverwinter Nights team!

We’re pushing Build 85.8193.33 to the live branch!

Patch notes:
•   Fixed local multiplayer failing with error 110622
•   Fixed a crash when some PLT textures failed to load
•   Fixed area tile source lights showing up as red when they previously were off after a game save & load
•   Fixed some pathfinding regressions where creatures had difficulties leaving corridors/rooms
•   Fixed a crash in the GetPlayerDeviceProperty script call when passing in an invalid player object
•   Updated Steam SDK to version 152. This should fix the Mac M1 build not running natively when launched from Steam
•   Added a message box when the user directory fails to initialise (instead of crashing). This is most commonly caused by Antivirus preventing write access to the Documents directory

This will be the last stable patch in a while! We want to thank you all again for your continued feedback!

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #56 on: November 24, 2021, 12:03:23 AM »
The HD Models & Textures Pack for Neverwinter Nights: Enhanced Edition
Tue, November 23, 2021



Good day to all Neverwinter Nights adventurers!

Beamdog is happy to announce that after several years of hard work, Neverwinter Nights: Enhanced Edition
models of player characters and their equipment (armor, weapons and shields) have finally been remade! Thank you kindly for your patience and support over these years!♥️



Attention: using remade models on lower-end machines can lead to potential problems with the game performance.

This is why we’ve decided to provide a separate link for all our players to download The HD Models & Textures Pack for Neverwinter Nights: Enhanced Edition (4.1 gb). This pack includes updated models of weapons and shields previously released as the Steam Workshop content.





New models now support normal and spec information. All of these pieces can be further modded by the community, which is in line with the base game setup.


Download: https://files.beamdog.com/

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #57 on: November 29, 2021, 11:47:46 PM »
Development Build 86.8193.34
Mon, November 29, 2021

Hello, friends.

Today, we ship build .34 to DEV. Please test it against your custom content and on your servers!


It contains:

Fixes
Apple M1: Fixed audio crackle when decoding mp3 files, including voiceovers.
Pathfinding: Fixed a case where pathing was bailed on too early, resulting in incorrect behaviour that was regressed in the previous patch.
Facelift tilesets tts02 tcm02: Addressed various texture and model issues.
ResMan: Fixed two memleaks where it wouldn’t release loaded data instances.
Renderer: Minor fixes to animation start consistency.
Renderer: Fixed animated skinmesh parts going out of sync/being one frame behind.
Renderer: Fixed rough surfaces having a milky sheen at some viewing aspects, especially when using height maps.


QoL Improvements
Game: Disable ctrl-drag selection box on clients when server.player-party-control is off (the default). Note that clients will have to reconnect if you toggle this setting while a game is up.
NWSync: Repositories are now collapsible in the main UI view; this state is remembered in settings.tml.
NWSync: Module versions can now hold a `localalias` field that is used to backreference for StartNewModule(“originalfilename”).
NWSync: Better support for repository-side statistics.
NWSync: Hide modules, campaigns and adverts with empty name labels.
NWSync: Don’t reject repository.json if advert buttons have empty labels and URLs.
Launch Game UI/Repo Manager: Fixed “Show Advert” checkbox label being cut off.
Launch Game UI: Fixed “Advert” panel type displaying a STRREF instead of text when no label is defined in repository.json.


Scriptable UI
Nui: Fixed crash when calling SetGroupLayout() with invalid data.
Nui: Fixed scrollbar size for textedit.
Nui: Text can now override border and scrollbars properties.
Nui: Fixed draw_list scissoring breaking succeeding widget rendering.
Nui: Fixed draw_list scissoring leaving a stale scissor on the GL stack for nested widgets.
Nui: Fixed entries in a list view not scissoring draw_list correctly when scrolling out of view.
Nui: list(): Fixed textedit() widget not working in lists.
Nui: list(): Scrollbars now configurable.
Nui: list(): Fix spacers not advancing row layout correctly.
Nui: Never allow binds to update during construction. This fixes list() array binds degrading to scalar values, among other.
Nui: textedit(): Fixed placeholder sometimes rendering on the succeeding widget instead.
Nui: textedit(): Fixed range event triggering too often or with wrong values.
Nui: Added demo code for spreadsheet UI.
Nui: Fixed “list” widget not showing a vertical scrollbar in AUTO mode.


Premium Modules
Tyrants of the Moonsea: Fixed ship's cabin navigation map occasionally disabling erroneously.

New Script Commands

Code: [Select]
// Returns the number of script instructions remaining for the currently-running script.
// Once this value hits zero, the script will abort with TOO MANY INSTRUCTIONS.
// The instruction limit is configurable by the user, so if you have a really long-running
// process, this value can guide you with splitting it up into smaller, discretely schedulable parts.
// Note: Running this command and checking/handling the value also takes up some instructions.
int GetScriptInstructionsRemaining();

// Returns a modified copy of jArray with the value order changed according to nTransform:
// * JSON_ARRAY_SORT_ASCENDING, JSON_ARRAY_SORT_DESCENDING
//    Sorting is dependent on the type and follows json standards (.e.g. 99 < "100").
// * JSON_ARRAY_SHUFFLE
//   Randomises the order of elements.
// * JSON_ARRAY_REVERSE
//   Reverses the array.
// * JSON_ARRAY_UNIQUE
//   Returns a modified copy of jArray with duplicate values removed.
//   Coercable but different types are not considered equal (e.g. 99 != "99"); int/float equivalence however applies: 4.0 == 4.
//   Order is preserved.
// * JSON_ARRAY_COALESCE
//   Returns the first non-null entry. Empty-ish values (e.g. "", 0) are not considered null, only the json scalar type.
json JsonArrayTransform(json jArray, int nTransform);

// Returns the nth-matching index or key of jNeedle in jHaystack.
// Supported haystacks: object, array
// Ordering behaviour for objects is unspecified.
// Return null when not found or on any error.
json JsonFind(json jHaystack, json jNeedle, int nNth = 0, int nConditional = JSON_FIND_EQUAL);

// Returns a copy of the range (nBeginIndex, nEndIndex) inclusive of jArray.
// Negative nEndIndex values count from the other end.
// Out-of-bound values are clamped to the array range.
// Examples:
//  json a = JsonParse("[0, 1, 2, 3, 4]");
//  JsonArrayGetRange(a, 0, 1)    // => [0, 1]
//  JsonArrayGetRange(a, 1, -1)   // => [1, 2, 3, 4]
//  JsonArrayGetRange(a, 0, 4)    // => [0, 1, 2, 3, 4]
//  JsonArrayGetRange(a, 0, 999)  // => [0, 1, 2, 3, 4]
//  JsonArrayGetRange(a, 1, 0)    // => []
//  JsonArrayGetRange(a, 1, 1)    // => [1]
// Returns a null type on error, including type mismatches.
json JsonArrayGetRange(json jArray, int nBeginIndex, int nEndIndex);

// Returns the result of a set operation on two arrays.
// Operations:
// * JSON_SET_SUBSET (v <= o):
//   Returns true if every element in jValue is also in jOther.
// * JSON_SET_UNION (v | o):
//   Returns a new array containing values from both sides.
// * JSON_SET_INTERSECT (v & o):
//   Returns a new array containing only values common to both sides.
// * JSON_SET_DIFFERENCE (v - o):
//   Returns a new array containing only values not in jOther.
// * JSON_SET_SYMMETRIC_DIFFERENCE (v ^ o):
//   Returns a new array containing all elements present in either array, but not both.
json JsonSetOp(json jValue, int nOp, json jOther);

// Returns the column name of s2DA at nColumn index (starting at 0).
// Returns "" if column nColumn doesn't exist (at end).
string Get2DAColumn(string s2DA, int nColumnIdx);

// Returns the number of defined rows in the 2da s2DA.
int Get2DARowCount(string s2DA);

funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #58 on: May 25, 2023, 12:41:05 AM »
New Patch Arrives Today: Stable Build 8193.35 is Live!
Wed, 24 May 2023



Patch 8193.35 for Neverwinter Nights: Enhanced Edition releases today.

Patch made by the community NOT the devs

Hello adventurers!

Today we’re releasing a new update for Neverwinter Nights: Enhanced Edition. Patch 8193.35 is the result of a year-long love effort by community developers.

Patch Highlights
AOE Indicator | Spells and spell-like abilities now display a targeting indicator displaying their range and, if appropriate, their AOE shape and size
8 Multiclasses | Added support for up to 8 multiclasses, configurable per-module
Faster Load Times | Improved area load times by up to 100x (!)
News Section | Added an in-game News UI that shows upcoming patches and community news
Script-created UI Improvements | “NUI” (script-created UI) will no longer break input to the game (WASD, drag & drop)
Play NWN as a Cartoon | Added a new "Toon" post-processing shader as a graphical option
Goodies for Builders | Hundreds of new functions and goodies for module builders
Hundreds of Bugfixes & Optimizations | More bugs squashed

Check out the full patch notes here: https://nwn.beamdog.net/docs/

Join the community and provide feedback directly to development team members on Discord: https://nwn.beamdog.net/discord (Before posting, please take a moment to carefully read the introductory text in #welcome).

If you're currently subscribed to the development patch, you'll continue with the upcoming .36 patch cycle going forward. If you wish to stick to this stable release (.35), select the “default” branch in Steam/GOG Galaxy/BDC.

Thank you for your support!

Credits

This patch was made entirely by community members: Done entirely for personal enjoyment, out of good will, and with copious amounts of adhesive.

Development team:
clippy, Daz, Jasperre, Liareth, niv, Soren, tinygiant, virusman

With explicit thanks to:
The NWNDEV Discord folks. Your testing and support was and is invaluable.
The Neverwinter Vault.
Nereida and Zwerkules.
Everyone in the community!

Bonus Art

As a bonus, here is an updated key art picture for Neverwinter Nights: Hordes of the Underdark by Mike Sass, redrawn with more detail:



funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Offline Asid

  • HAVOC
  • *
  • Posts: 26361
Re: Neverwinter Nights: Enhanced Edition
« Reply #59 on: July 26, 2023, 01:15:55 AM »
Crimson Tides of Tethyr Enhanced Edition comes to the curated community content
Tue, 25 July 2023



An Enhanced Edition of a classic NWN module Crimson Tides of Tethyr by Luke Scull is now in the game launcher

New curated community content in NWN:EE keeps expanding! An Enhanced Edition of a classic Neverwinter Nights module Crimson Tides of Tethyr by Luke Scull is now available in the game launcher!



A 20-hour adventure with a colorful cast of characters, epic war storyline, and tactically challenging encounters inspired by Baldur's Gate, this Enhanced Edition features rewritten dialogue, visual improvements, bug fixes, new systems and quality-of-life improvements, a new hour of gameplay content, and 100 new lines of voiced dialogue.



Check out more details here: http://curated.nwn.beamdog.net/#50034a83-aacd-4e2a-b7e7-c6e722ed7fb8
funny
0
informative
0
Thanks
0
No reactions
No reactions
No reactions

I stand against Racism, Bigotry and Bullying

Tags:
     

    Crossroads Inn Anniversary Edition

    Started by Asid

    Replies: 9
    Views: 5484
    Last post June 28, 2022, 12:43:33 AM
    by Asid
    Kickstarter: Empire Deluxe Combined Edition

    Started by Greybriar

    Replies: 1
    Views: 2563
    Last post August 10, 2017, 08:58:52 PM
    by Asid
    Age of Empires II: HD Edition

    Started by Asid

    Replies: 82
    Views: 49476
    Last post September 07, 2018, 11:57:28 AM
    by Asid
    Age of Empires III: Definitive Edition

    Started by Asid

    Replies: 0
    Views: 1643
    Last post August 29, 2020, 11:23:41 AM
    by Asid
    World in Flames Collector's Edition Deluxe

    Started by Asid

    Replies: 5
    Views: 3841
    Last post September 09, 2017, 05:30:30 PM
    by Asid