Steamworks-Dokumentation
Allgemeine Konzepte

Steam-Eingabe

„Steam-Eingabe“ ist der Überbegriff für sämtliche von Steam zur Verbindung mit Spielen über eine Schnittstelle verwendete Software, Hardware und Konfigurationsdienstprogramme.

Steam-Eingabe-Konfigurator

Der Steam-Eingabe-Konfigurator (SIC) ist in den Steam-Client integriert und befindet sich zwischen Spieler und Spiel bzw. Anwendung. Der Konfigurator empfängt die Eingaben Ihres Eingabegeräts und übersetzt diese Signale entsprechend den Einstellungen des Spielers, bevor er sie an das Spiel weitergibt.

Steam-Eingabe kann sowohl im klassischen Modus (Legacy-Modus) als auch im nativen Modus (Native-Modus) verwendet werden.

Klassischer Modus

Der klassische Modus ist ein Kompatibilitätsmodus und wurde für Spiele entwickelt, in denen die Steam-Eingabe-API nicht implementiert ist. In diesem Fall dient der Konfigurator lediglich als ausgefeilter Eingabe-Mapper, den jeder Spieler für jedes Spiel auf Steam verwenden kann.

Spieler können jede physische Eingabe jeder anderen physischen Eingabe neu zuordnen. So kann beispielsweise mit der A-Taste „Eingabe“ oder mit einem Klick des linken analogen Triggers ein Mausklick simuliert werden etc. Dieser Modus funktioniert mit jedem unterstützten Eingabegerät, nicht nur dem Steam Controller.

Zwar eignet sich der klassische Modus hervorragend für Spiele ohne API-Unterstützung, es gibt jedoch einige Beschränkungen. Zum einen neigen Spiele, die in der Annahme programmiert wurden, dass Gamepad- und Maussteuerelemente nie gleichzeitig aktiv sind, zu vielerlei Störungen, wenn Ihre Konfiguration gegen diese Grundannahme verstößt. Zum anderen weiß das Spiel nicht, dass Sie den Konfigurator verwenden, sondern empfängt lediglich Hardware-Eingaben, die vom Konfigurator vorgetäuscht werden. Daher werden die Bildschirmglyphen für Controller-Eingaben wahrscheinlich nicht übereinstimmen.

Nativer Modus

Im nativen Modus erhält das Spiel Eingabedaten in Form von Aktionen direkt vom Konfigurator. Dieser Einrichtung liegt das Konzept zugrunde, dass das Spiel selbst nicht weiß, welche tatsächlichen Eingabe eine Aktion auslöst, sondern nur, welche Aktion damit auszuführen sind. Alle Konfigurations- und Steuerungseinstellungen werden an den Steam Controller-Konfigurator verwiesen. Das Spiel kann jedoch über einen speziellen API-Aufruf Informationen darüber anfordern, welche physischen Steuerelemente welchen Aktionen zugewiesen sind und anhand dieser Zusatzinformationen die richtigen Bildschirmglyphen anzeigen.

Steam-Eingabe-API

Die Steam-Eingabe-API ist die Anwendungsprogrammierschnittstelle, die von Entwicklern dafür verwendet wird, im nativen Modus direkt mit dem Steam-Eingabe-Konfigurator zu kommunizieren. Zur Unterstützung des klassischen Modus ist sie nicht erforderlich.

Die vollständige Dokumentation zu diesem Thema finden Sie hier: ISteamInput.

Controllerkonfiguration

Spieler können mit dem nativen Modus, dem klassischen Modus oder sogar einer Mischung aus beiden Modi für jedes Spiel in ihrer Bibliothek vollständig angepasste Eingabezuordnungen festlegen. Diese Eingabezuordnungen werden als "Controllerkonfigurationen" bezeichnet. Spieler können für ein einzelnes Spiel mehrere verschiedene einrichten und sie online mit anderen Spielern teilen.

Eingabehierarchie

Physische Eingaben

Eine „physische Eingabe“ ist ein physischer Mechanismus in jedem Eingabegerät, mit dem dem Benutzer interagieren, um Eingabedaten für ihre Computer zu generieren. Diese physischen Eingaben können digitaler und analoger Natur sein und umfassen u. a. Tasten, Joysticks, Steuerkreuze, Schultertasten, Trigger, Schalter, Rundblickschalter, Trackballs, Trackpads, Gyroskope usw.

Bevor wir uns mit abstrakteren Konzepten beschäftigen, ist zunächst nur wichtig zu wissen, dass mit „physische Eingaben“ die kleinen Komponenten am Eingabegerät gemeint sind, die Sie mit Ihren Fingern (oder Ihren Zehen, falls Ihnen das lieber ist) bedienen.

