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

เล่นโดยผู้เล่นหลายคนร่วมมือหรือแข่งขันภายในหรือจากระยะไกล

5
คุณต้องการเซิร์ฟเวอร์ราคาแพงและโฮสต์แฟนซีเพื่อสร้างเกมแบบผู้เล่นหลายคนหรือไม่?
ฉันทำงานเกมสวมบทบาทเสร็จแล้วและมันสนุกมากที่จะทำให้มันเป็นแบบผู้เล่นหลายคน SFML มีคุณสมบัติเครือข่ายฉันคิดว่ามันเป็นไปได้ แต่แล้วอีกครั้งไม่เคยมีในชีวิตของฉันฉันได้ลองบางสิ่งพื้นฐานเกี่ยวกับระบบเครือข่ายในความเป็นจริงความรู้ของฉันมันมี จำกัด มาก สิ่งที่ต้องทำเพื่อให้ได้ทรัพยากรเกมที่มีผู้เล่นหลายคนเป็นอย่างไร ฉันไม่ได้พูดถึง MMO เหมือนเกมประเภท co-op ฉันต้องการเงินจำนวนมากสำหรับการโฮสต์และเซิร์ฟเวอร์และหลายสิ่งหลายอย่างเพื่อสร้างหรือไม่?
11 c++  multiplayer  sfml 

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

3
ทางออกที่ดีที่สุดสำหรับเกม Android เรียลไทม์หลายคน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันวางแผนที่จะสร้างเกมเรียลไทม์สำหรับผู้เล่นหลายคนสำหรับ Android (ผู้เล่น 2-8 คน) และฉันคิดว่าโซลูชันสำหรับองค์กรที่มีผู้เล่นหลายคนนั้นดีที่สุด: ทำให้เซิร์ฟเวอร์บนพีซีและไคลเอนต์บนมือถือการติดต่อทั้งหมดผ่านเซิร์ฟเวอร์ (ClientA -> PC SERVER -> ไคลเอนต์ทั้งหมด) ใช้บลูทู ธ ฉันยังไม่ได้ใช้และฉันไม่รู้ว่ามันยากที่จะสร้างผู้เล่นหลายคนผ่านบลูทู ธ ทำให้เซิร์ฟเวอร์บนหนึ่งในอุปกรณ์และอุปกรณ์อื่น ๆ เชื่อมต่อ (ผ่านเครือข่าย แต่ฉันไม่รู้ว่าการแก้ไขปัญหาอุปกรณ์ผ่าน NAT เป็นเรื่องยากไหม) ทางออกอื่น ๆ ?

2
อะไรคือวิธีที่ดีที่สุดในการทำให้เป็นอันดับและยกเลิกการบอกกล่าวข้อความเครือข่ายสำหรับเกมที่มีผู้เล่นหลายคนใน C / C ++
เรากำลังใช้ JSON ในขณะนี้และต้องการย้ายไปยังรูปแบบไบนารีสำหรับข้อความบางประเภทระหว่างไคลเอนต์และเซิร์ฟเวอร์ ฉันควรจะอ่าน structs ลงในซ็อกเก็ตหรือไม่? ใช้บัฟเฟอร์โปรติคอล / เจริญเติบโตอย่างรวดเร็ว? ฉันควรแสดงอาร์เรย์ของข้อมูลอย่างไร อินเตอร์เฟสควรมีลักษณะอย่างไรสำหรับการบรรจุ / เปิดออกข้อมูล

