Slow to launch

For some reason launching the game is very slow. In the FAF client output (v 2022.11.0), the delays occur on lines like this:

2022-11-25 21:06:04.698 DEBUG 42552 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: %USER_PROFILE%/.faforever/cache/divisions/diamondIV_medium.png
2022-11-25 21:06:19.534 DEBUG 42552 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: %USER_PROFILE%/.faforever/cache/maps/large/astro_crater_battles_4x4_v2-2_teamplay_ai.v0001.png
2022-11-25 21:06:37.517 DEBUG 42552 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: %USER_PROFILE%/.faforever/cache/maps/small/faf_coop_operation_blockade.v0001.png
2022-11-25 21:06:42.545 DEBUG 42552 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: %USER_PROFILE%/.faforever/cache/maps/large/astro_crater_battles_5vs5.v0001.png

Why would there be a ~10s delay on each line? My internet is kinda slow but I don't see net activity here. My system should otherwise be plenty fast enough.

It has nothing to do with your game being slow.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

I suspect not. More likely the client.

I think these logs are a red herring, this looks more like loading map previews for games showing up in the game browser.

You can't just correlate random logs with your problem. If you read closely the message tells you about using cached image, so there is no download involved for these logs.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

No, but I do know that the time between each of those messages being generated is seconds. It could of course be something else happening in between, but the way loops usually operate is to focus on one job at a time.

Sorry, I should clarify: sometimes launching the game is very slow, with messages like this taking several seconds each to appear. Other times launches are fast enough.

And Brutus5000 is right. Don't pay attention to the debug messages. Every player has it

I suppose this could be caused by packet loss. Pings sometimes show 1% or so. I know, I really need a better connection.

@cyborg16
As said those are just noise message. They are messages from loading the map images that show the games in the play tab.

They are loaded as games appear in the list which come from start messages which are created whenever any one starts a game so have no specific timing associated with them.

I don't believe it's the client being slow: "Starting Forged Alliance with command" happens soon enough.

Extracting the launch proton command and attempting to run that directly is still slow, so it appears the culprit is Steam. DRM perhaps? I don't notice much CPU or net activity.

GOG is also selling SupCom very cheaply at the moment and supposedly uses no DRM, so I'll try that.

Using the GOG version doesn't fix anything it seems. Looking at the game log, the delay happens before these lines are printed:

warning: Failed to create DirectSound.
info: MD5 of global settings: d2a23d6464d3fd77956e7648c43b5077
warning: SND: Error initializing audio engine.
         Unknown XACT Error

... unless this is a separate error. I now have no sound in game.

This runs fine (vanilla game): ./run-GOG

This has very slow launch (like 1 minute with no apparent CPU or net activity), and no sound: ./run-GOG $HOME/.faforever/bin/ForgedAlliance.exe

This also runs fine: ./run-GOG path/to/steam/version/bin/SupremeCommander.exe

The full log is below. The only output before the delay is the first line (wineserver).

... so I guess the delay has something to do with the executable. (GOG version is 12.4MB, Steam is 13.2MB, FAF is 12.9MB.)

