10 pontos por GN⁺ 2025-06-08 | 1 comentários | Compartilhar no WhatsApp
  • É uma biblioteca JavaScript leve projetada para permitir que até usuários com pouca experiência em programação criem videogames com facilidade
  • É adequada para o desenvolvimento de jogos narrativos, ou seja, jogos centrados em storytelling
  • Oferece uma experiência de criação de jogos sem programação complexa por meio de uma estrutura de código intuitiva e uma API concisa
  • Como tudo (sprites, diálogos, sons e interações) é criado em código, o jogo inteiro pode ser armazenado em um único arquivo

Principais características e vantagens

  • Até desenvolvedores iniciantes ou não desenvolvedores podem criar jogos narrativos apenas com código JavaScript simples
  • Diferentemente de grandes frameworks, oferece tamanho extremamente pequeno e facilidade de uso
  • Tem pontos fortes em história e interação, como jogos baseados em escolhas, conteúdo interativo e experiência de desenvolvimento visual

Para quem é

  • Pode ser usado por startups, profissionais de TI, desenvolvedores e criadores que estão começando na criação de jogos ou querem criar protótipos rapidamente
  • É uma ferramenta mais adequada para experimentação de ideias, conteúdo interativo e progressão de história do que para gráficos complexos ou jogos de grande escala

O desenvolvimento do jogo começa com createGame()

createGame({  
  player: {  
    sprite: 7,  
    position: [2, 5]  
  },  
  map: `  
    ########  
    #......#  
    #..X...#  
    #......#  
    ########  
  `,  
  templates: {  
    X: {  
      sprite: 4,  
      dialog: 'Hello, adventurer!'  
    }  
  }  
})  

1 comentários

 
GN⁺ 2025-06-08
Comentários no Hacker News
  • Fiquei me perguntando por que o título é ‘...for narrative games’
    Percebi que a página oficial da biblioteca não menciona jogos ‘narrativos’
    Há certa confusão sobre o significado de ‘narrative game’
    Os jogos de exemplo não batem com a minha definição de ‘jogo narrativo’
    Pelo que aparece no Google, a ligação entre ‘narrative game’ e os jogos de exemplo parece fraca
    Se existe uma definição mais universal de ‘narrative game’, fica a dúvida sobre quais recursos esta biblioteca oferece especificamente para criar esse tipo de jogo em comparação com outros motores

    • Ontem à noite tive uma ideia para um jogo de aventura baseado em texto
      O conceito seria cumprir missões cotidianas, tipo pagar impostos, ir ao trabalho e limpar a casa
      Se você fizer menos dessas coisas, a vida fica mais difícil; se fizer mais, fica mais fácil
      O objetivo final é morrer sem dívidas

    • Acho que a ideia desta ferramenta é permitir criar declarativamente jogos de aventura simples usando texto e diálogos
      É diferente de um motor de jogo mais genérico como o Pico-8, que costuma ser usado para construir em torno de mecânicas
      É fácil criar mapas, mover-se entre mapas, NPCs, diálogos e gatilhos de texto
      Motores voltados a não programadores (como RPGMaker etc.) também são parecidos; mesmo lá, a maioria dos usuários faz jogos centrados em mapas e gatilhos, com texto e diálogos no centro, sem mecânicas complexas separadas
      Acho que esta ferramenta destaca justamente a facilidade de criar esse tipo de jogo ‘narrativo’

    • Na documentação introdutória oficial:
      ‘Odyc.js é uma biblioteca JavaScript pequena e leve, projetada para permitir a criação de jogos narrativos combinando pixels, som, texto e um pouco de lógica’

    • Naturalmente, eu presumi que fosse um motor para aventuras em texto

    • Só na versão em francês do site há mais dois exemplos de ‘narrative’
      Usei esse termo porque, pelo foco em estrutura por turnos e em mensagens, prompts e diálogos, me parece adequado para jogos ‘narrativos’ ou baseados em texto
      Mas, se houver uma ideia melhor de rótulo, troco com prazer

  • O jogo The Magic Mushroom é incrível
    link

    • Até agora, este é o meu favorito
      link

    • O jogo do John Wick parece um resumo dos filmes recentes
      link

  • Gostei muito dessa forma de composição
    Já fiz vários experimentos criando muitos motores de jogo em JavaScript, e isto ocupa um ponto muito bom entre ‘preciso terminar algo rapidamente para crianças em 2 horas’ e ‘quero entender a estrutura em profundidade’
    Espero fazer alguns jogos rapidamente para manter crianças entretidas em ambientes de baixa largura de banda

  • Tem cara de uma ferramenta bem charmosa
    Especificamente, acho boa para ensino com crianças, algo como um pygame dos tempos atuais
    Ferramentas como Scratch foram feitas para crianças de 5 anos e simplificam demais a programação
    Esta aqui parece ideal para alunos por volta dos 10 anos
    Dá para aprender manipulação simples de strings, alguns truques de sintaxe, implementar um side scroller básico e NPCs
    Depois, quando estiverem prontos, também dá para ganhar experiência com controle de fluxo
    Se você aprender isso para abrir aulas para crianças ou investir num espaço tipo playground, parece algo que dá até para vender de forma prática
    Por outro lado, também parece interessante para experimentar geração procedural básica de assets de jogo

  • Exemplo de código compartilhado: game.prompt(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”, “Yes”, “No”);

    • Exemplo de uso do código: await game.openDialog(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”) game.prompt( “Yes”, “No”)

    • Mas era só um ovo; como isso virou quarenta? perguntou alguém

  • Considerado um projeto realmente inspirador
    A pessoa confirmou que é open source, mas apontou que faltava a licença, o que dificulta para desenvolvedores saberem até onde podem fazer fork, modificar e redistribuir
    Também gostaria de publicar um fork traduzido para a língua nativa dela (com os devidos créditos), e perguntou se tudo bem
    No país dela, menos de 5% usa inglês

    • Agradeceu e disse que vai adicionar uma licença no estilo MIT
      Perguntou qual é a língua nativa da pessoa
      Explicou que, para idiomas escritos da esquerda para a direita, aplicar tradução é simples
      Disse que forks, PRs ou qualquer contato para melhorar acessibilidade são sempre bem-vindos
  • Isto é incrível
    Era exatamente o que eu precisava há 12 horas
    Por coincidência, ontem à noite adormeci fazendo assets para um jogo narrativo romântico de 3 fases para uma única pessoa
    É a minha primeira vez desenvolvendo um jogo
    De manhã, vi no HN uma biblioteca JS para jogos narrativos subir ao primeiro lugar
    Para constar, meu jogo é um jogo de gado, e estou usando para pedir oficialmente em namoro para alguém com quem venho saindo há um tempo

    • Parece uma ótima ideia
      Tive uma experiência parecida: recentemente recriei toda a interface do chat do MSN de 2005 em HTML para dar nostalgia a alguém
      Foi uma experiência muito calorosa

    • Boa ideia
      Queria poder ajudar mais
      Realmente acho que esta ferramenta é um caso perfeito para isso
      Espero que dê tudo certo

    • Gostar de alguém e querer passar tempo com essa pessoa, ou demonstrar interesse, não é algo que deva ser chamado de ‘gado’
      Parece um pedido muito carinhoso e atencioso

  • Passa uma impressão parecida com puzzlescript

    • PuzzleScript é realmente muito legal, e também recomendo crisp-game-lib, da mesma linha de motores pequenos
  • Achei uma ferramenta muito legal

  • Não tem relação com esta biblioteca, mas fiquei curioso sobre como funciona o canvas video recorder aplicado no playground
    Quero tentar implementar isso por conta própria