Steamworks-dokumentaatio
Paranneltu tilapäivitysjärjestelmä

Yleiskatsaus

Steam-kavereiden ja chatin uusi versio paransi tilapäivitysjärjestelmää niin, että enemmän tietoja voidaan näyttää pelatuista peleistä. Pelaajan tilapäivitys on hyvä keino pyytää kaverit mukaan. Esimerkiksi pelin omistavat kaverit tietävät, milloin peliin kannattaa liittyä tai he sopivat asiasta chatissa. Ne, jotka eivät omista peliä, saattavat kiinnostua, sillä tilapäivitykset kertovat heille uudesta pelistä.

Tilapäivitys näkyy useissa asiayhteyksissä

Käsittelemme kahta eri määritettävää asetusta, joilla voit hallita pelisi näkyvyyttä pelaajan kaveriluettelossa:
  • tilapäivitysrivi kertoo pelaajan tilan pelissä. Tämä saattaa kiinnostaa kavereita
  • kaveriryhmittely kertoo, ketkä kaverit pelaavat samaa peliä.

Pelin hallinnoima tilapäivitysrivi


Kaverit näkevät yhdellä silmäyksellä enemmän pelitietoja
Järjestelmä on muokattavissa, joten tiimisi voi päättää, mitkä tiedot kiinnostavat pelaajan kavereita eniten.
Pelillä on tietyt tiedot, jotka ovat omiaan näytettäviksi tilapäivityksessä. Seuraavat seikat kannattaa ottaa huomioon:

Moninpelit

Moninpelityypistä on kiinni, millainen tieto auttaa kaveria näkemään, milloin on hyvä hetki liittyä peliin. Joissain peleissä tärkeintä ovat kierrokset, peliaika tai jäljellä olevien pelaajien määrä. Sellainen tieto kannattaa siis näyttää. Muut moninpelit päättyvät, kun tavoite saavutetaan. Edistysaskeleet kohti tavoitetta on kätevä näyttää. Kun pelaajan kaverit päättävät yhdessä pelaamisesta, he saavat apua pelitila- ja karttatiedoista.

Yksinpelit

Vaikka pelaajan kaverit eivät voi liittyä yksinpeliin, tilapäivitysrivin tiedot saattavat innostaa kavereita katsomaan peliä, juttelemaan strategioista tai pelin huippuhetkistä. Vyöhykkeen, luvun, pelaajan tason tai pelitilanteen näyttäminen saattavat herättää kavereiden kiinnostuksen.

* Määritä steam_display-tunnus/-arvo SetRichPresence -kutsulla, jotta tilanpäivitysrivi näkyy Steam-kaveriluettelossa ja chatissä. Lisätietoa ja esimerkkejä ohjelmointirajapintakutsuista on tämän dokumentin lopussa.

Esimerkkejä tiedoista, joita voi näyttää
  • jäljellä oleva aika
  • kulunut aika
  • pelaajia elossa
  • kartan tai vyöhykkeen nimi
  • pelaajan taso
  • hahmoluokat
  • pelitilanne
  • vaikeusaste
  • pelitilan tyyppi
  • vapaat pelipaikat palvelimella
  • toiminnot (pakan teko, pelaajaluettelon muutokset, päävalikossa jne.)
HUOMAA! Tilapäivitysmerkinnän tulee mahtua yhdelle riville. Se näkyy pelaajan nimen alla kaveriluettelossa. Jos tilapäivitys on liian pitkä, loppuosa jätetään pois tai merkitään kolmella pisteellä.

Kavereiden ryhmittely


Lisätietorivin lisäksi uudessa kaveriluettelossa voi näyttää yhdessä pelaavat kaveriryhmät. Saman puolen, palvelimen tai ottelun kaverit ryhmitellään pelikategorian alle viivalla, joka yhdistää heidät toisiinsa. Ryhmittely riippuu pelistäsi ja siitä, mitä kannattaa näyttää. Esimerkiksi Dota 2 -pelissä on viiden hengen ryhmiä. Tilapäivitys näyttää vain pelaajan joukkueen, ei pelaajahaun muodostamaa viiden hengen vastustajajoukkuetta. Counter-Strikessa sen sijaan kaksi kaveria voi pelata palvelimella yhdessä. Yhdessä pelaava kaksikko sijoitetaan samaan Steam-pelaajaryhmään, eikä kaikkia palvelimella pelaavia näytetä joukkueen jäseninä.

Kun yhdessä pelaavat kaverit on ryhmitelty, muut tietävät, voiko peliin vielä liittyä

* Määritä kutsun SetRichPresence steam_player_group- ja steam_player_group_size -tunnus/-arvot, joilla voit määrittää pelaajien ryhmittelyt Steam-kaveriluettelossa ja keskustelussa.

Steam-ohjelmointirajapinta & lokalisaatio



Alla on koodinäyte määrityksen helppoudesta.

Koodikatkelma
/*--------------------------- MALLI -------------------*/ 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" ); // Malli kavereiden ryhmittelystä, kun he pelaavat yhdessä. if ( nPartyMemberCount > 1 && strPartyID ) { // Jos meitä on joukkueessa enemmän kuin yksi, ja meillä on kelvollinen ryhmätunnus, // ilmoita Steamin tilapäivitysjärjestelmälle. steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", strPartyID ); steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", CNumStr( nPartyMemberCount ) ); } else { // Poista muussa tapauksessa kaikki aiemmat tiedot. Emme ole joukkue. steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group", nullptr ); steamapicontext->SteamFriends()->SetRichPresence( "steam_player_group_size", nullptr ); }

Ylhäällä näkyvässä koodissa käytetään käännöstä, johon sisältyy seuraavat englanninkieliset merkinnät:

"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" }