Steamworks-dokumentaatio
Windows-pelien debuggaus Steam Deckillä

Yleiskatsaus

Alta löytyvillä ohjeilla voit suorittaa pelin Windowsin (Protonilla pyörivien) binääritiedostojen debuggauksen Steam Deck -kehittäjäpaketissa. Sinun tulee paketoida Windows-debuggauksen runtime pelisi kanssa sekä Windows -kehityslaitteellasi pyörivä Visual Studio ja etädebuggaustyökalut, kun lähetät pelin kehittäjäpakettiin.
Toiminto on edelleen kehitysvaiheessa. Jätä palautetta ja raportoi löytämäsi ongelmat Steam Deck -kehittäjäfoorumissa.
Huomaa! Etädebuggaustoiminnot on tuettuja vain Protonin kokeelliselle versiolle.

Asennus

Lue ohjeet pelin lataamiseen ja pelaamiseen kehittäjäpaketilla täältä:Pelien lataaminen ja pyörittäminen Steam Deckillä. Paketoi Windows-debuggauksen runtime pelin kanssa (lisätietoja alla).

Windows-debuggauksen runtimen paketointi:

Windows-debuggauksen runtimea ei jaeta Protonin mukana. Sinun tulee paketoida debuggauksen runtimen DLL-tiedostot omaan koontiversioosi. Lisätietoja löytyy täältä: https://docs.microsoft.com/en-us/cpp/windows/preparing-a-test-machine-to-run-a-debug-executable Debuggaus käynnistysmäärityksen pitäisi toimia Visual Studiossa. Projektin ominaisuuksissa on lisäasetus "Copy c++ Runtime to OutDir", joka voi olla hyödyllinen C++-projekteissa.

Visual Studion etädebuggaustyökalut Protonissa:

Visual Studion etädebuggaustyökaluja ei jaeta Protonin mukana. Kun lähetät pelin niin, että Steam Play -painike on valittuna, kehittäjäpakettityökalu kopioi kehittäjän Windows-isäntälaitteen etädebuggaustyökalut kehittäjäpakettijärjestelmään.

Tällä hetkellä kehittäjäpaketti etsii asennettuja Visual Studio 2019- ja Visual Studio 2017 -debuggaustyökaluja. Jotta etädebuggaustyökalut ovat saatavilla, lisää kehitystyönkuvaan esim. "Desktop development with C++", kun asennat Visual Studiota.

VirtualBox_Win_10_05_08_2021_18_05_44.png

Käyttö

Vulkan-esimerkit

Vulkan Examples -projekti on hyvä paikka aloittaa, jos haluaa totutella tekemään Steam Deck -kehittäjäpakettiin lähetettyjen pelien debuggausta etänä.

Kloonaa projekti ja vaihda nykyinen hakemisto:
git clone --recursive https://gitlab.steamos.cloud/jupiter/vulkan-examples.git cd vulkan-examples

Projekti sisältää monta erilaista pientä Vulkan-mallia esimerkkihakemistossa. Dokumentaatiota varten käytämme vain seuraavaa: imgui. Luo ja rakenna projekti:
cmake -G "Visual Studio 16 2019" -S . -Bbuild/windows cmake --build build/windows --config Debug --target imgui

Huomaa: Cmake-koontiversio lataa lisäelementtejä suorittamalla pienen skriptin, joten Python vaaditaan koontiversion isäntäkoneella.

Tämä luo build/windows/bin/Debug-hakemiston. Se sisältää suoritettavan tiedoston imgui, vaadittavat Windows-debuggauksen DLL-tiedostot ja dataelementit.

Voit tässä kohtaa lähettää luodun debuggaushakemiston.

Valitse "This title requires Steam Play", koska kyseessä ei ole natiivi Linux-koontiversio. Valitse myös "Start Visual Studio C++ debugger service on launch" ottaaksesi etädebuggaajan käyttöön.

Jos liittäminen ei käy päin, kun peli on käynnissä, ja haluat debugata pelin käynnistyksen ja alustamisen, käytä "Wait for a debug client to attach" ja katso tämän dokumentaation "early attach" -osio.

