Gedanken über Game Input

2020-01-01

Einige Gedanken, wie man in Games Input sauber lösen kann.

games (9) software (29) algorithm (2)

Table of Contents
  1. Problem
  2. Lösungsvorschlag
  3. Input Layering
  4. Scancodes vs. Keycodes

Select anchorProblem

Select anchorLösungsvorschlag

Select anchorInput Layering

Maskierbare Input-Events & -Zustände mit Unterteilung in Gruppen. Damit können verschiedene Gruppen einzeln aktiv/inaktiv geschaltet werden und somit bequem verwaltet.

Zudem müssen Inputs eine Priorität haben, damit aktive Input-Events mit höherer Priorität Events mit niedrigerer Priorität überdecken können. Beispiel: Linksklick im Ingame-Inventar sollte nicht mehr Schießen sein, aber Laufen sollte weiterhin aktiv sein.

Select anchorScancodes vs. Keycodes

Scancodes sind Tastaturlayout-unabhängig und befinden sich quasi immer an der selben Position. Keycodes sind abhängig vom Benutzer gewählten Tastaturlayout.

Beide haben ihre Berechtigung:

Scancodes sind zum Beispiel geeignet für bequeme Eingaben (wie Laufen, Sprinten), da diese in der Regel keine Semantik bzgl. ihrer Position auf dem Tastaturlayout haben. W ist über D, also ist W vorwärts und D rückwärts, hat aber keinen Zusammenhang mit den Buchstaben.

Keycodes sind geeignet für semantische Eingaben wie beispielsweise I für Inventar öffnen. Hier ist die Beschriftung der Taste relevant, nicht die Position.

Also nochmal kurz: Falls die Position der Taste relevant ist, verwende Scancodes. Falls die Beschriftung der Taste relevant ist, verwende Keycodes.