Planetserver ใช้ในการพัฒนาสภาพแวดล้อมเสมือนจริงของผู้ใช้หลายคนโดยการจัดหาเลเยอร์กลางระหว่างไคลเอนต์และเซิร์ฟเวอร์ มันใช้ซ็อกเก็ตเพื่อให้ข้อความใด ๆ ที่ส่งจากไคลเอนต์หนึ่งสามารถถ่ายทอดไปยังลูกค้าอื่น ๆ ทั้งหมด PlanetServer รองรับแพลตฟอร์ม Android/iOS/Windows/Max/Linux ในขณะนี้ มันใช้โปรโตคอลที่กำหนดเองบน TCP และในไม่ช้าเราจะสนับสนุน UDP เช่นกัน ## ไดเรกทอรี
Planetserver มีไดเรกทอรีหลักที่คุณควรรู้
Lib - มีการพึ่งพาทั้งหมดที่เซิร์ฟเวอร์ต้องการ '
ส่วนขยาย - มีขวดส่วนขยายเกมของคุณและการพึ่งพาที่กำหนดเองอื่น ๆ ที่ต้องการโดยส่วนขยายของคุณ
Conf - มีไฟล์กำหนดค่าสำหรับเซิร์ฟเวอร์และยังมีไฟล์กำหนดค่าสำหรับ log4j (การบันทึก)
## การกำหนดค่า
PlanetServer มีไฟล์ config.properties ในโฟลเดอร์ Conf ไฟล์นี้สามารถแก้ไขได้เพื่อตั้งค่าการตั้งค่าเฉพาะสำหรับเซิร์ฟเวอร์ของคุณ
การตั้งค่า Server.tcp.port ใช้เพื่อกำหนดค่าพอร์ตเซิร์ฟเวอร์ของคุณกำลังฟังอยู่
Server.Threads.Executor ใช้เพื่อกำหนดค่าจำนวนเธรดใน ThreadPool คุณจะต้องการเพิ่มจำนวนเงินนี้ตามจำนวนกิจกรรมด้วยเหตุผลด้านประสิทธิภาพ
นอกจากนี้ยังมีไฟล์ log4j.properties ที่คุณสามารถกำหนดค่าการบันทึกสำหรับเซิร์ฟเวอร์ของคุณ อ้างถึงเอกสาร log4j สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้
ภายในโฟลเดอร์ส่วนขยายมีไฟล์ World.properties ไฟล์นี้มีคุณสมบัติเฉพาะสำหรับเกมของคุณและสามารถเข้าถึงได้ผ่านรหัสเกมของคุณ คุณสมบัติที่จำเป็นเพียงอย่างเดียวที่นี่คือ extension.class.name ซึ่งชี้ไปที่จุดเข้าหลักของแอปพลิเคชันของคุณ ตัวอย่างที่ให้ไว้มีการกำหนดค่านี้ดังนั้นสำหรับส่วนขยายของคุณเองเพียงเปลี่ยนชื่อคลาส
## ส่วนขยายเมื่อสร้างแอปพลิเคชันของคุณคุณสร้างส่วนขยายให้กับ Planetserver ส่วนขยายเป็นเพียงไฟล์ JAR ที่วางไว้ภายในโฟลเดอร์ส่วนขยายพร้อมไฟล์ JAR อื่น ๆ ที่จำเป็นทั้งหมดสำหรับแอปพลิเคชันของคุณ คุณต้องสร้างคลาสหลักสำหรับส่วนขยายสำหรับจุดเริ่มต้น คลาสหลักจะต้องขยายจาก psextension และแทนที่วิธีการเริ่มต้นและทำลายวิธีการ ตัวอย่างเช่น
public class WorldExtension extends PSExtension {
@Override
public void init()
{
}
@Override
public void destroy()
{
super.destroy();
}
}
วางฟังก์ชั่นที่กำหนดเองใด ๆ ลงในวิธีการเริ่มต้นและทำลาย ซึ่งสามารถมีรหัสที่กำหนดเองใด ๆ ที่คุณต้องการสำหรับแอปพลิเคชันของคุณ
## คำขอส่วนขยายเพื่อส่งคำสั่งที่กำหนดเองไปยังเซิร์ฟเวอร์คุณต้องลงทะเบียนคลาสที่กำหนดเองสำหรับตัวจัดการคำขอ ตัวอย่างเช่นสมมติว่าคุณมีผู้เล่นและต้องการส่งคำขอให้ทำอะไรให้ผู้เล่น ก่อนอื่นเพิ่มคำขอ Handler AddRequestHandler (“ ผู้เล่น”, PlayerRequest.class); จากนั้นสร้างไฟล์ Java PlayerRequest ซึ่งขยายจาก BasicLientRequestHandler คุณแทนที่วิธี handleclientrequest จากนั้นคุณสามารถแยกวิเคราะห์คำขอที่ส่ง
คำสั่งทั้งหมดจะถูกส่งโดยใช้สัญลักษณ์จุด ตัวอย่างเช่นสิ่งที่เริ่มต้นด้วยผู้เล่น จะได้รับการจัดการโดยตัวจัดการคำขอที่ลงทะเบียนสำหรับสตริง“ ผู้เล่น” คำสั่งตัวอย่างบางคำอาจเป็นผู้เล่น Save, Player.load, Player.move ฯลฯ …วิธีที่ดีคือการมี enum ของคำสั่งจากนั้นคุณสามารถเขียนคำสั่งสวิตช์เพื่อจัดการคำสั่งแยกต่อไฟล์ Java คุณสามารถดูตัวอย่างในไฟล์ Java ตัวอย่าง
## แผนการในอนาคตสำหรับเวอร์ชันสำคัญรุ่นต่อไป 1.1 จะรองรับการส่งข้อความ UDP เราเชื่อว่านี่เป็นสิ่งจำเป็นสำหรับเกมอัตราข้อความที่สูงขึ้น