4 คะแนน โดย GN⁺ 2024-10-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Pumpkin

Pumpkin คือเซิร์ฟเวอร์ Minecraft ที่สร้างขึ้นด้วย Rust ทั้งหมด มอบประสบการณ์ที่รวดเร็ว มีประสิทธิภาพ และปรับแต่งได้ โดยให้ความสำคัญกับประสิทธิภาพและความสนุกของผู้เล่น พร้อมยึดตามกลไกหลักของเกม

สิ่งที่ Pumpkin ต้องการบรรลุ

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

สิ่งที่ Pumpkin จะไม่ทำ

  • ไม่ได้ถูกใช้เป็นตัวแทนของเซิร์ฟเวอร์หลักหรือเซิร์ฟเวอร์อื่น
  • ไม่รองรับปลั๊กอินหรือม็อดจากเซิร์ฟเวอร์อื่น
  • ไม่ได้ทำงานเป็นเฟรมเวิร์กสำหรับสร้างเซิร์ฟเวอร์ตั้งแต่ต้น

สำคัญ: ขณะนี้ Pumpkin ยังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง

ฟีเจอร์ (อยู่ระหว่างดำเนินการ)

  • การตั้งค่า (toml)
  • สถานะเซิร์ฟเวอร์/ปิง
  • การเข้าสู่ระบบ
  • การตั้งค่าผู้เล่น
    • รีจิสทรี (ประเภทไบโอม, ภาพวาด, มิติ)
    • แบรนด์เซิร์ฟเวอร์
    • ลิงก์เซิร์ฟเวอร์
    • การตั้งค่า resource pack
    • คุกกี้
  • โลก
    • เข้าร่วมโลก
    • รายการแท็บผู้เล่น
    • การโหลดโลก
    • การสร้างเอนทิตี
    • การโหลดชังก์
    • การสร้างโลก
    • การสร้างชังก์
    • ขอบเขตโลก
    • การบันทึกโลก
  • ผู้เล่น
    • สกินผู้เล่น
    • แบรนด์ไคลเอนต์ของผู้เล่น
    • การเทเลพอร์ตผู้เล่น
    • การเคลื่อนที่ของผู้เล่น
    • แอนิเมชันผู้เล่น
    • อินเวนทอรีผู้เล่น
    • การต่อสู้ของผู้เล่น
  • เซิร์ฟเวอร์
    • ปลั๊กอิน
    • Query
    • RCON
    • อินเวนทอรี
    • อนุภาค
    • แช็ต
    • คำสั่ง
  • พร็อกซี
    • Velocity

สามารถตรวจสอบความคืบหน้าปัจจุบันได้จากโปรเจกต์บน GitHub

สรุปโดย GN⁺

Pumpkin เป็นเซิร์ฟเวอร์ Minecraft ที่พัฒนาด้วย Rust ซึ่งน่าสนใจจากการให้ความสำคัญกับประสิทธิภาพและประสบการณ์ผู้ใช้ จุดเด่นคือการเพิ่มประสิทธิภาพด้วยมัลติเธรดและการเสริมความปลอดภัย พร้อมทั้งรองรับการขยายต่อยอดสำหรับการพัฒนาปลั๊กอิน อาจเป็นประโยชน์สำหรับผู้ที่สนใจการพัฒนาเซิร์ฟเวอร์ Minecraft และเนื่องจากยังอยู่ระหว่างการพัฒนาอย่างต่อเนื่อง จึงคาดหวังการอัปเดตเพิ่มเติมได้ โดยโปรเจกต์ที่มีฟังก์ชันคล้ายกัน ได้แก่ PaperMC และ Spigot

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

 
GN⁺ 2024-10-16
ความคิดเห็นจาก Hacker News
  • ความแตกต่างด้านประสิทธิภาพในเบนช์มาร์กน่าประทับใจมาก แต่ยังขาดฟีเจอร์การสร้างและการบันทึกโลก ซึ่งเป็นงานที่ใช้ต้นทุนสูง โดยเฉพาะการสร้างชังก์ที่อาจทำให้ VPS สเปกอ่อนล่มได้ อยากรู้ว่าถ้าใส่ฟีเจอร์เหล่านี้แล้วนำมาใช้งานจริง ประสิทธิภาพจะเทียบกันอย่างไร

    • สงสัยว่ารองรับการทุบ/วางบล็อกหรือยัง เพราะสิ่งนี้น่าจะต้องมีการคำนวณแสงใหม่และอัปเดตชังก์บนเซิร์ฟเวอร์
    • สงสัยว่ามีแผนจะเพิ่มฟีเจอร์ขั้นสูงอย่าง scoreboard, teams และการพาร์ส command block หรือไม่ อย่างน้อย Mojang ก็โอเพนซอร์ส Brigadier แล้ว
    • เป็นโปรเจ็กต์ที่ยอดเยี่ยม หวังว่าจะพัฒนาไปจนถึงจุดที่รันเซิร์ฟเวอร์บนฮาร์ดแวร์สเปกต่ำได้อย่างง่ายดาย
  • สงสัยว่ามีเบนช์มาร์กของโปรเจ็กต์นี้ไหม อยากรู้ว่ามันเร็วกว่าเซิร์ฟเวอร์ vanilla มากแค่ไหน

    • เซิร์ฟเวอร์ Minecraft ใช้ทรัพยากรหนักขึ้นเมื่อจำนวนผู้เล่นเพิ่มขึ้น และถึงจะรันบนเซิร์ฟเวอร์ที่แรงมากเพื่อรองรับโหลด แต่ TPS ก็ยังต่ำอยู่ดี
  • ในฐานะคนที่รู้จักโปรเจ็กต์นี้มาก่อน รู้สึกดีใจที่เห็นมันได้รับความนิยมบน Hacker News (140 โหวตถือว่าดีพอสมควร)

    • ถ้าจำไม่ผิด น่าจะมีเซิร์ฟเวอร์อีกตัวที่เขียนด้วย Rust เหมือนกัน แต่ไม่แน่ใจนัก
    • ครั้งสุดท้ายที่เห็น มันยังเป็นซอฟต์แวร์ระยะแรกมาก แต่พัฒนาเร็วมาก ตอนนี้อยู่ในสภาพไหนไม่แน่ใจ (ตอนที่ผู้เขียนไปสอบเคยมีช่วงหนึ่ง)
  • เมื่อไม่นานมานี้มีการพัฒนา 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 ล้วนไว้ก็ดี ฉันดูแลเซิร์ฟเวอร์มานานแล้ว

  • แปลกใจเสมอว่าผู้คนทำเรื่องแบบนี้ได้อย่างไร ถ้ามีบทความอธิบายว่าโปรเจ็กต์นี้ถูกสร้างขึ้นมาอย่างไรจะขอบคุณมาก