4
มันสมเหตุสมผลไหมที่จะใช้ทั้ง TCP และ UDP ในครั้งเดียว?
หลังจากอ่านUDP ยังดีกว่า TCP สำหรับเกมเรียลไทม์ที่มีข้อมูลมากหรือไม่? ฉันสงสัยว่ามันสมเหตุสมผลที่จะใช้ทั้ง TCP และ UDP ในเวลาเดียวกัน แต่สำหรับสิ่งต่าง ๆ : TCP สำหรับการส่งข้อมูลที่ส่งไม่บ่อยนัก แต่ควรรับประกันว่าจะมาถึงอย่างน่าเชื่อถือ เช่นการอัพเดทคะแนนชื่อของผู้เล่นหรือแม้แต่สถานะเปิด / ปิดของแสงในโลกของเกม UDP สำหรับการส่งข้อมูลที่อัปเดตอยู่ตลอดเวลาและอาจสูญหายได้ในบางครั้งเนื่องจากข้อมูลที่ใหม่กว่าอยู่ระหว่างทาง เช่นตำแหน่งการหมุน ฯลฯ นี่เป็นความคิดที่สมเหตุสมผลหรือไม่ ข้อเสียที่เป็นไปได้คืออะไร? มีวิธีที่ดีกว่าในการจัดการกับสิ่งนี้หรือไม่?

2
วิธีจัดการกับการเคลื่อนไหวแบบเรียลไทม์ด้วยการทำนายฝั่งไคลเอ็นต์
ฉันกำลังสร้างเกมมัลติเพลเยอร์แบบเรียลไทม์ที่รันลูป 'ฟิสิกส์' แบบเดียวกันบนไคลเอนต์และเซิร์ฟเวอร์ ฉันกำลังใช้พฤติกรรมการบังคับเลี้ยว 'เดิน' ที่เป็นการเคลื่อนไหวแบบสุ่มที่สำคัญ ไคลเอนต์และเซิร์ฟเวอร์สร้างหมายเลขสุ่มที่แตกต่างกันเมื่อเรียกใช้อัลกอริทึมหลงทาง ฉันสงสัยว่าฉันสามารถเคลื่อนไหวแบบสุ่มตามธรรมชาติได้อย่างไร แต่ใช้ค่าคงที่ที่จะประกันลูกค้าและเซิร์ฟเวอร์ให้ได้ข้อสรุปเดียวกัน

7
ฉันจะตายอย่างถาวรใน MUD ได้อย่างไรเป็นที่ยอมรับและยุติธรรมสำหรับผู้เล่น
ฉันได้พิจารณาเขียนโคลนสำหรับปีและฉันมีความคิดมากมายที่เพื่อนของฉันคิดว่าเจ๋งจริง ๆ (และนั่นคือวิธีที่ฉันหวังว่าจะได้รับทุกที่ - คำพูดจากปาก) มีสิ่งหนึ่งที่ฉันอยากได้เสมอคือเพื่อนและคนแปลกหน้าเกลียด: ความตายถาวร ทีนี้การตอบสนองทางอารมณ์ที่ฉันได้รับก็คือความรังเกียจต่ออวัยวะภายในทุกครั้ง ฉันค่อนข้างแน่ใจว่าฉันเป็นคนเดียวที่ต้องการสิ่งนี้หรือถ้าฉันไม่ได้ฉันเป็นคนกลุ่มน้อย ตอนนี้เหตุผลที่ผมอยากให้มันเป็นเพราะฉันต้องการการกระทำของผู้เล่นที่จะสำคัญ ซึ่งแตกต่างจาก MUD อื่น ๆ จำนวนมากที่มีชุดของเมืองรัฐคงที่และสถาบันทางสังคม ฯลฯ ฉันต้องการสิ่งที่ผู้เล่นของฉันทำฉันควรจะได้รับใด ๆ ที่จะเปลี่ยนสถานการณ์จริง และนั่นรวมถึงการฆ่าคน หากคุณฆ่าใครบางคนคุณไม่ได้ส่งพวกเขาไปหมดเวลาคุณฆ่าพวกเขา จะเกิดอะไรขึ้นเมื่อคุณฆ่าผู้คน พวกเขาหายไป พวกเขาจะไม่กลับมาอีกในครึ่งชั่วโมงเพื่อไปคุยกับคุณอีก พวกเขาไปแล้ว. ตลอดไป ด้วยการทำให้ตายไม่ถาวรคุณทำให้ความตายไม่ใช่เรื่องสำคัญ มันจะคล้ายกันถ้าจุดสำคัญของส่วนโค้งของตัวละครกำลังได้รับตั๋วเร่ง มันทำให้ราคาถูกลง ความตายที่ไม่ถาวรทำให้ความตายลดลง ฉันจะ: 1) โน้มน้าวใจผู้เล่นของฉัน (และคนที่สุ่ม!) ว่านี่เป็นความคิดที่ดีจริง ๆ หรือ? 2) หาวิธีอื่นที่จะทำให้ความตายและความรุนแรงมีความสำคัญมากที่สุดในชีวิตจริง (ยกเว้นในเกมและแน่นอน) การลบตัวอักษร sans? มีทางเลือกอะไรบ้างที่นั่น?
10 multiplayer  mmo  mud 

