Darwinia 2.3.0 release

Darwinia

Combining fast-paced action with strategic battle planning, Darwinia features a novel and intuitive control mechanism, a graphical style ripped from 80's retro classics like Tron and Defender, and a story concerning a tribe of nomadic sprites trapped in a modern 3D world.

There have been several changes since the previous release, v2.2.0-296. Major changes: [list] [*] Vulkan/Metal: Multi-sampling Antialiasing (MSAA) performance is dramatically improved on some systems. When supported, we now use Multisampled Render To Texture (MSRTT) instead of a render followed by an explicit blit to resolve. This benefits tile-based rendering GPUs especially (e.g. Apple M1/M2, etc), since Vulkan and Metal can both use very fast temporary “memoryless” textures for the multisampled color and depth buffers. [*] Vulkan/Metal: Apple GPUs can now use lossless compression for textures and framebuffers, which dramatically reduces memory bandwidth and improves performance. [*] Vulkan: AMD GPUs can now use lossless compression for textures and framebuffers (DCC, or “Delta Color Compression”), which improves performance. [*] Vulkan/Metal/Direct3D: On systems with multiple distinct GPUs (e.g. laptops with integrated graphics + discrete GPU, or with external GPUs), you can now select which device you want to render on in the Screen preferences. [*] Vulkan/Metal: Fixed some awful-looking incorrect shading results around the edges of primitives affected by lighting. There seems to be either a shader compiler or hardware bug causing this, but we have worked around the problem by setting a [[sample_mask]] output in the Metal shader (even when multisampling is off). Unfortunately, this same bug is still present in Apple's built-in OpenGL-on-Metal implementation, and a workaround is impossible there since we have no influence on the generated Metal Shading Language code. It's strongly recommended to only use the Vulkan/Metal renderers on macOS. [*] OpenGL: Fixed a bug where glTexStorage* calls were incorrectly being used on OpenGL 3.3-compatible systems which did not have the GL_ARB_texture_storage extension. [*] Direct3D: Enabled support for DirectComposition, to allow using the D3D "Flip" model. [*] SMAA/FXAA: Fix sampler bugs on some systems, which resulted in a completely black screen when either of these antialiasing methods were enabled. [*] Sound: Fixed some significant channel mapping bugs if using fewer channels than the device supports (e.g. 2-channel on 7.1-channel hardware) [*] Renderer: Shaders are now pre-compiled on startup, which should eliminate a lot of random frame hitches. [*] Renderer: Textures are now pre-loaded on startup, which may eliminate frame hitches when previously unused textures are required. [*] Renderer: Implemented caching for shader binaries and render pipelines. [*] Renderer: Worked around a long-standing Windows AMD Vulkan graphics driver bug that caused the game to crash whenever alt-tabbing out of full screen mode. [*] Renderer: Borderless Fullscreen mode now respects the resolution preference, and scales the image to fit the desktop resolution. [*] Renderer: Reduced memory usage for several textures that internally require only one or two color channels. [*] Windows: The FPS overlay (Shift+F5) in the top left now can display system and GPU memory utilized by the game. [*] Windows: Fixes for filesystem unicode path handling on Windows versions older than Windows 10 build 17134. [*] macOS: Improved performance on Apple Silicon. [*] Windows: Improved audio latency. [*] Camera: Fixed some FOV bugs with cutscenes. [*] Camera: Fixed some movement bugs when skipping cutscenes. [*] Darwinian: FIxed some bugs with Darwinians not detecting nearby enemies quickly enough. [*] Darwinian: Now will recognize certain building types as enemies and flee from them. [*] Spiders: Made spiders look less ridiculous when landing after a jump. [*] Gun Turret: Now will recognize certain building types as enemies and attack them. [*] Fixed broken savegame behavior for Launchpad (the Prologue game map). [*] Modified automatic UI scaling to better handle ultrawide aspect ratios (e.g. 21:9). [*] Fixed another bug where Spiders might stetch in weird ways to attempt to attack Air Strike units. [*] Greatly improved performance of the sphere world's "Internet" render. [*] Sound system performance is much better and more consistent. [*] Updated game controller database. [*] Updated contributing libraries (MoltenVK, ANGLE, SDL, etc). [/list] Known issues: [list] [*] macOS: On MacBook Pro 14"/16" with 120Hz displays (or in fact any Mac with > 60Hz displays) there is stuttering in full screen mode. I have not found a programmatic workaround to this problem, as it relates to the "Direct-to-Display" feature in Metal which cannot be opted out of. Players can work around this by running the game in Windowed mode, or by using a fixed <= 60Hz refresh rate in the system's Display preferences. We have an open bug with Apple about this problem and will continue to look for a better solution. [*] Windows: Some applications (e.g. Overwolf, RivaTuner Statistics Server, etc) may inject Vulkan layers into the game process, even if those applications are installed but not actually running. Some of these layers are known to cause occasional crashes when using the Vulkan renderer. To work around this, either uninstall those applications or use a different renderer in the Screen preferences (OpenGL or Direct3D 11). [*] Windows: You may experience crashes on Intel graphics drivers. The cause of these crashes isn't known yet. [*] Windows: The Vulkan renderer may appear to stutter when running in windowed mode on NVIDIA graphics cards. NVIDIA is investigating this problem. [*] Windows: There is a bug in the AMD graphics drivers that causes the Vulkan extension VK_EXT_full_screen_exclusive to be enabled in "application controlled" mode when not requested. This causes unexpected Vulkan error codes to be reported when alt-tabbing out of full screen mode. There is a workaround in this release to deal with the driver bug, but it is strongly recommended that users upgrade to AMD graphics driver version 22.10.3 or later, which has the fix for this issue. [/list]