devkit-tool-remote-debug-20211207.png

Kun siirto on valmis, jos valitsit nimeksi esim. vulkan_examples_debug, Steam-kirjastosta pitäisi löytyä uusi peli nimeltä Devkit Game: vulkan_examples_debug.

Kun käynnistät pelin, msvsmon-palvelin käynnistyy automaattisesti etädebuggausta varten.

Screenshot_from_2021-07-14_10-05-21.png

Voit nyt liittää debuggaajan käynnissä olevaan peliin.

Paina Visual Studiossa Ctrl+Alt+P, jotta voit avata Debug > Attach to Process -ikkunan. Määritä msvsmon-palvelimen IP-osoite ja portti Connection target -kentässä, ja valitse sitten imgui.exe-prosessi.

Screenshot_2021-07-26_092207.png

Tarkat ohjeet löytyvät Microsoft-debuggauksen dokumentaatiosta.

Unreal Engine 4 -esimerkkejä

Luo Epic Games -tili, jos sinulla ei ole vielä sellaista. Lataa ja asenna Unreal Engine 4.

Käytämme yhtä Unreal Editorin malliprojektia esimerkkinä. Luo uusi projekti ja valitse "Puzzle"-mallipohja.

Screenshot_2021-07-16_072803.png

Valitse projektin nimi ja sijainti

Screenshot_2021-07-15_082533.png

Mene kohtaan Edit -> Project settings -> Packaging ja valitse koontiversion määritykseksi joko "Debug" tai "DebugGame". Lisätietoja löytyy virallisesta dokumentaatiosta. Jos valitset "Include Debug Files" -valinnan, debuggaustiedostot sisällytetään pelipakettiin.

Screenshot_2021-07-16_073647.png

Jos et pysty kääntämään natiivia Linux-koontiversiota (jos esim. pelin ulkoiset riippuvuudet eivät tue Linuxia), voit käynnistää Windows-koontiversion käyttämällä File -> Package Project -> Windows (64-bit). Tämä luo koontiversion uuteen "WindowsNoEditor"-hakemistoon.

Lähetä käännetty peli SteamOS Devkit Clientilla.

Screenshot_2021-07-16_074524.png

Steam-kirjastossa pitäisi näkyä uusi tallennus nimellä: Devkit Game: puzzle (tai vastaava). Kun käynnistät pelin, msvsmon-palvelin käynnistyy automaattisesti etädebuggausta varten.

Voit nyt liittää debuggaajan käynnissä olevaan peliin.

Paina Visual Studiossa Ctrl+Alt+P, jotta voit avata Debug > Attach to Process -ikkunan. Määritä msvsmon-palvelimen IP-osoite ja portti Connection target -kentässä, ja valitse sitten puzzle.exe-prosessi.

Tarkat ohjeet löytyvät Microsoft-debuggauksen dokumentaatiosta.

Etädebuggauksen prosessin käynnistys: "early attach" -tuki


Etädebuggauspalvelu voidaan määrittää odottamaan käyttäjää liittymään ennen pelin käynnistystä. Tämä mahdollistaa keskeytyskohdan määrittämisen WinMainissa tai toisessa alustuskoodissa.

Tämä vaatii, että asennat Microsoft-lisäosan Visual Studioon isäntäkoneelle: https://marketplace.visualstudio.com/items?itemName=vsdbgplat.MicrosoftChildProcessDebuggingPowerTool

child-process-debug-extension.png

Kun lisäosa on asennettu, ota debuggauksen aliprosessi käyttöön dokumentaation ohjeiden mukaisesti (Debug > Other Debug Targets > Child Process Debugging Settings).

Valitse "Wait for a debug client to attach" kehittäjäpaketin työkalussa ja päivitä peli.

Käynnistä peli normaalisti.

Kun liität etäprosessiin, liitä steam.exe – kun olet liittynyt, Proton käynnistää pelin välittömästi aliprosessina, lisäosa käynnistyy ja aloittaa pelin debuggauksen alusta niin, että keskeytyskohdat on aktivoitu.