1
ฉันจะจัดการเสียงในเกมแบบแยกหน้าจอได้อย่างไร
ในเกมที่มีผู้เล่นหลายคนแบบแยกหน้าจอผู้เล่นมากกว่าหนึ่งคนอาจได้ยินเหตุการณ์เสียงและอาจแตกต่างจากผู้เล่นแต่ละคน ตัวอย่างเช่นผู้เล่นคนหนึ่งอาจได้ยินเสียงของรถยนต์ที่พวกเขากำลังขับรถผ่านกรองความถี่ต่ำ ผู้เล่นที่สองอาจได้ยินเสียงเครื่องยนต์ดอปเปลอร์เลื่อนขณะที่ผู้เล่นคนหนึ่งขับผ่านด้วยความเร็ว ผู้เล่นที่สามซึ่งสังเกตจากระยะไกลอาจได้ยินเสียงเครื่องยนต์ที่ไม่กรองในระดับเสียงเบา ในเกมดังกล่าววิธี "ชัดเจน" คือการเล่นเสียงทั้งหมดในครั้งเดียว ฉันสามารถใช้วิธีการใดเพื่อปรับปรุงสิ่งนี้เพื่อป้องกันเสียงเกินพิกัด / "เสียงขรม" ในขณะที่เพิ่มผู้เล่นแต่ละคนให้ได้มากที่สุด?

2
UDP ที่ไม่บล็อกหรือแยกเธรดสำหรับรับ
ฉันกำลังสร้างเกมผู้เล่นหลายคน (สำหรับผู้เล่นอายุต่ำกว่า 64 ปี) ฉันตัดสินใจที่จะมีเธรดแยกต่างหากสำหรับลูปเครือข่าย แต่ฉันสงสัยว่ามันจะดีกว่าถ้าจะสร้างเธรดพิเศษสำหรับรับ UDP หรือตั้งซ็อกเก็ตการรับบนการไม่บล็อก (ไม่มีเธรดพิเศษ) หรือจะเป็นการดีกว่าถ้าใช้วิธีอื่นเช่น Asynchronous Sockets ยินดีต้อนรับวิธีการที่ดีกว่าเสมอ!

