Show HN: Pumpkin เซิร์ฟเวอร์ Minecraft สมัยใหม่ที่เขียนด้วย Rust
(github.com/Snowiiii)Pumpkin
Pumpkin คือเซิร์ฟเวอร์ Minecraft ที่สร้างขึ้นด้วย Rust ทั้งหมด มอบประสบการณ์ที่รวดเร็ว มีประสิทธิภาพ และปรับแต่งได้ โดยให้ความสำคัญกับประสิทธิภาพและความสนุกของผู้เล่น พร้อมยึดตามกลไกหลักของเกม
สิ่งที่ Pumpkin ต้องการบรรลุ
- ประสิทธิภาพ: ใช้มัลติเธรดเพื่อมุ่งสู่ความเร็วและประสิทธิภาพสูงสุด
- ความเข้ากันได้: รองรับเวอร์ชันเซิร์ฟเวอร์ Minecraft ล่าสุด และปฏิบัติตามกลไกพื้นฐานของเกม
- ความปลอดภัย: ให้ความสำคัญกับความปลอดภัยโดยป้องกันช่องโหว่ที่ทราบกันอยู่
- ความยืดหยุ่น: มีความสามารถในการตั้งค่าสูงเพื่อปิดฟีเจอร์ที่ไม่จำเป็นได้
- การขยายต่อยอด: มอบพื้นฐานสำหรับการพัฒนาปลั๊กอิน
สิ่งที่ Pumpkin จะไม่ทำ
- ไม่ได้ถูกใช้เป็นตัวแทนของเซิร์ฟเวอร์หลักหรือเซิร์ฟเวอร์อื่น
- ไม่รองรับปลั๊กอินหรือม็อดจากเซิร์ฟเวอร์อื่น
- ไม่ได้ทำงานเป็นเฟรมเวิร์กสำหรับสร้างเซิร์ฟเวอร์ตั้งแต่ต้น
สำคัญ: ขณะนี้ Pumpkin ยังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง
ฟีเจอร์ (อยู่ระหว่างดำเนินการ)
- การตั้งค่า (toml)
- สถานะเซิร์ฟเวอร์/ปิง
- การเข้าสู่ระบบ
- การตั้งค่าผู้เล่น
- รีจิสทรี (ประเภทไบโอม, ภาพวาด, มิติ)
- แบรนด์เซิร์ฟเวอร์
- ลิงก์เซิร์ฟเวอร์
- การตั้งค่า resource pack
- คุกกี้
- โลก
- เข้าร่วมโลก
- รายการแท็บผู้เล่น
- การโหลดโลก
- การสร้างเอนทิตี
- การโหลดชังก์
- การสร้างโลก
- การสร้างชังก์
- ขอบเขตโลก
- การบันทึกโลก
- ผู้เล่น
- สกินผู้เล่น
- แบรนด์ไคลเอนต์ของผู้เล่น
- การเทเลพอร์ตผู้เล่น
- การเคลื่อนที่ของผู้เล่น
- แอนิเมชันผู้เล่น
- อินเวนทอรีผู้เล่น
- การต่อสู้ของผู้เล่น
- เซิร์ฟเวอร์
- ปลั๊กอิน
- Query
- RCON
- อินเวนทอรี
- อนุภาค
- แช็ต
- คำสั่ง
- พร็อกซี
- Velocity
สามารถตรวจสอบความคืบหน้าปัจจุบันได้จากโปรเจกต์บน GitHub
สรุปโดย GN⁺
Pumpkin เป็นเซิร์ฟเวอร์ Minecraft ที่พัฒนาด้วย Rust ซึ่งน่าสนใจจากการให้ความสำคัญกับประสิทธิภาพและประสบการณ์ผู้ใช้ จุดเด่นคือการเพิ่มประสิทธิภาพด้วยมัลติเธรดและการเสริมความปลอดภัย พร้อมทั้งรองรับการขยายต่อยอดสำหรับการพัฒนาปลั๊กอิน อาจเป็นประโยชน์สำหรับผู้ที่สนใจการพัฒนาเซิร์ฟเวอร์ Minecraft และเนื่องจากยังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง จึงคาดหวังการอัปเดตเพิ่มเติมได้ โดยโปรเจกต์ที่มีฟังก์ชันคล้ายกัน ได้แก่ PaperMC และ Spigot
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ความแตกต่างด้านประสิทธิภาพในเบนช์มาร์กน่าประทับใจมาก แต่ยังขาดฟีเจอร์การสร้างและการบันทึกโลก ซึ่งเป็นงานที่ใช้ต้นทุนสูง โดยเฉพาะการสร้างชังก์ที่อาจทำให้ VPS สเปกอ่อนล่มได้ อยากรู้ว่าถ้าใส่ฟีเจอร์เหล่านี้แล้วนำมาใช้งานจริง ประสิทธิภาพจะเทียบกันอย่างไร
สงสัยว่ามีเบนช์มาร์กของโปรเจ็กต์นี้ไหม อยากรู้ว่ามันเร็วกว่าเซิร์ฟเวอร์ vanilla มากแค่ไหน
ในฐานะคนที่รู้จักโปรเจ็กต์นี้มาก่อน รู้สึกดีใจที่เห็นมันได้รับความนิยมบน Hacker News (140 โหวตถือว่าดีพอสมควร)
เมื่อไม่นานมานี้มีการพัฒนา Pumpkin ซึ่งเป็นเซิร์ฟเวอร์ Minecraft ที่มีประสิทธิภาพและรวดเร็ว เขียนด้วย Rust ทั้งหมด ลองเข้าไปดูกัน
สงสัยว่ามันแบ่ง main thread ออกเป็น region หรือไม่ (เช่น Paper Folia) หรือแยก non-blocking entity ไปยังเธรดของตัวเอง
งานที่น่าประทับใจ แต่ก็อยากเห็นอิมพลีเมนเทชันประสิทธิภาพสูงที่รองรับม็อด Minecraft ได้จำนวนมาก Forge server มีชื่อเสียมานานว่าอืดเมื่อใช้กับ modpack ขนาดใหญ่
กำลังรอวันที่ Minecraft ถูก reverse engineer ด้วยโปรโตคอลของตัวเองจนมีทั้งเซิร์ฟเวอร์และไคลเอนต์หลายอิมพลีเมนเทชันที่ใช้งานได้
จะลองโปรเจ็กต์นี้ดู ประสิทธิภาพของเซิร์ฟเวอร์ vanilla ล้วนแย่มาก หวังว่า Mojang จะปรับปรุงเรื่องนี้ การสร้างชังก์ใหม่อย่างน้อยก็เป็นแบบมัลติเธรดแล้ว อยากให้มีการรองรับการควบคุมพื้นฐานสำหรับเซิร์ฟเวอร์ SMP อย่างเป็นทางการ แค่สิทธิ์พื้นฐานอย่างการวาง ทำลาย โต้ตอบ สำหรับพื้นที่ที่กำหนดด้วยพิกัดมุมสองจุดก็ดีแล้ว สามารถจัดการคำขอ/อัปเดตผ่านเครื่องมืออื่นด้วยไฟล์คอนฟิกพื้นฐานได้ และควรใช้งานผ่านยูทิลิตีบรรทัดคำสั่งง่าย ๆ ในเกมได้ด้วย น่าจะดีถ้าไม่ต้องพึ่ง whitelist อย่างเดียวเสมอไป ถึงแม้ Paper/Waterfall ฯลฯ จะมีปลั๊กอิน แต่การคงความเป็น vanilla ล้วนไว้ก็ดี ฉันดูแลเซิร์ฟเวอร์มานานแล้ว
แปลกใจเสมอว่าผู้คนทำเรื่องแบบนี้ได้อย่างไร ถ้ามีบทความอธิบายว่าโปรเจ็กต์นี้ถูกสร้างขึ้นมาอย่างไรจะขอบคุณมาก