Como um jogador apaixonado de Dungeons & Dragons e entusiasta de tecnologia, decidi elevar a configuração do meu jogo criando uma mesa de centro personalizada que apresenta uma tela incorporada. Esta tabela exibe mapas, fichas, reproduz efeitos sonoros e até mostra obras de arte para os jogadores. Tudo isso funciona por meio de uma plataforma poderosa chamada Foundry VTT, que é semelhante ao Roll20, mas com um modelo de preços melhor e um extenso sistema de módulos abertos. É perfeito para personalizar sua experiência de mesa.
Enquanto explorava maneiras de aprimorar minha configuração, notei módulos que permitiam a integração de decks de stream ao Foundry. Essas ferramentas fornecem acesso rápido a macros e comandos, tornando a jogabilidade ainda mais suave. Porém, depois de ver o preço de um stream deck (200 euros!), não estava preparado para fazer esse investimento.
Então me lembrei de uma coisa – há alguns anos, construí uma máquina de fliperama. Embora a máquina já tenha sido desmontada há muito tempo, eu ainda tinha os botões e as placas controladoras do projeto. Com um pouco de criatividade e uma impressora 3D, fiz meu próprio “stream deck” personalizado imprimindo uma pequena caixa com slots para os botões.
Agora eu tinha o hardware pronto, mas integrá-lo ao Foundry VTT apresentou um desafio. Eu queria usar a API do Gamepad no navegador para registrar os pressionamentos de botão, mas fiquei chocado com a falta de flexibilidade na forma como a API tratava as entradas. A abordagem padrão era usar um loop while(true) para pesquisar constantemente o estado pressionado de cada botão. Embora isso funcione bem em um loop de jogo usando requestAnimationFrame, para meus propósitos parecia ineficiente e, francamente, estúpido. Eu queria simplesmente responder ao pressionamento de botões com ouvintes de eventos, e não verificar constantemente o estado do gamepad em um loop infinito.
Isso me levou a criar o Gamepad SDK que estou compartilhando hoje.
Com este SDK, simplifiquei o processo, permitindo que os desenvolvedores adicionassem ouvintes de eventos para pressionar botões, liberações e alterações de eixo diretamente – sem necessidade de pesquisa. Também inclui suporte para conectar e desconectar gamepads, o que facilita a integração com plataformas como Foundry VTT ou qualquer projeto baseado em navegador.
Ao usar este SDK, qualquer pessoa pode conectar seu controlador personalizado a um aplicativo baseado em navegador sem o incômodo de verificar manualmente os estados do gamepad. Para minha mesa de D&D, agora significa que posso usar perfeitamente meu deck de stream improvisado para controlar macros, ações e muito mais no jogo – tudo graças a alguns botões e um pouco de código.
Se você estiver interessado, confira o SDK e sinta-se à vontade para entrar em contato se quiser resolver problemas semelhantes!
Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pindakaasman/gamepad-sdk
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3