คำถามติดแท็ก scalability

6
จะเขียนเกมเครือข่ายได้อย่างไร? [ปิด]
จากเหตุผลที่ว่าทำไมการพัฒนา MMO จึงเป็นเรื่องยาก : การพัฒนาเกมผ่านเครือข่ายนั้นไม่สำคัญ มีอุปสรรคขนาดใหญ่ที่ต้องเอาชนะไม่เพียง แต่แฝงอยู่เท่านั้น แต่ยังป้องกันการโกงการจัดการของรัฐและการทำโหลดบาลานซ์ด้วย หากคุณไม่มีประสบการณ์ในการเขียนเกมบนเครือข่ายนี่จะเป็นการฝึกการเรียนรู้ที่ยาก ฉันรู้ทฤษฎีเกี่ยวกับซ็อกเก็ตเซิร์ฟเวอร์ลูกค้าโปรโตคอลการเชื่อมต่อและสิ่งต่าง ๆ ตอนนี้ฉันสงสัยว่าจะเรียนรู้วิธีการเขียนเกมเครือข่ายได้อย่างไร: วิธีการสมดุลปัญหาโหลด? วิธีจัดการสถานะเกม ทำอย่างไรให้ซิงโครไนซ์กัน? วิธีการป้องกันการสื่อสารและลูกค้าจากวิศวกรรมย้อนกลับ? วิธีแก้ไขปัญหาความล่าช้า สิ่งใดที่ควรคำนวณภายในเครื่องและสิ่งใดบนเซิร์ฟเวอร์ ... มีหนังสือบทแนะนำเว็บไซต์บทความที่น่าสนใจหรือคำถามอื่น ๆ เกี่ยวกับเรื่องนี้หรือไม่? ฉันกำลังมองหาคำตอบที่กว้าง แต่คำตอบที่เฉพาะเจาะจงก็ดีเกินไปที่จะเรียนรู้ความแตกต่าง