1
Multiplayer platformer - ปกติแล้วการแก้ไขเซิร์ฟเวอร์จะต้องใช้กับไคลเอนต์เดียวบนเซิร์ฟเวอร์หรือไม่?
ขณะนี้ฉันกำลังทำงานบน platformer ที่มีผู้เล่นหลายคนค่อนข้างง่าย ฉันอ่านบทความเกี่ยวกับเทคนิคต่าง ๆ ที่ใช้ในการซ่อนเวลาแฝงอยู่ แต่ฉันก็ยังไม่เข้าใจแนวคิดบางอย่าง ฉันพบว่าหัวข้อน่าสนใจมากและต้องการลองใช้ความคิดด้วยตัวเอง แต่ฉันคิดว่าการขอแลกเปลี่ยน gamedev จะมีประสิทธิภาพมากขึ้นสำหรับคำถามของฉัน ฉันจะพยายามอย่างดีที่สุดเพื่ออธิบายสถานการณ์ปัจจุบันของฉันและคำถามใดที่เกิดขึ้นระหว่างทาง ตอนนี้ฉันต้องการซิงค์ผู้เล่นคนเดียวกับเซิร์ฟเวอร์เท่านั้น ในทางทฤษฎีผมสันนิษฐานว่าผู้เล่นคนเดียวที่มีการคาดการณ์ฝั่งไคลเอ็นต์จะไม่ต้องการการแก้ไขเซิร์ฟเวอร์เนื่องจากไม่มีปัจจัยภายนอกที่มีอิทธิพลต่อการเคลื่อนไหวของเขา ดังนั้นต้นแบบของฉันในปัจจุบันมีผู้เล่นเพียงคนเดียวที่ซิงค์กับเซิร์ฟเวอร์โดยไม่ต้องทำการแก้ไขเซิร์ฟเวอร์ หากคุณคุ้นเคยกับระบบเครือข่ายเกมฉันคิดว่าคุณอาจข้ามส่วนบริบทแม้ว่าฉันอาจทำสิ่งผิดปกติไปพร้อมกัน ลูปไคลเอ็นต์ (หนึ่งครั้งต่อเฟรมหนึ่งครั้งทุกๆ ~ 16.67ms) ลูปไคลเอนต์แบบง่ายดูเหมือนว่า: ตรวจสอบอินพุตภายใน (WASD) และจัดทำแพ็กเกจเป็นการกระทำ (เช่นType=MoveLeft, Time=132.0902, ID=15) เราเก็บการกระทำที่บรรจุไว้เพื่อส่งในที่สุด นอกจากนี้เรายังนำการกระทำที่ต้องการไปใช้กับการจำลองทางฟิสิกส์ของเกมโดยตรง ตัวอย่างเช่นหากเรามีการMoveLeftดำเนินการเราจะใช้กำลังไปทางซ้ายกับความเร็วของผู้เล่น ตรวจสอบเพื่อส่งการกระทำ เพื่อป้องกันการใช้แบนด์วิดท์ของลูกค้าที่ไม่เหมาะสมให้ส่งการกระทำที่ทำแพคเกจในช่วงเวลาที่แน่นอนเท่านั้น (เช่น 30ms) ใช้การแก้ไขเซิร์ฟเวอร์ ณ จุดนี้จะจัดการกับเดลต้าและการแก้ไขที่ได้รับจากเซิร์ฟเวอร์และนำไปใช้กับการจำลองสถานการณ์ของเกม สำหรับคำถามนี้ไม่ได้ใช้ อัปเดตฟิสิกส์ท้องถิ่น ใช้วงฟิสิกส์ของผู้เล่นหลัก โดยพื้นฐานแล้วสิ่งนี้จะทำการทำนายการเคลื่อนไหวของผู้เล่น สิ่งนี้เป็นการเพิ่มแรงโน้มถ่วงให้กับความเร็วของผู้เล่นใช้ความเร็วของผู้เล่นกับตำแหน่งของเขาแก้ไขการชนกันตลอดทาง ฯลฯ ฉันควรระบุว่าการจำลองทางฟิสิกส์มักจะดำเนินการด้วยเดลต้าวินาทีคงที่ (เรียกหลายครั้งขึ้นอยู่กับวินาทีเดลต้าจริง) . ฉันข้ามรายละเอียดเฉพาะบางอย่างเกี่ยวกับฟิสิกส์และส่วนอื่น ๆ เพราะฉันรู้สึกว่าพวกเขาไม่จำเป็นสำหรับคำถามนี้ แต่อย่าลังเลที่จะแจ้งให้เราทราบหากพวกเขาจะเกี่ยวข้องกับคำถาม …

