Steamworks-dokumentaatio
Yleiset käsitteet

Steam-syöte

Steam-syöte on yleiskäsite ohjelmiston, laitteiston ja apuohjelmien kokonaisuudelle, jonka avulla Steam kommunikoi pelien kanssa.

Steam-syötteen määrittäjä

Steam-syötteen määrittäjä (Steam Input Configurator eli SIC) on Steam-asiakasohjelman sisäinen toiminto, joka käsittelee tietoja pelaajan ja pelin/sovelluksen välillä. SIC vastaanottaa syötteen syötelaitteelta ja tulkitsee tiedot pelaajan asetusten mukaisesti, ennen kuin se välittää ne pelille.

SIC:tä voi käyttää pääasiassa kahdella tavalla: legacy- tai natiivitilassa.

Legacy-tila

Legacy-tila on yhteensopivuustila peleille, jotka eivät käytä Steam-syötteen ohjelmointirajapintaa. SIC toimii näissä tapauksissa syötteen määritystyökaluna, jota kuka tahansa pelaaja voi käyttää missä tahansa pelissä Steamissä.

Pelaaja voi yhdistää minkä tahansa fyysisen syötteen toiseen fyysiseen syötteeseen. Esimerkiksi A-painike voidaan simuloida vastaamaan näppäimistön Enter-painiketta tai vasemman analogiliipaisimen täysi veto voi vastata hiiren klikkausta. Tämä tila toimii missä tahansa tuetussa oheislaitteessa, ei ainostaan Steam Controllerissa.

Legacy-tila sopii mainiosti peleihin, jotka eivät koskaan tukeneet ohjelmointirajapintaa, mutta siinä on rajoituksensa. Peli on saatettu ohjelmoida siten, ettei se oleta peliohjaimen ja hiiriohjauksen olevan koskaan yhtäaikaisesti aktiivisina. Tällaiset pelit kärsivät tunnetusti kaikenlaisista ongelmista, kun määritykset rikkovat tätä oletusta. Peli ei tiedä sinun käyttävän määrittäjää (se saa ainoastaan matalan tason laitteistosyötteitä, joita määrittäjä lähettää). Näytöllä näkyvät ohjainsyötteen merkit eivät luultavasti vastaa toisiaan.

Natiivitila

Natiivitilassa peli saa syötetiedot suoraan määrittäjältä toimintojen muodossa. Ideana on se, ettei peli tiedä, mitkä todelliset syötteet ajavat toimintoja. Se tietää vain, että toiminnot tapahtuvat. Kaikki määritys- ja hallinta-asetukset on siirretty Steam-syötteen määrittäjään. Peli saattaa kuitenkin pyytää erityisellä ohjelmointirajapintakutsulla tietoja siitä, mitkä fyysiset ohjaimet on yhdistetty mihinkin toimintoihin. Tämän tarkoituksena on vain näyttää oikeat merkit näytöllä.

Steam-syötteen ohjelmointirajapinta

Kehittäjät käyttävät Steam-syötteen ohjelmointirajapintaa kutsuakseen Steam-syötteen määrittäjää suoraan natiivitilassa. Ohjelmointirajapinta ei ole välttämätön legacy-tilan tukemiseksi.

Koko dokumentaatio löytyy täältä: ISteamInput.

Ohjainmääritykset

Pelaajat voivat tehdä täysin mukautettuja syötemäärityksiä mille tahansa kokoelman pelille käyttämällä natiivi- tai legacy-tilaa tai niiden yhdistelmää. Näitä syötemäärityksiä kutsutaan "ohjainmäärityksiksi". Pelaaja voi luoda useita eri määrityksiä yhdelle ja samalle pelille sekä jakaa niitä muiden pelaajien kanssa verkossa.

Syötehierarkia

Fyysiset syötteet

Fyysinen syöte on minkä tahansa oheislaitteen fyysinen koneisto, jolla käyttäjä tuottaa syötedataa tietokoneelleensa. Näitä on sekä analogisessa että digitaalisessa muodossa. Esimerkkeihin kuuluu painikkeita, ohjainsauvoja, ristiohjaimia, olkapainikeita, liipaisimia, lisäpainikkeita, hattuja, pallohiiriä, gyroskooppeja jne.

Ennen kuin siirrytään teoreettisempiin käsitteisiin, kannattaa muistaa tämä: fyysiset syötteet ovat syöttölaitteen osasia, joita heilutetaan sormin (tai vaikka varpain).

Syötelähteet

Syötelähde on laitteessa oleva alue, jonka voi ajatella suuremmaksi modulaariseksi yksiköksi. Sen tilaa voi vaihtaa, jolloin se muuttaa tapaa, jolla se tuottaa dataa.