7
วิธีที่ยอดเยี่ยมในการจำลองเอนทิตีจำนวนมากภายในโลกของเกม
สมมติว่าคุณมีเกมที่มีเอนทิตีจำนวนมาก (จำนวนมาก) ที่ให้บริการฟังก์ชั่นบางอย่างซึ่งไม่จำเป็นต้องพิจารณาอย่างต่อเนื่องหรือจำเป็นต้องพิจารณาในทุกเฟรม ปัญหาที่เป็นรูปธรรมที่ฉันกำลังดำเนินการซึ่งปัญหานี้มีอยู่คือการจำลองรายละเอียดของร่างกายรวมถึงอวัยวะของมัน ในเกมสิ่งมีชีวิตแต่ละตัวมีร่างกายของตัวเองซึ่งแบ่งออกเป็นส่วนเล็ก ๆ (ลำตัวขา ฯลฯ ) และบางครั้งส่วนเหล่านี้มีอวัยวะซึ่งทำหน้าที่เฉพาะในร่างกาย ไม่ว่าอวัยวะในปัจจุบันจะมีจุดประสงค์หรือไม่ก็ตามไม่ชัดเจน ท้ายที่สุดสัตว์อาจมีท้องว่างซึ่งไม่จำเป็นต้องย่อยอะไร มันจะค่อนข้างไร้สาระที่จะตรวจสอบหรือจำลองวัตถุทุกชิ้นในแต่ละเฟรมและมีราคาแพงมากทันทีที่คุณมีสิ่งมีชีวิตมากมายในโลก ดังนั้นฉันจึงคิดหาวิธีที่จะแยกความแตกต่างระหว่างวัตถุที่จำเป็นต้องได้รับการอัปเดตและสิ่งที่ไม่ทำอย่างชาญฉลาด สิ่งที่ฉันคิดขึ้นมาดูเหมือนจะเป็นทางออกอย่างน้อยที่สุด มันสร้างคิว / สแต็กอย่างง่าย (ที่สำคัญคือแต่ละองค์ประกอบจะถูกลบออกทันทีที่อ่านคำสั่งนั้นไม่เกี่ยวข้อง) เรียกว่า "สนใจสแต็ก" ซึ่งมีวัตถุที่ต้องจำลองอยู่ วัตถุที่ต้องการความสนใจเพียงแค่วางลงบนสแต็กหรือถูกใส่โดยวัตถุอื่น วัตถุเหล่านี้อาจใช้ส่วนต่อประสานแบบง่าย ๆ กับฟังก์ชันจำลอง () - นำไปใช้กับตัวอย่างการย่อยก่อนหน้าของฉันซึ่งหมายความว่า: ผู้เล่นเลือกที่จะกิน (สมมติว่าเป็นขนมปัง) จากสินค้าคงคลังและใส่เข้าไปในปากของตัวละครของเขาและปากจะถูกวางลงบนกองความสนใจ ในเฟรมถัดไปปากจะถูกนำออกจากสแต็กและจำลอง () - ฟังก์ชันถูกเรียก เนื่องจากเป็นปากจึงเป็นการสมเหตุสมผลที่จะจำลองการเคี้ยวที่นี่ สิ่งนี้สามารถดำเนินต่อไปในไม่กี่เฟรมที่ปากวางตัวเองลงบนสแต็คจนกว่าจะตัดสินใจว่าอาหารพร้อมที่จะกลืน ในกรณีนี้ปากใส่ขนมปังที่เคี้ยวเข้าไปในกระเพาะอาหาร (ฉันรู้ว่ามันไม่ได้ไปที่นั่นโดยตรง แต่หลอดอาหารจะถูกปล่อยออกมาเพื่อให้เข้าใจง่าย) ซึ่งจากนั้นก็ใส่ลงไปในความสนใจ - สแต็ก ในเฟรมถัดไปการจำลองของกระบวนการย่อยเริ่มต้น และส่วนอื่น ๆ ของอวัยวะที่จำเป็น ปัญหาที่คาดการณ์ได้จากสิ่งนี้คือวัตถุที่ไม่ทำงาน สัตว์นอนหลับเป็นตัวอย่างที่ดีของสิ่งนี้ …

4
การทำโหลดบาลานซ์ทำได้ใน MMO อย่างไร
ฉันเชื่อว่ามันเป็นข้อกำหนดทั่วไปของ MMOs ที่การประมวลผลสำหรับชิ้นส่วนหรืออาณาจักรเดียวสามารถทำได้ผ่านเซิร์ฟเวอร์หลายเครื่องเพื่อลดภาระ ฉันอยากรู้ว่าวิธีการนี้สามารถทำได้อย่างไรในขณะที่ยังคงรักษาโลกที่สอดคล้องกันซึ่งผู้เล่นทุกคนและ NPC ทั้งหมดสามารถโต้ตอบกันได้ คำถามของฉันคือการทำ load balancing ให้ประสบความสำเร็จใน MMO ได้อย่างไร? ลิงค์ใด ๆ หนังสือหรือข้อมูลทั่วไปเกี่ยวกับวิธีการพัฒนาความรู้ของฉันในเรื่องนี้ก็ชื่นชม

6
มีเหตุผลในการเพิ่มตัวเลือกเพื่อไม่ใช้เทคโนโลยีขั้นสูงในโปรแกรมเกมหรือไม่?
ฉันพัฒนาเกมเอ็นจิ้นและได้ค้นพบและอ่านเทคโนโลยีเกมเช่นการกรองแบบแอนไอโซทรอปิกการบดเคี้ยวโดยรอบการป้องกันนามแฝง ฯลฯ โดยปกติแล้วในเกมคุณสามารถสลับการตั้งค่าเหล่านี้ในและนอก อย่างไรก็ตามหากการตั้งค่าเหล่านี้ไม่ได้เพิ่มอะไรนอกจากแง่บวกมีเหตุผลที่จะเพิ่มค่าสลับสำหรับสิ่งเหล่านี้ในเอ็นจิ้นเกมสำหรับนักพัฒนาหรือไม่? ฉันเข้าใจว่าประสิทธิภาพเป็นปัจจัยสำคัญ แต่มีเหตุผลอื่นอีกไหมที่ทำให้การตั้งค่าเหล่านี้พร้อมใช้งานเสมอ

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