4
ป้องกันการโกงผู้เล่นหลายคน
ฉันเกือบจะพัฒนาเกมแบบผู้เล่นหลายคนแนวอินดี้เล็กเสร็จแล้ว ในขณะที่ฉันตั้งใจจะอนุญาตให้ผู้คนโกงในผู้เล่นคนเดียวนี่ก็เห็นได้ชัดว่าไม่เป็นที่ยอมรับในผู้เล่นหลายคน ไม่มีใครรู้วิธีที่จะช่วยหยุดค่าเฉลี่ยโจจากการใช้บางอย่างเช่น Cheat-Engine ในการปรับเปลี่ยนบางส่วนของเกม? ขณะนี้ฉันวางแผนที่จะให้ลูกค้าอัปโหลดแฮช MD5 ของแต่ละไฟล์ที่เกมใช้ (เก็บไว้เป็น XML) ไปยังเซิร์ฟเวอร์เกมเพื่อตรวจสอบทุกสองสามวินาที แต่มีอะไรที่ฉันสามารถทำได้เพื่อหยุดสิ่งต่าง ๆ เช่นโปรแกรมแก้ไขหน่วยความจำ ฯลฯ ?

3
สถาปัตยกรรมเกมเพียร์ทูเพียร์ที่ดีที่สุด
พิจารณาการตั้งค่าที่ไคลเอนต์เกม: มีทรัพยากรคอมพิวเตอร์ขนาดเล็ก (อุปกรณ์มือถือสมาร์ทโฟน) เชื่อมต่อกับเราเตอร์ทั่วไป (LAN, ฮอตสปอตและอื่น ๆ ) ผู้ใช้ต้องการเล่นเกมแบบผู้เล่นหลายคนโดยไม่มีเซิร์ฟเวอร์ภายนอก ทางออกหนึ่งคือการโฮสต์เซิร์ฟเวอร์ที่เชื่อถือได้ในโทรศัพท์เครื่องหนึ่งซึ่งในกรณีนี้จะเป็นลูกค้าเช่นกัน เมื่อพิจารณาถึงจุดที่ 1 โซลูชันนี้ไม่เป็นที่ยอมรับเนื่องจากทรัพยากรการประมวลผลของโทรศัพท์ไม่เพียงพอ ดังนั้นฉันต้องการออกแบบสถาปัตยกรรมแบบเพียร์ทูเพียร์ที่จะกระจายการจำลองเกมในหมู่ลูกค้า เนื่องจากจุดที่ 2 ระบบไม่จำเป็นต้องมีความซับซ้อนเนื่องจากการปรับให้เหมาะสม เวลาแฝงจะต่ำมาก ลูกค้าแต่ละรายสามารถเป็นแหล่งข้อมูลที่เชื่อถือได้เกี่ยวกับตัวเขาและสภาพแวดล้อมในทันที (ตัวอย่างเช่นหัวข้อย่อย) อะไรจะเป็นวิธีที่ดีที่สุดในการออกแบบสถาปัตยกรรมเช่นนี้? มีตัวอย่างที่รู้จักของโปรโตคอล LAN แบบ peer-to-peer ดังกล่าวหรือไม่? หมายเหตุ: ปัญหาบางอย่างได้รับการแก้ไขที่นี่แต่แนวคิดที่ระบุไว้มีระดับสูงเกินไปสำหรับฉัน ความปลอดภัย ฉันรู้ว่าไม่มีเซิร์ฟเวอร์ที่มีสิทธิ์หนึ่งเดียวเป็นปัญหาด้านความปลอดภัย แต่มันไม่เกี่ยวข้องในกรณีนี้เนื่องจากฉันยินดีที่จะเชื่อถือลูกค้า แก้ไข: ฉันลืมที่จะพูดถึง: มันจะเป็นเกมที่ค่อนข้างเร็ว (นักกีฬา) นอกจากนี้ฉันได้อ่านเกี่ยวกับสถาปัตยกรรมเครือข่ายที่Gaffer on Gamesแล้ว

