2 điểm bởi GN⁺ 2024-03-23 | 1 bình luận | Chia sẻ qua WhatsApp
  • Picotron là một môi trường sáng tạo khép kín để tạo, chạy và chia sẻ ứng dụng Lua trên phần cứng ảo, cho phép xử lý các trò chơi nhỏ và công cụ trong cùng một desktop
  • Màn hình 480x270 với 64 màu, hệ thống tệp ảo, định dạng tệp POD, bộ tổng hợp âm thanh PFX6416 và Lua 5.4 VM cho từng tiến trình tạo thành mô hình thực thi mặc định
  • Ứng dụng, dự án và gói phân phối đều được xem là cartridge, được lưu trữ và chia sẻ dưới dạng tệp văn bản .p64 hoặc .p64.png chứa tối đa 256k dữ liệu ROM
  • Desktop có không gian làm việc theo tab, khay công cụ có thể thu gọn và các chồng tệp; đồng thời tích hợp sẵn trình biên tập mã, đồ họa, tilemap, nhạc và hiệu ứng âm thanh
  • Hiện đang ở giai đoạn Beta, hỗ trợ Windows, Mac, Linux và xuất HTML, được bán với giá $19.99 kèm quyền truy cập các bản cập nhật trong tương lai

Môi trường sáng tạo trên phần cứng ảo

  • Picotron là một môi trường sáng tạo khép kín theo định hướng Fantasy Workstation, vận hành trên phần cứng ảo
  • Người dùng có thể tạo ứng dụng Lua và chạy hoặc chia sẻ thành phẩm theo nhiều cách
    • Chạy trên desktop Picotron
    • Chia sẻ dưới dạng tệp cartridge
    • Xuất thành bản phân phối HTML và nhị phân độc lập
  • Màn hình mặc định là 480x270 với 64 màu, và cũng có thể chạy ở 240x135 hoặc 160x90
  • Ở chế độ toàn màn hình, có thể dùng bảng màu tùy chỉnh
  • API đồ họa tích hợp cung cấp khả năng truy cập mức thấp vào màn hình
    • Mẫu tô 8x8
    • Hoán đổi bảng màu và blending
    • Bit stencil
    • tline3d để raster hóa texture có hiệu chỉnh phối cảnh

Tệp, âm thanh và mô hình thực thi

  • Hệ thống tệp là hệ thống tệp ảo, chỉ phơi bày phần cần thiết của hệ thống máy chủ
  • Các tệp nội bộ của Picotron sử dụng định dạng POD (Picotron Object Data), cho phép lưu và nạp trực tiếp bảng Lua lên đĩa
    • Dữ liệu save hoặc dữ liệu màn chơi có thể được gói thành bảng Lua và lưu vào pod bằng store()
  • Âm thanh được tạo bằng PFX6416, bộ tổng hợp thời gian thực 64 node, 16 kênh
    • Các node có thể tạo tín hiệu từ wavetable hoặc biến đổi tín hiệu bằng điều chế FM/RING, delay, bộ lọc cộng hưởng HP/LP và waveshaping
    • Nhạc, bao gồm cả thiết kế nhạc cụ do người dùng tạo, có thể được lưu trên đĩa với kích thước 5~20k
  • Môi trường thực thi dùng Lua 5.4 VM đã được chỉnh sửa nhẹ, riêng cho từng tiến trình
    • CPU ảo được chia giữa các tiến trình và thực thi tối đa 8M lệnh VM mỗi giây
    • Cartridge Picotron có thể chạy với tốc độ ổn định trên nhiều nền tảng khác nhau
    • Nếu chạy tốt trên desktop hiệu năng cao, nó cũng được thiết kế để nhìn và hoạt động phần lớn tương tự trong môi trường web trên netbook cũ

Phương thức phân phối lấy cartridge làm trung tâm

  • Ứng dụng, dự án và gói phân phối đều được xem là cùng một loại: cartridge
    • Mỗi cartridge hoạt động như một thư mục thông thường và chứa các tệp nguồn cùng tài nguyên cần cho việc chạy chương trình
    • Trên hệ thống máy chủ, nó được lưu thành một tệp văn bản đơn .p64, với dung lượng tối đa bằng kích thước có thể nạp vào RAM
    • Định dạng PNG có thể chia sẻ .p64.png có thể chứa tối đa 256k dữ liệu ROM

