Executando verificação de segurança...
10

Pitch: TaleArchitect: Uma ferramenta open-source para worldbuilding

Olá, me chamo Mateus, tenho 18 anos e sou estudante de programação. Estou aqui para divulgar um aplicativo desktop que desenvolvi que pode vir a ser útil para alguns.

TaleArchitect

Essa é uma ferramenta de construção de mundos (worldbuilding) que pode ser útil para escritores, mestres/players de RPGs ou até mesmo criadores de conteúdo que necessitem organizar mundos de forma prática e visual.

Funcionalidades:

  • Criação de projetos: O aplicativo permite criar inúmeros projetos com arquivos de save .talearc separados. Ele gera também uma pasta assets no mesmo local onde o arquivo de dados foi salvo, permitindo que você copie a pasta assets e o arquivo para portar seu projeto entre máquinas, fazer backup ou compartilhar com amigos;
  • Privacidade total: Não é necessário criar conta e todos os dados ficam salvos apenas no seu computador;
  • Mapa: crie locais, arraste, solte e crie conexões entre eles em um sistema de nós 100% visual. Suporta também adição de uma imagem de fundo;
  • Timeline de eventos: Crie eventos no projeto e visualize-os cronologicamente. Suporta visualização geral em uma timeline e visualização por locais (eventos que aconteceram em cada local criado no mapa);
  • Calendário Personalizado: Permite personalizar o calendário utilizado no app, adicionando, removendo e editando meses (nome do mês e duração). Muito útil para histórias de fantasia que possuem um calendário próprio ou histórias que não utilizem o calendário Gregoriano;
  • Personagens: Crie, edite e delete personagens no seu projeto;
  • Paleta de comandos: Inspirado no VSCode, o aplicativo possui uma paleta de comandos que pode ser acessada usando o atalho Ctrl + K. Alguns comandos são internos;
  • Sistema de plugins: Você pode desenvolver e instalar plugins no app, usando a API que expõe funções internas do aplicativo.

Stack

  • Back-end: Tauri v2
  • Front-end: Svelte 5 + TypeScript
  • Estilização: TailwindCSS
  • Runtime: Bun

O que motivou a criação desse aplicativo?

Eu estou escrevendo uma história e aproveitei minha paixão por programação para estudar criando um app que me auxiliasse na atividade de escrever também. Dois coelhos em uma cajadada só kkkkkk

Eu aprendi muito sobre desacoplamento (apesar de não estar tão bom quanto poderia ser), funcionamento mais profundo de APIs internas de APPs, injeção de scripts personalizados, publicação de um pacote no NPM (Essa parte da API foi o que eu mais achei legal de desenvolver, é simplesmente mágico criar um script .js fora do meu app, instalar ele no app e ver ele interagindo com as funções expostas pela API que desenvolvi). Também decidi experimentar o Bun como runtime, sempre utilizava o Node, e gostei bastante da experiência.

Mas enfim, não sei se isso ajuda outra pessoa além de mim, mas adoraria receber feedback caso alguém decida testá-lo.

Primeiramente, gostaria de agradecer a todos que chegaram até aqui. Se você se interessou em baixar, testar ou ler a documentação de forma mais aprofundada, acesse o repositório no github: https://github.com/MateusRNM/TaleArchitect

O aplicativo é 100% open-source, então pode usar, compartilhar e modificar sem problema nenhum!

É isso, muito obrigado!

Carregando publicação patrocinada...
2

Muito interessante Mateus. Sou jogador e mestre de RPG de mesa, além de estudante de computação, e estava procurando justamente por algo assim a alguns meses atrás, hoje em dia eu uso o Obsidian mesmo mas tem algumas funcionalidades que sinto um pouco de falta (como a timeline que você implementou).

Parabéns pela iniciativa, assim que eu tiver a oportunidade vou testar com o universo do RPG que eu mestro e dou os feedbacks se for interessante pra ti.

1

Opa, mastrien, de boa? Assim que você tiver um tempo e testar adoraria receber feedbacks sim!
Quando eu tiver um tempo pretendo trabalhar mais nele, tanto no app quanto na API, então seus feedbacks ajudariam muito para os próximos updates.
Eu já penso em adicionar um sistema para injetar telas novas no aplicativo via API, isso já iria expandir bastante as possibilidades de modificação dos plugins.
Valeu!

2

Opa mano, testei aqui e apresentei pra uns colegas que também são mestres de RPG de mesa para que possam testar.

Ficou um projeto realmente muito interessante, a interface eu achei bonita (não costumo curtir muito essa paleta de amarelo/marrom mas nesse caso eu achei que combinou bem).

