

The native Linux version is outdated and won't allow crossplay with Windows players, but running the game through Proton works perfectly!

All the Total War games from Total War: Medieval II, up to Total War: Atilla, I have tested and they work great with my instructions
d3dx9_42, d3dx9_43, d3dx11_42, d3dx11_43, d3dcompiler_42, d3dcompiler_43, d3dcompiler_46, d3dcompiler_47
30 fps
Coop Campaign
There are some things you must do to each and every Total War game from Total War Empire, all the way up to Total War Atilla to run them smoothly, luckly they are a one time thing. Only Total War: Empire needs a few extra tweeks.
With my instructions, you should be fine to use either dx11 or dx9. I prefer dx11.
Step one: Use protontricks to install missing dll files (I may have used too many but if you download these for the total war games I listed above, it will work every time so I haven't messed with them). Please install d3dx9_42, d3dx9_43, d3dx11_42, d3dx11_43, d3dcompiler_42, d3dcompiler_43, d3dcompiler_46, d3dcompiler_47
Step two: confirm you are running on Proton Experimental (If you don't set the compatability to a version of proton, steam will automatically download the native linux version which you DO NOT WANT, most of them have been broken for quite some time. The Windows versions run better than the linux versions anyways).
(Only if you are playing Total War: Empire) Step three: Go to https://github.com/ValveSoftware/Proton/issues/7074#issuecomment-1948807811 and follow the instructions to fix Total War: Empire.
Step four: Profit!
P.S. As of today I have tested out these Total War games with the above steps and they have all worked on March 10th, 2025: Total War: Empire, Total War: Napoleon, Total War: Shogun II, Total War: Rome II, Total War: Atilla.
Total War Medieval II works great too, but other people have already covered it. If you do try to play it, make sure to use Desktop Mode since running it in gaming mode causes massive fps drops when hovering over UI Prompts. Also make sure to set your proton compatability (preferably Experimental) because otherwise it will download the native linux version which is broken
Native doesn't start but running it with Proton does

Although supposedly native linux compatible, couldn't launch natively. Had to play through Proton 9.0-4. Had to play through DX9.
gamemoderun %command%
The game runs smooth under DX9.
Could not run it through DX11, would load the main menu and crash clean to desktop right after pressing play tutorial.

Problem when i put in fullscreen, changing to DirectX9 helped
Use Proton Experimental

I wouldn't call us trying to play this game in Linux to be "typical gamers" so I'm not sure why this is a question here. It is enjoyable.
Gefreiter Günther is spot on with this, as well as a couple of other ProtonDB reporters before him who nicely included the specific protontricks command to use. Skipped doing native for this one cause my immutable distro is incapable of building the DLLs - I could probably build them using a cloud server/VPS but it was not worth the hassle.
The fix involves using protontricks. protontricks 34330 d3dx11_42 d3dcompiler_43 Specifically these commands when using flatpak protontricks: export PROTON_VERSION="Proton Experimental" flatpak run com.github.Matoking.protontricks 34330 d3dx11_42 d3dcompiler_43
Suffers from a little annoying flickering of light when hovering mouse to selectables - greatly reduced when disabling V-Sync.
Given the remarks here in ProtonDB about playing this game in DirectX 9, I believe the efforts to be worth it.

Once you successfully tinkered the game, the game has similar or slightly better performance on Linux than on Windows.
LD_PRELOAD=/opt/shogun2-fix/libc_mprotect.so:/opt/shogun2-fix/libc_dlopen_mode.so %command%
Follow the instructions from this link: https://github.com/GitoMat/Shogun2-Linux-Fix After you compiled and installed the libraries, make sure to replace the official "Shogun2.sh" file with the GitHub repository's "Shogun2.sh" file so the game can launch properly.

SP works great on Bazzite 40 on Wayland KDE.

Game runs with DX9 but I don't notice any serious issues, graphics are fine. Since Ubuntu 24.04 had to switch from native to proton.
DRI_PRIME=1 %command%
The game should have defaulted to Proton, as it's not playable out of the box on Ubuntu 24.04 without forcing Proton.

Game seems significantly slower than native when using the DX 9 renderer, but playable framerates can still be achieved.
The DirectX 11 renderer does not work under Proton. The initial menu can be viewed, but launching into a battle will immediately crash the game. The DirectX 9 renderer is functional, but seems much less performant than might be expected. Although the Native build by Feral has some issues in 2024, it is still very playable with some patching (a search can lead you to the intructions for doing so). That currently seems like the best option for playing this on Linux.

Bad library
I start Steam on the command line to see the log, and I get the following message: You're missing vital libraries to run Total War SHOGUN 2 I think the game was bundled with old libs of a specific distro that requires other specific libs to be present that don't really exist for my distro. I do have multilib enabled and some basic lib32 stuff installed but I don't want to tinker.

Proton GE 7-43 DirectX 9
Can be pretty small
So I followed the steps that user Steve.greenaway added, and the game suddenly works perfectly. The controls almost feel native to steam deck even.

Game runs well for the most part with some occassional crashes; Proton needed to have a multiplayer game with Windows users
DX11 version would result in major graphical artifacts that render the game technically playable, but unenjoyable DX9 version worked as expected
Game would occassionally crash after 1-2 hours of gameplay, cause of this is unknown
If you are on the native version, I can't seem to join games with Windows users. I had to switch over to Proton and use one of the DirectX versions in order to play with them.
Game launches but is very buggy. The main menu looks like it has assets missing. Tried on default proton, experimental and GE.

LD_PRELOAD=/opt/shogun2-fix/libc_mprotect.so:/opt/shogun2-fix/libc_dlopen_mode.so %command%
I followed the instructions from this page: https://github.com/GitoMat/Shogun2-Linux-Fix To compile the packages on openSUSE, I had to do: zypper install base-devel gcc-32bit These packages are equivalent to build-essential gcc-multilib in Ubuntu
It seems like the installation is outdated and cannot be played natively in linux on an up-to-date distribution without a work around. For this reason a fix is needed to circumvent the issue with glibc versions > 2.34 .
But the fix is easy to apply.
I did not try running it through Proton.

The game didn't run with DirectX 11, the textures were void and I could only get as far as in the Main Menu, couldn't start a new game. It worked fine with DirectX 9 with Proton only, but the graphics were way too bad, and sound was continuosly crackling.
Installing d3dcompiler_43.dll and d3dx11_42.dll via Protontricks did the trick for me. Have played several times with ultra settings, haven't spotted much trouble so far.

Used proton, works out of the box
Used proton 9.0-2 (current version) and chose Directx 9 in launch, no problems.

I downloaded the Shogun2.sh from Shogun 2 Linux Fix github and replaced the .sh file in the Shogun 2 Install Folder.
To de-linux how the fix works at https://github.com/GitoMat/Shogun2-Linux-Fix I'll walk step by step how I did it.
Install basic build tools: sudo apt install build-essential gcc-multilib
(Easy, open terminal and paste the command and run it)
Make clean install to install libraries in /opt/shogun2-fix:
(Download the shogun2-linux-fix code as a ZIP; then Unzip/Uncompress)
-Copy that folder and find /opt in file explorer
-Then open location as root {for me this was a right-click option on a empty space} paste that folder in /opt and rename it to shogun2-fix if needed.
-Go back to terminal and type cd /opt/shogun2-fix
-Then run make clean install or make clean all)
The final part is to replace the Shogun.sh that is in the game's install folder with the one that comes with the fix. Its simpler then editing it yourself and running a Launch Option.

I use Proton 9.0-1 (currently newest version) to play the game with DirectX 11.
In Winetricks, install d3dcompiler_43.dll and d3dx11_42.dll. The newer DDLs do NOT work! Make sure, the DLLs appear in the winetricks.log file afterwards. The DDLs should also be listed in winecfg.
Then start the game using DirectX 11 in Steam, as you would normally do.
I used this guide from the steam forums, which also refers this post on Reddit.
The game is only able to start with DirectX 11, if the files "d3dcompiler_43.dll" and "d3dx11_42.dll" are added to the wine configuration using winetricks!

The game may falsely claim your system doesn't meet the requirements
the game notifies me that my system doesn't meet the requirements, but it has worked perfectly so far.

Installed the following components with protontricks:
d3dcompiler_43 d3dcompiler_47 d3dx11_42 d3dx11_43
Select Directx 11 in the in-game video options if it isn't already selected. Tweaks were based on other reviews here and the following guide: https://steamcommunity.com/app/34330/discussions/0/3712685279008395434/

The game simply didnt start.

DX9 instead of DX11
DX11 had black unit models on the Daimyo selection screen, and crashed upon starting the game. DX9 worked without hitch, and I was able to fully play a campaign start to finish.

Game does not launch & has to be forced to stop. Same happend on forced experimental
Unplayable

The game simply does not run natively.
Attempted the glibc fix at https://github.com/GitoMat/Shogun2-Linux-Fix , have not been able to get it to run though.
I haven't attempted to use proton because it then has to re-download the Windows version of the game. Hitting play fails to start the game and this issue seems to affect pretty much everyone who tries. It will require a dev to actually repair the linux native version if it's to function. It would shame to have to deprecate it.

prime-run %command%
Followed a steam guide, installed d3dcompiler and d3dx11 (latest) then d3dcompiler_43 and d3dx11_42. Suddenly, it worked
Follow this guide: https://steamcommunity.com/sharedfiles/filedetails/?id=2898667578

To run the native version I needed two different glibc fixes (one of them already mentioned here below by user PsychoPewPew), which I put in a GitHub repo for convenience: https://github.com/GitoMat/Shogun2-Linux-Fix

Have to us DirectX9
You cant use Steams proton as steam will just redownlode the game, you will need to have adobe flash player installd and you can only play in DirectX9, trying DirectX11 will have the game reinstalling it self.

mangohud %command%
d3dx11_42
For KDE, you need to disable the compositor so you don't see some screen tearing
I used: protontricks 34330 d3dx11_42 To install the missing directx 11 library, without it the game crashed at launchh selecting dx11

for some reason i had to install d3dcompiler_43 and d3dcompiler_47, d3dx11_42 and d3dx11_43, force the renderer to vulkan and windows 7
after a couple of hours, if you open the ingame encyclopedia, it crashes
it's a chore to configure it, but after that is just setup and forget

protontricks 34330 d3dx11_42
The protontricks fix is necessary to play the game with directx 11. If you instead choose directx 9, it should run with no tinkering. The fix was taken from the proton compatibility report: https://github.com/ValveSoftware/Proton/issues/7110 -- and also, if you prefer to run the native version which doesn't work anymore, another bug reports has a potential fix: https://github.com/ValveSoftware/steam-runtime/issues/613

So initially both the Native Linux port and even default proton running any version would straight up die
gamemoderun %command%
I had to force wine to run in Window 7 and install two DLLs that being the latest version of d3dcompiler and d3dx11 (also make sure you run the game in DX11 mode for this to work)
Requires some more setup with protontricks in order to get this game to a playable state. But after doing my protontricks workaround it works just like it would on Windows with no issues!

The native version is broken and playing through proton incurs a significant performance penalty currently.
gamemoderun mangohud %command%
I had to add missing DLL since it wouldnt otherwise boot.
I experienced severe FPS drops, caused by the single thread nature of the game and compatibility.