2 pontos por GN⁺ 2024-03-23 | 1 comentários | Compartilhar no WhatsApp
  • Picotron é um ambiente de criação autocontido para criar, executar e compartilhar apps em Lua sobre hardware virtual, permitindo lidar com pequenos jogos e ferramentas dentro de um único desktop
  • Tela 480x270 com 64 cores, sistema de arquivos virtual, formato de arquivo POD, sintetizador de áudio PFX6416 e uma VM Lua 5.4 por processo compõem o modelo básico de execução
  • Apps, projetos e pacotes de distribuição são todos tratados como cartuchos, salvos e compartilhados como arquivos de texto .p64 ou .p64.png, que comportam até 256k de dados ROM
  • O desktop tem áreas de trabalho em abas, uma bandeja de ferramentas dobrável e pilhas de arquivos, além de incluir por padrão editores de código, gráficos, tilemaps, música e efeitos sonoros
  • Atualmente em fase Beta, oferece suporte a Windows, Mac, Linux e exportação para HTML, e é vendido por US$ 19,99 com acesso a atualizações futuras incluído

Ambiente de criação sobre hardware virtual

  • Picotron é um ambiente de criação autocontido que se apresenta como uma Fantasy Workstation e roda sobre hardware virtual
  • O usuário pode criar apps em Lua e executar/compartilhar os resultados de várias formas
    • Executar no desktop do Picotron
    • Compartilhar como arquivo de cartucho
    • Exportar como HTML independente e distribuições binárias
  • A tela padrão é 480x270 com 64 cores, e também pode rodar em 240x135 ou 160x90
  • No modo de tela cheia, é possível usar paletas personalizadas
  • A API gráfica integrada oferece acesso de baixo nível à tela
    • Padrões de preenchimento 8x8
    • Substituição de paleta e blending
    • Bits de stencil
    • tline3d para rasterização de textura com correção de perspectiva

Arquivos, áudio e modelo de execução

  • O sistema de arquivos é um sistema de arquivos virtual que expõe apenas as partes necessárias do sistema host
  • Arquivos internos do Picotron usam o formato POD (Picotron Object Data), permitindo salvar e carregar tabelas Lua diretamente no disco
    • Dados de save ou de níveis podem ser agrupados como tabelas Lua e salvos em um pod com store()
  • O áudio é gerado por um sintetizador em tempo real de 64 nós e 16 canais chamado PFX6416
    • Os nós criam sinais a partir de wavetables ou modificam sinais com modulação FM/RING, delay, filtros ressonantes HP/LP e waveshaping
    • Músicas, incluindo designs de instrumentos do usuário, podem ser salvas em disco com tamanho de 5 a 20k
  • O ambiente de execução usa uma VM Lua 5.4 ligeiramente modificada e separada para cada processo
    • A CPU virtual é dividida entre processos e executa até 8M instruções de VM por segundo
    • Cartuchos do Picotron podem rodar em velocidade consistente em diversas plataformas
    • Foi projetado para que, se rodar sem problemas em um desktop de alto desempenho, geralmente tenha aparência semelhante também em um ambiente web de netbooks antigos

Distribuição centrada em cartuchos

  • Aplicações, projetos e pacotes de distribuição são todos tratados como o mesmo tipo, chamado cartucho
    • Cada cartucho funciona como uma pasta comum e inclui os arquivos-fonte e recursos necessários para executar o programa
    • No sistema host, é salvo como um único arquivo de texto .p64 e pode ter tamanho até caber na RAM
    • O formato PNG compartilhável .p64.png pode conter até 256k de dados ROM

Desktop e ferramentas integradas

  • O desktop do Picotron oferece áreas de trabalho em abas e uma bandeja de ferramentas dobrável (tooltray) acessível a partir de todas as áreas de trabalho
  • A bandeja de ferramentas funciona como um segundo desktop para acessar arquivos e widgets usados com frequência
  • É possível soltar arquivos uns sobre os outros para criar pilhas organizadas, e navegar pelas pilhas com a roda do mouse
  • Os editores incluídos por padrão cobrem código, gráficos, tilemaps, música e efeitos sonoros
    • Esses próprios editores também foram feitos com Picotron
    • Pilha ilimitada de desfazer, GUI e gerenciamento de arquivos usam a biblioteca padrão /system/lib
  • Usuários podem criar papéis de parede animados, protetores de tela, ícones e widgets, e organizar o fluxo de trabalho como preferirem