Eingabequellen

Eine „Eingabequelle“ ist ein als „größere modulare Vorrichtung“ zu betrachtender Bereich am Eingabegerät, auf die einer von zahlreichen Modi angewendet werden kann, um die Art und Weise der Datenausgabe zu ändern.

Damit kommen wir zu den abstrakteren Konzepten.

Drücken wir es einmal so einfach wie möglich aus: Worin liegt der Unterschied zwischen einem Steuerkreuz und den vier in einer Raute angeordneten Haupttasten?

input_dpad.pnginput_bpad.png

Beide verfügen über vier digitale Tasten. Die Auslegung der meisten Steuerkreuze macht es jedoch unmöglich, „Nach oben“ und „Nach unten“ oder „Nach links“ und „Nach rechts“ gleichzeitig zu drücken, wohingegen jede Haupttaste unabhängig von den anderen gedrückt werden kann. Mit Steam-Eingabe können Sie Ihren Haupttasten die Einschränkungen eines Steuerkreuzes aufzwingen.

Auch wenn das Steuerkreuz und die Haupttasten jeweils aus vier einzelnen „physischen Eingaben“ bestehen, sollten beide als eigenständige Einheiten betrachtet werden, damit wir die ihr Verhalten als Einheit ändern können.

Hier die vollständige Liste der erkannten „Eingabequellen“:

  • linkes Trackpad
  • rechtes Trackpad
  • mittleres Trackpad
  • linker Joystick
  • rechter Joystick
  • A, B, X, Y
  • Steuerkreuz
  • linker Trigger
  • rechter Trigger
  • Gyroskop
  • Schalter
HINWEIS: Die Eingabequelle „Schalter“ umfasst alle physischen Eingaben, die keiner anderen Gruppe angehören, z. B. Zurück-Taste und Start-Taste, linke und rechte Schultertaste und das Griffpaddle auf der Rückseite.

Mehr dazu:

Eingabequellenmodi

Eingabequellen können in verschiedenen Modi genutzt werden, die ihr Verhalten verändern. Diese werden „Eingabequellenmodi“ genannt. Obwohl diese Modi für digitale Eingaben nützlich sind, werden Eingabequellenmodi am häufigsten bei analogen Steuerelementen verwendet (insbesondere bei Trackpads), die auf viele verschiedene Arten konfiguriert werden können.

Hier die vollständige Liste der erkannten „Eingabequellenmodi“:

  • Steuerkreuz
  • vier Tasten
  • absolute Maus
  • relative Maus
  • Joystickbewegung
  • Joystickmaus
  • Joystickkamera
  • Mausrad
  • Trigger
  • Touch-Menü
  • Maus-Analogstick
  • Mausbereiche
  • Radialmenü
  • Schalter

Mehr dazu:

Fassen wir also kurz zusammen:

Physische Eingaben:
Die Komponenten, mit denen Sie am Gerät interagieren. Beispiel: die A-Taste, die Eingabe „nach oben“ am Steuerkreuz usw.

Eingabequellen:
Eine größere Gruppierung einzelner physischer Eingaben, die zu einer modularen Einheit zusammengefasst werden können. Beispiele: Das gesamte Steuerkreuz, die vier Haupttasten, der gesamte linke Joystick usw.

Eingabequellenmodi:
Ein bestimmtes Verhalten, das Sie der Eingabequelle aufzwingen. Beispiel: „Die Haupttasten sollen wie ein Steuerkreuz funktionieren“, „Der linke Joystick soll wie vier Haupttasten funktionieren“ etc.

Aktionen

Aktionen sind die Ereignisse, mit denen die Steam-Eingabe-API alles koordiniert. Im nativen Modus empfängt Ihr Spiel kein Ereignis wie „Taste A gedrückt“, sondern lediglich das Ereignis „Springen“ (oder etwas anderes). Spieler können frei bestimmen welche Eingabe „Springen“ auslöst.

Digitale Aktionen

Digitale Aktionen sind die einfachsten und häufigsten Aktionen. Sie sind entweder AN oder AUS. Das Spiel ruft nur wiederholt den Status dieser Aktionen ab und beachtet diesen.

Analoge Aktionen

Analoge Aktionen haben eine oder mehrere Achsen von Signalen und werden für Dinge wie ruckfreies Bewegen von Charakteren, Lenken von Autos, Steuern von Kameras usw. verwendet. Reguläre per Joystick oder Maus gesteuerte Aktionen haben meist zwei Achsen (X und Y), einachsige analoge Aktionen sind aber ebenfalls möglich (z. B. die normalerweise an analoge Trigger gekoppelten Aktionen). In diesem Fall melden die Aktionsdaten zwar weiterhin zwei Achsen, aber die y-Achse ist immer Null.

