2 คะแนน โดย GN⁺ 2025-08-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Librebox คือเอนจินเกม 3D แบบ โอเพนซอร์สที่ใช้ Luau เป็นพื้นฐาน และมุ่งสู่ ความเข้ากันได้ระดับ API กับ Roblox
  • นักพัฒนาสามารถมี กรรมสิทธิ์อย่างสมบูรณ์ตั้งแต่ตัวเอนจินไปจนถึงโค้ด ของเกมตนเอง
  • ขณะนี้ยังอยู่ใน ขั้นเดโม โดยรองรับการเรนเดอร์ฉากหลัก การเคลื่อนที่ของกล้อง และการสร้างพาร์ตพื้นฐาน
  • ในเวอร์ชันถัดไปมีแผนจะเพิ่ม ฟิสิกส์ อินพุตผู้ใช้ การรองรับหลายแพลตฟอร์ม และอื่น ๆ
  • ไลเซนส์ คือ MIT ใช้งานได้ฟรีทั้งหมด และสามารถแก้ไขรวมถึงแจกจ่ายต่อได้อย่างอิสระ

แนะนำ Librebox

  • Librebox คือเอนจินเกม 3D แบบ โอเพนซอร์ส ที่สร้างขึ้นบนเอนจิน Luau
  • เป้าหมายหลักคือการ มอบ API ที่คล้ายกับ Roblox เพื่อรับประกัน ความเข้ากันได้ของโค้ด Luau เดิม ให้ได้มากที่สุด
  • นักพัฒนาจะมี กรรมสิทธิ์และอิสระทั้งต่อตัวเอนจินและลอจิกของเกม และสามารถพัฒนาได้โดยไม่ผูกติดกับแพลตฟอร์ม

ทำไมต้อง Librebox?

  • ใช้งานเอนจินได้อย่าง อิสระ และมีกรรมสิทธิ์อย่างเต็มที่
  • นักพัฒนาที่คุ้นเคยกับ Roblox หรือ Luau เดิมสามารถ นำโค้ดกลับมาใช้ซ้ำได้แทบไม่ต้องแก้ไข
  • สามารถสร้างแพลตฟอร์มของตัวเอง และ แจกจ่าย ดัดแปลง ทำเงิน ได้อย่างอิสระ

ตัวอย่างโค้ดหลัก

  • ตัวอย่าง: สร้างพาร์ตแล้วหมุนพร้อมเปลี่ยนสี
    • ดูไฟล์ examples/part_example.lua
    • สามารถสร้างพาร์ต กำหนดสี ตำแหน่ง การหมุน และการวนลูปได้ด้วยวิธีที่แทบเหมือนโค้ด Luau/Roblox เดิม

สรุปฟีเจอร์ที่รองรับ (อิงตามเวอร์ชันเดโม)

  • การเรนเดอร์ฉาก แสง เงา และ skybox
  • การเรนเดอร์ออบเจ็กต์ภายใน game.Workspace
  • ฟังก์ชันการเคลื่อนที่ของกล้องพื้นฐาน
  • รองรับ Instance System และชนิดข้อมูลหลัก
    • CFrame, Vector3, Color3, Random เป็นต้น
    • Instance.new, การคัดลอก/ทำลายพาร์ต, การควบคุมพร็อพเพอร์ตี
  • บริการฝั่ง Client
    • Workspace, Camera, Lighting, RunService เป็นต้น
    • รองรับอีเวนต์ RenderStep/HeartBeat
  • รองรับสคริปต์ Luau และตัวจัดตารางงาน
    • coroutine, อีเวนต์, งานอะซิงก์ (task.spawn, task.wait เป็นต้น)
  • การจัดการหน้าต่างและการปรับแต่งโหมดเต็มหน้าจอ

แพลตฟอร์มและการขยายต่อ

  • ปัจจุบันรองรับ Windows เท่านั้น
  • ใช้ raylib จึงพอร์ตไปยัง OS อื่นได้ง่าย
  • แจกจ่ายเป็น ไฟล์รันแบบ Standalone

