Picotron, trạm làm việc fantasy để sáng tạo
(lexaloffle.com)- 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
.p64hoặc.p64.pngchứ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()
- 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
- Â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.pngcó 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ọa và pipeline âm thanh tích hợp chặt chẽ
- graphics và audio 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
Ý 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 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
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
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
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
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?
Vì vậy nó là một ứng viên khá ổn cho định dạng dữ liệu ứng dụng
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
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?
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
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
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
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