Pipelines, suporte a plataformas e preço

  • Picotron é construído sobre um pipeline gráfico e um pipeline de áudio fortemente integrados
    • Os pipelines gráficos e de áudio podem rodar também em máquinas host de baixo consumo e na web
    • Oferece uma API simples para tarefas comuns, como desenhar sprites com cores alteradas ou disparar efeitos sonoros
    • Os dados de base e o estado da máquina são expostos na RAM virtual
  • O estado atual é de Beta
    • Recursos de exportação para Windows, Mac, Linux e HTML estão completos
    • Oferece suporte a placares online e compartilhamento de arquivos
    • A API e os pipelines de vídeo e áudio já foram validados
    • Planos futuros podem ser conferidos no Picotron Roadmap
  • O preço é US$ 19,99, e compradores terão acesso a atualizações futuras
  • Clientes existentes de PICO-8 e Voxatron podem usar um upgrade com desconto

1 comentários

 
GN⁺ 2024-03-23
Opiniões do Hacker News
  • Me diverti com o PICO-8 e seu apelo central ainda está vivo, mas agora migrei para a nova geração de hardware retrô “de verdade”, como CX16, Mega65, Agon Light
    Quando há projeto de placa, chips e portas de entrada/saída, as especificações ficam mais sólidas, e máquinas novas como o Picotron conseguem levar bem longe, sem muitas concessões, o que dá para fazer dentro das especificações de E/S
    Também dá para emular, acessar diretamente o hardware e rodar a linguagem que você quiser, como BASIC, C ou Forth
    Como na linha Pico, pode ser lento demais rodar Lua como interpretador em 8 bits reais, mas, em vez disso, se ela for usada como base de um compilador cruzado, vira outro tipo de desafio de programação
    A ideia vai na direção de “e se criássemos o ambiente de desenvolvimento definitivo que gera exatamente o código necessário para aquele projeto?”, e isso também aparece em jogos PICO-8 altamente otimizados ou novas demos para C64, Spectrum e A800, usando hardware grande a favor das máquinas antigas e ignorando os estereótipos dos dois lados

    • Espero que essas máquinas não continuem presas sempre às mesmas CPUs retrô, como Z80, 6502, 8080, ou a réplicas de VDP em FPGA
      Quero uma máquina de estilo retrô baseada em 2D/blitting, mas com hardware mais avançado, como Cortex-M, Z8000, 68000 ou RISC-V de baixo custo
      Pode colocar BASIC na ROM de boot, mas deixando espaço para crescer mais, ao estilo dos anos 90
      Entendo a vontade de recuperar a magia do Commodore 64, mas, pessoalmente, a era de hacking do Amiga, Atari e BeBox me parece muito mais brilhante
    • Me diverti muito criando jogos simples com as crianças no Pico-8 e aprendendo geometria básica
      A comunidade que veio do Pico-8 já está implementando no Picotron coisas como cat/wget/grep[1] e, claro, Minesweeper[2]
      Tudo que Joseph White/zep cria resgata os tempos da internet inicial e do IRC, quando todo mundo criava, compartilhava e se divertia sem vergonha
      Graças ao zep, a computação voltou a ser divertida também para pessoas comuns
      [1]: https://www.lexaloffle.com/bbs/?tid=140771
      [2]: https://www.lexaloffle.com/bbs/?tid=140678
    • Não sei se Lua necessariamente seria muito mais lenta que BASIC para rodar como interpretador em 8 bits reais
      O design é bem pequeno e ortogonal
  • Mexi por uns 30 minutos e ainda estou sorrindo. É simplesmente muito divertido
    Como usei bastante o Pico-8 no passado, foi fácil começar a criar alguma coisa, e o Pico-8 entra, junto com Aseprite, Blender e Propellerhead ReBirth, no meu cesto dos quatro softwares que me dão alegria
    O Pico-8 tem um cuidado enorme com seus objetivos e limitações intencionais, e, até agora, o Picotron transmite o mesmo nível de carinho e reflexão
    É adorável, e eu não quero parar de criar
    Já usei muitos clones do Pico-8, mas todos pareciam perder o essencial. Eles “melhoravam” as limitações, mas não eram satisfatórios
    Curiosamente, eu mesmo tentei três vezes fazer uma versão em JavaScript de um “Pico-8 com mais recursos” para prototipagem em game jams, mas, em todas as vezes, assim como os clones, ela até tinha recursos suficientes, porém não inspirava, então desisti
    Não sei quem cria o Pico-8 e o Picotron, mas presto minhas homenagens às pessoas excelentes que fizeram softwares tão simpáticos

    • Eu também colocaria o Aseprite nessa categoria, mas, para mim, o maior é Godot
      Depois de passar anos criando projetos OpenGL do zero e mexer um pouco no Unity, por volta de 2020 mergulhei 100% no Godot, e desde então ele se tornou o software que mais me dá alegria
    • Pessoalmente, prefiro muito mais o TIC-80
      Gosto mais da proporção de tela melhor, da possibilidade de usar outras linguagens e de não precisar usar uma biblioteca padrão Lua customizada
  • Ao ver que “apps do Picotron podem ser criados com ferramentas integradas e compartilhados com outros usuários em um formato especial de cartucho PNG de 256 KB”, percebo uma tendência no software indie atual de distribuir recursos em arquivos PNG. Por que será?

    • Há também o fator divertido de ter um jogo/programa executável dentro de uma imagem, mas PNG é um formato sem perdas, usa um algoritmo de compressão como o ZIP e tem bibliotecas de codificação/decodificação em várias linguagens
      Por isso, é um bom candidato como formato de dados de aplicação
    • O Picotron foi criado pela mesma pessoa do PICO-8 e, pelo que sei, o PICO-8 popularizou os consoles fantasia
    • É divertido e fácil de compartilhar
    • Na maior parte, é pela diversão. Além disso, PNG tem um canal alfa, que é bom para armazenar dados
      Pelo que sei, o console anterior desse desenvolvedor, o PICO-8, foi quem iniciou essa tendência
  • É um brinquedinho interessante, mas é preciso ter cuidado. Ainda há bugs e travamentos, e também partes pouco polidas
    Dá para ver em certa medida o que o Zep está buscando, mas muita coisa é bastante enigmática, e quase não há documentação da API
    Na prática, as pessoas estão imprimindo todas as tabelas globais de Lua para descobrir como fazer as coisas
    Não é tão grave quanto a 0.1a, mas ainda há pontos a lapidar para a 0.1c

  • O Pico-8 foi um dos softwares mais agradáveis que já usei, e estou ansioso para ver o que a comunidade vai criar com o Picotron
    A própria máquina, tanto o Pico-8 quanto o Picotron, é proprietária, mas os programas dos usuários têm o código-fonte visível mesmo que não sejam open source
    Acho isso realmente ótimo para educação e gosto bastante
    Implementações compatíveis vão aparecer, mas as ferramentas do Pico-8 eram tão refinadas e o preço era tão baixo que não havia motivo para não pagar 10 dólares
    Uma implementação open source pode até executar os programas, mas talvez não venha junto com aquelas ferramentas fofas, como IDE, editor de sprites/mapas em pixel art e tracker de música
    Valeu totalmente o dinheiro, e o Pico-8 é um dos poucos softwares pagos que comprei e não detestei
    Em resumo, o Pico-8 é excelente, a comunidade e os programas gratuitos também são excelentes, então acho que o Picotron também será excelente. Sou fã há muito tempo

    • Gostaria que alguém escrevesse por que o Pico-8 é tão melhor que outros consoles de fantasia
      Em especial, o WASM-4 me pareceu interessante recentemente, e o TIC-80 que outra pessoa mencionou também parece bom
      Também me lembro de ter lido sobre o Pyxel e ficado inspirado
      Os três têm a vantagem de serem gratuitos, então por que pagar pelo Pico-8?
    • O Pico-8 também é ótimo, mas https://tic80.com/ é realmente muito legal
    • Concordo que o Pico-8 foi um dos softwares mais agradáveis, mas tenho uma reclamação que simplesmente não consigo ignorar: a fonte do editor é difícil demais de ler
      Tentei me acostumar, mas não consegui
      Ainda assim, os jogos são muito bons de jogar, divertidos, inspiradores, e a comunidade não poderia ser melhor
  • Fico curioso se o número “CPU: 8 milhões de instruções da VM Lua por segundo” é aproximado ou se é um limite imposto por consistência
    O item “Quão rápida é a CPU?” no FAQ só diz que ela é rápida e mais rápida que o PICO-8

    • É uma velocidade limitada, e os detalhes exatos ainda estão sendo ajustados
      Na prática, como a tela ficou muito maior, não há tanta folga a mais em relação ao PICO-8
      Para fazer algo que use CPU demais para o PICO-8, seria preciso usar um modo de tela de baixa resolução
    • Como o PICO-8 também faz isso, imagino que seja uma velocidade limitada https://pico-8.fandom.com/wiki/CPU
  • Pessoalmente, a sensação é muito boa
    Embora o Pico-8 seja um software excelente, para mim ele parece um pouco antigo demais e meio rangente, enquanto o Picotron chega muito mais perto da sensação da minha infância
    Mal posso esperar para brincar com ele

  • Acho que seria incrível rodá-lo em um destes dispositivos da Clockwork: https://www.clockworkpi.com/shop?page=2

    • Rodei o pico-8 em um Clockwork emprestado, e funcionou bem na maioria dos aplicativos
    • Como o uConsole divulga suporte ao pico-8, parece que esse tipo de coisa já estava em mente desde o começo
  • Seria legal ter alguma materialidade, como um QR code em um cartão que você enfia por baixo de um slot barato de leitor
    Para acertar de verdade a estética 8-bit, é inevitável ter um pouco de sensação física. Incluindo uma tela de baixa qualidade e botões grandes para martelar

  • Fiquei um pouco decepcionado por ele não parecer totalmente compatível com o PICO-8
    Imaginei que seria um ambiente perfeito para criar jogos de PICO-8

    • Fico curioso para saber em que partes. Talvez ainda haja chance de mudar agora