Aktionsbezeichnung

Alle Aktionen benötigen klare Bezeichnungen wie z. B. „Springen“ oder „Schlagen“. Diese Stringwerte sind unabhängig von dem Text, den der Spieler sieht (bei diesem handelt es sich um lokalisierbare „Aktionsnamen“).

Aktionsdeskriptor

Der Abruf (Polling) von Aktionen über Stringbezeichnungen ist aufwendig und ineffizient. Ihr Spiel muss in diesem Fall beim Laden der API alle Aktionen nach ihrem Namen erfassen und die entsprechenden ganzzahligen Aktionsdeskriptoren empfangen.

Aktionsursprung

Ein „Aktionsursprung“ ist ein String, der identifiziert, welche Art von Eingabe in der Controllerkonfiguration des Spielers einer bestimmten Aktion zugewiesen ist.

Aktionssets

Ein Aktionsset ist eine logische Gruppierung verknüpfter Aktionen. Es kann immer nur ein einziges Aktionsset pro Eingabegerät aktiv sein. Sie können beispielsweise ein Aktionsset „Menü“ erstellen, das nur in Menüsequenzen aktiv ist, sowie Aktionssets wie „Fahren“, „Gehen“ und „Fliegen“ für ein Spiel wie GTAV, in dem mehrere Fahrzeug- und Bewegungsmodi vorkommen. Aktionssets existieren sowohl im nativen Modus wie klassischen Modus. Im nativen Modus werden sie vom Entwickler explizit definiert und das Spiel führt API-Aufrufe durch, um festzustellen, welches Aktionsset gerade aktiv ist. Im klassischen Modus muss der Spieler Änderungen des Aktionssets selbst manuell auslösen. In beiden Fällen stellen Aktionssets eine Möglichkeit dar, am Eingabegerät Platz freizugeben, da es nicht mehr nötig ist, alle im Spiel möglichen Aktionen permanent zuzuweisen und immer aktiv zu lassen.

Aktionssetebenen

Aktionssetebenen sind optionale Sets für Aktionszuweisungen, die ein vorhandenes Set von Steuerelementen überlagern können. Im Gegensatz zu Aktionssets, beziehen Ebenen ihre Aktionen aus dem Aktionsset, in dem sie enthalten sind. Sie nehmen nur kleine Änderungen vor, anstatt bereits aktive Sets zu ersetzen. Diese können aus Einstellungsänderungen bestehen sowie Zuordnungen zum Basisaktionset hinzufügen oder daraus entfernen. Mehrere Ebenen können gemeinsam angewendet werden, erfolgen aber nacheinander.

Weitere Details finden Sie hier: Aktionssetebenen.

Physisches Feedback

Über das Bildschirmgeschehen hinaus haben manche Eingabegeräte die Fähigkeit, dem Spieler durch Vibration und Licht Feedback zu geben.

Haptik

Dies ermöglicht detailgetreue physische Empfindungen, durch die der Spieler besser erkennen kann, an welcher Stelle sich seine Hände und Finger auf großen Berührungsoberflächen befinden. Außerdem kann so z. B. die virtuelle Dynamik eines emulierten Trackballs vermittelt werden. Haptik wird von Steam Controllern und einigen Nintendo Switch Controllern unterstützt. Nicht unterstützte Geräte ignorieren API-Aufrufe für haptisches Feedback.

Vibration

Vibration ist eine traditionellere Form des physischen Feedbacks und wird von internen Vibrationsmotoren verursacht, die das Gerät schütteln. Diese Funktion wird vom PlayStation 4 Controller und von den Xbox-Controllern (sowie von vielen XInput-kompatiblen generischen Geräten) unterstützt. Der Steam Controller liefert keine echte Vibration, emuliert jedoch mit seinem haptischen Feedback etwas Ähnliches (und reagiert daher auf die API-Aufrufe für Vibration).

LED

Sowohl der Steam Controller als auch der Playstation 4 Controller haben eingebaute Leuchtdioden. Das Licht des Steam Controllers ist immer weiß, der Playstation 4 Controller hingegen verfügt über eine vollständig programmierbare farbige LED. Beide Geräte reagieren auf API-Aufrufe zur Farbänderung des Lichts. Der Steam Controller setzt jedoch die Farbinformationen in Graustufen um und regelt darüber lediglich die Helligkeit, wohingegen der Playstation 4 Controller darüber sowohl die Farbe als auch die Helligkeit regelt. Nicht unterstützte Geräte ignorieren API-Aufrufe für die LED.