Juuri tämä on edellä mainittua teoriaa!

Suomeksi sanottuna: mitä eroa on ristiohjaimella ja ohjaimella, jossa on neljä kirjainpainiketta (A, B, X, Y) vinoneliön muotoisesti?

input_dpad.pnginput_bpad.png

Kummassakin on neljä digitaalista "painiketta", mutta useimmat ristiohjaimet on suunniteltu rakenteellisesti siten, ettei ylös- ja alas-painikkeita tai vasenta ja oikeaa painiketta voi painaa yhtä aikaa. Kutakin etupainiketta voi puolestaan painaa muista riippumatta. Steam-syötteellä voit kuitenkin määrittää ristiohjaimen rajoitukset etupainikkeisiin.

Vaikka sekä ristiohjain että etupainikkeet on laadittu neljästä eri fyysisestä syötteestä, kannattaa ajatella ristiohjainta ja etupainikkeita omina yksikköinään, jotta kokonaisuuden käyttäytymistä voi muokata.

Tunnistettujen syötelähteiden lista:

  • vasen kosketuslevy
  • oikea kosketuslevy
  • keskimmäinen kosketuslevy
  • vasen ohjainsauva
  • oikea ohjainsauva
  • ABXY
  • ristiohjain
  • vasen liipaisin
  • oikea liipaisin
  • gyro
  • lisäpainikkeet.
HUOMAA! Lisäpainikkeet-syötelähteeseen lasketaan kaikki fyysiset syötteet, jotka eivät kuulu muihin ryhmiin: paluu- ja aloituspainikkeet, vasen ja oikea olkapainike ja lapapainikkeet ohjaimen alla.

Lisätietoja:

Syötelähteiden tilat

Syötelähteillä on erilaisia tiloja, jotka muuttavat niiden toimintaa. Näitä kutsutaan syötelähdetiloiksi. Vaikka ne ovat hyödyllisiä digitaalisille syötteille, niitä käytetään useimmiten analogisissa ohjaimissa ja erityisesti kosketuslevyissä, jotka voidaan määrittää useilla eri tavoilla.

Tunnistettujen syötelähdetilojen lista:

  • ristiohjain
  • neljä painiketta
  • absoluuttinen hiiriohjaus
  • suhteellinen hiiriohjaus
  • ohjainsauvan liike
  • ohjainsauva hiirenä
  • ohjainsauvakamera
  • vieritysrulla
  • liipaisin
  • kosketusvalikko
  • hiirenkaltainen sauvaohjain
  • hiirialue
  • ympyrävalikko
  • lisäpainikkeet.

Lisätietoja:

Lyhyt kertaus:

Fyysiset syötteet:
Laitteen fyysiset osaset, joilla toimitaan. Esimerkiksi A-painike, ristiohjaimen ylös-painike jne.

Syötelähteet:
Yksittäisten fyysisten syötteiden muodostama suurempi modulaarinen yksikkö. Koko ristiohjain, etupainikkeet, koko vasemman ohjainsauvan kokoonpano jne.

Syötelähteiden tilat:
Syötelähteelle määritettävä tietty toimintatapa. Esimerkiksi "ohjelmoi etupainikkeet toimimaan ristiohjaimen tavoin" tai "ohjelmoi vasen ohjainsauva toimimaan etupainikkeiden tavoin" jne.

Toiminnot

Toiminnot ovat tapahtumia, joita Steam-syötteen ohjelmointirajapinta käyttää kaiken järjestelemiseksi. Pelisi ei saa natiivitilassa A-painike pohjassa -toimintoa. Se saa toiminnon Hyppää (tai jonkin muun). Täysin pelaajan päätettävissä on se, millainen syöte saa aikaan Hyppää-toiminnon.

Digitaaliset toiminnot

Digitaaliset toiminnot ovat toiminnoista yksinkertaisimpia ja yleisimpiä. Ne ovat vain joko käytössä tai poissa käytöstä, joten pelin tarvitsee vain kuunnella näiden toimintojen tilaa toistuvilla kyselyillä.

Analogiset toiminnot

Analogisilla toiminnoilla on yksi tai useampi tietoakseli. Niitä käytetään esimerkiksi hahmon sulavaan liikuttamiseen, autojen ohjaamiseen ja kameran hallintaan. Tavallisissa sauva- ja hiirikäyttöisissä toiminnoissa on yleensä X- ja Y-akselit, mutta yhden akselin analogiset toiminnot ovat myös mahdollisia. Ne on yleensä yhdistetty analogisiin liipaisimiin. Tässä tapauksessa toimintatiedoissa raportoidaan kaksi akselia, mutta Y-akseli on aina nollassa.

