The game needs the proprietary Windows Segoe UI fonts in order not to crash when viewing unit details. There's nothing Proton can really do about this, though the SIL licensed Selawik font does exist.
When new messages are shown on battlefield map and then dismissed, the screen flickers black, once again seemingly from the game's redraw phase. (See previous video above for an example)
Even if the above issues could be resolved, the game renders very slowly and thus moves sluggishly. Moving around the map, zooming in and out all feel very sluggish and slow.
Reproduction
For the second and third issues, just run the game and start a new campaign to quickly see the issue.
For fourth issue, launch the game in fullscreen through gamescope, and right click on a unit on the battlefield screen.
For the performance issue, scroll around the main battlefield map. To get a feel for the true scope of the performance issues, toggle the supply view (this screenshot shows which button you can press to toggle it), and you will see that the game slows to a crawl.
Additional information
This game is part of the Strategic Command series. There are several other games in this series that share the exact same engine. None of them have open issues, but they likely the exact same problems as this one:
Strategic Command WWII: War in Europe (593030)
Strategic Command WWII: War in the Pacific (2740080)
Strategic Command: World War I (1096930)
Strategic Command: American Civil War (1966130)
After debugging the issue for a while, I believe that this game probably ends up using GDI. gdiplus.dll is shipped as part of the game. Based on my personal experience, pure GDI rendering in Wine is extremely slow.
Under the hood, it seems the game uses SDL. Unfortunately, this seems to be the deprecated SDL 1.2 version, and not SDL2 or SDL3.
SDL1 supports two engines for drawing under Windows. windib and directx. The windib option uses GDI, and the directx option uses, I believe, DirectDraw. I tried to set SDL_VIDEODRIVER=directx in the Wine prefix, but that did not seem to have any effect. I believe that this is because the game might be overriding the setting itself. I believe there is a code path that sets SDL_VIDEODRIVER explicitly to windib, and SDL1 reads that environmental variable before initializing the video subsystem. My only real evidence for that is the presence of the following string:
Forcing the game to use DirectDraw together with a solution like cnc-ddraw sounded interesting to me, but I haven't succeeded so far.
Initially I tried to compile SDL1 from source with a couple of lines changed to it defaults to directx anyway, but I found no instructions on how to compile for Windows so I gave up. I also tried to launch the game with the sdl12-comat project, but that makes the game crash instantly.
Compatibility Report
System Information
I confirm:
Proton log:
steam-957720.log
Symptoms
Segoe UIfonts in order not to crash when viewing unit details. There's nothing Proton can really do about this, though the SIL licensed Selawik font does exist.Reproduction
Additional information
This game is part of the Strategic Command series. There are several other games in this series that share the exact same engine. None of them have open issues, but they likely the exact same problems as this one:
After debugging the issue for a while, I believe that this game probably ends up using GDI.
gdiplus.dllis shipped as part of the game. Based on my personal experience, pure GDI rendering in Wine is extremely slow.Under the hood, it seems the game uses SDL. Unfortunately, this seems to be the deprecated SDL 1.2 version, and not SDL2 or SDL3.
SDL1 supports two engines for drawing under Windows.
windibanddirectx. Thewindiboption uses GDI, and thedirectxoption uses, I believe, DirectDraw. I tried to setSDL_VIDEODRIVER=directxin the Wine prefix, but that did not seem to have any effect. I believe that this is because the game might be overriding the setting itself. I believe there is a code path that setsSDL_VIDEODRIVERexplicitly towindib, and SDL1 reads that environmental variable before initializing the video subsystem. My only real evidence for that is the presence of the following string:Forcing the game to use DirectDraw together with a solution like
cnc-ddrawsounded interesting to me, but I haven't succeeded so far.Initially I tried to compile SDL1 from source with a couple of lines changed to it defaults to
directxanyway, but I found no instructions on how to compile for Windows so I gave up. I also tried to launch the game with the sdl12-comat project, but that makes the game crash instantly.