Show HN: GodotOS อินเทอร์เฟซระบบปฏิบัติการจำลองที่สร้างด้วยเอนจิน Godot
(github.com/popcar2)- GodotOS เป็นอินเทอร์เฟซแบบระบบปฏิบัติการที่สร้างด้วย Godot ล้วน ๆ รองรับการท่องโฟลเดอร์ แก้ไขไฟล์ข้อความ ดูรูปภาพ และเปิดเกม ทั้งหมดในหน้าจอเดียวที่ขัดเกลามาอย่างดี
- ไม่ใช่ระบบปฏิบัติการจริง แต่เป็น แอปพลิเคชัน ที่ดูเหมือนระบบปฏิบัติการ และมีเป้าหมายให้เป็นอินเทอร์เฟซที่ใช้งานได้บนเว็บด้วย
- ลักษณะของโปรเจกต์ใกล้เคียงกับของเล่นที่ผลักขีดจำกัดของ การออกแบบ UI ใน Godot มากกว่าการพัฒนา OS อย่างจริงจัง
- เดสก์ท็อปมุ่งเป็นสภาพแวดล้อมที่มินิมอล มีสิ่งรบกวนน้อย และสวยงาม อีกทั้งยังทำหน้าที่เป็น ฮับ สำหรับรวมเกมและประสบการณ์เล็ก ๆ ได้ง่าย
- GodotOS ไม่ใช่โปรเจกต์ที่มีความร่วมมือกับนักพัฒนา Godot Engine หรือ Godot Foundation
อินเทอร์เฟซที่ GodotOS มีให้
- GodotOS เป็นอินเทอร์เฟซสไตล์ระบบปฏิบัติการที่สร้างด้วย Godot ล้วน ๆ
- รองรับงานต่อไปนี้ภายในหน้าจอเดียวที่สอดคล้องกัน
- ท่องโฟลเดอร์
- แก้ไขไฟล์ข้อความ
- ดูรูปภาพ
- เล่นเกม
- ประสบการณ์แบบเดสก์ท็อปอื่น ๆ
- มี อินเทอร์เฟซแบบรวมศูนย์ ที่ใช้งานบนเว็บได้ด้วย
เป้าหมายและลักษณะของโปรเจกต์
- GodotOS ใกล้เคียงกับ โปรเจกต์ของเล่น มากกว่าการพัฒนาระบบปฏิบัติการจริง
- เป้าหมายคือการทดสอบ ขีดจำกัดของการออกแบบ UI ที่เป็นไปได้ใน Godot
- สภาพแวดล้อมเดสก์ท็อปมุ่งให้มีลักษณะดังนี้
- มินิมอล
- มีสิ่งรบกวนน้อย
- สวยงามน่ามอง
ฮับสำหรับรวมเกมและประสบการณ์
- GodotOS ถูกออกแบบให้เป็น ฮับ ที่สามารถรวมเกมและประสบการณ์เล็ก ๆ ได้ง่าย
- หากต้องการเพิ่มเกมลงในเมนูเริ่มโดยตรง สามารถดูคู่มือการมีส่วนร่วมได้
วิธีใช้งาน
- สามารถลองเวอร์ชันเว็บได้ที่ Itch.io page
- ดาวน์โหลดทุกเวอร์ชันได้จาก releases page
- วิดีโอเดโมมีให้ชมที่ Trailer
ข้อจำกัดที่ชัดเจนและประกาศว่าไม่มีความร่วมมือ
- GodotOS ไม่ใช่ระบบปฏิบัติการจริง แต่เป็น แอปพลิเคชัน ที่มีอินเทอร์เฟซคล้ายระบบปฏิบัติการ
- GodotOS ไม่มีความร่วมมือกับ นักพัฒนา Godot Engine หรือ Godot Foundation
2 ความคิดเห็น
เป็นของเล่นที่สนุกดีนะ
ความคิดเห็นบน Hacker News
ดูเหมือนเป็น proof of concept ที่ยอดเยี่ยมสำหรับการใช้ Godot เป็น เฟรมเวิร์กข้ามแพลตฟอร์มสำหรับแอปพลิเคชันเดสก์ท็อป
แพ็กเกจสำหรับแจกจ่ายเรียบง่ายมาก มีแค่ไฟล์ executable หนึ่งไฟล์กับไฟล์ข้อมูลหนึ่งไฟล์ และประสิทธิภาพก็ดีมาก
ในแง่วิธีการจัดเตรียมแพ็กเกจไบนารีที่พึ่งพาตัวเองได้ทั้งหมดและไม่ขึ้นกับดิสโทร ดูดีกว่าแนว Flatpak มาก และในแง่ประสิทธิภาพก็ดูเหนือกว่า Electron อย่างมาก
แอปพลิเคชันเดสก์ท็อปที่สร้างด้วยเกมเอนจินอาจเป็นกระแสใหญ่ถัดไปก็ได้
เท่ากับทิ้ง ฟีเจอร์ของระบบปฏิบัติการ ทั้งหมดอย่างการเรนเดอร์ข้อความที่ดี อินเทอร์เฟซแก้ไขข้อความที่สอดคล้องกัน การเข้าถึงสำหรับผู้พิการ และความโปร่งใส
ผมก็ไม่คิดว่า Godot จะเร็วกว่า Electron โดยเนื้อแท้ใน UI ใด ๆ
ที่แอป Godot มักเร็วก็เพราะคนที่อยากใช้เกมเอนจินและใส่ใจประสิทธิภาพเป็นคนสร้างมันขึ้นมา และถ้านักพัฒนาใส่ใจประสิทธิภาพ Electron ก็เร็วพอได้เหมือน VSCode
พูดในฐานะคนที่เคยทำงานกับเกมเอนจิน
ผมตั้งใจจะเขียนบทความเกี่ยวกับการสร้าง แอปพลิเคชันข้ามแพลตฟอร์มระดับมืออาชีพ ด้วย Godot และคงจะเขียนเร็ว ๆ นี้
สรุปคือ Godot เป็น UI builder ที่ยอดเยี่ยม และผมคิดว่าผู้คนจำนวนมากกำลังค่อย ๆ ตระหนักเรื่องนี้
มีแอปพลิเคชันระดับมืออาชีพจำนวนมากที่สร้างด้วย Godot[0] และอยากเอ่ยถึง Lorien[1] ที่ใช้ Godot ซึ่งเป็นแอปไวต์บอร์ดที่ผมชอบที่สุดและเป็นแรงบันดาลใจบางส่วนให้โปรเจกต์นี้ด้วย
Godot ไม่ได้สมบูรณ์แบบ และเครื่องมือสร้าง UI อื่นก็มีบางส่วนที่ทำได้ดีกว่า แต่ยังมีศักยภาพอีกมากที่ยังไม่ถูกค้นพบ
[0]: https://alfredbaudisch.com/blog/gamedev/godot-engine/standal...
[1]: https://github.com/mbrlabs/Lorien
ผมใช้โปรแกรมชื่อ Dungeondraft[1] สำหรับสร้างแผนที่ TTRPG ได้ง่าย ๆ ซึ่งสร้างอยู่บน Godot
ในหน้า Modding API[2] ก็กล่าวถึง Godot ด้วย
[1]: https://dungeondraft.net/
[2]: https://megasploot.github.io/DungeondraftModdingAPI/
แม้แอปจะเป็นไบนารีไฟล์เดียวที่พึ่งพาตัวเองได้ ก็ยังได้ประโยชน์จาก Flatpak อยู่
sandboxing, การจัดการสิทธิ์, การแยกออกจากระบบ, ความจำเป็นบนดิสโทรแบบ immutable/อิง image, และรูปแบบแพ็กเกจรวมศูนย์ที่ไม่ต้องสร้าง deb หรือ rpm แยก ล้วนเป็นประโยชน์ทั้งต่อนักพัฒนาและผู้ใช้
เรื่องนี้แทบไม่เกี่ยวกับว่าคุณเขียน UI ด้วยอะไร และไบนารีที่พึ่งพาตัวเองได้อย่างเดียวไม่สามารถแทนที่ Flatpak ได้ทั้งหมด
ข้อเสียอีกอย่างที่นึกออกคือในมุมการออกแบบ แอปพลิเคชันจะต้องใช้ภาษาออกแบบเดียวกันในทุกแพลตฟอร์ม จึงทำให้มี รูปลักษณ์แบบเนทีฟ ของแต่ละแพลตฟอร์มได้ยาก
มีข้อเสียอื่นอีกไหม?
ตัว Godot IDE เองก็เป็น “เกม” ในแง่ที่ว่าทั้งหมดสร้างด้วย Godot API
จริง ๆ แล้วนี่อาจเป็นสภาพแวดล้อมที่ดีสำหรับสร้างแอปงานธุรกิจที่พกพาได้ เหมือน Visual Basic ยุคใหม่ก็ได้
ที่เกี่ยวข้องกัน Grey Hack คือระบบปฏิบัติการ เครือข่าย และอินเทอร์เน็ตปลอมในเกมมัลติเพลเยอร์ที่มีเป้าหมายคือการแฮ็ก
รวมถึงการแฮ็กกันเอง และจำลองฟังก์ชันพื้นฐานได้ค่อนข้างดี
คุณสามารถขโมยไฟล์หรือวางไฟล์ไว้ในคอมพิวเตอร์เครื่องอื่น ติดตั้งซอฟต์แวร์ รันคำสั่งบน command line ที่รวมของเลียนแบบเครื่องมือต่าง ๆ และยังเขียนโปรแกรมเองได้ด้วย
ในโลกจริงก็อาจมีประโยชน์
ลองนึกถึงอุตสาหกรรมภาพยนตร์ ระบบปฏิบัติการปลอม สำหรับแสดงให้เห็นว่าตัวละครกำลังทำอะไรบางอย่างกับคอมพิวเตอร์ แทบจะเป็นคลิเช่ไปแล้ว
ไม่นานมานี้ผมคุยกับแฟนหนัง Hackers แล้วถูกถามว่าในหนังใช้ OS อะไร ผมตอบว่าเป็นสิ่งที่หนังยุค 90 ทุกเรื่องใช้กัน นั่นคือ Mac OS ที่แปะองค์ประกอบ UI ปลอมซึ่งรีบทำด้วย Macromedia Director เข้าไป
ในหนังยุคต่อมา Flash ก็รับบทนั้น และเมื่อสตูดิโอภาพยนตร์ใช้เกมเอนจินมากขึ้นเรื่อย ๆ เพื่อให้ภาพอ้างอิง CG แบบเรียลไทม์ในกองถ่าย สิ่งนี้ก็อาจเป็นเวอร์ชันสมัยใหม่ของมัน
คิดว่าน่าจะดีถ้า Godot มี โหมดคอมไพล์ขั้นต่ำที่เน้น UI
มันน่าสนใจมากสำหรับ UI ที่เรนเดอร์ด้วย GPU และก็มีไลบรารีกับปลั๊กอินยอดเยี่ยมอยู่แล้วสำหรับสร้างคอมโพเนนต์ที่มีประโยชน์ในงานวิศวกรรมหรือการวิเคราะห์ข้อมูล
ไม่แน่ใจว่าจะลดขนาดลงได้แค่ไหนถ้ายังคงคอมโพเนนต์ 2D/3D ส่วนใหญ่ไว้ แต่น่าจะทำได้
[1]: https://docs.godotengine.org/en/stable/contributing/developm...
ด้วยแฟล็ก
custom_modulesคุณเลือกได้ว่าจะคอมไพล์ โมดูล Godot ใดบ้างตัวอย่างเช่น เราแจกจ่าย wasm ขนาดเล็กสำหรับเกมเว็บ Godot แบบ 2D
Godot เป็นสเก็ตช์แพดที่ยอดเยี่ยมสำหรับทำอะไรแบบนี้
ครั้งหนึ่งตอนอยู่ที่สนามบินรอขึ้นเครื่อง ผมทำสมุดจดแบบรีบ ๆ สำหรับเกมรัสเซียแบบปากกาและกระดาษบนแท็บเล็ต eInk ชื่อ Virus War (“Война вирусов”) เพื่อให้เล่นกับคู่ของผมบนเครื่องบินได้
มันเป็นแค่ตารางที่มีปุ่มแตะได้พร้อมสถานะต่าง ๆ แต่ก็ทำโปรโตไทป์ที่เล่นได้ทันก่อนขึ้นเครื่อง
นึกถึงช่วงราวปี 2005 ที่ Sub OS ค่อนข้างฮิตในชุมชน GameMaker
ดูเหมือนว่าถ้ามีเวลามากพอ ก็จะมีใครสักคนพยายามทำอินเทอร์เฟซที่เหมือนระบบปฏิบัติการอยู่ในเอนจินเกมใดเกมหนึ่งเสมอ
มันเป็นวิธีที่ดีในการทำความเข้าใจ UI และแพาราไดม์ด้านการใช้งาน นอกเหนือจากการทำกลไกเกม และชวนให้คิดถึงอดีตอย่างสนุกดี
ผมเป็นคนทำ Tiagix OS และเท่าที่ผมรู้ มันเป็นหนึ่งใน subOS แรก ๆ ที่รองรับการสร้างแอปได้จริง
เพราะต้องสร้างเองทั้งหมดตั้งแต่ต้น เลยได้เรียนรู้เรื่อง GUI toolkit เยอะมาก
https://forum.gamemaker.io/index.php?threads/gm8-subos-proje...
โดยทั่วไปจะมีเชลล์ UI ของระบบปฏิบัติการกับแอปพลิเคชัน แต่น่าเสียดายที่จำชื่อไม่ได้แล้ว
มีข้อความว่า “GodotOS ไม่ใช่ระบบปฏิบัติการจริง แต่เป็นแอปพลิเคชันที่มีอินเทอร์เฟซซึ่งดูเหมือนระบบปฏิบัติการ” แต่จริง ๆ แล้ว GodotOS จะถือว่าเป็นระบบปฏิบัติการน้อยกว่า Windows ยุคแรก ๆ ได้ไหม?
นึกถึงตอนที่ Notch ทดลองทำเกมอวกาศด้วยภาษาแอสเซมบลีแบบย่อส่วนที่เขาสร้างเอง
น่าเสียดายที่หยุดทำไปแล้ว แต่ผมยังคิดว่าเกมแนวแฮ็กในเกมยังมีศักยภาพสูง
ไม่ใช่แบบ “กด F เพื่อแฮ็ก” แต่เป็นการล็อกอินเข้าระบบจริง ๆ แล้วไปเอาหรือเปลี่ยนอะไรบางอย่าง
ระบบปฏิบัติการในเกม ที่ดูสมจริงน่าจะเป็นก้าวที่ดี
https://web.archive.org/web/20130905082541/http://dcpu.com/d...
คุณวาง “สถานีคอมพิวเตอร์” เชื่อมเข้ากับเครือข่ายสัญญาณ แล้วเปิดเทอร์มินัลเพื่อเริ่มเขียนโปรแกรม
มันมีประโยชน์จริง เพราะโรงงานอาจซับซ้อนมาก และที่เจ๋งคือสามารถใช้ไอเท็มเป็นสัญลักษณ์สัญญาณเพื่อสื่อสารข้ามสายไฟได้ค่อนข้างละเอียด
ความเร็วสัญญาณนาฬิกาของอุปกรณ์ถูกจำกัดไว้ที่ไม่กี่คำสั่งต่อ tick ของเกม
เป็นเกม idle ที่มีการจำลอง “ระบบปฏิบัติการ” แบบจำกัด แต่ทางแก้ที่ดีต้องใช้ความคิดและความรู้ด้านการเขียนโปรแกรมจริง ๆ
คุณจะได้เขียนสคริปต์ที่สแกนเครือข่ายเพื่อหาพอร์ตที่เปิดอยู่และ “แฮ็ก” โดยอัตโนมัติ จากนั้นปรับสมดุลการจัดสรรหน่วยความจำของทุกระบบในภาพรวมตามพารามิเตอร์บางอย่าง เพื่อให้การแฮ็ก “ทำกำไร” มากที่สุด
สนุกดีที่ได้ทำตั้งแต่การสื่อสารผ่านซ็อกเก็ตพื้นฐาน สคริปต์ส่งผลการวิเคราะห์กลับไปยัง PC ที่บ้าน ไปจนถึง การเทรดด้วยอัลกอริทึม ในตลาดหุ้นปลอม
https://www.zachtronics.com/tis-100/
ในสกรีนช็อตมีข้อความว่า “GodotOS is a fake operating system”
แต่จริง ๆ แล้วมันปลอมหรือเปล่า? คำว่า “ระบบปฏิบัติการ” จำเป็นต้องสื่อถึงระดับชั้นของฮาร์ดแวร์ที่มันรันอยู่ด้วยไหม?
ถ้าไม่ ก็อาจยังถือว่าเป็น OS ได้ แม้จะรันอยู่บน OS อื่นก็ตาม
ผมค่อนข้างระวังการใช้ถ้อยคำ เพราะไม่อยากให้คนเข้าใจผิดตอนประชาสัมพันธ์