Desktop và công cụ tích hợp

  • Desktop Picotron cung cấp không gian làm việc theo tab và một khay công cụ có thể thu gọn (tooltray) truy cập được từ mọi không gian làm việc
  • Khay công cụ hoạt động như một desktop thứ hai để truy cập các tệp và widget dùng thường xuyên
  • Có thể thả các tệp chồng lên nhau để tạo thành stack ngăn nắp và lướt qua stack bằng bánh xe chuột
  • Các trình biên tập mặc định xử lý mã, đồ họa, tilemap, nhạc và hiệu ứng âm thanh
    • Bản thân các trình biên tập này cũng được tạo bằng Picotron
    • Ngăn xếp hoàn tác không giới hạn, GUI và quản lý tệp sử dụng thư viện chuẩn /system/lib
  • Người dùng có thể tạo hình nền động, screensaver, biểu tượng và widget, rồi tổ chức workflow theo cách mình muốn

Pipeline, hỗ trợ nền tảng và giá bán

  • Picotron được xây dựng trên pipeline đồ họapipeline âm thanh tích hợp chặt chẽ
    • graphicsaudio pipelines có thể chạy trên máy chủ công suất thấp và cả web
    • Cung cấp API đơn giản cho các tác vụ phổ biến như vẽ sprite đổi màu hoặc kích hoạt hiệu ứng âm thanh
    • Dữ liệu nền tảng và trạng thái máy được phơi bày trong RAM ảo
  • Trạng thái hiện tại là Beta
    • Đã hoàn thiện hỗ trợ Windows, Mac, Linux và tính năng xuất HTML
    • Hỗ trợ bảng điểm trực tuyến và chia sẻ tệp
    • API cùng pipeline video và âm thanh đã được kiểm chứng
    • Có thể xem kế hoạch tương lai trong Picotron Roadmap
  • Giá là $19.99, người mua sẽ được truy cập các bản cập nhật trong tương lai
  • Khách hàng hiện có của PICO-8 và Voxatron có thể dùng ưu đãi nâng cấp giảm giá

