- Boardzilla é um framework que permite jogar e desenvolver jogos de tabuleiro no navegador, com o objetivo de reduzir a barreira de entrada para a criação de jogos de tabuleiro digitais
- A proposta é que os desenvolvedores consigam expressar as regras do jogo, enquanto os jogadores veem as opções disponíveis por meio de uma interface simples
- Entre os jogos de exemplo publicados estão 7 Wonders Duel, Cursed, Dyngus Day, 27Panic, Hearts, Hex, Power Grid, Skirma e Stunt Kites
- O número de jogadores suportado varia de acordo com o jogo, de modo solo até 4 jogadores; 7 Wonders Duel, Hex e Skirma são para 2 jogadores, e Hearts é para 4 jogadores
- Usuários que quiserem criar seu próprio jogo de tabuleiro podem começar o desenvolvimento pela documentação e pela página de apresentação fornecidas
O que o Boardzilla oferece
- Boardzilla é um ambiente baseado na web para facilitar a criação de jogos de tabuleiro digitais
- É possível jogar e desenvolver jogos de tabuleiro dentro do navegador
- Ele facilita a expressão das regras do jogo e apresenta aos jogadores as opções possíveis em uma interface simples
Exemplos de jogos jogáveis
- 7 Wonders Duel: 2 jogadores
- Cursed: 1 jogador
- Dyngus Day: 1 a 4 jogadores
- 27Panic: 2 a 4 jogadores
- Hearts: 4 jogadores
- Hex: 2 jogadores
- Power Grid: 2 a 4 jogadores
- Skirma: 2 jogadores
- Stunt Kites: 1 a 2 jogadores
Como começar a desenvolver
- Usuários que quiserem criar seu próprio jogo podem começar pela documentação do Boardzilla
- A apresentação do serviço pode ser vista em What is Boardzilla
1 comentários
Comentários no Hacker News
Acho que a mensagem mais chamativa da landing page não deveria ser um chamado para “entrar no Discord”
Links para exemplos e para o código-fonte/documentação deveriam aparecer primeiro. Em projetos assim, quando “entrar no Discord” é enfatizado demais, pessoalmente isso até me afasta. Acho que não sou o único
Realmente odeio Discord a menos que seja só uma plataforma casual de comunicação entre amigos. Mas as pessoas têm a tendência de usar o Discord como plataforma principal não só para perguntas de suporte, mas até para documentação. A qualidade de busca é ruim e os mecanismos de busca nem indexam direito, então quando você precisa encontrar uma solução, é realmente o pior cenário
Parece bom. Como o escopo de funcionalidades é amplo e deve haver muitas partes móveis, imagino que a carga de trabalho tenha sido bem grande. Pelo menos, é bom ver um motor de jogo focado em jogos de tabuleiro, mas não apenas na renderização em si
Dito isso, como alguém que já fez jogos de cartas e dados jogáveis online em HTML/JavaScript puro, ainda não entendi bem como eu recriaria a mesma coisa com esse sistema. Pela documentação, ele oferece suporte a cartas, e a abstração parece genérica o suficiente para servir a vários tipos de jogo, mas um tutorial passo a passo ajudaria muito. Entendo por que escolheram abstrações como Actions, Flows, selections, conditions e prompts, mas, sem ver como isso tudo se encaixa na prática, fica difícil ter noção de onde eu deveria alterar o que eu quisesse mudar. Sem tutorial, pessoalmente acho difícil avançar muito
Piece, isto é, coisas que ficam na mão ou se movem entrePlayere são colocadas em espaços (Space) na mesaCartas e dados são definidos herdando de
Piece, os jogadores herdam dePlayer, e algo como um carteador que gerencia o baralho também pode ser tratado comoPlayer. Depois disso, basta pensar em como posicionar no tabuleiro as instâncias deSpacede que as regras precisam. As regras ficam dentro de uma instância da classeGame, e nela existe o conceito de ações, que são instâncias da classeAction. Essas ações recebem argumentos que definem prompts ao usuário, condições de execução válidas e efeitos da execução. Fora isso, há várias funções utilitárias esperadas para localizar peças, comparar coisas e afins, e o resto depende da lógica do jogo. Pelos exemplos, também há funções para filtrarSpaceePiece, então parece dar para montar rapidamente a lógica de UIhttps://docs.boardzilla.io/game/creating-a-game
É melhor não colocar *Zilla no nome do projeto. Os detentores dos direitos de Godzilla são conhecidos por perseguir ativamente quem tenta usar o sufixo “Zilla”. A Mozilla também aprendeu isso há muito tempo e teve de fazer um acordo separado
O único caso de marca registrada que a Toho perdeu foi contra uma empresa de sacos de lixo chamada ‘trashzilla’, e um dos motivos também foi que isso não representava risco aos interesses comerciais da Toho. Edit: eu não tinha visto o logo. Isso definitivamente pode ser um problema
Então estão usando TypeScript + CSS. Eu esperava suporte a Python no servidor para a lógica do jogo. O momento é bom, mas desenvolvedores e publishers que usavam o BGA estão apreensivos por causa do modelo de negócios da Asmodee
A stack do BGA Studio é JS/CSS + PHP (cliente e servidor) + MySQL [0]
O Yucata.de usa JS + HTML + .NET 4.5 no servidor [1]
O TTS usava Lua, mas, olhando mais de perto, pareceu algo peculiar e limitado. Nem é orientada a objetos, então não entendo por que escolher uma linguagem não orientada a objetos para jogos de tabuleiro. A análise de 2021 do site/framework, “VassalEngine: Survey of other boardgame software”, também é útil [2]
Seria realmente ótimo se houvesse integração com Python no servidor
[0]: https://boardgamearena.com/doc/Studio
[1]: https://www.yucata.de/en/FAQ#t17
[2]: https://forum.vassalengine.org/t/survey-of-other-boardgame-s...
Programação orientada a objetos é possível mesmo sem classes [0]. E esperar que o desenvolvedor porte e mantenha o projeto inteiro em Python só porque você não quer aprender outra linguagem de programação é pedir demais
[0]: https://en.wikipedia.org/wiki/Lua_(programming_language)#Obj...
Legal. Tenho muitos protótipos de jogos de tabuleiro que um dia gostaria de transformar em jogos web, então já cheguei a escrever algumas funções de biblioteca genéricas para criação de jogos de tabuleiro. Parei em coisas como geração de grade, rolagem de dados customizada, compra de cartas, funções de torneio, testes mostrando vários cenários e mais algumas coisas, mas, tocando isso junto com outros projetos, provavelmente nunca vou ter tempo de fazer direito. Vou ter que ver como é fácil usar essa biblioteca
Concordo que aprender a plataforma do BGA é bem doloroso. 1) você fica preso à plataforma e não pode publicar o jogo em outro lugar, 2) é tudo em PHP, que hoje eu já não tenho muita vontade de usar, e 3) a documentação está espalhada em vários lugares e inclui até apresentações em PowerPoint
Se você estiver procurando algo mais de baixo nível, posso recomendar o boardgame.io
[1] https://boardgame.io/
Essa área é realmente difícil. Para ter sucesso, acho que você precisa ter um jogo que vire sucesso imediato, ou então investir um esforço enorme de comunidade para reunir jogadores todos os dias, o ano inteiro
Tentei a sorte com https://acos.games no começo, quando quase não havia alternativas ao BGA. Até hoje continuo desenvolvendo por trás de vez em quando quando estou entediado. Meu maior fracasso foi UI/UX. As pessoas não ligam tanto assim para a tecnologia bacana escondida por trás
Parece muito legal, e parabéns pelo lançamento
Pode ser excelente para desenvolver protótipos, mas, para criar uma alternativa ao BGA, você provavelmente vai precisar obter permissão dos publishers para implementar/publicar os jogos. Como o BGA é tão grande e pertence à Asmodee, imagino que isso não seja fácil. Espero estar errado
“Em resumo, nomes e logotipos podem ser protegidos por marcas registradas, e a arte tem direitos autorais (incluindo possivelmente o próprio tabuleiro como obra artística). Mecânicas, procedimentos e regras não podem ser protegidos por direitos autorais. É por isso que existem clones de Monopoly/Scrabble.”
https://www.reddit.com/r/gamedev/comments/10f2nov/comment/j4...
Aqui ele faz referência a este vídeo do YouTube
https://www.youtube.com/watch?v=iZQJQYqhAgY
Parece realmente muito legal. Estou ansioso para experimentar com as próprias mãos
Fico feliz em ver que existe o comando de fluxo everyPlayer, que permite ações simultâneas. É um recurso que faltava em outros frameworks de jogos de tabuleiro que já usei
[1]: https://docs.boardzilla.io/game/flow#everyplayer
Todos os jogos de exemplo estão dando erro
Object.hasOwn is not a function. (In 'Object.hasOwn(e,A.from)', 'Object.hasOwn' is undefined)O stack trace é o seguinte
su@https://www.boardzilla.io/build/_shared/chunk-ZEYFFM3P.js:16:114536Fs@https://www.boardzilla.io/build/_shared/chunk-QNN53S6I.js:9:128279Ch@https://www.boardzilla.io/build/_shared/chunk-QNN53S6I.js:11:180657Acho que precisa adicionar um polyfill