Steamworks-dokumentation
Forbedret brugeroversigt

Oversigt

I den seneste udgivelse af den nye Steam-venner og -chat-klient har vi forbedret vores brugeroversigtssystem, så der vises mere om de spil, der spilles. Vi betragter brugeroversigten som en mulighed for spillerens venner at tage del i spillerens aktivitet. For eksempel kan venner, som ejer spillet, blive engageret ved at vide, hvornår det er det rigtige tidspunkt at tilslutte sig spillet eller snakke om det med spilleren, og dem, der ikke ejer det, bliver måske nysgerrige, fordi de ser strenge i brugeroversigten, som fortæller dem mere om et spil, som de ikke ved så meget om.

Brugeroversigten vises i forskellige kontekster

I denne dokumentation vil vi gennemgå to indstillinger, som du kan definere for at styre, hvordan dit spil ser ud på spilleres vennelister:
  • Brugeroversigtsstreng – bruges til at vise information om spillertilstanden i dit spil, som spillerens venner måske vil være interesserede i
  • Vennegruppering – bruges til at gruppere venner sammen, som spiller sammen i spillet

Spilstyret brugeroversigtsstreng


Venner kan hurtigt se mere information om spil
Systemet kan tilpasses, så dit hold kan bestemme, hvilke informationer der er mest interessante for en spillers venner.
Dit spil vil have sine egne specifikke data, som vil være det rigtige at vise med den forbedrede brugeroversigt. Men her er nogle ting, du kan overveje for at komme i gang:

Multiplayer-spil

Hvilken information der hjælper en spillers venner til at vide, hvornår de kan springe til, afhænger af, hvad det er for en slags multiplayer-spil. Nogle spil spilles i runder, som er tidsbestemte, eller efter hvor mange spillere der er tilbage, og så er det nyttigt at vise denne type information. Andre multiplayer-spil er færdige, så snart et mål er nået, og så kan det være nyttigt at vise fremskridtet mod målet. Det kan også være nyttigt at vide, hvilken spiltilstand eller bane spilleren er i, så spillerens venner bedre kan vurdere, hvordan de kan komme i kontakt med spilleren.

Singleplayer-spil

Spillerens venner tilslutter sig ikke spillerens singleplayer-spil, men der kan stadig opstå venneengagement, hvis information, som vises, får vennen til at se spilleren spille, snakke med spilleren om strategier eller snakke om højdepunkter fra spillet. Information om den zone, det kapitel eller det level, spilleren er i gang med, eller hvad spilleren foretager sig i spillet i øjeblikket, kan hjælpe til at nå disse mål.

* For at definere den streng, der skal vises på Steam-vennelisten og i chatten, skal du indstille steam_display-nøglen/værdien i SetRichPresence. Du finder flere oplysninger og eksempler om API-kaldene til sidst i dette dokument.

Eksempler på data, der kan vises, hvis det er relevant
  • Resterende tid
  • Tid, der er gået
  • Spillere, der stadig er i live
  • Bane- eller zonenavn
  • Spiller-level
  • Spillerklasse
  • Spilscore
  • Sværhedsgrad
  • Spiltilstandstype
  • Åbne pladser på serveren
  • Igangværende handling (sammensætte kortbunke, ændre holdliste, i hovedmenuen osv.)
BEMÆRK: Husk på, at strengen i brugeroversigten skal kunne være på én linje. Den vises under spillernavnet på vennelisten. Hvis den er for lang, vil den sidste del af linjen blive afkortet, evt. med ellipse.

Vennegruppering


Udover den ekstra linjes information kan den nye venneliste også viser grupper af venner, som spiller sammen. Venner, som er i en gruppe, på en server eller i en kamp sammen, vil blive grupperet under spilkategorien med en linje, som forbinder dem. Hvordan grupperingen bestemmes, afhænger af dit spil, og hvad der giver mest mening at vise. I Dota 2 er der for eksempel grupper på op til 5 personer, så vi viser den gruppe, der spilles med, ikke hele holdet 5, som matchmakes af spillet. I Counter-Strike kan 2 venner spille på en server sammen, men i stedet for at vise hele serveren som en del af gruppen, placeres kun de fælles venner, som spiller sammen, i Steam-spillergruppen.

Når venner, der spiller sammen, grupperes, ved andre, om der er plads til, at de kan være med

* For at definere spillergrupperingen på Steam-vennelisten og i chatten skal du indstille steam_player_group- og steam_player_group_size-nøglerne/værdierne i SetRichPresence.

Steam-API og lokalisering



Nedenfor er et kodeeksempel for at vise, hvor nemt det er at konfigurere.

Kodestykke
/*--------------------------- SAMPLE -------------------*/ const char *pchStatus; if ( bWinning && cWinners > 1 ) { pchStatus = "Tied"; } else if ( bWinning ) { pchStatus = "Winning"; } else { pchStatus = "Losing"; } SteamFriends()->SetRichPresence( "gamestatus", pchStatus ); bool bDisplayScoreInRichPresence = true; if ( bDisplayScoreInRichPresence ) { char rgchBuffer[32]; sprintf_safe( rgchBuffer, "%2u", uMyScore ); SteamFriends()->SetRichPresence( "score", rgchBuffer ); } SteamFriends()->SetRichPresence( "steam_display", bDisplayScoreInRichPresence ? "#StatusWithScore" : "#StatusWithoutScore" ); // Eksempel på at gruppere venner sammen, når de spiller sammen if ( nPartyMemberCount > 1 && strPartyID ) { // Hvis vi er i en gruppe med mere end én bruger, og vi har et gyldigt gruppe-ID, så // informer Steams brugeroversigstsystem. steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", strPartyID ); steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", CNumStr( nPartyMemberCount ) ); } else { // Ellers ryd de oplysninger, vi havde udfyldt før – vi er ikke i en gruppe. steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", nullptr ); steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", nullptr ); }

Ovenstående kode anvender lokalisering, der inkluderer engelske tokens såsom:

"lang" { "language" "english" "tokens" { "#StatusWithoutScore" "{#Status_%gamestatus%}" "#StatusWithScore" "{#Status_%gamestatus%}: %SCORE%" "#Status_AtMainMenu" "At the main menu" "#Status_WaitingForMatch" "Waiting for match" "#Status_Winning" "Winning" "#Status_Losing" "Losing" "#Status_Tied" "Tied" } }