Toiminnon nimi

Kaikilla toiminnoilla on oltava yksilöivä nimi, kuten "hyppy" tai "isku". Nämä merkkijonojen arvot ovat lokalisoitavissa ja erillään pelaajan näkemästä tekstistä eli toiminto-otsikoista.

Toiminnon kutsumanimi

Stringien nimiin perustuva toimintojen kysely on kallista ja tehotonta. Kun pelisi käynnistää ohjelmointirajapinnan, sen on rekisteröitävä kaikki toiminnot nimen mukaan. Vastauksena se saa kokonaislukumuotoiset toiminnon nimet.

Toimintolähde

Toimintolähde ("action origin") on merkkijono, jonka avulla tunnistetaan, minkälainen syöte on liitetty mihinkin toimintaan pelaajan syötelaitteen määrityksessä.

Toimintosarjat

Toimintosarja on toisiinsa liittyvien toimintojen looginen ryhmittely. Vain yksi toimintosarja voi olla aktiivisena tietylle syötelaitteelle kerrallaan. Voit esimerkiksi luoda valikkotoimintosarjan, joka on aktiivinen valikkojaksojen aikana, ja vastaavasti toimintosarjat ajamiselle, kävelemiselle ja lentämiselle. Näitä voidaan tarvita esimerkiksi GTA V:n kaltaisissa peleissä, joissa on useita ajoneuvo- ja liikkumistiloja. Toimintosarjoja on sekä natiivi- että legacy-tilassa. Natiivitilassa kehittäjä määrittää ne erikseen, ja peli nimittää ohjelmointirajapintakutsujen avulla kunkin aktiivisen toimintosarjan. Legacy-tilassa pelaaja käynnistää toimintosarjojen muutokset itse manuaalisesti. Kummassakin tapauksissa toimintosarjoilla vapautetaan oheislaitteen tilaa. Jokaista pelissä mahdollisesti tapahtuvaa toimintoa ei tarvitse määrittää erikseen eikä jättää valmiustilaan odottamaan.

Toimintosarjakerrokset

Toimintosarjan kerrokset ovat valinnainen joukko toimintomäärityksiä, jotka voi lisätä olemassa olevien komentojen päälle. Toisin kuin toimintosarjat, kerrokset noutavat toimintonsa siitä toimintosarjasta, jossa ne ovat. Ne eivät korvaa jo aktiivisia ominaisuuksia vaan lisäävät pieniä muokkauksia. Nämä voivat olla asetusten muutoksia tai perustoimintosarjan määritysten lisäyksiä tai poistoja. Kerroksia voi lisätä useamman kuin yhden kerralla ja soveltaa perätysten.

Lisätietoja löytyy Toimintosarjan kerrokset -dokumentaatiosta.

Fyysinen palaute

Jotkin oheislaitteet pystyvät antamaan visuaalisen palautteen lisäksi pelaajalle palautetta tärinänä ja valoina.

Haptiset ominaisuudet

Haptiikan tuottamat, hienot fyysiset aistimukset auttavat pelaajaa tunnistamaan, missä hänen kätensä ja sormensa ovat suurilla kosketuspinnoilla. Pelaaja voi tuntea esimerkiksi emuloidun pallohiiren virtuaaliset liikkeet. Steam Controller- ja Nintendo Switch -ohjaimet tukevat haptiikkaa. Muut laitteet ohittavat haptiikan ohjelmointirajapintakutsut.

Tärinä

Tärinä on perinteisempi fyysinen palaute, jossa laitteen sisäinen moottori värisee ja ravistelee laitetta. PlayStation 4 - ja Xbox-ohjaimet (ja monet XInput-yhteensopivat geneeriset laitteet) tukevat tärinätoimintoa. Steam Controllerissa ei ole täydellistä tärinätoimintoa, mutta se emuloi tärinän haptiikan avulla (ja vastaa siksi tärinän ohjelmointirajapintakutsuihin).

Ledivalot

Steam Controller- ja PlayStation 4 -ohjaimissa on sisäänrakennettu ledivalo. Steam Controllerin valo on aina valkoinen, mutta PlayStation 4 -ohjaimen ledin väri on täysin ohjelmoitavissa. Kumpikin laite vastaa valon värin vaihtamisen ohjelmointirajapintakutsuun, mutta Steam Controller näyttää valon yksivärisenä ja käyttää sitä vain säädelläkseen kirkkautta. PlayStation 4 -ohjain puolestaan säätelee sillä sekä väriä että kirkkautta. Muut laitteet ohittavat ledin ohjelmointirajapintakutsut.