| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| games:linux:dota_2_steamcmd [2025/04/14 05:50] – [Desktop Launcher] Sean Rhone | games:linux:dota_2_steamcmd [2025/09/21 03:17] (current) – Sean Rhone |
|---|
| ====== Information ====== | ====== Information ====== |
| |
| * [[https://www.dota2.com/|Dota 2]] | * Dota 2 ((https://www.dota2.com/home)) ((https://store.steampowered.com/app/570/Dota_2/)) |
| * [[https://developer.valvesoftware.com/wiki/SteamCMD|SteamCMD]] | * SteamCMD ((https://developer.valvesoftware.com/wiki/SteamCMD)) |
| * [[https://mr_goldberg.gitlab.io/goldberg_emulator/|Goldberg Emulator]] | * Goldberg Steam Emulator ((https://mr_goldberg.gitlab.io/goldberg_emulator/)) |
| | * https://blog.realmofespionage.xyz/?p=139 |
| |
| * These notes allow downloading Dota 2 using SteamCMD and running it in offline mode ((I only do singleplayer local bot matches; LAN usage is untested)) | * These notes allow downloading Dota 2 using SteamCMD and running it in offline mode |
| |
| ===== Media ===== | ===== Media ===== |
| ===== Prerequisites ===== | ===== Prerequisites ===== |
| |
| * [[linux;distros;debian_12_xfce|Debian 12 (Xfce)]] | * [[linux;distros;opensuse_tumbleweed_gnome|openSUSE Tumbleweed (GNOME)]] |
| |
| ===== Resources ===== | ====== Quick Update ====== |
| | |
| * https://github.com/SteamDatabase/GameTracking-Dota2/tree/master/game/bin/linuxsteamrt64 | |
| | |
| ====== AIO Update ====== | |
| |
| * Dota 2 (570) + Sniper Runtime (1628350) + OHA bot scripts (Git) | * Dota 2 (570) + Sniper Runtime (1628350) + OHA bot scripts (Git) |
| cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '1628350' +quit && rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/forest0xia/dota2bot-OpenHyperAI.git' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && mv ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' && sync && cd ~ | cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '1628350' +quit && rm -Rf ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && git clone --branch 'main' --depth '1' --recurse-submodules 'https://github.com/forest0xia/dota2bot-OpenHyperAI.git' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI' && mv ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts/OpenHyperAI/bots' ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' && sync && cd ~ |
| |
| * Validate | ====== Dependencies ====== |
| |
| cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' validate +quit && sync && cd ~ | **** |
| | |
| | sudo zypper install 'git-core' |
| |
| ====== SteamCMD ====== | ====== SteamCMD ====== |
| |
| * :!: This and ''validate'' may need re-ran multiple times if game data is restored from backup ((''Error! App '570' state is 0xE after update job.'')) | * :!: This and ''validate'' may need re-ran multiple times if game data is restored from backup ((''Error! App '570' state is 0xE after update job.'')) |
| * :?: Presumably this fresh-installs Dota 2 also | * This fresh-installs Dota 2 also |
| |
| cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && sync && cd ~ | cd ~/'Steam/steamcmd' && ~/'Steam/steamcmd/steamcmd.sh' +login 'Espionage724' +app_update '570' +quit && sync && cd ~ |
| |
| ~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console +sv_lan '1' +dota_bot_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota' | ~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -novid -nodev -nojoy -console +sv_lan '1' +dota_bot_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota' |
| | |
| | === Test === |
| | |
| | * 2025/04/26: Console can't be typed to directly with ''SDL_VIDEO_DRIVER=wayland'' but accepts copy/paste/Enter for ''host_writeconfig'' |
| | * Above applies to in-game chat too (OHA's ''!pos 2'') |
| | * ''dota.sh'' //likely// reverts with ''validate''; TODO: Update script |
| | |
| | ~/'Steam/steamapps/common/SteamLinuxRuntime_sniper/run' --devel --systemd-scope --import-vulkan-layers --remove-game-overlay -- ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' -vulkan_disable_steam_shader_cache -vulkan_disable_graphics_pipeline_library -novid -nodev -nojoy -console +sv_lan '1' +dota_bot_practice_difficulty '4' +dota_start_ai_game '1' +map 'dota' |
| | |
| | sed -i 's/SDL_VIDEO_DRIVER=x11/SDL_VIDEO_DRIVER=wayland/g' ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' |
| | |
| | cat ~/'Steam/steamapps/common/dota 2 beta/game/dota.sh' | grep 'SDL_VIDEO_DRIVER=' |
| | |
| | host_writeconfig |
| | |
| | !pos 2 |
| |
| ====== Bots Scripts ====== | ====== Bots Scripts ====== |
| |
| * Bot scripts are automatically loaded and used if present ((apparently relies on a ''Local Dev Script'' feature and the scripts being in a ''bots'' folder at ''dota\scripts\vscripts'')) | * Bot scripts are automatically loaded and used if present ((apparently relies on a ''Local Dev Script'' feature and the scripts being in a ''bots'' folder at ''dota\scripts\vscripts'')) |
| |
| sudo apt install 'git' | |
| |
| gio open ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' | gio open ~/'Steam/steamapps/common/dota 2 beta/game/dota/scripts/vscripts' |