1
ทางออกที่มีประสิทธิภาพสำหรับการแบ่งพื้นที่หลายคน?
คำถามนี้ค่อนข้างยุ่งยาก แต่ฉันจะพยายามทำให้ชัดเจน ช่วยบอกว่าฉันกำลังสร้างเกมออนไลน์ (ไม่ใช่ MMO-scale) แต่นั่นก็รองรับผู้เล่นให้มากที่สุดเท่าที่จะทำได้ในแนวทางเซิร์ฟเวอร์ที่เชื่อถือได้ ผมต้องการที่ยิ่งใหญ่ของโลกที่มีจำนวนมากของศัตรู AI จำลอง ฉันรับทราบถึงกลยุทธ์สองสามประการในการประหยัด CPU ของเซิร์ฟเวอร์โดยแบ่งย่อยพื้นที่และไม่ประมวลผลสิ่งที่ไม่ต้องการการประมวลผล ฉันแบ่งโลกแล้วตามภูมิภาคซึ่งจะต้องใช้เวลาโหลดและการเปลี่ยนภาพเล็กน้อยซึ่งฉันคิดว่าเป็นสิ่งสำคัญในการรักษาคุณภาพของการเล่นเกมเมื่อเล่นในพื้นที่ ฉันไม่ได้คาดหวังว่าผู้เล่นจะอยู่ในมากกว่าหนึ่งหรือสองภูมิภาค ปัญหาคือภูมิภาคสามารถมีขนาดใหญ่และมี NPC จำนวนมากในเวลาเดียวกัน ฉันจะจัดการสิ่งนี้โดยไม่กระทบต่อประสบการณ์ของผู้เล่นได้อย่างไร วิธีการเช่นเซิร์ฟเวอร์เดียวต่อภูมิภาคและเหมือนกันไม่ได้อยู่ในตาราง ฉันส่วนใหญ่กำลังมองหาโครงสร้างข้อมูลเพื่อเก็บพยุหะศัตรูและแม้แต่ NPC ที่สงบสุข ในการสรุปคำถามโปรดทราบว่ามียานพาหนะอยู่ดังนั้นจึงรวดเร็วในการเดินทางภายในภูมิภาคซึ่งมีอิทธิพลต่อ "เมื่อ" ถึงการเลือกพื้นที่

