Als leidenschaftlicher Dungeons & Dragons-Spieler und Technikbegeisterter habe ich beschlossen, mein Spiel-Setup zu verbessern, indem ich einen maßgeschneiderten Couchtisch mit integriertem Bildschirm erstellt habe. Dieser Tisch zeigt Karten, Spielsteine, spielt Soundeffekte ab und zeigt sogar Kunstwerke für Spieler. All dies läuft über eine leistungsstarke Plattform namens Foundry VTT, die Roll20 ähnelt, jedoch über ein besseres Preismodell und ein umfangreiches offenes Modulsystem verfügt. Es eignet sich perfekt für die individuelle Gestaltung Ihres Tischerlebnisses.
Als ich nach Möglichkeiten suchte, mein Setup zu verbessern, fielen mir Module auf, die die Integration von Stream-Decks in Foundry ermöglichten. Diese Tools bieten schnellen Zugriff auf Makros und Befehle und machen das Gameplay noch flüssiger. Nachdem ich jedoch den Preis für ein Stream-Deck gesehen hatte (200 Euro!), war ich nicht bereit, diese Investition zu tätigen.
Dann fiel mir etwas ein – vor ein paar Jahren habe ich einen Arcade-Automaten gebaut. Obwohl die Maschine längst zerlegt ist, hatte ich noch die Knöpfe und Controllerplatinen aus dem Projekt. Mit etwas Kreativität und einem 3D-Drucker habe ich mein eigenes „Stream-Deck“ erstellt, indem ich eine kleine Schachtel mit Schlitzen für die Knöpfe gedruckt habe.
Jetzt hatte ich die Hardware bereit, aber die Integration in Foundry VTT stellte eine Herausforderung dar. Ich wollte die Gamepad-API im Browser verwenden, um meine Tastendrücke zu registrieren, war aber schockiert über die mangelnde Flexibilität bei der Verarbeitung von Eingaben durch die API. Der Standardansatz bestand darin, eine while(true)-Schleife zu verwenden, um ständig den gedrückten Zustand jeder Taste abzufragen. Während dies in einer Spielschleife mit requestAnimationFrame gut funktioniert, fühlte es sich für meine Zwecke ineffizient und ehrlich gesagt dumm an. Ich wollte einfach mit Ereignis-Listenern auf Tastendrücke reagieren und nicht ständig den Gamepad-Status in einer Endlosschleife überprüfen.
Dies hat mich dazu gebracht, das Gamepad SDK zu erstellen, das ich heute teile.
Mit diesem SDK habe ich den Prozess vereinfacht, indem ich es Entwicklern ermöglicht habe, Ereignis-Listener für Tastendrücke, Loslassen und Achsenänderungen direkt hinzuzufügen – keine Abfrage erforderlich. Es bietet auch Unterstützung für das Anschließen und Trennen von Gamepads, was die Integration in Plattformen wie Foundry VTT oder andere browserbasierte Projekte erleichtert.
Durch die Verwendung dieses SDK kann jeder seinen benutzerdefinierten Controller mit einer browserbasierten App verbinden, ohne den Gamepad-Status manuell überprüfen zu müssen. Für meinen D&D-Tisch bedeutet das jetzt, dass ich mein provisorisches Stream-Deck nahtlos verwenden kann, um Makros, Aktionen und mehr im Spiel zu steuern – alles dank ein paar Tasten und ein wenig Code.
Wenn Sie interessiert sind, schauen Sie sich das SDK an und wenden Sie sich gerne an uns, wenn Sie ähnliche Probleme lösen möchten!
Der Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3