2 puntos por GN⁺ 2024-03-23 | 1 comentarios | Compartir por WhatsApp
  • Picotron es un entorno creativo autocontenido para crear, ejecutar y compartir apps en Lua sobre hardware virtual, y permite trabajar con pequeños juegos y herramientas dentro de un mismo escritorio
  • La pantalla de 480x270 con 64 colores, el sistema de archivos virtual, el formato de archivo POD, el sintetizador de audio PFX6416 y una VM de Lua 5.4 por proceso conforman su modelo base de ejecución
  • Las apps, los proyectos y los bundles de distribución se tratan todos como cartuchos, y se guardan y comparten como archivos de texto .p64 o como .p64.png con hasta 256k de datos ROM
  • El escritorio incluye un espacio de trabajo con pestañas, una bandeja de herramientas plegable y pilas de archivos, además de editores integrados de código, gráficos, tilemaps, música y efectos de sonido
  • Actualmente está en fase Beta, es compatible con Windows, Mac, Linux y exportación a HTML, y se vende por $19.99 con acceso a futuras actualizaciones

Un entorno creativo sobre hardware virtual

  • Picotron se presenta como una Fantasy Workstation, un entorno creativo autocontenido que funciona sobre hardware virtual
  • Los usuarios pueden crear apps en Lua y ejecutar o compartir los resultados de varias maneras
    • Ejecutarlas en el escritorio de Picotron
    • Compartirlas como archivos de cartucho
    • Exportarlas como distribuciones HTML y binarios independientes
  • La pantalla base es de 480x270 con 64 colores, y también puede ejecutarse en 240x135 o 160x90
  • En modo de pantalla completa se pueden usar paletas personalizadas
  • La API gráfica integrada ofrece acceso de bajo nivel a la pantalla
    • Patrones de relleno de 8x8
    • Reemplazo de paleta y blending
    • Bits de stencil
    • tline3d para rasterización de texturas con corrección de perspectiva

Archivos, audio y modelo de ejecución

  • El sistema de archivos es un sistema de archivos virtual que solo expone la parte necesaria del sistema anfitrión
  • Los archivos internos de Picotron usan el formato POD (Picotron Object Data), que permite guardar y cargar tablas de Lua directamente en disco
    • Los datos de guardado o de niveles pueden agruparse como tablas de Lua y almacenarse en un pod con store()
  • El audio se genera con PFX6416, un sintetizador en tiempo real de 64 nodos y 16 canales
    • Los nodos crean señales desde wavetables o modifican la señal con modulación FM/RING, delay, filtros resonantes HP/LP y waveshaping
    • La música, incluido el diseño de instrumentos personalizados, puede guardarse en disco con tamaños de entre 5 y 20k
  • El entorno de ejecución usa una VM de Lua 5.4 ligeramente modificada por separado para cada proceso
    • La CPU virtual se reparte entre procesos y ejecuta hasta 8M instrucciones de VM por segundo
    • Los cartuchos de Picotron pueden ejecutarse a una velocidad consistente en distintas plataformas
    • Está diseñado para que, si corre sin problemas en una desktop potente, también se vea en general parecido en entornos web de netbooks antiguas

Un modelo de distribución centrado en cartuchos

  • Las aplicaciones, los proyectos y los bundles de distribución se tratan todos como el mismo tipo: cartuchos
    • Cada cartucho funciona como una carpeta normal e incluye los archivos fuente y recursos necesarios para ejecutar el programa
    • En el sistema anfitrión se guarda como un único archivo de texto .p64, hasta el tamaño que quepa en RAM
    • El formato PNG compartible .p64.png puede contener hasta 256k de datos ROM

El escritorio y las herramientas integradas

  • El escritorio de Picotron ofrece un espacio de trabajo con pestañas y una bandeja de herramientas plegable (tooltray) accesible desde cualquier espacio de trabajo
  • La bandeja de herramientas funciona como un segundo escritorio para acceder a archivos y widgets de uso frecuente
  • Se pueden soltar archivos uno sobre otro para crear pilas ordenadas, y recorrerlas con la rueda del mouse
  • Los editores incluidos manejan código, gráficos, tilemaps, música y efectos de sonido
    • Estos editores también están hechos en Picotron
    • La pila de deshacer ilimitada, la GUI y la gestión de archivos usan la biblioteca estándar /system/lib
  • Los usuarios pueden crear fondos animados, salvapantallas, íconos y widgets, y organizar su flujo de trabajo como quieran

Pipeline, soporte de plataformas y precio

  • Picotron está construido sobre un pipeline gráfico y un pipeline de audio estrechamente integrados
    • Los graphics y audio pipelines pueden ejecutarse en máquinas anfitrionas de baja potencia y también en la web
    • Ofrece una API simple para tareas comunes como dibujar sprites con colores modificados o activar efectos de sonido
    • Los datos base y el estado de la máquina están expuestos en la RAM virtual
  • Su estado actual es Beta
    • Incluye soporte completo para Windows, Mac, Linux y exportación a HTML
    • Soporta tablas de puntuación en línea y compartición de archivos
    • La API y los pipelines de video y audio ya están validados
    • Los planes futuros pueden consultarse en el Picotron Roadmap
  • El precio es de $19.99, y quienes lo compren tendrán acceso a futuras actualizaciones
  • Los clientes existentes de PICO-8 y Voxatron pueden usar una actualización con descuento