1
การแลกเปลี่ยนข้อความไคลเอนต์เซิร์ฟเวอร์เซิร์ฟเวอร์และการซิงโครไนซ์นาฬิกา
ฉันกำลังทำเกมฟิสิกส์ที่รวดเร็วซึ่งเป็นตารางฮอกกี้ ด้วยค้อนสองตัวและลูกซนหนึ่งตัว เกมทำงานบน iphone / ipad และฉันกำลังเล่นเกมหลายคนผ่าน GameCenter นี่คือการทำงานของระบบเครือข่าย ลูกค้าที่เป็นดาวจับคู่จะถูกตัดสินในฐานะเซิร์ฟเวอร์และลูกค้าที่ยอมรับคำขอแข่งขันคือลูกค้า 'เซิร์ฟเวอร์' มีการทำงานของฟิสิกส์และการตอบสนองนั้นเกิดขึ้นทันทีและไคลเอนต์ก็มีการทำงานของฟิสิกส์เพื่อให้ดูราบรื่นระหว่างการแลกเปลี่ยนข้อความ สิ่งที่ฉันทำในฐานะเซิร์ฟเวอร์คือฉันส่งไปยังลูกค้าความเร็วลูกตุ้มของฉันและตำแหน่งของฉันและลูกค้าปรับความเร็ว / ตำแหน่งเด็กซนของเขาที่เกี่ยวข้องกับเซิร์ฟเวอร์เพื่อให้มันซิงค์ ไม่เช่นนั้นฟิสิกส์จะซิงโครไนซ์และมันไขสกรูขึ้น เมื่อเวลาในการตอบสนองของเครือข่ายดีผล 100 มิลลิวินาทีนั้นค่อนข้างดีฉันได้เกมที่เล่นได้อย่างราบรื่นทางฝั่งไคลเอ็นต์และพฤติกรรมแปลก ๆ นั้นน้อยที่สุด ปัญหาเกิดขึ้นเมื่อความล่าช้าอยู่ที่ประมาณ 150 ถึง 200ms ในกรณีดังกล่าวเกิดขึ้นที่ลูกค้าของฉันเด็กซนชนขอบและทิศทางกลับหัว แต่มันได้รับข้อความล่าช้าจากเซิร์ฟเวอร์และมันกลับเล็กน้อยทำให้เกิดความรู้สึกแปลก ๆ กับพฤติกรรมลูก ฉันได้อ่านบางสิ่งเกี่ยวกับเรื่องนี้: โป่งเครือข่ายตัวอย่าง คลิกตัวอย่างการซิงโครไนซ์ Wikipedia เกี่ยวกับ Clock Sync ดังนั้นฉันจะแก้ปัญหานี้อย่างไร เท่าที่ฉันได้อ่านตัวเลือกที่ดีที่สุดที่ฉันต้องทำคือการซิงโครไนซ์นาฬิกาบนเซิร์ฟเวอร์ / ไคลเอ็นต์ด้วยการประทับเวลาเพื่อที่เมื่อฉันได้รับข้อความหน่วงเวลาที่เกี่ยวข้องกับนาฬิกาของฉันฉันก็ไม่สนใจแล้วปล่อยให้ลูกค้าจำลอง งาน. พวกคุณเห็นด้วยไหม? และเนื่องจากฉันกำลังส่งข้อมูลที่ไม่น่าเชื่อถือ (UDP) ฉันอาจได้รับข้อความหรือข้อความล่าช้า หากเป็นวิธีที่ดีที่สุดฉันจะใช้การซิงโครไนซ์นาฬิกาได้อย่างไร ฉันอ่านขั้นตอนเกี่ยวกับวิธีการ แต่ฉันไม่เข้าใจมันมากนัก มันบอกว่า: ลูกค้าประทับเวลาท้องถิ่นปัจจุบันบนแพ็กเก็ต …

1
การออกแบบเอ็นจิ้นเกม: เซิร์ฟเวอร์ผู้เล่นหลายคนและฟัง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา เอ็นจิ้นเกมของฉันในตอนนี้ประกอบด้วยชิ้นส่วน singleplayer ที่ใช้งานได้ ตอนนี้ฉันเริ่มคิดเกี่ยวกับวิธีการทำหลายส่วน ฉันพบว่าหลาย ๆ เกมไม่มีโหมดผู้เล่นคนเดียวจริง ๆ แต่เมื่อเล่นคนเดียวคุณกำลังโฮสต์เซิร์ฟเวอร์ในพื้นที่เช่นกันและเกือบทุกอย่างจะทำงานราวกับว่าคุณอยู่ในโหมดผู้เล่นหลายคน (ยกเว้นแพ็กเก็ตข้อมูลสามารถส่งผ่านได้ ข้ามเส้นทางอื่นเพื่อประสิทธิภาพที่ดีขึ้น) เครื่องยนต์ของฉันต้องการการปรับโครงสร้างครั้งใหญ่เพื่อปรับให้เข้ากับโมเดลนี้ จะมีสามโหมดที่เป็นไปได้: ไคลเอนต์ Dedicated, เซิร์ฟเวอร์เฉพาะและไคลเอนต์ - เซิร์ฟเวอร์ (โหมดฟัง) รูปแบบการฟังเซิฟเวอร์ใช้บ่อยแค่ไหนในอุตสาหกรรมเกม? อะไรคือข้อดีของมัน? ฉันมีตัวเลือกอื่น ๆ อีกบ้าง?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.