ฟีเจอร์ที่วางแผนจะรองรับในอนาคต

  • เอนจินฟิสิกส์และการตรวจจับการชน
  • รองรับโมเดล/เมช, รูปภาพ, GUI, วัสดุ
  • Onscreen GUI, Replication/Multiplayer (เซิร์ฟเวอร์)
  • UserInputService, ContextActionService เป็นต้น
  • สร้าง เอดิเตอร์ ของตัวเอง และระบบนิเวศเซิร์ฟเวอร์/ไคลเอนต์แบบครบวงจร

วิสัยทัศน์และอนาคต

  • มุ่งสู่การเป็นเอนจินโอเพนซอร์สแบบสแตนด์อโลนเต็มรูปแบบ โดยมีเป้าหมายคล้าย Godot, Unity
  • ทำให้การพัฒนาเป็นอิสระอย่างแท้จริงด้วยแนวคิด เกมของฉัน/โค้ดของฉัน โดยไม่ขึ้นกับแพลตฟอร์ม
  • มีแผนขยายไปสู่ทุกด้านตั้งแต่ เอดิเตอร์ เซิร์ฟเวอร์ การแจกจ่าย และการสร้างรายได้
  • สามารถเขียน API และซอร์สโค้ดใหม่ได้

ไลเซนส์และลิขสิทธิ์

  • ไลเซนส์ MIT
  • ใช้เฉพาะโอเพนซอร์สไลเซนส์ เช่น Luau (อิงเอนจิน Roblox, MIT), raylib (zlib/libpng)
  • เป็น โปรเจกต์อิสระ ที่ไม่เกี่ยวข้องกับแพลตฟอร์มเชิงพาณิชย์หรือบุคคลที่สาม
  • ไม่มีซอร์สภายนอก/แอสเซ็ต/โค้ด proprietary รวมอยู่

ติดต่อและชุมชน

  • อีเมล: librebox.developers@gmail.com
  • ทุกคนสามารถใช้งาน ให้ข้อเสนอแนะ แก้ไข และร่วมพัฒนาได้

เทคโนโลยีสแต็ก

  • ประกอบด้วย C++, Lua, Luau, Python, C, CMake เป็นต้น

ความสำคัญและจุดได้เปรียบในการเปรียบเทียบ

  • เอนจินโอเพนซอร์สทางเลือกอิสระสำหรับระบบนิเวศ Roblox/Lua
  • มอบ อิสระในการสร้าง เป็นเจ้าของ และสร้างรายได้ ซึ่งแพลตฟอร์มเชิงพาณิชย์เดิมมักมีข้อจำกัด
  • ด้วย การเปิดซอร์สทั้งหมด ความเข้ากันได้ระดับ API และเดโมบน Windows จึงเหมาะกับการสร้างเกม 3D/คอนเทนต์บนพื้นฐาน Lua

สรุป

  • เป็นเอนจินเกมที่มีทั้ง ฟรี โอเพนซอร์ส ความเข้ากันได้ และอิสระ จึงเป็นตัวเลือกที่น่าสนใจสำหรับนักพัฒนาจูเนียร์และการพัฒนาเกมข้ามแพลตฟอร์ม

