Minestom เป็นไลบรารีโอเพ่นซอร์สที่ช่วยให้นักพัฒนาสามารถสร้างซอฟต์แวร์เซิร์ฟเวอร์ Minecraft ของตนเองได้ โดยไม่ต้องใช้โค้ดใดๆ จาก Mojang
ข้อแตกต่างหลักระหว่างเซิร์ฟเวอร์วานิลลาของ Mojang และเซิร์ฟเวอร์ที่ใช้ minestom ก็คือเซิร์ฟเวอร์ของเราไม่มีฟีเจอร์ใดๆ ตามค่าเริ่มต้น! อย่างไรก็ตาม เรามี API ที่สมบูรณ์ซึ่งออกแบบมาเพื่อช่วยให้คุณทำทุกอย่างให้เป็นไปได้ได้อย่างง่ายดาย
นี่คือ API ของนักพัฒนาที่ผู้ใช้ปลายทางไม่ต้องการใช้ การแทนที่ Bukkit/Forge/Sponge ด้วยสิ่งนี้ จะไม่ทำงาน เนื่องจากเราไม่ได้ใช้งาน API ใดๆ ของพวกเขา
Minestom ไม่ได้ติดตั้งเหมือน Bukkit/Forge/Sponge เนื่องจาก Minestom เป็นไลบรารี Java จึงต้องโหลดในลักษณะเดียวกับที่โหลดไลบรารี Java อื่น ๆ ซึ่งหมายความว่าคุณต้องเพิ่ม Minestom เป็นการพึ่งพา เพิ่มโค้ดของคุณและคอมไพล์ด้วยตัวเอง
Minestom พร้อมใช้งานบน Maven Central และสามารถติดตั้งได้ดังต่อไปนี้ (Gradle/Groovy):
repositories {
mavenCentral()
maven { url ' https://jitpack.io ' }
}
dependencies {
implementation ' net.minestom:minestom-snapshots:<???> '
}
ตัวอย่างของวิธีใช้ห้องสมุด Minestom มีอยู่ที่นี่ หรือคุณสามารถตรวจสอบวิกิอย่างเป็นทางการหรือ javadocs
Minecraft มีการพัฒนาไปมากนับตั้งแต่เปิดตัว เซิร์ฟเวอร์ส่วนใหญ่ในปัจจุบันไม่ได้ใช้ประโยชน์จากฟีเจอร์วานิลลาและยังต้องดิ้นรนเพราะสิ่งเหล่านี้ กลุ่มเป้าหมายของเราคือผู้ที่ต้องการสร้างเซิร์ฟเวอร์ที่ได้รับประโยชน์เพียงเล็กน้อยจากฟีเจอร์วานิลลา เช่น สร้างสรรค์, kitpvp เป้าหมายคือการมอบประสิทธิภาพที่มากขึ้นให้กับผู้ที่ต้องการมัน กล่าวอีกนัยหนึ่ง มันสมเหตุสมผลที่จะใช้ Minestom เมื่อใช้เวลาน้อยกว่าในการปรับใช้ฟีเจอร์วานิลลาที่ขาดหายไปที่คุณต้องการ แทนที่จะลบฟีเจอร์วานิลลาทุกตัวที่จะทำให้คุณช้าลง
Minestom ไม่ได้สมบูรณ์แบบ ทางเลือกของเราทำให้ดีขึ้นมากในบางกรณี และแย่ลงสำหรับบางกรณี
แม้ว่าเราจะไม่รวมสิ่งใดๆ ไว้ในเกมโดยค่าเริ่มต้น แต่เราทำให้วิธีที่คุณเพิ่มง่ายขึ้น นี่คือตัวอย่าง
มันเป็นแนวคิดหลักของเรา โลกเหมาะสำหรับการเอาชีวิตรอดกับเพื่อนฝูง แต่เมื่อขยายใหญ่ขึ้น โลกก็ไม่สามารถจัดการได้ ตัวอย่างที่ดีที่สุดสามารถพบได้ใน Skyblock หรือมินิเกม ไม่สามารถแยกแต่ละส่วนได้อย่างถูกต้องและถูกบังคับให้บันทึกทุกอย่างในไฟล์ ไม่ต้องพูดถึงค่าใช้จ่ายที่เกิดจากข้อมูลที่ไม่จำเป็นที่มีอยู่ในนั้น อินสแตนซ์เป็นโซลูชันที่ไม่ซับซ้อน โดยสามารถเก็บทุกส่วนในหน่วยความจำเท่านั้น คัดลอกและส่งไปยังผู้เล่นอื่นได้ในเวลาไม่นาน พร้อมซีเรียลไลซ์แบบกำหนดเอง และอื่นๆ อีกมากมาย...
ความสามารถในการสร้างอินสแตนซ์ได้โดยตรงในขณะเดินทางเป็นสิ่งที่ต้องมี เราเชื่อว่าสามารถผลักดันโครงการอื่นๆ อีกมากมายไปข้างหน้าได้
อินสแตนซ์ยังมาพร้อมกับคุณประโยชน์ด้านประสิทธิภาพ ซึ่งแตกต่างจากอินสแตนซ์อื่นๆ บางตัวที่เป็นแบบเธรดเดียวทั้งหมดหรืออาจใช้หนึ่งเธรดต่อเวิลด์ เราใช้จำนวนเธรดที่กำหนด (พูล) เพื่อจัดการส่วนทั้งหมดแยกจากอินสแตนซ์ ซึ่งหมายถึงการใช้พลังงาน CPU มากขึ้น
โดยค่าเริ่มต้น Minestom ไม่รู้ว่าหีบคืออะไร คุณจะต้องบอกเขาว่ามันเปิดช่องเก็บของ "บล็อกพิเศษ" ทุกอัน (ซึ่งไม่ใช่แค่ภาพ) จำเป็นต้องมีตัวจัดการพิเศษ หลังจากใช้ตัวจัดการนี้ คุณจะมีบล็อกที่สามารถวางได้ทุกที่ อย่างไรก็ตาม บล็อกทั้งหมดจะมองเห็นได้ชัดเจน แต่จะไม่มีการโต้ตอบตามค่าเริ่มต้น
ไม่มีคำว่ามอนสเตอร์แบบ "แฝง" หรือ "ก้าวร้าว" ไม่มีใครหยุดคุณไม่ให้ไก่บินพุ่งเข้าหาผู้เล่นคนใดก็ตามที่เข้ามาใกล้เกินไป การทำเช่นนั้นกับ NMS ถือเป็นเรื่องยุ่งจริงๆ เนื่องจากความสับสนและมรดกจำนวนมาก
เป็นสาขาที่ Minecraft พัฒนาไปมาก ตอนนี้สินค้าคงคลังถูกใช้เป็นจำนวนมากในฐานะอินเทอร์เฟซเซิร์ฟเวอร์ไคลเอ็นต์<->ที่มีรายการที่คลิกได้และการโทรกลับ เราสนับสนุนการโต้ตอบเหล่านี้โดยกำเนิดโดยไม่จำเป็นต้องเขียนโปรแกรมโซลูชันของคุณ
คำสั่งเป็นวิธีการสื่อสารที่ง่ายที่สุดระหว่างไคลเอนต์และเซิร์ฟเวอร์ ตั้งแต่ 1.13 Minecraft ได้รวมไลบรารีใหม่ที่เรียกว่า "Brigadier" เราจึงรวม API ที่ออกแบบมาเพื่อใช้ศักยภาพสูงสุดของประเภท args
#mcdevs
- การวิจัยโปรโตคอลและรูปแบบไฟล์ดูไฟล์ที่มีส่วนร่วม! คุณลักษณะ WIP ทั้งหมดจะแสดงตัวอย่างเป็นแบบร่าง PR
โครงการนี้ได้รับอนุญาตภายใต้ Apache License เวอร์ชัน 2.0