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

คุณภาพประสิทธิภาพและความเร็วในการเล่นเกมเพลย์อันเป็นผลมาจากปัจจัยหลายประการในการออกแบบและโครงสร้างของเกมและสถาปัตยกรรม

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

5
Python Performance กับ Game Maker [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา เดิมฉันคิดจะสร้างเกมด้วย Python และ SFML ฉันเข้าใจว่า Python ช้ากว่า C ++ แต่จะเปรียบเทียบกับ Game Maker ได้อย่างไร เหตุผลหลักที่ฉันถามคือเมื่อเร็ว ๆ นี้ฉันเล่นเกม Game Maker (The Iconoclasts) ซึ่งวิ่งด้วยอัตราเฟรมที่ไม่ดีพอในคอมพิวเตอร์ของฉัน (GMA 950) ฉันกังวลว่าฉันจะมีปัญหาเรื่องประสิทธิภาพที่คล้ายกันกับ Python / SFML

2
วนรอบเกม“ ดีที่สุด” สำหรับ 2D-scroller
เป็นไปได้หรือไม่ที่จะอธิบายโครงร่าง "ดีที่สุด" (ในแง่ของประสิทธิภาพ) สำหรับลูปเกมของผู้เลื่อนด้าน 2D ในบริบทนี้ "game loop" ใช้การป้อนข้อมูลของผู้ใช้อัปเดตสถานะของวัตถุเกมและดึงวัตถุเกม ตัวอย่างเช่นการมีคลาสฐาน GameObject ที่มีลำดับชั้นการสืบทอดลึกอาจดีสำหรับการบำรุงรักษา ... คุณสามารถทำสิ่งต่อไปนี้: foreach(GameObject g in gameObjects) g.update(); อย่างไรก็ตามฉันคิดว่าวิธีนี้สามารถสร้างปัญหาด้านประสิทธิภาพได้ ในทางกลับกันข้อมูลและฟังก์ชันของวัตถุในเกมทั้งหมดอาจเป็นข้อมูลทั่วโลก ซึ่งจะเป็นการบำรุงรักษาอาการปวดหัว แต่อาจเข้าใกล้กับลูปเกมที่มีประสิทธิภาพสูงสุด ความคิดใด ๆ ฉันสนใจในการใช้งานจริงของโครงสร้างลูปเกมที่ดีที่สุด ... แม้ว่าฉันจะปวดหัวในการบำรุงรักษาเพื่อแลกกับประสิทธิภาพที่ยอดเยี่ยม

1
มีผลประโยชน์ด้านประสิทธิภาพใด ๆ หรือไม่ในการแบ่งปันความแตกต่างระหว่างโปรแกรมต่าง ๆ ?
OpenGL อนุญาตให้คุณแชร์ shader เดียวกันระหว่างหลาย ๆ โปรแกรม นอกเหนือจากการบันทึกหน่วยความจำขนาดเล็กและด้ามจับ shader แล้วยังมีประสิทธิภาพด้าน GPU อีกไหมในการทำเช่นนี้?

3
การชนวัตถุขนาดเล็กและความเร็วสูง: หลีกเลี่ยงการขุดอุโมงค์
แก้ไข / อัปเดต:คำถามที่ใหญ่ที่สุดของฉันตอนนี้คือสมการของ t = ... ที่ว่าเป็นขั้นตอนที่ 3 หรือไม่เป็นวิธีที่ดีกว่า ปัญหาอื่น ๆ ส่วนใหญ่ได้รับการแก้ไขเพียงบางส่วนหรือทั้งหมด แต่ไม่มีความคิดเห็นหรือคำตอบใด ๆ ที่สัมผัสกับปัญหานี้ได้ อาจต้องใช้วิธีการวิเคราะห์อีกครั้งความเร็วและระยะทางมีขนาดใหญ่เกินไปและวัตถุนั้นเล็กเกินไปสำหรับการแก้ปัญหาแบบวนซ้ำ / แบบเรียกซ้ำ (recursive solution) ใด ๆ วิธีแก้ปัญหาแบบวนซ้ำ / แบบวนซ้ำที่จะจัดการกับสถานการณ์ประเภทนี้ได้ดีแล้วฉันก็เปิดรับแน่นอน) ขอบคุณมากสำหรับความช่วยเหลือของคุณทุกคนยอดเยี่ยมและฉันซาบซึ้งในความคิดและความช่วยเหลือของคุณ! ฉันพยายามตรวจหาการชนกันระหว่างวัตถุขนาดเล็กและความเร็วสูง นี่เป็นสถานการณ์ที่การขุดอุโมงค์อาจเกิดขึ้นได้ง่ายมากแม้ในความเร็วต่ำ เรย์แคสต์จะไม่ทำงานเนื่องจากนี่เป็นการตรวจจับการชนกันระหว่างวัตถุความเร็วสูงสองชิ้นไม่ใช่ระหว่างวัตถุหนึ่งกับผนังนิ่ง (ถ้าฉันไม่เข้าใจผิดว่าการส่งสเรย์?) ประสิทธิภาพเป็นสิ่งที่ต้องพิจารณาอย่างมาก ถ้าเป็นไปได้ทั้งหมดฉันต้องการหลีกเลี่ยงการตีที่ยิ่งใหญ่ ฉันมี quadtree ใช้งานได้ดีและมีประสิทธิภาพมาก ( http://en.wikipedia.org/wiki/Quadtree ) ดังนั้นฉันจะแก้ไขและใช้ตามที่อธิบายไว้ด้านล่าง แก้ไข: การลดช่วงเวลาจะไม่ทำงาน ความเร็วที่สูงเกินไปสำหรับการแก้ปัญหานี้ซึ่งหมายความว่าฮิตประสิทธิภาพการทำงานจะดีเกินไปในขณะที่ยังขาดหายไปส่วนใหญ่ของชนอุโมงค์ (ตัวอย่างเช่นฉันอาจมีวัตถุที่มีขนาดประมาณ 1 หน่วยไปด้วยความเร็วที่วัดได้ในหน่วยล้านต่อช่วงเวลา ... ) โซลูชั่นที่เสนอ: ขั้นตอนที่ 1: …

3
C # และ UnityScript แตกต่างกันอย่างไรในการพัฒนา Unity [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา นอกเหนือจากความแตกต่างทางภาษาที่ชัดเจนแล้ว UnityScript และ C # แตกต่างกันอย่างไรเมื่อพัฒนาเกมใน Unity3D มีความแตกต่างด้านประสิทธิภาพที่เห็นได้ชัดเจนหรือไม่? รหัส UnityScript ถูกทำแพคเกจตามที่เป็นอยู่หรือไม่? ถ้าใช่สิ่งนี้จะช่วยให้การดัดแปลงเกมทำได้หรือไม่? เป็นไปได้ไหมที่จะใช้ห้องสมุดที่พัฒนาขึ้นสำหรับภาษาหนึ่งขณะที่พัฒนาในอีกภาษาหนึ่ง? สามารถผสมสองภาษาในโครงการ Unity เดียวกันได้หรือไม่ การเขียนโค้ดบางส่วนใน C # และอื่น ๆ ใน UnityScript?

1
CUDA ของ nVidia เหมาะสมกับการคำนวณการค้นหาเส้นทางหรือไม่?
ฉันอยากรู้ว่ามันคุ้มค่าหรือไม่ที่จะทำการประมวลผล pathfinding บน GPU (โดยใช้ nVidia CUDAหรือเทียบเท่า) ในบางสถานการณ์หรือว่าเป็นความพยายามที่สูญเปล่า สถานการณ์ที่ฉันคิดจะเป็นเซิร์ฟเวอร์ที่มีผู้เล่นหลายคนที่ไม่มีหัวเพื่อทำหน้าที่ค้นหาเส้นทางสำหรับบอท ฉันสนใจ A * pathfinding โดยใช้ mesh navigation แต่ถ้ามีอัลกอริทึม pathfinding อื่นที่จะได้ประโยชน์จากการใช้ GPU ฉันชอบที่จะได้ยินมัน

4
SVG เป็นตัวเลือกที่ใช้เทคโนโลยีได้สำหรับเกมบนเว็บหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันได้เริ่มอ่านข้อมูลเกี่ยวกับเทคโนโลยีเว็บที่มีให้สำหรับการทำเกมบนเว็บด้วย Javascript เท่านั้น แต่ฉันไม่มีคำติชมเกี่ยวกับ SVG ด้วย HTML5 เป็นทางเลือกที่ทำงานได้? มันทำงานได้ดีเมื่อเทียบกับเทคนิคอื่น ๆ เช่นการแปลง Canvas, DOM & CSS เป็นต้น
13 performance  web  svg 

3
งบประมาณโมเดล 3 มิติ มีความสำคัญต่อรูปสามเหลี่ยมหรือจุดยอดมากเท่าใด
เมื่อฉันสร้างแบบจำลองสำหรับเกมสามมิติฉันควรทำอย่างไรในการวัดในรูปหลายเหลี่ยมงบประมาณ (สามเหลี่ยม) หรือจุดยอดของฉัน ฉันทำการทดลองกับสองชุด 40000 ลูกบาศก์หนึ่งโดยมี 8 จุดยอดและ 12 รูปสามเหลี่ยมอีกชุดหนึ่งมี 24 จุดยอดและรูปสามเหลี่ยม 12 รูป ทั้งหมดทำด้วยความสามัคคีและทั้งคู่ถูกสร้างขึ้นตามขั้นตอน สำหรับความประหลาดใจของฉันทั้งสองชุดแสดงเกือบเหมือนกันมีความแตกต่างกันเล็กน้อยระหว่างพวกเขา มันหมายความว่าฉันไม่ควรกังวลเกี่ยวกับการนับจุดยอดและมองดูที่รูปสามเหลี่ยมนับเท่านั้น? แก้ไข: ฉันได้ทำการทดลองอีกครั้งฉันได้สร้างเครื่องบินที่มีรูปสามเหลี่ยม 19602 และ 10,000 จุดยอดและอีกอันหนึ่งที่มีจำนวน tirangles เท่ากัน แต่เป็นจุดยอด 39204 ฉันสร้าง 4,000 ทั้งคู่ ตอนนี้จุดยอดน้อยกว่าชนะ 14 fps ถึง 19 fps ดังนั้นฉันเดาว่าโดยทั่วไปจะน้อยกว่าดีกว่า แต่มีความแตกต่างใหญ่เท่านั้น

1
ขนาดพื้นผิวที่ดีที่สุดคืออะไร?
ฉันเพิ่งเพิ่มตัวจัดรูปแบบพื้นผิวให้กับโครงการของฉันซึ่งจะบรรจุพื้นผิวจำนวนหนึ่งไว้ในอันเดียวเช่นนี้ ตัวอย่างเช่นอันนี้มีขนาด 582x1023 พิกเซล เป้าหมายของการเพิ่มพื้นผิวที่อัดแน่นเหล่านี้คือการปรับปรุงประสิทธิภาพดังนั้นฉันจึงต้องการค้นหาขนาดพื้นผิวที่เหมาะสมที่สุดสำหรับพื้นผิว OpenGL (โดยใช้ LWJGL) สิ่งที่ผมพบว่าพบว่ามีขนาดพื้นผิวสูงสุดการสนับสนุนอย่างกว้างขวางน่าจะเป็น 1024x1024 ตามนี้ตัวอย่างเช่น สิ่งนี้ทำให้ฉันประหลาดเพราะเห็นได้ชัดว่าพื้นผิวเพียงอย่างเดียวจะใหญ่กว่านั้นดังนั้นจะเกิดอะไรขึ้นกับสิ่งเหล่านั้น ฉันค่อนข้างมั่นใจว่าการ์ดกราฟิกส่วนใหญ่สนับสนุนพื้นผิวที่ใหญ่กว่านั้น ฉันสามารถคาดหวังให้การ์ดกราฟิกส่วนใหญ่รองรับเช่นพื้นผิว 4096x4096 (หรืออาจใหญ่กว่านั้นได้หรือไม่) มาถึงจุดที่สองของฉัน (ฉันหวังว่านี่ยังนับเป็นหนึ่งคำถาม แต่โดยพื้นฐานแล้วมันจะต้องเดือดร้อนในประเด็นเดียวกัน): พื้นผิวควรมีขนาดเท่ากับกำลัง 2 (256x256, 512x512, 1024x1024, 2048x2048, .. ) และควร ฉันอัดแผ่นพื้นผิวที่เล็กกว่านั้นไปสู่พลังต่อไปของ 2? ตามคำถามนี้จาก 2011 มันไม่จำเป็นต้อง แต่สามารถปรับปรุงประสิทธิภาพการทำงานและหลีกเลี่ยงข้อบกพร่องเล็ก ๆ น้อย ๆ และคนนี้จาก 2012 บอกว่าคุณแน่นอนควรพื้นผิวแผ่น ดังนั้นฉันจึงรู้ว่าคำถามเหล่านี้เคยถูกถามมาก่อน แต่คำถามเหล่านั้นลงวันที่อย่างสมเหตุสมผลเพื่อให้คำตอบเปลี่ยนไปและพวกเขาแต่ละคนตอบคำถามของฉันเพียงบางส่วน โครงการอื่น ๆ / จัดการกับสิ่งนี้ได้อย่างไร TL; DR:ขนาดพื้นผิวใดที่ฉันสามารถคาดหวังให้การ์ดกราฟิกส่วนใหญ่จัดการได้ ขนาดพื้นผิวที่เหมาะสมที่สุด (หรือมี) …

6
ประสิทธิภาพที่แย่ใน Android เมื่อใช้ APK ทำงานได้ดีในเบราว์เซอร์
ฉันได้สร้างโครงการเกมขนาดเล็กใน HTML5 โดยใช้เครื่องมือPhaser (ลองทั้ง 1.1.5 และ 1.1.6) จากนั้นพอร์ตไปยังแพลตฟอร์มมือถือใช้ Phonegap / Cordova สำหรับ Windows Phone 8, Android และ iOS ในเกมของฉันมีองค์ประกอบประมาณ 10 องค์ประกอบซึ่งทำให้เคลื่อนไหวได้ (ย้ายจากจุดหนึ่งไปยังอีกจุดหนึ่งและหมุนในเวลาเดียวกัน) สำหรับ iOS และ Windows Phone 8 ฉันไม่ประสบปัญหาใด ๆ แต่สำหรับ Android ประสิทธิภาพที่ยอมรับไม่ได้คือ ในทางกลับกันถ้าฉันรันเกมผ่านเบราว์เซอร์ของอุปกรณ์มันจะทำงานราบรื่นโดยไม่ล่าช้า แต่ APK ที่คอมไพล์ทำงานอย่างกระตุกมากและองค์ประกอบเคลื่อนไหวช้ามาก & ในลักษณะริบหรี่ ฉันได้ตรวจสอบการตั้งค่าสถานะการเร่งความเร็วฮาร์ดแวร์ android ตั้งค่าเป็น "จริง" ในไฟล์รายการ พยายามเปลี่ยนเป็นเท็จด้วย แต่นั่นก็ไม่ได้สะท้อนการเปลี่ยนแปลงใด ๆ ในประสิทธิภาพ ฉันได้ตรวจสอบเรื่องเดียวกันกับ Android …

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

1
ข้อมูลเกี่ยวกับการเรนเดอร์แบตช์กราฟิกประสิทธิภาพ ฯลฯ + XNA
ฉันรู้ว่าชื่อค่อนข้างคลุมเครือ แต่ก็ยากที่จะอธิบายสิ่งที่ฉันกำลังมองหา แต่ที่นี่ไป เมื่อพูดถึงการเรนเดอร์ CPU ประสิทธิภาพส่วนใหญ่ง่ายต่อการประมาณและตรงไปตรงมา แต่เมื่อพูดถึง GPU เนื่องจากขาดข้อมูลพื้นฐานทางเทคนิค ฉันใช้ XNA ดังนั้นมันคงจะดีถ้าทฤษฎีนั้นเกี่ยวข้องกับเรื่องนั้น ดังนั้นสิ่งที่ฉันอยากรู้จริง ๆ คืออะไรจะเกิดขึ้นเมื่อใดและที่ไหน (CPU / GPU) เมื่อคุณทำการวาดเฉพาะ ชุดคืออะไร? เอฟเฟกต์การคาดการณ์และอื่น ๆ มีอิทธิพลอย่างไร ข้อมูลยังคงอยู่ในกราฟิกการ์ดหรือถูกถ่ายโอนในทุกขั้นตอนหรือไม่ เมื่อมีการพูดถึงแบนด์วิดธ์คุณกำลังพูดถึงแบนด์วิดธ์ภายในการ์ดกราฟิกหรือไปป์ไลน์จาก CPU ไปยัง GPU หรือไม่? หมายเหตุ:ฉันไม่ได้กำลังมองหาข้อมูลเกี่ยวกับวิธีการวาดเกิดขึ้นนั่นคือธุรกิจของ GPU ฉันสนใจค่าใช้จ่ายทั้งหมดที่อยู่ก่อนหน้านั้น ฉันต้องการที่จะเข้าใจสิ่งที่เกิดขึ้นเมื่อฉันทำการกระทำ X เพื่อปรับสถาปัตยกรรมและการปฏิบัติของฉันให้เป็นแบบนั้น บทความใด ๆ (อาจมีตัวอย่างโค้ด) ข้อมูลลิงค์บทช่วยสอนที่ให้ข้อมูลเชิงลึกมากขึ้นเกี่ยวกับวิธีการเขียนเกมที่ดีขึ้นได้รับการชื่นชมอย่างมาก ขอบคุณ :)