1 comentarios

 
GN⁺ 2024-03-23
Opiniones en Hacker News
  • Me divertí con PICO-8 y su atractivo central sigue vivo, pero ahora me pasé a una nueva generación de hardware retro “real” como CX16, Mega65, Agon Light.
    Cuando hay diseño de placas, chips y puertos de entrada/salida, las especificaciones se vuelven más sólidas, y máquinas nuevas como Picotron pueden llevar bastante lejos, sin demasiadas concesiones, lo que se puede hacer dentro de esas especificaciones de E/S.
    También se puede emular, acceder directamente al hardware y ejecutar el lenguaje que uno quiera, como BASIC, C o Forth.
    Como en la familia Pico, Lua podría ser lento para ejecutarse como intérprete en 8 bits reales, pero si se usa como base de un compilador cruzado, se convierte en otro tipo de desafío de programación.
    La dirección sería algo como: “¿qué tal si creamos el entorno de desarrollo definitivo que genere exactamente el código que necesita ese proyecto?”, y eso también aparece en juegos de PICO-8 muy optimizados o demos nuevas para C64, Spectrum y A800, usando hardware grande del lado de las máquinas antiguas y rompiendo los estereotipos de ambos mundos.

    • Ojalá estas máquinas no se quedaran siempre en las mismas CPU retro, como Z80, 6502, 8080, ni en réplicas de VDP en FPGA.
      Quiero máquinas de estilo retro basadas en 2D/blitting, pero con hardware más avanzado como Cortex-M, Z8000, 68000 o RISC-V de bajo costo.
      Que pongan BASIC en la ROM de arranque, pero que le den margen para crecer al estilo de los 90.
      Entiendo querer recuperar la magia de la Commodore 64, pero personalmente me parecen mucho más brillantes los tiempos de hacking de Amiga, Atari y BeBox.
    • Con mis hijos nos divertimos muchísimo haciendo juegos simples en Pico-8 y aprendiendo geometría básica.
      La comunidad que viene de Pico-8 ya está implementando en Picotron cat/wget/grep[1] y, por supuesto, Minesweeper[2].
      Todo lo que hace Joseph White/zep revive aquellos días de los inicios de internet y de IRC, cuando todos creaban, compartían y se divertían sin vergüenza.
      Gracias a zep, la computación vuelve a ser divertida también para la gente común.
      [1]: https://www.lexaloffle.com/bbs/?tid=140771
      [2]: https://www.lexaloffle.com/bbs/?tid=140678
    • No estoy seguro de que Lua tenga que ser necesariamente mucho más lento que BASIC como intérprete en 8 bits reales.
      Su diseño es muy pequeño y ortogonal.
  • Lo estuve probando unos 30 minutos y todavía sigo sonriendo. Simplemente es muy divertido.
    Como antes usé mucho Pico-8, fue fácil empezar a hacer algo de inmediato, y Pico-8 está entre los cuatro programas de mi canasta de software que me da alegría, junto con Aseprite, Blender y Propellerhead ReBirth.
    Pico-8 tiene una enorme dedicación puesta en sus objetivos y limitaciones deliberadas, y hasta ahora en Picotron siento el mismo nivel de cariño y reflexión.
    Es adorable, y no quiero dejar de crear cosas.
    Probé muchos clones de Pico-8, pero todos sentían que se les escapaba lo esencial. “Mejoraban” las limitaciones, pero no resultaban satisfactorios.
    Curiosamente, yo también intenté tres veces hacer una versión en JavaScript tipo “Pico-8 con más funciones” para prototipar en game jams, pero cada vez la abandoné porque, aunque funcionaba lo bastante bien, no inspiraba, igual que esos clones.
    No sé quién hace Pico-8 y Picotron, pero mi respeto para esas grandes personas por crear software tan querible.

    • Yo también pondría a Aseprite en esa categoría, pero para mí el más importante es Godot.
      Después de pasar años creando proyectos OpenGL desde cero y de tocar un poco Unity, hacia 2020 me metí de lleno, al 100%, en Godot, y desde entonces se volvió el software que más alegría me da.
    • Personalmente me gusta mucho más TIC-80.
      Me gusta más su mejor relación de aspecto, la posibilidad de usar otros lenguajes y no tener que usar una biblioteca estándar de Lua personalizada.
  • Al ver que “las apps de Picotron se pueden crear con herramientas integradas y compartir con otros usuarios en un formato especial de cartucho PNG de 256 KB”, noto una tendencia en el software indie actual a distribuir recursos en archivos PNG. ¿Por qué será?

    • También está el elemento divertido de tener un juego/programa ejecutable dentro de una imagen, pero PNG es un formato sin pérdida, usa un algoritmo de compresión como ZIP y tiene bibliotecas de codificación/decodificación en muchos lenguajes.
      Por eso es un candidato razonable como formato de datos de aplicación.
    • Picotron lo hizo la misma persona que PICO-8 y, hasta donde sé, PICO-8 popularizó las consolas de fantasía.
    • Es divertido y fácil de compartir.
    • En gran parte es por diversión. Además, PNG tiene un canal alfa que resulta útil para almacenar datos.
      Tengo entendido que la consola anterior de este desarrollador, PICO-8, inició esa tendencia.
  • Es un aparatito divertido, pero hay que tener cuidado. Todavía tiene bugs y cuelgues, y le quedan partes ásperas.
    Se alcanza a ver en cierta medida hacia dónde apunta Zep, pero muchas cosas son bastante misteriosas, y casi no hay documentación de la API.
    De hecho, la gente está imprimiendo todas las tablas globales de Lua para descubrir cómo hacer ciertas cosas.
    No está tan mal como 0.1a, pero todavía hay partes que pulir para 0.1c.

  • Pico-8 fue uno de los softwares más agradables que he usado hasta ahora, y me entusiasma ver lo que la comunidad va a crear con Picotron.
    La máquina en sí, tanto Pico-8 como Picotron, es propietaria, pero los programas de los usuarios tienen el código fuente visible aunque no sean de código abierto.
    Me parece realmente bueno desde el punto de vista educativo y me gusta mucho.
    Seguro aparecerán implementaciones compatibles, pero las herramientas de Pico-8 estaban tan pulidas y el precio era tan bajo que no había razón para no pagar 10 dólares.
    Una implementación de código abierto podría limitarse a ejecutar programas, pero quizá no incluya esas herramientas encantadoras como el IDE, el editor de sprites/mapas en pixel art y el tracker de música.
    Valía totalmente la pena, y Pico-8 es uno de los pocos programas pagos que compré y no terminé odiando.
    En resumen: Pico-8 es excelente, la comunidad y los programas gratuitos también lo son, así que creo que Picotron también será excelente. Soy fan desde hace mucho.

    • Me gustaría que alguien escribiera por qué Pico-8 es tanto mejor que otras consolas fantásticas.
      En particular, WASM-4 me pareció interesante últimamente, y TIC-80, que mencionó otra persona, también se ve bien.
      También recuerdo haber leído sobre Pyxel y haberme inspirado.
      Las tres tienen la ventaja de ser gratis; entonces, ¿por qué pagar por Pico-8?
    • Pico-8 también es excelente, pero https://tic80.com/ también está realmente genial.
    • Coincido en que Pico-8 fue uno de los softwares más agradables, pero hay una queja que simplemente no puedo dejar pasar: la fuente del editor es demasiado difícil de leer.
      Intenté acostumbrarme, pero no pude.
      Aun así, los juegos son muy jugables, divertidos e inspiradores, y la comunidad no podría ser mejor.
  • Me pregunto si la cifra “CPU: 8 millones de instrucciones de la VM de Lua por segundo” es aproximada o si está limitada por consistencia.
    La sección “¿Qué tan rápida es la CPU?” del FAQ solo dice que es rápida y más rápida que PICO-8.

    • Es una velocidad limitada, y los detalles exactos todavía se están ajustando.
      En la práctica, como la pantalla es mucho más grande, no hay muchísimo más margen que en PICO-8.
      Si quieres hacer algo que consuma tanta CPU que no funcionaría en PICO-8, tendrás que usar un modo de pantalla de baja resolución.
    • Como PICO-8 también hace eso, supongo que será una velocidad limitada: https://pico-8.fandom.com/wiki/CPU
  • En lo personal, me da muy buena impresión.
    Aunque Pico-8 es un software excelente, para mí se siente un poco demasiado antiguo y tosco; Picotron se acerca mucho más a la sensación de mi infancia.
    Tengo muchas ganas de ponerme a jugar con él.

  • Sería genial correrlo en uno de estos dispositivos Clockwork: https://www.clockworkpi.com/shop?page=2

    • Probé pico-8 en un Clockwork prestado y funcionó bien en la mayoría de las aplicaciones.
    • Como uConsole promociona compatibilidad con pico-8, parece que desde el principio tenían este tipo de cosas en mente.
  • Me gustaría que tuviera algo de fisicalidad, como códigos QR en cartón que deslizas debajo de la ranura de un lector barato.
    Para lograr bien la estética de 8 bits, es inevitable cierta sensación física: una pantalla de baja calidad y botones grandes para aporrear.

  • Me da un poco de pena que no parezca ser totalmente compatible con PICO-8.
    Imaginaba que sería un entorno perfecto para crear juegos de PICO-8.

    • Me da curiosidad saber en qué partes. Quizá todavía haya posibilidad de cambiarlo.