1 ความคิดเห็น

 
GN⁺ 2025-08-24
ความเห็นจาก Hacker News
  • Librebox ยังอยู่ในขั้นเดโมเท่านั้น รองรับเพียงส่วนน้อยมากของ Roblox API และยังขาดฟีเจอร์อีกมาก เช่น เซิร์ฟเวอร์หรือระบบเครือข่าย
    • ถ้าผมอยู่ในทีมพัฒนา ผมคงเริ่มจากการทำเซิร์ฟเวอร์กับระบบเครือข่ายก่อน เพราะถ้าจะค่อยมาเพิ่มทีหลัง มักจะยากมากจริง ๆ
  • คิดว่าเป็นความพยายามที่สดใหม่น่าสนใจ และขอให้โชคดี หวังว่าจะไม่โดนทีมกฎหมายของ Roblox เล่นงาน น่าจะมีประโยชน์ได้ดีกับฝั่งไคลเอนต์ native บน Linux ตอนนี้ Sober ที่นิยมใช้กันเป็นซอฟต์แวร์ปิดซอร์ส ส่วน Vinegar ที่เคยใช้ก่อนหน้านี้ก็โดนบล็อกเพราะปัญหากับพวกแฮ็กเกอร์ Linux
    • Roblox อาจพยายามดำเนินการทางกฎหมายก็ได้ แต่ส่วนตัวผมรู้สึกว่าโปรเจกต์นี้ถูกกฎหมายอย่างชัดเจน ถ้าวัดในแง่ความชอบธรรมทางกฎหมาย ผมให้คะแนนสูงกว่า VLC Media Player (ประเด็นสิทธิบัตร) และสูงกว่า NES emulator มาก น่าจะต่ำกว่า Android หน่อย แต่ถึงอย่างนั้น Oracle ก็เคยฟ้อง Android มาแล้วเหมือนกัน (ผมไม่ใช่ทนาย)
    • ถ้ามองจากลำดับความสำคัญของทีมกฎหมาย Roblox ก็รู้สึกว่าโปรเจกต์แบบนี้ดูจะถูกจัดการก่อนปัญหาการแสวงหาประโยชน์จากเด็กบน Roblox เสียอีก
  • มีการพูดถึงว่าไม่มี :WaitForChild() ซึ่งกลับมีคนบอกว่านี่อาจเป็นข้อดีด้วยซ้ำ
    • จริง ๆ ไม่ใช่ปัญหาใหญ่ แค่เป็นฟังก์ชันอำนวยความสะดวกเล็กน้อย และดีกว่า busy waiting ในหลายกรณี บ่อยครั้งเราไม่ได้รับประกันได้ว่าออบเจ็กต์บางตัวจะมีอยู่ก่อนโค้ดเริ่มทำงาน จึงเขียนพฤติกรรมคล้ายกันเองได้แบบนี้: while not parentObj:FindFirstChild("childObj name") do wait() end เท่าที่ผมรู้ ฟังก์ชัน wait() ใช้เวลาอย่างน้อย 1/30 วินาทีต่อเฟรม ถ้าจะให้แทบทันทีจริง ๆ ก็ต้องรันทุก heartbeat
  • มีคอนเทนต์ที่ผู้ใช้สร้างไว้จำนวนมหาศาลซึ่งผูกติดอยู่กับ Roblox รู้สึกได้เลยว่ามีทรัพยากรมากมายจริง ๆ
    • โดยเฉพาะคอนเทนต์แนว Club ควรถูกปลดปล่อยออกมาให้ได้
  • ไม่ว่าพยายามหาข้อมูลเกี่ยวกับผู้พัฒนาจากใน repository (github) แค่ไหนก็ไม่เจอเลย แม้แต่เซิร์ฟเวอร์ Discord ก็ไม่มีอะไรอยู่ในแชนเนลเลย และบัญชีที่ถูกตั้งบทบาทเป็นนักพัฒนาก็มีเพียงบัญชีเดียวที่เป็นบัญชีเฉพาะของโปรเจกต์ โค้ดต้นฉบับดูมีร่องรอยว่ามีงานทำจริง ไม่ใช่มีแค่ README อย่างเดียว ถึงอย่างนั้นโดยรวมก็ยังให้ความรู้สึกแปลก ๆ อยู่ดี
    • โปรเจกต์แบบ one-man project ที่ทำคนเดียวก็มักเป็นแบบนี้แหละ
    • ถ้าจะตีความในแง่ดี การปิดบังตัวตนน่าจะเป็นเพราะกลัวปัญหาทางกฎหมาย เพราะ Roblox เองก็เป็นบริษัทยักษ์ใหญ่ที่มีมูลค่า 8.1 หมื่นล้าน
  • ถ้าใช้ Robux ไม่ได้ ส่วนตัวผมก็ไม่ค่อยสนใจ เพราะจริง ๆ แก่นของปัญหาอยู่ที่ Robux (ระบบสกุลเงิน) มากกว่า ตัวเอนจินเองไม่ได้พิเศษขนาดนั้น
    • เหตุผลที่นักพัฒนาจำนวนมากออกจาก ROBLOX ไม่ได้ เป็นเพราะพวกเขาเรียนรู้เครื่องมือของ ROBLOX มาตั้งแต่เด็กและชำนาญแล้ว แต่ทักษะเหล่านั้นกลับกลายเป็นทักษะเฉพาะทางที่ใช้กับเกมเอนจินอื่นแทบไม่ได้ ตอนนี้ทางเลือกก็มีแค่เริ่มใหม่แบบมือใหม่ในสภาพแวดล้อมใหม่อย่าง Unity หรือไม่ก็ทำผลงานระดับสูงต่อไปใน ROBLOX แบบเดิม เพราะพวกเขามีทั้งเพื่อนและชื่อเสียงที่สั่งสมในแต่ละคอมมูนิตี้ พูดตรง ๆ ผมกลับแปลกใจมากกว่าที่ตัวแทนแบบเข้ากันได้ระดับ API เพิ่งโผล่มาป่านนี้
    • มันอาจเป็นโอกาสให้นักพัฒนาปล่อยเกม Roblox ของตัวเองเป็นเกมแบบ standalone และหลุดพ้นจาก platform lock-in ได้ แน่นอนว่าผู้ใช้เดิมจะตามมาด้วยไหมก็เป็นอีกเรื่อง
    • ผมไม่ได้ชอบ Roblox แต่เคยได้ยินมาว่าเครื่องมือสำหรับสร้างของ Roblox นั้นจริง ๆ แล้วทำออกมาได้ค่อนข้างดีทีเดียว
  • ผมคิดว่า repository นี้เจ๋งมากทีเดียว
  • สงสัยว่านี่จะช่วยเรื่องการทดสอบบนเครื่องหรือยกระดับ QA ได้จริงแค่ไหน ช่วงหลังผมพยายามรัน jest test ในแอป react-lua โดยใช้ Lune ให้ Lemur (ถูก archive แล้ว) ทำงาน และยังเคยทำ test runner ที่พิมพ์ in-game output ออกมาด้วย ปัญหาคือ Roblox Studio ยังทำงานได้ไม่ดีนักบน Linux ผ่านแพ็กเกจ vinegar ดังนั้นถ้าสามารถใช้แค่ RobloxStudio.exe --place game.rbxlx --script test_runner.lua --keep-open แล้วให้มันพ่น console output ต่อเนื่องได้ก็คงสะดวกมาก
    • ตอนที่พยายามจะเพิ่ม loadPlaceFile เข้าไปใน repository ของ Lemur ผมก็ชะงักเพราะไม่แน่ใจว่าควรใส่ไว้ที่นั่นหรือเปล่า แล้วก็มารู้จัก Librebox ในจังหวะนั้น ตอนนี้เลยเริ่มคาดหวังว่าจะใช้สิ่งนี้ทำ local CI test สำหรับแอป react-lua ด้วย Jest ได้
    • อ้างอิงเพิ่มเติม ตอนนี้ Roblox ก็มี Open Cloud Engine API แบบเบต้า สำหรับรันโค้ด Luau ภายใน place เช่นกัน [Beta] Open Cloud Engine API for Executing Luau
    • ข้อดีของการรันทดสอบแบบ local: บันทึกภาพหน้าจอและวิดีโอเมื่อทดสอบล้มเหลว, ได้ feedback ทันที, และสามารถเข้าเกมเซสชันได้ทันทีเมื่อเกิด failure ผ่านออปชัน -i หรือโหมด interactive