Steamworks-dokumentaatio
Paranneltu tilapäivitysjärjestelmä

Yleiskatsaus

Steam-kavereiden ja chatin uusi versio paransi tilapäivitysjärjestelmää niin, että pelatuista peleistä näytetään enemmän tietoja. Pelaajan tilapäivitys on hyvä keino innostaa 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 kaverilistassa:
  • tilapäivitysrivi: kertoo pelaajan tilan pelissä ja 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ä. Kannattaa huomioida seuraavat seikat.

Moninpelit

Moninpelin tyypistä on kiinni, mikä tieto kertoo kaverille, milloin on hyvä hetki liittyä peliin. Eriä sisältävissä peleissä peliaika tai jäljellä olevien pelaajien määrä on hyödyllinen tieto näytettäväksi. Toiset moninpelit päättyvät, kun tavoite on saavutettu. Kannattaa siis kertoa edistysaskeleet kohti tavoitetta. Tieto pelaajan käyttämästä pelitilasta tai kartasta saattaa vaikuttaa päätökseen, kun kaverit päättävät yhdessä pelaamisesta.

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 saattaa herättää kavereiden kiinnostuksen.

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

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

Kaveriryhmittely


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

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

* Määritä SetRichPresence-jäsenfunktion steam_player_group- ja steam_player_group_size-tunnus/-arvot, joilla voit määrittää pelaajien ryhmittelyt Steam-kaverilistassa ja chatissa.

Steam-ohjelmointirajapinta ja lokalisointi



Alla on koodinäyte määrityksen helppoudesta.

Koodinpätkä
/*--------------------------- 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 suomenkieliset merkinnät:

"lang" { "Language" "finnish" "Tokens" { "#StatusWithoutScore" "{#Status_%gamestatus%}" "#StatusWithScore" "{#Status_%gamestatus%}: %SCORE%" "#Status_AtMainMenu" "Päävalikossa" "#Status_WaitingForMatch" "Odottaa peliä" "#Status_Winning" "Voitolla" "#Status_Losing" "Tappiolla" "#Status_Tied" "Tasapeli" } }