1
การค้นหาเส้นทางที่คำนวณล่วงหน้าแล้วยังมีความเกี่ยวข้องหรือไม่
บริบท Old Lucas Arts (ScummVM era) ชี้และคลิกเกมผจญภัยกราฟิกที่ใช้การคำนวณเส้นทางก่อน นี่คือคร่าวๆของเทคนิค ขั้นตอนที่ 1 พื้นในแต่ละห้องถูกแบ่งออกเป็นสิ่งที่พวกเขาเรียกว่า "กล่องเดิน" ซึ่งค่อนข้างคล้ายกับโหนดในตาข่ายนำทาง แต่ จำกัด รูปร่างรูปสี่เหลี่ยมคางหมู เช่น: ______ _____ _________ _____ \ A | B | C | D \ \_____| | |_______\ |_____| | |_________| ขั้นตอนที่ 2 อัลกอริทึมออฟไลน์ (เช่น Dijkstra หรือ A *) จะคำนวณเส้นทางที่สั้นที่สุดระหว่างแต่ละโหนดและทุกคู่ของโหนดและเก็บขั้นตอนแรกของเส้นทางในเมทริกซ์ 2D โดยสร้างดัชนีในแต่ละมิติโดยใช้โหนดเริ่มต้นและสิ้นสุด เช่นใช้กล่องเดินด้านบน: ___ ___ …

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

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