2 คะแนน โดย GN⁺ 2024-03-23 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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() ได้
  • เสียงถูกสร้างด้วยซินธิไซเซอร์แบบเรียลไทม์ 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 ความคิดเห็น

 
GN⁺ 2024-03-23
ความคิดเห็นจาก 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 ที่ใช้ฮาร์ดแวร์ขนาดใหญ่กว่ามาช่วยเครื่องเก่าแบบไม่สนกรอบความคิดของทั้งสองฝั่ง

    • ผมหวังว่าเครื่องพวกนี้จะไม่หยุดอยู่แค่ CPU เรโทรตัวเดิมอย่าง Z80, 6502, 8080 หรือการโคลน VDP บน FPGA ต่อไป
      ผมอยากได้เครื่องสไตล์เรโทรแบบ 2D/blit แต่ใช้ฮาร์ดแวร์ที่ก้าวหน้ากว่า เช่น Cortex-M, Z8000, 68000 หรือ RISC-V ราคาย่อมเยา
      ใส่ BASIC มาใน boot ROM ได้ แต่ก็อยากให้มีพื้นที่ให้เติบโตมากขึ้นแบบยุค 90
      ผมเข้าใจว่าหลายคนอยากนำมนตร์ขลังของ Commodore 64 กลับมา แต่สำหรับผม ยุคการแฮ็กของ Amiga, Atari, BeBox ดูเปล่งประกายกว่ามาก
    • ผมสนุกมากกับการทำเกมง่าย ๆ ด้วย Pico-8 กับลูก ๆ และใช้มันสอนเรขาคณิตพื้นฐาน
      ชุมชนที่ต่อยอดมาจาก 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
    • ผมไม่แน่ใจว่า Lua จะช้ากว่า BASIC มากเสมอไปสำหรับการรันแบบอินเทอร์พรีเตอร์บน 8 บิตจริง
      ตัวภาษามีการออกแบบที่เล็กมากและเป็นระบบอย่างดี
  • ผมลองเล่นอยู่ราว 30 นาทีและยังยิ้มไม่หุบเลย มันสนุกจริง ๆ
    เพราะเคยใช้ Pico-8 เยอะมาก่อน ก็เลยเริ่มทำอะไรบางอย่างได้ทันที และ Pico-8 ก็เป็นหนึ่งในสี่ซอฟต์แวร์ในกลุ่ม ซอฟต์แวร์ที่มอบความสุขให้ผม ร่วมกับ Aseprite, Blender, Propellerhead ReBirth
    Pico-8 ใส่ใจอย่างมากกับเป้าหมายและข้อจำกัดที่ตั้งใจวางไว้ และเท่าที่เห็น Picotron ก็ให้ความรู้สึกถึงความรักและความใส่ใจในระดับเดียวกัน
    มันน่ารักมาก และผมไม่อยากหยุดทำอะไรกับมันเลย
    ผมเคยลองใช้ Pico-8 clone มาหลายตัว แต่ทุกตัวดูพลาดแก่นสำคัญไป พวกมัน “ปรับปรุง” ข้อจำกัด แต่กลับไม่ชวนให้พอใจ
    ตลกดีที่ผมเองก็เคยพยายามทำเวอร์ชัน JavaScript แนว “Pico-8 ที่มีฟีเจอร์มากกว่า” ถึงสามครั้งเพื่อใช้ทำต้นแบบเกมแจม แต่ทุกครั้งก็เหมือน clone พวกนั้น คือฟีเจอร์อาจพอแล้วแต่ไม่สร้างแรงบันดาลใจ เลยล้มเลิกไป
    ผมไม่รู้ว่าใครเป็นคนสร้าง Pico-8 กับ Picotron แต่ขอคารวะคนเก่งที่สร้างซอฟต์แวร์น่าประทับใจแบบนี้ขึ้นมา

    • ผมก็จัด Aseprite ไว้ในหมวดนั้นเหมือนกัน แต่สำหรับผมตัวที่ใหญ่ที่สุดคือ Godot
      หลังจากทำโปรเจ็กต์ OpenGL จากศูนย์อยู่หลายปีและลอง Unity มาบ้าง พอราวปี 2020 ผมก็ทุ่มให้ Godot แบบ 100% และตั้งแต่นั้นมาก็มันกลายเป็นซอฟต์แวร์ที่มอบความสุขให้ผมมากที่สุด
    • ส่วนตัวแล้วผมชอบ TIC-80 มากกว่าเยอะ
      ผมชอบอัตราส่วนจอที่ดีกว่า ความสามารถในการใช้ภาษาอื่น และการที่ไม่จำเป็นต้องใช้ Lua standard library แบบคัสตอม
  • พอเห็นประโยคที่ว่า “แอป Picotron สามารถสร้างได้ด้วยเครื่องมือที่มีมาให้ในตัว และแชร์กับผู้ใช้อื่นได้ในรูปแบบตลับ PNG ขนาด 256KB แบบพิเศษ” ก็รู้สึกว่าช่วงนี้ซอฟต์แวร์อินดี้มีแนวโน้มจะแจก asset ผ่าน ไฟล์ PNG กันมากขึ้น ทำไมถึงเป็นแบบนั้นนะ?

    • มันมีความสนุกตรงที่เกม/โปรแกรมที่รันได้ถูกเก็บอยู่ในภาพ แต่ PNG ก็เป็น ฟอร์แมตแบบไม่สูญเสียข้อมูล ใช้อัลกอริทึมบีบอัดแบบเดียวกับ ZIP และมีไลบรารีเข้ารหัส/ถอดรหัสในหลายภาษา
      เพราะงั้นมันเลยเป็นตัวเลือกที่ดีพอสมควรสำหรับฟอร์แมตข้อมูลของแอปพลิเคชัน
    • Picotron สร้างโดยคนเดียวกับ PICO-8 และเท่าที่ผมรู้ PICO-8 คือคนที่ทำให้ แฟนตาซีคอนโซล เป็นที่นิยม
    • มันสนุกและแชร์ได้ง่าย
    • ส่วนใหญ่ก็เพราะมันสนุกนั่นแหละ อีกอย่าง PNG มี alpha channel ที่เหมาะกับการเก็บข้อมูลด้วย
      เท่าที่รู้ คอนโซลก่อนหน้าของนักพัฒนาคนนี้อย่าง 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 ก็น่าจะยอดเยี่ยมด้วย เป็นแฟนมานานแล้ว

    • อยากให้ใครสักคนเขียนอธิบายว่าทำไม Pico-8 ถึงดีกว่า fantasy console อื่น ๆ มากขนาดนั้น
      โดยเฉพาะช่วงหลัง ๆ WASM-4 ก็ดูน่าสนใจ และ TIC-80 ที่มีคนอื่นพูดถึงก็ดูดีเหมือนกัน
      จำได้ว่าเคยอ่านเรื่อง Pyxel แล้วก็ได้แรงบันดาลใจจากมัน
      ทั้งสามตัวมีข้อดีตรงที่ฟรี แล้วทำไมถึงควรยอมจ่ายเงินให้ Pico-8?
    • Pico-8 ยอดเยี่ยมก็จริง แต่ https://tic80.com/ ก็เจ๋งมากจริง ๆ
    • เห็นด้วยว่า 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 ก็ทำแบบนั้นเหมือนกัน เลยน่าจะเป็นความเร็วที่ถูกจำกัดไว้ https://pico-8.fandom.com/wiki/CPU
  • โดยส่วนตัวคิดว่ามันให้ความรู้สึกดีมากจริง ๆ
    ถึง Pico-8 จะเป็นซอฟต์แวร์ที่ยอดเยี่ยม แต่สำหรับผมมันให้ความรู้สึกเก่าและฝืด ๆ ไปนิด ขณะที่ Picotron ใกล้กับความรู้สึกในวัยเด็กมากกว่าเยอะ
    อยากลองเล่นมันเร็ว ๆ

  • น่าจะดีมากถ้ารันบนอุปกรณ์ Clockwork พวกนี้สักตัว: https://www.clockworkpi.com/shop?page=2

    • เคยลองรัน pico-8 บนเครื่อง Clockwork ที่ยืมมา และมันทำงานได้ดีกับแอปส่วนใหญ่
    • uConsole โฆษณาว่ารองรับ pico-8 อยู่แล้ว เลยดูเหมือนว่าจะออกแบบมาโดยคำนึงถึงอะไรแบบนี้ตั้งแต่แรก
  • น่าจะดีถ้ามีความเป็นวัตถุแบบ QR code บนแผ่นกระดาษแข็งที่สอดไว้ใต้ช่องใส่รีดเดอร์ราคาถูก
    ถ้าจะเอากลิ่นอาย 8 บิตแบบเต็มที่ ก็คงหลีกเลี่ยงความรู้สึกเชิงกายภาพไปไม่ได้ ทั้งหน้าจอความละเอียดต่ำและปุ่มใหญ่ ๆ ให้ทุบได้เต็มมือ

  • น่าเสียดายนิดหน่อยที่ดูเหมือนจะไม่เข้ากันกับ PICO-8 แบบสมบูรณ์
    เคยนึกภาพว่ามันจะเป็นสภาพแวดล้อมที่สมบูรณ์แบบสำหรับสร้าง เกม PICO-8

    • สงสัยว่าหมายถึงส่วนไหน เพราะถ้าเป็นตอนนี้ก็อาจยังเปลี่ยนได้