4
รูปแบบบันทึกเกมสำหรับเซิร์ฟเวอร์ MMO
บันทึกเหตุการณ์ของเกม (ตรงข้ามกับบันทึกข้อผิดพลาด / การดีบัก) สำหรับทั้งคลัสเตอร์ / ส่วนแบ่งมีประโยชน์อย่างมากสำหรับ MMO เชิงพาณิชย์ที่อยู่ในสภาพแวดล้อมการผลิตจริงให้การสนับสนุนที่สำคัญสำหรับการบริการลูกค้าและวิธีการวิเคราะห์ประวัติ โครงการที่ฉันกำลังใช้งานอยู่ในปัจจุบันใช้ฐานข้อมูลเชิงสัมพันธ์เพื่อจัดเก็บบันทึกเหตุการณ์ของเกมทั้งหมดและในขณะที่วิธีดังกล่าวใช้งานได้ดีดูเหมือนว่าฉันจะอ่านได้อย่างเดียวเท่านั้น . ฉันไม่แน่ใจว่าจะเริ่มเรียนรู้เกี่ยวกับการสร้างรูปแบบแฟ้มบันทึกไบนารีแบบกำหนดเองได้อย่างไร ประสบการณ์ของคุณในการสร้างรูปแบบบันทึกที่กำหนดเองหรือบทความ / บทความที่แนะนำในหัวข้อนั้นคืออะไร

5
มีวิธีที่จะทำให้โลกมีชีวิตชีวาเช่น MMORPG ที่ปรับขนาดได้ในแนวนอนหรือไม่?
ลองจินตนาการถึงโลกที่เปิดกว้างของผู้เล่นกว่า 500+ คนที่มีการเปลี่ยนแปลงข้อมูลอย่างรวดเร็วเพียง 20 อัพเดต / ผู้เล่น / วินาที ครั้งล่าสุดที่ฉันทำงานใน MMORPG ที่คล้ายกันมันใช้ SQL ดังนั้น obvioulsy จึงไม่สามารถสืบค้น DB ได้ตลอดเวลา แต่จะโหลดผู้เล่นทุกคนจากฐานข้อมูลไปยังหน่วยความจำในฐานะวัตถุ C ++ และใช้พวกเขา นั่นคือมันปรับขนาดในแนวตั้ง เป็นไปได้ไหมที่จะทำให้เซิร์ฟเวอร์นั้นปรับขนาดได้ในแนวนอนแทน มีฐานข้อมูลที่ออกแบบมาเพื่อรองรับจำนวนการอัปเดตนั้นพร้อมกันหรือไม่?

2
MMO เทคนิคอัลกอริธึมและทรัพยากรเพื่อรักษาแบนด์วิดธ์ต่ำ?
มีทรัพยากรและเอกสารประกอบว่า MMO ปัจจุบันจัดการกับข้อมูลการกระทำและการเคลื่อนไหวจากการบีบอัดไปยังการจัดการบนไคลเอนต์หรือไม่? มีแหล่งข้อมูลใดสำหรับอัลกอริทึมการทำนายการเคลื่อนไหว? ฉันสนใจเป็นพิเศษกับผู้ที่มีการเคลื่อนไหว wsad และมุ่งเน้นที่การรักษาเวลาแฝงให้ต่ำนอกจากนี้อัตราและแพ็คเก็ตสำหรับ MMO ประเภทต่างๆ (เครือข่ายฉลาด) คืออะไร มีวิธีการปรับขนาดอัตราแพ็คเก็ตหรือปิดใช้งานแพ็กเก็ตบางกรณีหากผู้เล่นไม่สามารถเข้าถึงหรือในกรณีต่อมาเห็นพวกเขา?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.