Picotron เวิร์กสเตชันแฟนตาซีสำหรับงานสร้างสรรค์
(lexaloffle.com)- Picotron คือสภาพแวดล้อมสร้างสรรค์แบบครบในตัวสำหรับสร้าง รัน และแชร์แอป Lua บนฮาร์ดแวร์เสมือน โดยสามารถจัดการเกมและเครื่องมือขนาดเล็กภายในเดสก์ท็อปเดียวได้
- โมเดลการทำงานพื้นฐานประกอบด้วย จอแสดงผล 480x270 64 สี, ระบบไฟล์เสมือน, รูปแบบไฟล์ POD, ซินธิไซเซอร์เสียง PFX6416 และ Lua 5.4 VM แยกตามแต่ละโปรเซส
- แอป โปรเจกต์ และบันเดิลสำหรับเผยแพร่ทั้งหมดถูกมองเป็น cartridge และบันทึก/แชร์ได้เป็นไฟล์ข้อความ
.p64หรือ.p64.pngที่เก็บข้อมูล ROM ได้สูงสุด 256k - เดสก์ท็อปมีพื้นที่ทำงานแบบแท็บ ถาดเครื่องมือแบบพับเก็บได้ และสแตกไฟล์ พร้อมตัวแก้ไขโค้ด กราฟิก ไทล์แมป เพลง และเอฟเฟกต์เสียงในตัว
- ปัจจุบันอยู่ในสถานะ Beta รองรับ Windows, Mac, Linux และการส่งออกเป็น HTML วางขายในราคา $19.99 พร้อมสิทธิ์เข้าถึงอัปเดตในอนาคต
สภาพแวดล้อมสร้างสรรค์บนฮาร์ดแวร์เสมือน
- Picotron คือสภาพแวดล้อมสร้างสรรค์แบบครบในตัวที่วางตัวเป็น Fantasy Workstation และทำงานบนฮาร์ดแวร์เสมือน
- ผู้ใช้สามารถสร้าง แอป Lua และรัน/แชร์ผลงานได้หลายวิธี
- รันบนเดสก์ท็อป Picotron
- แชร์เป็นไฟล์ cartridge
- ส่งออกเป็น HTML แบบสแตนด์อโลนและไฟล์เผยแพร่แบบไบนารี
- หน้าจอพื้นฐานคือ 480x270 64 สี และสามารถรันที่ 240x135 หรือ 160x90 ได้ด้วย
- ในโหมดเต็มหน้าจอสามารถใช้พาเลตต์ที่กำหนดเองได้
- API กราฟิกในตัวให้การเข้าถึงจอแสดงผลในระดับต่ำ
- แพตเทิร์นเติมพื้นที่ 8x8
- การสลับพาเลตต์และการเบลนด์
- บิตสเตนซิล
tline3dสำหรับการราสเตอร์ไรซ์เท็กซ์เจอร์แบบแก้ไขเพอร์สเปกทีฟ
ไฟล์ เสียง และโมเดลการรัน
- ระบบไฟล์เป็น ระบบไฟล์เสมือน ที่เปิดเผยเฉพาะบางส่วนที่จำเป็นของระบบโฮสต์
- ไฟล์ภายใน Picotron ใช้รูปแบบ POD(Picotron Object Data) ทำให้สามารถบันทึกและโหลดตาราง Lua ลงดิสก์ได้โดยตรง
- ข้อมูลเซฟหรือข้อมูลเลเวลสามารถรวมเป็นตาราง Lua แล้วบันทึกลง pod ด้วย
store()ได้
- ข้อมูลเซฟหรือข้อมูลเลเวลสามารถรวมเป็นตาราง Lua แล้วบันทึกลง pod ด้วย
- เสียงถูกสร้างด้วยซินธิไซเซอร์แบบเรียลไทม์ PFX6416 ที่มี 64 โหนด 16 แชนเนล
- โหนดสร้างสัญญาณจาก wavetable หรือปรับเปลี่ยนสัญญาณด้วย FM/RING modulation, delay, ฟิลเตอร์เรโซแนนซ์ HP/LP และ waveshaping
- เพลงรวมถึงการออกแบบเครื่องดนตรีของผู้ใช้สามารถบันทึกลงดิสก์ในขนาด 5~20k ได้
- สภาพแวดล้อมการรันใช้ Lua 5.4 VM ที่ปรับแก้เล็กน้อยแยกกันสำหรับแต่ละโปรเซส
- CPU เสมือนถูกแบ่งระหว่างโปรเซส และรันคำสั่ง VM ได้สูงสุด 8M คำสั่งต่อวินาที
- cartridge ของ Picotron สามารถรันด้วยความเร็วคงที่บนแพลตฟอร์มหลากหลายได้
- ออกแบบมาให้หากรันได้ไม่มีปัญหาบนเดสก์ท็อปประสิทธิภาพสูง ก็จะดูใกล้เคียงกันโดยรวมแม้บนสภาพแวดล้อมเว็บของเน็ตบุ๊กเก่า
วิธีเผยแพร่ที่ยึด cartridge เป็นศูนย์กลาง
- แอปพลิเคชัน โปรเจกต์ และบันเดิลสำหรับเผยแพร่ทั้งหมดถูกปฏิบัติเป็นชนิดเดียวกันที่เรียกว่า cartridge
- แต่ละ cartridge ทำงานเหมือนโฟลเดอร์ทั่วไป และมีไฟล์ซอร์สกับรีซอร์สที่จำเป็นต่อการรันโปรแกรม
- บนระบบโฮสต์จะถูกบันทึกเป็นไฟล์ข้อความเดี่ยว
.p64และมีขนาดได้เท่าที่ใส่ใน RAM ได้ - รูปแบบ PNG ที่แชร์ได้
.p64.pngสามารถเก็บข้อมูล ROM ได้สูงสุด 256k
เดสก์ท็อปและเครื่องมือในตัว
- เดสก์ท็อป Picotron มี พื้นที่ทำงานแบบแท็บ และถาดเครื่องมือ (tooltray) แบบพับเก็บได้ที่เข้าถึงได้จากทุกพื้นที่ทำงาน
- ถาดเครื่องมือทำงานเหมือนเดสก์ท็อปที่สองสำหรับเข้าถึงไฟล์และวิดเจ็ตที่ใช้บ่อย
- สามารถลากไฟล์ไปวางซ้อนกันเพื่อสร้างสแตกที่จัดระเบียบแล้ว และใช้ล้อเมาส์เลื่อนดูในสแตกได้
- ตัวแก้ไขที่ให้มาพร้อมระบบครอบคลุมโค้ด กราฟิก ไทล์แมป เพลง และเอฟเฟกต์เสียง
- ตัวแก้ไขเหล่านี้เองก็สร้างด้วย Picotron
- สแตก undo แบบไม่จำกัด, GUI และการจัดการไฟล์ใช้ไลบรารีมาตรฐาน
/system/lib
- ผู้ใช้สามารถสร้างวอลเปเปอร์แบบ live, screensaver, ไอคอน และวิดเจ็ต รวมถึงจัดเวิร์กโฟลว์ได้ตามต้องการ
Pipeline, การรองรับแพลตฟอร์ม และราคา
- Picotron ถูกสร้างบน graphics pipeline และ audio pipeline ที่ผสานกันอย่างแน่นหนา
- graphics และ audio pipelines สามารถรันได้แม้บนเครื่องโฮสต์พลังงานต่ำและบนเว็บ
- มี API แบบง่ายสำหรับงานทั่วไป เช่น การวาดสไปรต์ที่เปลี่ยนสีแล้ว หรือการทริกเกอร์เอฟเฟกต์เสียง
- ข้อมูลพื้นฐานและสถานะของเครื่องถูกเปิดเผยใน RAM เสมือน
- สถานะปัจจุบันอยู่ในขั้น Beta
- ฟังก์ชันส่งออกสำหรับ Windows, Mac, Linux และ HTML ครบถ้วนแล้ว
- รองรับ high score ออนไลน์และการแชร์ไฟล์
- API รวมถึง pipeline วิดีโอและเสียงได้รับการตรวจสอบแล้ว
- แผนในอนาคตดูได้ใน Picotron Roadmap
- ราคาอยู่ที่ $19.99 และผู้ซื้อสามารถเข้าถึงอัปเดตในอนาคตได้
- ลูกค้า PICO-8 และ Voxatron เดิมสามารถใช้อัปเกรดแบบมีส่วนลดได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมสนุกกับ PICO-8 มากและเสน่ห์หลักของมันก็ยังอยู่ครบ แต่ตอนนี้ผมย้ายไปหาฮาร์ดแวร์เรโทรแบบ “ของจริง” รุ่นใหม่อย่าง CX16, Mega65, Agon Light แล้ว
ถ้ามีการออกแบบบอร์ด ชิป และพอร์ต I/O สเปกก็จะแน่นขึ้น และเครื่องใหม่อย่าง Picotron ก็สามารถผลักดันสิ่งที่ทำได้ภายในข้อจำกัดของสเปก I/O ได้แบบแทบไม่ต้องประนีประนอม
มันทั้งจำลองการทำงานได้ เข้าถึงฮาร์ดแวร์โดยตรงได้ และยังรันภาษาอะไรก็ได้ตามต้องการ เช่น BASIC, C, Forth
ถ้าจะรัน Lua แบบอินเทอร์พรีเตอร์บน 8 บิตจริง ๆ มันอาจช้าเหมือนตระกูล Pico แต่ถ้าใช้เป็นฐานของ cross compiler แทน มันก็กลายเป็นความท้าทายในการเขียนโค้ดอีกแบบ
แนวคิดคือ “ถ้าสร้างสภาพแวดล้อมพัฒนาขั้นสุดยอดที่สร้างโค้ดได้ตรงกับความต้องการของโปรเจ็กต์นั้นพอดีจะเป็นอย่างไร?” และแนวคิดนี้ก็ปรากฏให้เห็นทั้งในเกม PICO-8 ที่ปรับแต่งอย่างหนักหรือเดโมใหม่สำหรับ C64, Spectrum, A800 ที่ใช้ฮาร์ดแวร์ขนาดใหญ่กว่ามาช่วยเครื่องเก่าแบบไม่สนกรอบความคิดของทั้งสองฝั่ง
ผมอยากได้เครื่องสไตล์เรโทรแบบ 2D/blit แต่ใช้ฮาร์ดแวร์ที่ก้าวหน้ากว่า เช่น Cortex-M, Z8000, 68000 หรือ RISC-V ราคาย่อมเยา
ใส่ BASIC มาใน boot ROM ได้ แต่ก็อยากให้มีพื้นที่ให้เติบโตมากขึ้นแบบยุค 90
ผมเข้าใจว่าหลายคนอยากนำมนตร์ขลังของ Commodore 64 กลับมา แต่สำหรับผม ยุคการแฮ็กของ Amiga, Atari, BeBox ดูเปล่งประกายกว่ามาก
ชุมชนที่ต่อยอดมาจาก Pico-8 ก็เริ่มทำ cat/wget/grep[1] และแน่นอนว่า Minesweeper[2] บน Picotron กันแล้ว
สิ่งที่ Joseph White/zep สร้างขึ้นทำให้ผมนึกถึงยุคแรก ๆ ของอินเทอร์เน็ตและ IRC ที่ทุกคนสร้าง แบ่งปัน และสนุกกันได้โดยไม่ต้องเขินอาย
zep ทำให้การใช้คอมพิวเตอร์กลับมาสนุกอีกครั้งสำหรับคนธรรมดา
[1]: https://www.lexaloffle.com/bbs/?tid=140771
[2]: https://www.lexaloffle.com/bbs/?tid=140678
ตัวภาษามีการออกแบบที่เล็กมากและเป็นระบบอย่างดี
ผมลองเล่นอยู่ราว 30 นาทีและยังยิ้มไม่หุบเลย มันสนุกจริง ๆ
เพราะเคยใช้ Pico-8 เยอะมาก่อน ก็เลยเริ่มทำอะไรบางอย่างได้ทันที และ Pico-8 ก็เป็นหนึ่งในสี่ซอฟต์แวร์ในกลุ่ม ซอฟต์แวร์ที่มอบความสุขให้ผม ร่วมกับ Aseprite, Blender, Propellerhead ReBirth
Pico-8 ใส่ใจอย่างมากกับเป้าหมายและข้อจำกัดที่ตั้งใจวางไว้ และเท่าที่เห็น Picotron ก็ให้ความรู้สึกถึงความรักและความใส่ใจในระดับเดียวกัน
มันน่ารักมาก และผมไม่อยากหยุดทำอะไรกับมันเลย
ผมเคยลองใช้ Pico-8 clone มาหลายตัว แต่ทุกตัวดูพลาดแก่นสำคัญไป พวกมัน “ปรับปรุง” ข้อจำกัด แต่กลับไม่ชวนให้พอใจ
ตลกดีที่ผมเองก็เคยพยายามทำเวอร์ชัน JavaScript แนว “Pico-8 ที่มีฟีเจอร์มากกว่า” ถึงสามครั้งเพื่อใช้ทำต้นแบบเกมแจม แต่ทุกครั้งก็เหมือน clone พวกนั้น คือฟีเจอร์อาจพอแล้วแต่ไม่สร้างแรงบันดาลใจ เลยล้มเลิกไป
ผมไม่รู้ว่าใครเป็นคนสร้าง Pico-8 กับ Picotron แต่ขอคารวะคนเก่งที่สร้างซอฟต์แวร์น่าประทับใจแบบนี้ขึ้นมา
หลังจากทำโปรเจ็กต์ OpenGL จากศูนย์อยู่หลายปีและลอง Unity มาบ้าง พอราวปี 2020 ผมก็ทุ่มให้ Godot แบบ 100% และตั้งแต่นั้นมาก็มันกลายเป็นซอฟต์แวร์ที่มอบความสุขให้ผมมากที่สุด
ผมชอบอัตราส่วนจอที่ดีกว่า ความสามารถในการใช้ภาษาอื่น และการที่ไม่จำเป็นต้องใช้ Lua standard library แบบคัสตอม
พอเห็นประโยคที่ว่า “แอป Picotron สามารถสร้างได้ด้วยเครื่องมือที่มีมาให้ในตัว และแชร์กับผู้ใช้อื่นได้ในรูปแบบตลับ PNG ขนาด 256KB แบบพิเศษ” ก็รู้สึกว่าช่วงนี้ซอฟต์แวร์อินดี้มีแนวโน้มจะแจก asset ผ่าน ไฟล์ PNG กันมากขึ้น ทำไมถึงเป็นแบบนั้นนะ?
เพราะงั้นมันเลยเป็นตัวเลือกที่ดีพอสมควรสำหรับฟอร์แมตข้อมูลของแอปพลิเคชัน
เท่าที่รู้ คอนโซลก่อนหน้าของนักพัฒนาคนนี้อย่าง PICO-8 เป็นตัวเริ่มกระแสนี้
เป็นของเล่นชิ้นเล็กที่น่าสนใจ แต่ต้องระวังไว้หน่อย ยังมี บั๊กและอาการแครช อยู่ และยังมีส่วนที่หยาบ ๆ เหลืออยู่
พอจะเห็นได้ว่า Zep ตั้งใจมุ่งไปทางไหน แต่หลายอย่างก็ค่อนข้างลึกลับมาก และแทบไม่มีเอกสาร API เลย
ถึงขั้นที่คนจริง ๆ กำลังสั่งพิมพ์ตาราง Lua แบบ global ออกมาทั้งหมดเพื่อหาวิธีทำสิ่งต่าง ๆ
มันไม่หนักเท่า 0.1a แต่ก็ยังมีส่วนที่ต้องขัดเกลาอีกพอสมควรสำหรับ 0.1c
Pico-8 เป็นหนึ่งในซอฟต์แวร์ที่ให้ความรู้สึกดีมากที่สุดตัวหนึ่งเท่าที่เคยใช้มา และก็ตื่นเต้นกับสิ่งที่ชุมชนจะสร้างด้วย Picotron
ตัวระบบเองทั้ง Pico-8 และ Picotron เป็นซอฟต์แวร์ปิด แต่โปรแกรมของผู้ใช้สามารถดูซอร์สได้แม้จะไม่ใช่โอเพนซอร์สก็ตาม
มันดีมากในเชิงการศึกษาและชอบมาก
น่าจะมี implementation ที่เข้ากันได้ออกมา แต่เครื่องมือของ Pico-8 นั้นขัดเกลามาดีมากและราคาก็ถูก จึงไม่มีเหตุผลอะไรที่จะไม่จ่าย 10 ดอลลาร์
implementation แบบโอเพนซอร์สอาจรันโปรแกรมได้อย่างเดียว แต่ไม่ได้แถมเครื่องมือน่ารัก ๆ อย่าง IDE, ตัวแก้ไข pixel sprite/map, หรือ music tracker มาด้วยเสมอไป
มันคุ้มเงินมาก และ Pico-8 ก็เป็นหนึ่งในซอฟต์แวร์ไม่กี่ตัวที่ซื้อมาแล้วไม่เคยรู้สึกไม่ชอบ
สรุปคือ Pico-8 ยอดเยี่ยม ชุมชนกับโปรแกรมฟรีก็ยอดเยี่ยม ดังนั้น Picotron ก็น่าจะยอดเยี่ยมด้วย เป็นแฟนมานานแล้ว
โดยเฉพาะช่วงหลัง ๆ WASM-4 ก็ดูน่าสนใจ และ TIC-80 ที่มีคนอื่นพูดถึงก็ดูดีเหมือนกัน
จำได้ว่าเคยอ่านเรื่อง Pyxel แล้วก็ได้แรงบันดาลใจจากมัน
ทั้งสามตัวมีข้อดีตรงที่ฟรี แล้วทำไมถึงควรยอมจ่ายเงินให้ Pico-8?
พยายามจะชินกับมันแล้วแต่ไม่สำเร็จ
ถึงอย่างนั้น เกมต่าง ๆ ก็เล่นลื่น สนุก สร้างแรงบันดาลใจ และชุมชนก็ดีแทบจะไม่มีอะไรให้ติ
สงสัยว่าตัวเลข “CPU: 8 million Lua VM instructions per second” เป็นค่าคร่าว ๆ หรือเป็นการจำกัดไว้เพื่อความสม่ำเสมอ
ใน FAQ หัวข้อ “How fast is the CPU?” พูดแค่ว่ามันเร็วและเร็วกว่า PICO-8
ในทางปฏิบัติ หน้าจอใหญ่ขึ้นมาก จึงไม่ได้มีทรัพยากรเหลือมากกว่า PICO-8 แบบทิ้งห่างนัก
ถ้าจะทำงานที่ใช้ CPU หนักจน PICO-8 รับไม่ไหว ก็ต้องใช้โหมดหน้าจอความละเอียดต่ำ
โดยส่วนตัวคิดว่ามันให้ความรู้สึกดีมากจริง ๆ
ถึง Pico-8 จะเป็นซอฟต์แวร์ที่ยอดเยี่ยม แต่สำหรับผมมันให้ความรู้สึกเก่าและฝืด ๆ ไปนิด ขณะที่ Picotron ใกล้กับความรู้สึกในวัยเด็กมากกว่าเยอะ
อยากลองเล่นมันเร็ว ๆ
น่าจะดีมากถ้ารันบนอุปกรณ์ Clockwork พวกนี้สักตัว: https://www.clockworkpi.com/shop?page=2
น่าจะดีถ้ามีความเป็นวัตถุแบบ QR code บนแผ่นกระดาษแข็งที่สอดไว้ใต้ช่องใส่รีดเดอร์ราคาถูก
ถ้าจะเอากลิ่นอาย 8 บิตแบบเต็มที่ ก็คงหลีกเลี่ยงความรู้สึกเชิงกายภาพไปไม่ได้ ทั้งหน้าจอความละเอียดต่ำและปุ่มใหญ่ ๆ ให้ทุบได้เต็มมือ
น่าเสียดายนิดหน่อยที่ดูเหมือนจะไม่เข้ากันกับ PICO-8 แบบสมบูรณ์
เคยนึกภาพว่ามันจะเป็นสภาพแวดล้อมที่สมบูรณ์แบบสำหรับสร้าง เกม PICO-8