wineserver: using server-side synchronization.
info:  Game: ForgedAlliance.exe
info:  DXVK: v1.7.3-37-g3f91cdbc
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
Unable to read VR Path Registry from C:\users\steamuser\Local Settings\Application Data\openvr\openvrpaths.vrpath
warn:  OpenVR: Failed to initialize OpenVR
info:  Enabled instance extensions:
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  AMD Radeon Graphics (RADV NAVI22):
info:    Driver: 22.2.3
info:    Vulkan: 1.3.224
info:    Memory Heap[0]: 
info:      Size: 9984 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:      Memory Type[5]: Property Flags = 0xc1
info:    Memory Heap[1]: 
info:      Size: 16018 MiB
info:      Flags: 0x0
info:      Memory Type[2]: Property Flags = 0x6
info:      Memory Type[4]: Property Flags = 0xe
info:      Memory Type[6]: Property Flags = 0xc6
info:      Memory Type[8]: Property Flags = 0xce
info:    Memory Heap[2]: 
info:      Size: 256 MiB
info:      Flags: 0x1
info:      Memory Type[3]: Property Flags = 0x7
info:      Memory Type[7]: Property Flags = 0xc7
info:  Process set as DPI aware
info:  Device properties:
info:    Device name:     : AMD Radeon Graphics (RADV NAVI22)
info:    Driver version   : 22.2.3
info:  Enabled device extensions:
info:    VK_AMD_memory_overallocation_behavior
info:    VK_AMD_shader_fragment_mask
info:    VK_EXT_4444_formats
info:    VK_EXT_custom_border_color
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_extended_dynamic_state
info:    VK_EXT_host_query_reset
info:    VK_EXT_memory_priority
info:    VK_EXT_robustness2
info:    VK_EXT_shader_demote_to_helper_invocation
info:    VK_EXT_shader_stencil_export
info:    VK_EXT_shader_viewport_index_layer
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_create_renderpass2
info:    VK_KHR_depth_stencil_resolve
info:    VK_KHR_draw_indirect_count
info:    VK_KHR_driver_properties
info:    VK_KHR_image_format_list
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_swapchain
info:  Device features:
info:    robustBufferAccess                     : 1
info:    fullDrawIndexUint32                    : 1
info:    imageCubeArray                         : 1
info:    independentBlend                       : 1
info:    geometryShader                         : 1
info:    tessellationShader                     : 0
info:    sampleRateShading                      : 1
info:    dualSrcBlend                           : 0
info:    logicOp                                : 0
info:    multiDrawIndirect                      : 0
info:    drawIndirectFirstInstance              : 0
info:    depthClamp                             : 1
info:    depthBiasClamp                         : 1
info:    fillModeNonSolid                       : 1
info:    depthBounds                            : 1
info:    multiViewport                          : 1
info:    samplerAnisotropy                      : 1
info:    textureCompressionBC                   : 1
info:    occlusionQueryPrecise                  : 1
info:    pipelineStatisticsQuery                : 1
info:    vertexPipelineStoresAndAtomics         : 1
info:    fragmentStoresAndAtomics               : 0
info:    shaderImageGatherExtended              : 0
info:    shaderStorageImageExtendedFormats      : 1
info:    shaderStorageImageReadWithoutFormat    : 0
info:    shaderStorageImageWriteWithoutFormat   : 1
info:    shaderClipDistance                     : 1
info:    shaderCullDistance                     : 1
info:    shaderFloat64                          : 0
info:    shaderInt64                            : 0
info:    variableMultisampleRate                : 0
info:  VK_EXT_4444_formats
info:    formatA4R4G4B4                         : 1
info:    formatA4B4G4R4                         : 1
info:  VK_EXT_custom_border_color
info:    customBorderColors                     : 1
info:    customBorderColorWithoutFormat         : 1
info:  VK_EXT_depth_clip_enable
info:    depthClipEnable                        : 1
info:  VK_EXT_extended_dynamic_state
info:    extendedDynamicState                   : 1
info:  VK_EXT_host_query_reset
info:    hostQueryReset                         : 1
info:  VK_EXT_memory_priority
info:    memoryPriority                         : 1
info:  VK_EXT_robustness2
info:    robustBufferAccess2                    : 0
info:    robustImageAccess2                     : 0
info:    nullDescriptor                         : 1
info:  VK_EXT_shader_demote_to_helper_invocation
info:    shaderDemoteToHelperInvocation         : 1
info:  VK_EXT_transform_feedback
info:    transformFeedback                      : 0
info:    geometryStreams                        : 0
info:  VK_EXT_vertex_attribute_divisor
info:    vertexAttributeInstanceRateDivisor     : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  Queue families:
info:    Graphics : 0
info:    Transfer : 1
warn:  DXVK: No state cache file found
warn:  DXVK: Creating new state cache file
info:  DXVK: Using 10 compiler threads
info:  D3D9DeviceEx::ResetSwapChain:
info:    Requested Presentation Parameters
info:      - Width:              3840
info:      - Height:             2160
info:      - Format:             D3D9Format::A8R8G8B8
info:      - Auto Depth Stencil: false
info:                  ^ Format: D3D9Format::Unknown
info:      - Windowed:           false
warn:  winevulkan detected, disabling exclusive fullscreen support
info:  Presenter: Actual swap chain properties:
info:    Format:       VK_FORMAT_B8G8R8A8_UNORM
info:    Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info:    Buffer size:  3840x2160
info:    Image count:  3
info:    Exclusive FS: 0
info:  Setting display mode: 3840x2160@60
warn:  D3D9DeviceEx::SetRenderState: Unhandled render state D3DRS_ADAPTIVETESS_X
warn:  D3D9DeviceEx::SetRenderState: Unhandled render state D3DRS_ADAPTIVETESS_Y
warn:  D3D9DeviceEx::SetRenderState: Unhandled render state D3DRS_ADAPTIVETESS_W
info:  Presenter: Actual swap chain properties:
info:    Format:       VK_FORMAT_B8G8R8A8_UNORM
info:    Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info:    Buffer size:  3840x2160
info:    Image count:  3
info:    Exclusive FS: 0
info:  Restoring display mode: 3840x2160@60
info:  Setting display mode: 3840x2160@60

Remind me why I don't like C++: FA_Patcher. This thing uses mingw (or at least g++) and MSVC (io.h).