1 bình luận

 
GN⁺ 2024-03-23
Ý kiến trên Hacker News
  • Tôi từng rất thích PICO-8 và sức hấp dẫn cốt lõi của nó vẫn còn, nhưng giờ tôi đã chuyển sang thế hệ phần cứng retro “thật” mới như CX16, Mega65, Agon Light
    Khi có thiết kế bo mạch, chip và cổng vào/ra, thông số kỹ thuật trở nên chắc chắn hơn, và những cỗ máy mới như Picotron có thể đẩy khá mạnh những gì có thể làm trong phạm vi thông số I/O mà không phải thỏa hiệp nhiều
    Có thể giả lập, cũng có thể truy cập trực tiếp phần cứng, và chạy ngôn ngữ tùy thích như BASIC, C, Forth, v.v.
    Giống dòng Pico, Lua có thể quá chậm để chạy bằng interpreter trên máy 8-bit thật, nhưng nếu dùng nó làm nền cho cross compiler thì lại thành một kiểu thử thách lập trình khác
    Hướng đi là “nếu tạo ra môi trường phát triển tối thượng sinh đúng đoạn mã cần thiết cho dự án đó thì sao?”, và điều này cũng xuất hiện trong các game PICO-8 được tối ưu hóa cao, hay các demo mới cho C64, Spectrum, A800, khi tận dụng máy lớn cho các máy cũ và phớt lờ định kiến của cả hai phía

    • Tôi mong những cỗ máy như vậy không mãi chỉ dừng ở các CPU retro quen thuộc như Z80, 6502, 8080 hoặc các bản sao VDP trên FPGA
      Tôi muốn một cỗ máy kiểu retro dựa trên 2D/blit, nhưng với phần cứng tiến bộ hơn như Cortex-M, Z8000, 68000, hoặc RISC-V giá rẻ
      Hãy đưa BASIC vào ROM khởi động, nhưng chừa không gian để nó phát triển lớn hơn theo kiểu thập niên 90
      Tôi hiểu mong muốn tìm lại phép màu của Commodore 64, nhưng cá nhân tôi thấy thời kỳ hacking của Amiga, Atari, BeBox rực rỡ hơn nhiều
    • Tôi đã chơi rất vui cùng bọn trẻ với Pico-8, làm các game đơn giản và học hình học cơ bản
      Cộng đồng tiếp nối từ Pico-8 đã triển khai cat/wget/grep[1] trên Picotron, và tất nhiên cả Minesweeper[2] nữa
      Mọi thứ Joseph White/zep làm đều gợi lại thời kỳ Internet và IRC sơ khai, khi ai cũng vô tư tạo ra, chia sẻ và tận hưởng
      Nhờ zep, điện toán lại trở nên vui với cả người bình thường
      [1]: https://www.lexaloffle.com/bbs/?tid=140771
      [2]: https://www.lexaloffle.com/bbs/?tid=140678
    • Tôi không chắc Lua nhất thiết chậm hơn BASIC nhiều khi chạy bằng interpreter trên máy 8-bit thật
      Thiết kế của nó rất nhỏ gọn và trực giao
  • Tôi dùng thử khoảng 30 phút mà vẫn cứ cười suốt. Đơn giản là thật sự rất vui
    Trước đây tôi dùng Pico-8 khá nhiều nên rất dễ bắt tay tạo thứ gì đó ngay, và Pico-8 là một trong bốn món nằm trong giỏ phần mềm mang lại niềm vui của tôi, cùng với Aseprite, Blender, Propellerhead ReBirth
    Pico-8 được chăm chút cực kỳ kỹ ở mục tiêu và các giới hạn có chủ ý, và đến giờ Picotron cũng cho tôi cảm giác có cùng mức độ yêu thương và suy nghĩ
    Nó đáng yêu, và tôi không muốn ngừng tạo ra mọi thứ
    Tôi đã dùng nhiều bản clone Pico-8, nhưng tất cả đều có cảm giác bỏ lỡ phần cốt lõi. Chúng “cải thiện” các giới hạn, nhưng không thỏa mãn
    Thú vị là chính tôi cũng từng ba lần cố làm một phiên bản JavaScript kiểu “Pico-8 nhiều tính năng hơn” để prototype cho game jam, nhưng lần nào cũng bỏ cuộc vì giống các bản clone kia: đủ chức năng nhưng không truyền cảm hứng
    Tôi không biết ai đang làm Pico-8 và Picotron, nhưng xin ngả mũ trước những con người tuyệt vời đã tạo ra phần mềm dễ mến đến vậy

    • Tôi cũng xếp Aseprite vào nhóm đó, nhưng với tôi cái lớn nhất là Godot
      Sau vài năm tự làm các dự án OpenGL từ đầu và cũng thử Unity một chút, khoảng năm 2020 tôi chuyển hẳn 100% sang Godot, và từ đó nó trở thành phần mềm mang lại nhiều niềm vui nhất cho tôi
    • Cá nhân tôi thích TIC-80 hơn nhiều
      Tôi thích tỷ lệ màn hình tốt hơn, khả năng dùng các ngôn ngữ khác, và việc không phải dùng thư viện chuẩn Lua tùy biến
  • Khi thấy “ứng dụng Picotron có thể được tạo bằng công cụ tích hợp và chia sẻ với người dùng khác dưới dạng cartridge PNG 256KB đặc biệt”, tôi nhận ra xu hướng phần mềm indie gần đây phân phối tài sản trong tệp PNG. Vì sao lại như vậy?

    • Ngoài yếu tố thú vị là game/chương trình thực thi nằm bên trong một hình ảnh, PNG là định dạng lossless, dùng thuật toán nén giống ZIP và có thư viện mã hóa/giải mã trong nhiều ngôn ngữ
      Vì vậy nó là một ứng viên khá ổn cho định dạng dữ liệu ứng dụng
    • Picotron do cùng người tạo ra PICO-8, và theo tôi biết thì PICO-8 đã phổ biến hóa khái niệm fantasy console
    • Vui và dễ chia sẻ
    • Phần lớn là vì vui. Ngoài ra PNG có kênh alpha rất tiện để lưu dữ liệu
      Theo tôi biết, console trước đó của nhà phát triển này là PICO-8 đã khởi đầu xu hướng đó
  • Đây là một món đồ nhỏ thú vị, nhưng cần cẩn thận. Vẫn còn bug và crash, và cũng còn những chỗ thô ráp
    Có thể phần nào thấy Zep đang hướng tới điều gì, nhưng nhiều phần khá bí ẩn, và tài liệu API cũng gần như không có
    Thực tế là mọi người đang in toàn bộ các bảng Lua toàn cục ra để tìm cách làm gì đó
    Không tệ như 0.1a, nhưng vẫn còn những phần cần trau chuốt cho 0.1c

  • Pico-8 là một trong những phần mềm đem lại cảm giác dễ chịu nhất mà tôi từng dùng, và tôi rất mong chờ xem cộng đồng sẽ tạo ra những gì với Picotron
    Bản thân cỗ máy thì cả Pico-8 lẫn Picotron đều là phần mềm độc quyền, nhưng chương trình của người dùng thì có thể xem được mã nguồn, dù không phải mã nguồn mở
    Về mặt giáo dục thì thật sự rất hay và tôi thích điều đó
    Các bản triển khai tương thích chắc sẽ xuất hiện, nhưng các công cụ của Pico-8 đã được trau chuốt quá tốt, giá lại rẻ đến mức không có lý do gì để không trả 10 đô la
    Một bản triển khai mã nguồn mở có thể chỉ chạy được chương trình, nhưng có thể sẽ không kèm theo những công cụ dễ thương như IDE, trình chỉnh sửa sprite pixel/bản đồ, hay trình tracker nhạc
    Số tiền đó hoàn toàn xứng đáng, và Pico-8 là một trong số rất ít phần mềm tôi từng trả tiền mua mà không hề ghét
    Tóm lại, Pico-8 rất tuyệt, cộng đồng và các chương trình miễn phí cũng rất tuyệt, nên tôi nghĩ Picotron cũng sẽ rất tuyệt. Tôi đã là fan từ lâu rồi

    • Ước gì có ai đó viết về việc vì sao Pico-8 lại tốt hơn hẳn các fantasy console khác như vậy
      Gần đây WASM-4 đặc biệt thú vị, và TIC-80 mà người khác nhắc đến cũng có vẻ hay
      Tôi cũng nhớ là từng đọc về Pyxel và được truyền cảm hứng
      Cả ba đều có ưu điểm là miễn phí, vậy vì sao phải trả tiền cho Pico-8?
    • Pico-8 cũng rất tuyệt, nhưng https://tic80.com/ cũng thật sự rất hay
    • Tôi đồng ý rằng Pico-8 là một trong những phần mềm đem lại cảm giác dễ chịu nhất, nhưng có một điểm phàn nàn mà tôi thật sự khó bỏ qua: phông chữ của trình chỉnh sửa quá khó đọc
      Tôi đã cố làm quen nhưng không được
      Dù vậy, các trò chơi thì rất dễ chơi, thú vị, truyền cảm hứng, và cộng đồng thì không thể tốt hơn được nữa
  • Tôi thắc mắc con số “CPU: 8 triệu lệnh Lua VM mỗi giây” là ước lượng sơ bộ, hay là một giới hạn được đặt ra để đảm bảo tính nhất quán
    Mục “CPU nhanh đến mức nào?” trong FAQ chỉ nói rằng nó nhanh và nhanh hơn PICO-8

    • Đó là tốc độ bị giới hạn, và các chi tiết chính xác vẫn đang được tinh chỉnh
      Trên thực tế, vì màn hình đã lớn hơn nhiều nên phần dư dả so với PICO-8 không lớn đến vậy
      Nếu muốn làm những việc ngốn CPU đến mức PICO-8 không kham nổi, bạn sẽ phải dùng chế độ màn hình độ phân giải thấp
    • PICO-8 cũng làm như vậy, nên có lẽ đây là tốc độ bị giới hạn https://pico-8.fandom.com/wiki/CPU
  • Cá nhân tôi thấy nó thật sự rất có cảm giác
    Dù Pico-8 là phần mềm tuyệt vời, với tôi nó hơi quá cổ điển và có cảm giác ọp ẹp, còn Picotron thì gần với cảm giác thời thơ ấu của tôi hơn nhiều
    Tôi rất muốn sớm được nghịch thử

  • Chạy nó trên một trong các thiết bị Clockwork này chắc sẽ cực kỳ hợp: https://www.clockworkpi.com/shop?page=2

    • Tôi từng chạy pico-8 trên một chiếc Clockwork mượn được, và nó hoạt động tốt với hầu hết ứng dụng
    • uConsole quảng bá việc hỗ trợ pico-8, nên có vẻ ngay từ đầu họ đã tính đến những thứ như thế này
  • Sẽ rất hay nếu có chút tính vật lý, kiểu mã QR trên miếng bìa luồn vào dưới khe đọc rẻ tiền
    Muốn tạo đúng cảm giác 8-bit thì khó tránh khỏi việc cần một chút cảm giác vật lý. Kèm cả màn hình chất lượng thấp và những nút lớn để bấm loạn lên nữa

  • Hơi tiếc là có vẻ nó không hoàn toàn tương thích với PICO-8
    Tôi đã tưởng tượng đây sẽ là môi trường hoàn hảo để làm game PICO-8

    • Tôi tò mò là không tương thích ở phần nào. Nếu là lúc này thì có khi vẫn còn khả năng thay đổi