日直地獄

小学校では事件が起きる

Apple SilliconのMacでSteamOS Devkitを使ってSteamDeckに自作ゲームを送信する

普段はM1 Mac mini で Godot 4を使ってゲーム開発をしている。デバッグならそれで問題ないのだが、リリースのターゲットはSteamなのでもっと実際の環境に近いところで動作させたい。もっと言えば、Steam Deckを所有しているのでそこで動作させたい。過去には、Steam Deckのデスクトップ環境をつかって、SSHの環境を整えたりして転送をしていたのだが、なんか肝心のSteamOSの動きが変になって初期化したという経緯があった。 なんとかならんもんかと随分悩んでいたんだけど、SteamOS Devkit のリポジトリを見直してみるとLinux環境も提供されていた。つまり「VM環境で立ち上げて、VM環境から開発用フォルダを見られるようにしたら良い」のであった。 結論、実際にうまくいったので備忘録的に手順を書いておく。ただし、Linuxのことをほとんど理解せず寄り道しながらやったので、不要な手順やもっと簡便な手順がある可能性があることに注意。

手順

  1. UTMのインストール
  2. Ubuntu Serverの導入
    • SteamOS DevKit は GUI での提供なので、Desktop環境を構築しないといけない。一方、Ubuntu DesktopはArm版が提供されていないので、Arm版のUbuntu ServerにDesktop環境を構築する必要がある
    • 普通にUbuntuの公式サイトからイメージをダウンロードして、UTMで起動するのみ。ここは特に難しいことはない
    • ディスプレイドライバ導入。virtio-gpu-pciを選択
    • 共有フォルダの設定
  3. Desktop環境構築
    • 基本ツールインストール
      • sudo apt update
        sudo apt upgrade -y
        sudo apt install -y sudo curl wget git build-essential
    • GUI(Xfce + Xorg)をインストール
      • sudo apt install -y xfce4 xfce4-goodies xorg dbus-x11
    • startx で起動するための設定
      • echo "exec startxfce4" > ~/.xinitrc
        sudo apt install -y xinit
        startx
  4. SteamOS Devkitの構築
    • OpenGL周りのインストール
      • sudo apt install -y mesa-utils libgl1-mesa-glx libgl1-mesa-dri
    • devkitをClone
    • python3.10 をインストール。3.12などでは動かない感じだった
      • sudo add-apt-repository ppa:deadsnakes/ppa
        sudo apt update
        sudo apt install python3.10 python3.10-venv python3.10-dev
        wget https://bootstrap.pypa.io/get-pip.py
        python3.10 ./get-pip.py
        python3.10 -m pip install pipenv
    • パッケージのインストールなどセットアップ
      • python3.10 -m pipenv --python 3.10 shell
        pip install -r requirements.txt
        ./setup/package-linux.py
  5. 実行する
    • python3.10 ./client/devkit-gui.py
  6. Linux用にビルドしたファイルを入れたフォルダを作成し、devkit-guiで指定したりするとSteamDeckに送信できる

その他

  • CLI内での貼り付けショートカットは Ctrl + Shift + V
  • /mnt/ に共有フォルダがなかったので後でマウントした
    • sudo mkdir -p /mnt/share
      sudo mount -t 9p -o trans=virtio share /mnt/share