Vou tentar organizar aqui o que eu observei de cada funcionalidade chave.

Mapa

Sinto que eu talvez não tenha entendido precisamente o propósito dessa funcionalidade, mas me parece ter duas funções principais.

  • Mapear os lugares que existem na sua história
  • Mapear os possíveis caminhos

Eu testei com duas campanhas que eu tenho (foram testes rápidos então não desenvolvi mais de dez lugares por teste), uma delas se passa em cenário medieval enquanto a outra se passa em um cenário atual.

Em ambos os cenários de uso, elas servem bem para marcar "pins" no mapa para adicionar um nome e uma descrição de forma que se integre com o restante do sistema, isso ficou legal. No meu caso o sistema medieval, que é o que eu tenho mapa, tem mapas de grandes cidades/mapa-mundi, então era um pouco difícil mapear esse tipo de caminho.

Pode ser que eu tenha entendido errado o propósito também, não sei.

E agora uma sugestão de algo que acredito ter potencial pra ser uma excelente funcionalidade, se você tiver interesse em expandir pra esse lado.

A mecânica de mapas que você usou, se aplicada para personagens, poderia virar um incrível mapa de relacionamentos entre diferentes personagens de uma história (aliado, rival, trabalha para, etc...)

Personagens

Achei muito massa a criação dos personagens com as imagens e a forma de conectar isso com os eventos (vou falar disso jaja). Aqui acho que só tenho um ponto pra falar a UI da galeria.

Sobre a UI da galeria de personagens. Pelo que eu entendi, o propósito dos personagens aqui é serem passíveis de conexão com eventos da timeline, que são exibidos em imagens redondas, então por que não exibi-las assim também na galeria? Acho que poderia ser uma mudança sutil mas interessante.

Timeline

Pelo que eu entendi, é a funcionalidade chave do seu sistema, certo? Os locais, personages e eventos se unem aqui. Eu achei muito massa a forma de exibição da timeline, você permitir alternar a visualização entre a dimensão de tempo e lugares é muito útil.

Isso é o que eu mais sinto falta com as ferramentas que uso hoje em dia, a possibilidade de visualizar com clareza os eventos, a organização em um calendário próprio, isso ficou muito bom. Sobre a timeline em si não tenho nenhuma recomendação adicional.

Se for pra melhorar a timeline de alguma forma, eu focaria em tentar deixar os eventos mais sofisticados. Alguns eventos nas narrativas merecem algumas páginas de descrição, com direito a títulos, subtítulos e outros detalhes que enriqueçam sua descrição, se você quiser melhorar esse aspecto, acho que permitir um markdown dedicado para eventos pode ser um caminho interessante.


Um detalhe que talvez seja relevante é que eu não testei com nenhum plugin, eu vi que dá pra colocar mas os testes que eu fiz foram sem nenhum.

No mais é isso, parabéns novamente pelo projeto e bons estudos!

1

Opa, mano.

Sobre o mapa

Na verdade você não entendeu errado não. É mais difícil de fato construir caminhos extremamente complexos, tanto para programar quanto para o usuário em si. O jeito que dá para "contornar" usando o que o app já tem, é colocar o mapa de fundo (se você tiver o mapa) e ir criando locais em pontos específicos que são mais próximos entre si para montar o caminho mais detalhado. Mas isso dá muito trabalho para quem vai usar, talvez eu consiga pensar em uma solução no futuro, mas vou deixar anotado essa!
Também vou ver de adicionar esse sistema de conexão de relações, pode ser interessante mesmo!

Sobre os personagens

Vou testar essa mudança na UI para ver se fica massa. No futuro eu posso adicionar mais features no sistema de personagens também, seria interessante.

Sobre a timeline

Seria interessante mesmo adicionar suporte a MD, vou tentar adicionar nas próximas.

Considerações

Atualmente não faz muita diferença testar com ou sem os plugins, já que não existe nenhum além dos que eu criei de template. A ideia desse sistema é permitir que o app continue "evoluindo" sem que eu precise de fato trabalhar nele para sempre. É sobre "dar poder de extensão na mão da comunidade".

Atualmente pode-se dizer que a timeline é sim um ponto chave do app, mas eu pretendo melhorar as outras features no futuro e adicionar novas para deixar o app mais versátil. O grande ponto de vantagem aqui, é que os dados são organizados de forma "relacional" no save, usando referência por IDs. Isso abre muito o leque de possibilidades, pois eu poderia facilmente fazer sistemas que combinem dados de diferentes setores do app. Exemplo: quais personagens mais participaram de eventos?

Valeu pelo feedback, e obrigado!