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

4
จะค้นหาเอนทิตีทั้งหมดภายในรัศมีได้อย่างมีประสิทธิภาพได้อย่างไร
ฉันมีเอนทิตีจำนวนมาก (หน่วย) ในแต่ละขั้นตอนแต่ละหน่วยจำเป็นต้องทราบตำแหน่งของหน่วยทั้งหมดที่อยู่ใกล้กับมัน (ระยะทางน้อยกว่าเมื่อกำหนดค่าคงที่R ) ทุกหน่วยเคลื่อนที่อย่างต่อเนื่อง นี่เป็นแบบ 3 มิติ โดยเฉลี่ยจะมี 1% ของจำนวนหน่วยทั้งหมดที่อยู่ใกล้กับหน่วยอื่น ๆ ที่มีข้อ จำกัด ที่กำหนด ฉันจะทำสิ่งนี้ได้อย่างมีประสิทธิภาพโดยปราศจากการหักห้ามใจ?

1
การปะทะกันบนต้นไม้รูปสี่เหลี่ยม / ตาราง - นำตรรกะไปปฏิบัติ
ก่อนอื่นฉันเพิ่งเขียนตรรกะเกมของตัวเองในระยะเวลาหนึ่งดังนั้นฉันต้องขออภัยถ้าสิ่งนี้อาจดูตรงไปตรงมา ฉันอ่านเกี่ยวกับต้นไม้สี่ต้นและการตรวจจับการชนกันของกริดเป็นอย่างมาก ฉันเข้าใจตรรกะ - โดยทั่วไปจะไม่ตรวจสอบการชนยกเว้นว่าวัตถุอยู่ใกล้พื้น แต่มันก็ไม่เคยถูกกล่าวถึงว่ามันใช้งานจริงอย่างไร ฉันมีวิธีที่เป็นไปได้สองสามอย่างในหัว แต่ก็ไม่แน่ใจว่าวิธีไหนดีที่สุด การทดสอบการชนทั่วไป - ไม่มีการเพิ่มประสิทธิภาพ for(var i:int = 0; i < objects.length; i++){ //find object A var objectA = objects[i]; for(var j:int = i + 1; j < objects.length; j++){ //find object B var objectB = objects[j]; if(objectA.collidesWith(objectB){ //handle collision logic } } เก็บเพื่อนบ้าน …

3
เกมแป้ง: พวกมันทำงานอย่างไร
ฉันเพิ่งพบอัญมณีทั้งสองนี้: http://powdertoy.co.uk/ http://dan-ball.jp/en/javagame/dust/ คำถามของฉันคือฟิสิกส์มีการจัดการองค์ประกอบต่าง ๆ อย่างมีประสิทธิภาพได้อย่างไร ฉันเพิ่งประเมินพลังการคำนวณขั้นต่ำอย่างรุนแรงหรือเป็นไปได้ที่ 'เพียงแค่' มีอาร์เรย์สองมิติแต่ละเซลล์ซึ่งอธิบายสิ่งที่วางไว้ตามตำแหน่งและจำลองแต่ละเซลล์ในทุกขั้นตอน หรือมีสิ่งที่ซับซ้อนกว่านี้เช่นการสรุปพื้นที่ขนาดใหญ่ประเภทเดียวกันลงในชุดข้อมูลเดียวและแยกชุดดังกล่าวออกตามต้องการ มีเกมโอเพนซอร์ซแบบนี้ไหมที่ฉันสามารถดูได้?

2
รวม Colliders ขนาดเล็กจำนวนมากเข้ากับคนที่ใหญ่
ฉันกำลังสร้างเกมโดยใช้แผนที่ย่อยที่ทำจากสี่เหลี่ยมหลายพันตาราง ในขณะนี้แต่ละสแควร์จะมี collider สแควร์สำหรับตรวจสอบการชนกัน อย่างไรก็ตามด้วยบล็อกขนาดเล็กหลายพันบล็อกการตรวจสอบพวกเขาทั้งหมดสำหรับการชนนั้นไม่มีประสิทธิภาพ หากฉันรู้ว่า tilemap จะมีลักษณะเช่นนี้ล่วงหน้าฉันสามารถใช้ colliders ขนาดใหญ่ 3 หรือ 4 ตัวแทนตัวเล็ก ๆ หลายพันตัว: มีอัลกอริธึมมาตรฐานบางประเภทสำหรับการรวมไทล์เล็ก ๆ ที่อยู่ติดกันให้ใหญ่ที่สุด? ถ้ามีใครช่วยอธิบายได้ที่นี่หรือชี้ไปที่วรรณกรรมเกี่ยวกับอัลกอริธึมดังกล่าว อีกทางหนึ่งบางทีการประมวลผลล่วงหน้าตัวสร้างไทล์ด้วยวิธีนี้อาจเป็นวิธีที่ผิด ถ้าเป็นเช่นนั้นสิ่งที่ถูกต้องที่จะจัดการกับประสิทธิภาพของ colliders จำนวนมากคืออะไร?

3
ฉันจะซิงค์สถานะเกมแบบผู้เล่นหลายคนได้อย่างมีประสิทธิภาพกว่าการอัพเดทแบบเต็มได้อย่างไร
ฉันเคยทำการเข้ารหัสเครือข่ายเกมมาก่อน แต่ส่วนใหญ่ใช้ TCP สำหรับเกมโดยไม่ต้องใช้เวลาจริง ฉันกำลังทำงานกับเกม 2D Java ที่มีผู้เล่นหลายคนบนเครือข่าย เพื่อการเรียนรู้ฉันต้องการทำสิ่งนี้ด้วยตัวเองโดยไม่มี API เครือข่ายที่มีอยู่ ฉันจะแสดงสถานะเกมที่ส่งถึงลูกค้าจากเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพได้อย่างไร มีมากที่สุดที่เห็นได้ชัด แต่อาจน้อยกว่าวิธีที่มีประสิทธิภาพซึ่งจะสร้างบางประเภทของวัตถุบริบทเกมของรัฐที่มีสถานที่ตั้งของผู้เล่นแต่ละรัฐนิเมชั่น ฯลฯ และส่งออกที่ผู้เล่นแต่ละคนคือการปรับปรุงทุก ดูเหมือนจะไม่ยากอย่างยิ่งที่จะใช้งาน แต่อาจมีขนาดใหญ่เกินไปที่จะบรรลุสิ่งที่ใกล้เคียงกับการโต้ตอบแบบเรียลไทม์ (แน่นอนว่าประสบการณ์ของฉันเกี่ยวกับสิ่งนี้ จำกัด ดังนั้นฉันอาจไม่ถูกต้อง) มีวิธีที่มั่นคงที่คุณเคยใช้มาก่อนในการส่งการเปลี่ยนแปลงในสถานะและมีความแตกต่างมากพอในการปฏิบัติงานที่มีค่างานพิเศษหรือไม่

4
มีวิธีเพิ่มประสิทธิภาพการตรวจสอบการชนของระบบของวัตถุ n หรือไม่?
ฉันกำลังสร้างเกมที่ประกอบด้วยวัตถุบนหน้าจอจำนวนมากซึ่งหนึ่งในนั้นคือผู้เล่น ฉันจำเป็นต้องรู้ว่าวัตถุใดที่กระทบทุกการทำซ้ำ ฉันทำอะไรแบบนี้ for (o in objects) { o.stuff(); for (other in objects) if (collision(o, other)) doStuff(); bla.draw(); } นี่มี O (n ^ 2) ซึ่งฉันบอกว่าไม่ดี ฉันจะทำสิ่งนี้ได้อย่างมีประสิทธิภาพมากขึ้นเป็นไปได้ไหม ฉันกำลังทำสิ่งนี้ใน Javascript และโดยปกติแล้ว n จะต่ำกว่า 30 จะเป็นปัญหาหรือไม่หากสิ่งนี้ยังคงเหมือนเดิม

3
โครงสร้างข้อมูลเพื่อเป็นตัวแทนการเชื่อมต่อระหว่างประเทศบนแผนที่
ในเกมที่ฉันพัฒนาขึ้นสำหรับลูกค้าแนวคิดของเกมที่สำคัญเกี่ยวข้องกับการเคลื่อนที่ไปมาบนแผนที่ ในกรณีนี้ขนาดและรูปร่างและประเทศต่าง ๆ ไม่เกี่ยวข้อง: การย้ายจากประเทศหนึ่งไปยังประเทศที่อยู่ติดกันนับเป็นขั้นตอนเดียว ฉันพยายามหาโครงสร้างข้อมูลที่ดีที่สุดสำหรับการเชื่อมต่อระหว่างประเทศ สำหรับประเทศใดประเทศหนึ่งเกมจำเป็นต้องรู้ว่าประเทศใดที่อยู่ติดกันทั้งคู่ต้องรู้ว่าผู้เล่นสามารถเคลื่อนย้ายได้อย่างไรและอนุญาตให้ AI ของเกมวางแผนเส้นทางโดยกำหนดเส้นทางที่เป็นไปได้จากประเทศหนึ่งไปยังอีกประเทศหนึ่ง AI ยังต้องการประเมินว่าประเทศที่เชื่อมโยงกันดีเพียงใดไม่เพียง แต่กับประเทศเพื่อนบ้านที่อยู่ติดกันในทันที แต่ยังรวมถึงประเทศเพื่อนบ้านของประเทศเหล่านั้น ฯลฯ ฉันพบความเป็นไปได้สองสามอย่าง แต่พวกเขาดูไม่สุภาพและไร้ประสิทธิภาพ เนื่องจาก AI จะต้องคำนวณเส้นทางที่เป็นไปได้จำนวนมากเพื่อการตัดสินใจที่ดีเกี่ยวกับการเคลื่อนไหวของมัน "ไม่มีประสิทธิภาพ" จึงเป็นปัญหาอย่างมาก ฉันสงสัยว่านี่เป็นเกมไขปริศนา CS ทั่วไปและมีวิธีแก้ปัญหาร่วมกัน แต่ฉันไม่สามารถค้นหาได้มากนักโดยการค้นหา ข้อเสนอแนะใด ๆ ยินดีต้อนรับ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.