열정적인 Dungeons & Dragons 플레이어이자 기술 애호가로서 저는 화면이 내장된 맞춤형 커피 테이블을 만들어 게임 설정을 향상시키기로 결정했습니다. 이 테이블에는 지도, 토큰이 표시되고 음향 효과가 재생되며 플레이어를 위한 아트워크도 표시됩니다. 이 모든 것은 Roll20과 유사하지만 더 나은 가격 모델과 광범위한 개방형 모듈 시스템을 갖춘 Foundry VTT라는 강력한 플랫폼을 통해 실행됩니다. 테이블탑 경험을 맞춤화하는 데 적합합니다.
설정을 향상하는 방법을 탐색하는 동안 스트림 데크를 Foundry와 통합할 수 있는 모듈을 발견했습니다. 이러한 도구를 사용하면 매크로와 명령에 빠르게 액세스할 수 있어 게임 플레이가 더욱 원활해집니다. 하지만 스트림 데크의 가격(200유로!)을 보고 나서 저는 그런 투자를 할 준비가 되지 않았습니다.
그러다 문득 생각나는 게 있었습니다. 몇 년 전에 제가 아케이드 기계를 만들었던 일이었죠. 기계가 해체된 지 오래되었지만 프로젝트에 사용된 버튼과 컨트롤러 보드는 여전히 남아 있었습니다. 약간의 창의력과 3D 프린터를 사용하여 버튼용 슬롯이 있는 작은 상자를 인쇄하여 나만의 맞춤형 "스트림 데크"를 만들었습니다.
이제 하드웨어가 준비되었지만 이를 Foundry VTT와 통합하는 것이 쉽지 않았습니다. 버튼 누르기를 등록하기 위해 브라우저에서 Gamepad API를 사용하고 싶었지만 API가 입력을 처리하는 방식에 유연성이 부족하다는 사실에 충격을 받았습니다. 기본 접근 방식은 while(true) 루프를 사용하여 각 버튼이 눌려진 상태를 지속적으로 폴링하는 것이었습니다. 이것은 requestAnimationFrame을 사용하는 게임 루프에서는 잘 작동하지만, 제 목적으로는 비효율적이고 솔직히 어리석게 느껴졌습니다. 저는 끝없는 루프에서 게임패드 상태를 지속적으로 확인하는 것이 아니라 이벤트 리스너를 사용하여 버튼 누름에 단순히 응답하고 싶었습니다.
이것이 제가 오늘 공유하는 게임패드 SDK를 만드는 계기가 되었습니다.
이 SDK를 사용하면 개발자가 폴링이 필요 없이 버튼 누르기, 놓기, 축 변경에 대한 이벤트 리스너를 직접 추가할 수 있어 프로세스가 단순화되었습니다. 또한 게임패드 연결 및 연결 해제 지원이 포함되어 있어 Foundry VTT와 같은 플랫폼이나 브라우저 기반 프로젝트와 쉽게 통합할 수 있습니다.
이 SDK를 사용하면 누구나 게임 패드 상태를 수동으로 확인하는 번거로움 없이 브라우저 기반 앱에 맞춤형 컨트롤러를 연결할 수 있습니다. 내 D&D 테이블의 경우 이제 몇 개의 버튼과 약간의 코드 덕분에 임시 스트림 데크를 사용하여 게임 내 매크로, 동작 등을 원활하게 제어할 수 있습니다.
관심이 있으시면 SDK를 확인해 보시고 비슷한 문제를 해결하고 싶다면 언제든지 문의해 주세요!
Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3