การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

5
เปลี่ยนความคิดของเกมกระดานให้กลายเป็นเกมเพลย์ที่ใช้ความเร็วและช้า
สมมติว่าฉันต้องการสร้างเกมวางแผนที่มีสถานะไม่แน่นอนระดับโลกที่แบ่งใช้ระหว่างผู้เล่นทุกคน (คิดว่าเป็นเกมกระดาน) แต่ไม่เหมือนเกมกระดานฉันไม่ต้องการให้มันเป็นแบบเรียลไทม์แอ็คชั่นและ / หรือเทิร์นเบส แต่ผู้เล่นจะสามารถเข้าสู่ระบบได้ตลอดเวลาและใช้คะแนนแอ็คชั่นคงที่ต่อวันตามที่ต้องการ เมื่อเทียบกับสองสามชั่วโมงการประชุมเกมจะใช้เวลาสองสามสัปดาห์ นี่เป็นการให้รางวัลกลยุทธ์ที่ดีแทนที่จะใช้เวลาในการเล่น (เป็นทางเลือกผู้เล่นฮาร์ดคอร์สามารถเล่นเกมหลายเกมในแบบคู่ขนานแทนได้เสมอ) รวมถึงปัญหาทุกประเภทที่เกี่ยวข้องกับการเล่นสดเช่นการตัดการเชื่อมต่อและการซิงโครไนซ์ เกมดังกล่าวน่าจะยังติดอยู่ แต่ก็ยังมีเวลาในการลงทุนต่ำสำหรับผู้เล่นทั่วไป จนถึงตอนนี้ยังดี แต่สิ่งนี้ยังคงเปิดคำถามเมื่อถึงเวลาที่จะแก้ปัญหาการกระทำและเมื่อพวกเขาควรจะมองเห็น ฉันต้องการหลีกเลี่ยง "การเล่นนินจา" เช่นการเคลื่อนไหวทั้งหมดของคุณเพียงไม่กี่นาทีก่อนที่จะทำการรีเซ็ตจุดทุกวันเพื่อพาผู้เล่นคนอื่นด้วยความประหลาดใจหรือผู้คนสแปม F5 เพื่อทำการกระทำตามกำหนดเวลา เกมเวลา ฉันคิดถึงวิธีการสองสามข้อต่อไปนี้: แก้ไขกิจกรรมทั้งหมดในกระบวนการที่กำหนดเวลาเดียวที่รันวันละครั้ง โดยทั่วไปหมายถึงการเล่นเกม "blind" ที่ผู้เล่นสามารถลงมือทำ แต่ไม่เห็นผลลัพธ์ทันที สิ่งนี้คือฉันเล่นเกมเบราว์เซอร์ที่คล้ายกันเมื่อไม่กี่ปีที่ผ่านมาและไม่ชอบความจริงที่ว่าคุณรู้สึกถูกตัดการเชื่อมต่อและไร้อำนาจจนกว่าจะมีDeus ex machinaบอกคุณว่าเกิดอะไรขึ้นในช่วงเวลานั้น คุณเห็นว่าโลกมีวิวัฒนาการเพิ่มขึ้นทีละมาก ๆ ในหนึ่งวันซึ่งมักจะดูเหมือนไม่เห็นว่ามันวิวัฒนาการไปเลย สำหรับการกระทำที่ส่งผลกระทบอย่างใหญ่หลวงต่อเกมหรือผู้เล่นคนอื่น (การโจมตีความสำเร็จครั้งยิ่งใหญ่) ทำให้ทุกคนสามารถมองเห็นได้ในทันที ผู้เล่นฝ่ายตรงข้ามอาจได้รับการแจ้งเตือนเมื่อมีเหตุการณ์เช่นนี้เกิดขึ้นเพื่อให้พวกเขาสามารถตอบโต้ได้ คุณมีความคิดเห็นอื่น ๆ ที่ฉันจะแก้ไขได้อย่างไร มีแนวทางใดบ้างที่รู้จักกันดีในเกมที่มีอยู่ในเกมเดียวกัน

1
การหมุนกล้อง 3D
ได้โปรดยกโทษให้ฉันด้วย แต่ฉันต้องการความช่วยเหลือและฉันติดอยู่กับเรื่องนี้มาสองสามสัปดาห์แล้วตอนนี้ฉันไม่มีความคืบหน้าและทุกที่ที่ฉันไปและฉันเห็นคำตอบที่ต่างออกไป ฉันมีเคล็ดลับและคำแนะนำเพียงพอตอนนี้ฉันแค่ต้องการใครสักคนที่จะให้คำตอบสำหรับฉันที่จะทำงานย้อนกลับจากเพราะฉันไม่เข้าใจ สิ่งที่ทำให้เรื่องนี้เกิดความสับสนมากที่สุดคือวิธีที่ทุกคนใช้ชุดของการประชุมหรือกฎระเบียบที่แตกต่างกันและคำตอบของพวกเขาขึ้นอยู่กับการประชุมของพวกเขาเอง ดังนั้นนี่คือชุดของการประชุมที่ฉันสร้างขึ้นตามสิ่งที่ดูเหมือนจะเป็นเรื่องธรรมดาและมีเหตุผลที่สุด: กฎมือขวาสำหรับแกน Positive Y เพิ่มขึ้น Positive Z กำลังเข้าหาผู้ชม Positive X อยู่ทางขวา Row Major matrixes, transposed เมื่อถูกส่งไปยังเฉดสี Pitch: การหมุนรอบแกน X Yaw: การหมุนรอบแกน y ม้วน: การหมุนเกี่ยวกับแกน z ลำดับการหมุน: หมุน, ระยะห่าง, Yaw (ถูกต้องไหมมีคนตรวจสอบฉันได้ไหม) ค่าการหมุนในเชิงบวกมองลงมาจากปลายบวกของแกนผลลัพธ์ในการหมุนตามเข็มนาฬิกา ทิศทางเริ่มต้นสำหรับการหมุน 0 ในทุกแกนคือเวกเตอร์ที่ชี้ไปที่ลบ Y .. ได้รับอนุสัญญาเหล่านั้น (โดยทั้งหมดแก้ไขฉันถ้าพวกเขาผิด!) วิธีหนึ่ง: เขียนฟังก์ชั่น LookAt หรือไม่ (lookAt (ตำแหน่งเวกเตอร์, เลนส์เวกเตอร์, เวกเตอร์ขึ้นไป)) …

3
ตัวแทน AI จะเข้าถึงข้อมูลเกี่ยวกับสภาพแวดล้อมของพวกเขาได้อย่างไร
นี่อาจเป็นคำถามที่ไม่สำคัญ แต่ฉันมีปัญหาในการเข้าใจสิ่งนี้ จะขอบคุณมากสำหรับความช่วยเหลือของคุณ ในการพัฒนาเกมโดยใช้การออกแบบเชิงวัตถุฉันต้องการเข้าใจว่าตัวแทน AI เข้าถึงข้อมูลที่พวกเขาต้องการจากโลกของเกมเพื่อที่จะดำเนินการได้อย่างไร ดังที่เราทุกคนรู้ว่าในเกมตัวแทน AI มักจะต้อง 'รับรู้สภาพแวดล้อม' และปฏิบัติตามสิ่งที่เกิดขึ้นรอบตัวพวกเขา ตัวอย่างเช่นตัวแทนอาจถูกโปรแกรมให้ไล่ล่าผู้เล่นหากเขา / เธอเข้าใกล้มากพอหลีกเลี่ยงสิ่งกีดขวางในขณะเคลื่อนที่ (โดยใช้พฤติกรรมการหลบหลีกการหมุน) ปัญหาของฉันคือฉันไม่แน่ใจว่าจะทำอย่างไร ตัวแทน AI จะเข้าถึงข้อมูลที่ต้องการเกี่ยวกับโลกของเกมได้อย่างไร แนวทางหนึ่งที่เป็นไปได้คือเอเจนต์ร้องขอข้อมูลที่ต้องการจากโลกของเกมโดยตรง มีคลาสที่เรียกว่า GameWorld มันจัดการตรรกะของเกมที่สำคัญ (วนรอบเกมการตรวจจับการชน ฯลฯ ) และยังมีการอ้างอิงถึงเอนทิตีทั้งหมดในเกม ฉันสามารถทำให้คลาสนี้เป็นซิงเกิล เมื่อตัวแทนต้องการข้อมูลจากโลกของเกมมันก็จะได้รับโดยตรงจากอินสแตนซ์ GameWorld ตัวอย่างเช่นตัวแทนอาจถูกตั้งโปรแกรมให้Seekผู้เล่นเมื่อเขา / เธอปิด ในการทำสิ่งนี้ตัวแทนจะต้องได้ตำแหน่งของผู้เล่น GameWorld.instance().getPlayerPosition()ดังนั้นมันก็สามารถขอได้โดยตรง: ตัวแทนยังสามารถรับรายการเอนทิตีทั้งหมดในเกมและวิเคราะห์ตามความต้องการ (เพื่อค้นหาว่าเอนทิตีใกล้เคียงหรืออะไรอย่างอื่น): GameWorld.instance().getEntityList() นี่เป็นวิธีที่ง่ายที่สุด: ตัวแทนติดต่อชั้น GameWorld โดยตรงและรับข้อมูลที่ต้องการ อย่างไรก็ตามนี่เป็นวิธีเดียวที่ฉันรู้ มีดีกว่าไหม นักพัฒนาเกมที่มีประสบการณ์จะออกแบบสิ่งนี้ได้อย่างไร "รับรายการของเอนทิตีทั้งหมดและมองหาสิ่งที่คุณต้องการ" ไร้เดียงสาหรือไม่? มีวิธีการและกลไกใดบ้างที่อนุญาตให้ตัวแทน AI เข้าถึงข้อมูลที่ต้องการเพื่อดำเนินการ
9 architecture  ai  oop 

2
ฉันจะส่งต่อคีย์บอร์ดอินพุตของ GLFW ไปยังวัตถุอื่นได้อย่างไร
ฉันมีปัญหาในการพยายามเรียกใช้เหตุการณ์แป้นพิมพ์ในคลาสอื่นด้วย GLFW3 ปัญหาที่ฉันมีคือ GLFW3 ใช้ฟังก์ชั่นคงที่สำหรับการป้อนข้อมูลตามที่แสดง: static UI u; ... ... static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { u.controls(window, key, action); } uเป็นแบบสแตติกและส่วนควบคุมจะเก็บอินพุตสำหรับคีย์ WSAD (วิธีเดียวที่ฉันจะได้รับเหตุการณ์สำคัญ) จากที่นี่การกดแป้นจะทำงานเพื่อแสดงว่ามีการกดแป้นใดในหน้าต่างคอนโซล ปัญหาที่ฉันมีคือพยายามใช้แป้นกดเพื่อจัดการกับตัวแปรในคลาสอื่น ฉันมีคลาสอื่นที่เรียกว่า MainMenu ที่มีฟังก์ชั่นupdate().มีวิธีที่ฉันสามารถใช้คลาส UI ของฉันภายในฟังก์ชั่นนี้หรือไม่?
9 opengl  c++  keyboard  glfw 

4
LibGDX เก็บกล้องไว้ในขอบเขต TiledMap
ฉันมี TiledMap ง่าย ๆ ซึ่งฉันสามารถปรับได้ ฉันมีผู้เล่นกระโดด (พร้อม Box2D) ไปรอบ ๆ และกล้องของฉันติดตามผู้เล่นรอบ ๆ : cam.position.set( player.position().x * Game.PPM + Game.V_WIDTH / 4, player.position().y * Game.PPM, 0 ); cam.update(); อย่างไรก็ตามกล้องจะย้าย "ปิด" TiledMap ฉันจะเก็บกล้องของฉันไว้บน TiledMap ได้อย่างไรเมื่อฉันใกล้ขอบแผนที่ของฉันกล้องหยุดการเลื่อนและผู้เล่นเคลื่อนที่ไปทางขอบของกล้อง

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

4
เป็นไปได้ไหมที่จะเป็นศิลปินเกมและไม่สามารถทำงานกับตัวละคร / อนิเมชั่นได้?
ถ้าฉันไม่ได้ต้องการที่จะพัฒนาและมีชีวิตที่อาศัยอยู่ตัวอักษร (สัตว์, มนุษย์หุ่นยนต์ ฯลฯ ) สำหรับการเล่นเกม แต่ฉันไม่ต้องการที่จะพัฒนา / วัตถุเคลื่อนไหว (ทีวี, โทรศัพท์, รถยนต์, ฯลฯ ) หรือระดับ ... คือ เป็นไปได้ไหมที่จะมีอาชีพเป็นศิลปินในอุตสาหกรรม
9 art  career 

5
ฉันจะสร้างกราฟิกการ์ดแบบเคลื่อนไหวได้ใน Hearthstone ได้อย่างไร
ในเกม Hearthstone มีการ์ดที่มีภาพเคลื่อนไหวอยู่ด้วย ตัวอย่างบางส่วน: http://www.hearthhead.com/card=281/argent-commander http://www.hearthhead.com/card=469/blood-imp ดูเหมือนว่าภาพเคลื่อนไหวจะประกอบด้วยเอฟเฟกต์หลายอย่าง: ระบบอนุภาค จางหายไปสไปรต์เข้าและออก / หมุนพวกเขา พื้นผิวเลื่อนที่เรียบง่าย เอฟเฟกต์การบิดเบือนชัดเจนมากในแหลมและผมของตัวอย่างที่ 1 เอฟเฟกต์การหมุนวนแสงในตัวอย่างที่ 1 และแสงสีเขียว / สีม่วงในตัวอย่างที่ 2 องค์ประกอบสามประการแรกนั้นเล็กน้อยสิ่งที่ฉันอยากรู้ก็คือวิธีที่สองสิ่งสุดท้ายสามารถทำได้ สามารถทำได้แบบเรียลไทม์ในเกมหรือภาพเคลื่อนไหวที่แสดงล่วงหน้าหรือไม่
9 graphics 

2
ซอร์สโค้ดของ Source Engine พร้อมใช้งานหรือไม่
ซอร์สโค้ด C ++ แบบเต็มของ Source Engine พร้อมใช้งานหรือไม่ ฉันรู้ว่าSDK สามารถใช้งานได้กับการซื้อเกมตามแหล่งที่มาแต่เป้าหมายของฉันคือการค้นหาเอ็นจิ้นเกมแบบโอเพ่นซอร์สที่มีรายละเอียดการใช้งานเต็มรูปแบบเพื่อวัตถุประสงค์ในการเรียนรู้

3
ฉันจะจัดการกับการเปลี่ยนแปลงเวอร์ชันเมื่อบันทึกเนื้อหาได้อย่างไร
ตอนนี้ฉันทำงานเป็น RPG มาระยะหนึ่งแล้วฉันใช้เทคนิคการทำให้เป็นอันดับสองแบบที่ต่างกัน ศัตรูอาวุธรายการถูกบันทึกเป็น XML แผนที่และกิจกรรมจะได้รับการบันทึกเป็น "ไบนารีที่ควบคุม" (ทุกคลาสจะได้รับวิธีการบันทึก / โหลดและพวกเขาเลือกสิ่งที่พวกเขาต้องการที่จะบันทึก / โหลด) แต่ฉันเริ่มถามตัวเลือกของฉันสำหรับแผนที่และกิจกรรมต่างๆ ความกังวลของฉัน: ฉันได้สร้างโปรแกรมแก้ไขแผนที่ แต่ฉันก็ยังพลาดที่จะเปลี่ยนสิ่งเล็ก ๆ น้อย ๆ เพียงแค่เปิดไฟล์ เปลี่ยนระเบียบมากขึ้น บอกว่าฉันต้องการเพิ่มตัวแปรให้คลาสถ้าฉันไม่โหลด / บันทึกทุกแผนที่อีกครั้งมันจะแตกภายหลัง ข้อกังวลแรกนั้นยากที่จะแก้ไขโดยไม่ต้องเปลี่ยนเทคนิคของฉัน ฉันคิดว่าจะเปลี่ยนเป็น JSON แต่มันทำงานได้มากมาย ฉันคิดว่ามันดูน่าเกลียดด้วยแอตทริบิวต์ [DataContract] และ [DataMember] ทุกที่ ที่ทิ้งฉันด้วยความกังวลที่สองของฉันและฉันสงสัยว่าฉันจะจัดการกับมันได้อย่างไร คุณสร้างโปรแกรมขนาดเล็กที่วนรอบแผนที่ทั้งหมดและบันทึกใหม่ด้วยตัวแปรใหม่หรือไม่? เพราะฉันเริ่มได้แผนที่มาสองสามตอนแล้วและฉันก็ยังทำมันเอง มันทำให้ฉันคิดว่าสองครั้งทุกครั้งที่ฉันต้องการเปลี่ยนแปลงบางอย่างเนื่องจากมันสร้างงานพิเศษมากมาย


3
วิธีการพิจารณาแรงโน้มถ่วงเมื่อย้าย AI
ฉันกำลังสร้างเกม 2D ขณะนี้มีเฮลิคอปเตอร์ที่บินอยู่รอบ ๆ ซึ่งควบคุมโดยผู้เล่น มันถูกควบคุมโดยใช้ปุ่มลูกศร: ขึ้นซ้ายและขวา มันความเร็วตามแกน Y คือdyและความเร็วพร้อมแกน x dxคือ ฟิสิกส์เป็นดังนี้: เมื่อใดก็ตามที่ขึ้นไม่ได้กด , dyเร่งในการเร่งความเร็วอย่างต่อเนื่องไปเรื่อย ๆต่อลง (แรงโน้มถ่วง) dxยังคงอยู่ในค่าปัจจุบัน เมื่อUP กด , dyเร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง 4 (ขึ้นจนกว่าจะถึงความเร็ว 4) dxยังคงอยู่ในค่าปัจจุบัน เมื่อซ้ายกด , dxเร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง -4 เมื่อขวากด , DX เร่งในการเร่งความเร็วคงที่จากสิ่งที่มันเป็นอยู่ในปัจจุบัน, ถึง 4 (เมื่อกดซ้ายหรือขวาและไม่กดขึ้นพร้อมกันดังที่ฉันพูด: dyยิ่งเล็กลงเรื่อย ๆ เพราะแรงโน้มถ่วงส่งผลต่อเฮลิคอปเตอร์) ทั้งหมดนี้ทำให้เฮลิคอปเตอร์มักตามโค้งในอากาศมากกว่าเป็นเส้นตรง นี่สร้างฟิสิกส์ที่ดูเหมือนจริงมาก คำถามของฉันคือ: เฮลิคอปเตอร์ฝ่ายตรงข้าม, AI ควรย้ายโดยใช้ระบบฟิสิกส์เดียวกัน ให้บอกว่า …
9 2d  physics  ai 

3
ฉันจะส่งเมทริกซ์หลายตัวไปยังจุดสุดยอดได้อย่างไร
ฉันกำลังฝึกอนิเมชั่นโดยใช้กระดูก / สกินนิ่ง ฉันกำลังพยายามส่งเมทริกซ์หนึ่งส่วนต่อจุดยอด ฉันนึกถึงสองแนวทางนี้ วิธีที่ 1 ฉันมีมือจับอันเดียวสำหรับเมทริกซ์กระดูกแต่ละอันเช่นนี้ u_Bone0 = GLES20.glGetUniformLocation(mProgram, "u_Bone[0]"); u_Bone1 = GLES20.glGetUniformLocation(mProgram, "u_Bone[1]"); และในการที่onDrawฉันส่งแต่ละคนไปยัง shader: GLES20.glUniformMatrix4fv(u_Bone0, 1, false, matrix0, 0); เห็นได้ชัดว่านี่ไม่ใช่วิธีที่ดีถ้าฉันมีเมทริกซ์จำนวนมาก ความคิดที่สองของฉันที่ฉันยังไม่ได้ลองเนื่องจากมีโค้ดจำนวนมากสำหรับการปรับโครงสร้าง วิธีที่ 2 คือการใช้glUniformMatrix4fvเพื่อส่งพวกเขาทั้งหมดในครั้งเดียว (สมมติว่าฉันมี 20 เมทริกซ์) GLES20.glUniformMatrix4fv(u_Bones, 20, false, matrices, 0); ที่เป็นmatrices float[16 * 20]แต่จากนั้นการปรับเปลี่ยนเมทริกซ์สำหรับแต่ละกระดูกจะค่อนข้างน่าเบื่อ ตัวอย่างเช่นถ้าฉันต้องการหาเมทริกซ์ที่ 3 ฉันต้องการบางสิ่งตามแนวของ float[] _3rd = Arrays.copy(matrices, 3*16, 4*16); และการประหยัดกลับคืนค่าสามารถเป็นที่น่ารำคาญยิ่งขึ้น …

3
ฉันจะปรับจำนวนและความท้าทายของศัตรูในคลื่นการโจมตีขณะที่เกมดำเนินไปได้อย่างไร
ขณะนี้ฉันกำลังสร้างเกมป้องกันที่ศัตรูจะวางไข่และโจมตีกองทัพของผู้เล่น มันคล้ายกับเกม Tower Defense ยกเว้นมีเพียงระดับเดียวเท่านั้น ศัตรูจะทำการวางไข่ต่อไปจนกว่าผู้ใช้จะตายหรือรวบรวมกองทัพขนาดใหญ่พอที่จะกำจัดศัตรูที่วางไข่ทันที (หวังว่ามันจะท้าทายพอที่จะไม่เกิดขึ้น) สิ่งที่ฉันกำลังดิ้นรนด้วยในขณะนี้คือวิธีที่จะทำให้เกมนี้ยากขึ้นเรื่อย ๆ และความน่าจะเป็นของการวางไข่ศัตรูในที่สุดถึง 100% จนถึงตอนนี้ฉันมีบางอย่างที่คล้ายกันดังต่อไปนี้ if(Math.random() < 1 - (1/elapsed_time) && spawnTimer <= 0 ){ spawnEnemy() spawnTimer = rand(); // random number between 1 and 3 } แต่ดูเหมือนว่าเริ่มต้นด้วยเกินไป ในขณะที่ฉันเพิ่งวางไข่ของศัตรูประเภทหนึ่งความคิดที่ว่าศัตรูที่รุนแรงจะเกิดขึ้นเมื่อเวลาผ่านไปเช่นกัน ฉันยังคิดว่าฉันต้องสุ่มspawnTimerเพิ่มอีกนิดและทำให้มันเร็วขึ้นเมื่อเวลาผ่านไป แต่ฉันไม่สามารถเห็นได้ว่าจะคิดอะไรตรรกะของฉันควรจะเป็นอย่างไรสำหรับส่วนทั้งหมดนี้ มีใครสามารถช่วยด้วยความคิดคร่าวๆของสูตรชนิดนี้หรือไม่? ขณะนี้ฉันใช้จาวาสคริปต์เพื่อเขียนเกม แต่เห็นได้ชัดว่ามันเกี่ยวกับแนวคิดมากกว่า

3
ใช้เวลานานแค่ไหนสำหรับ OpenGL ในการอัพเดทหน้าจอจริง?
ฉันมีแอปทดสอบ OpenGL แบบง่าย ๆ ใน C ซึ่งดึงดูดสิ่งต่าง ๆ เพื่อตอบสนองต่อการป้อนข้อมูลสำคัญ (Mesa 8.0.4, ลองกับ Mesa-EGL และกับ GLFW, Ubuntu 12.04LTS บนพีซีที่ใช้ NVIDIA GTX650) การดึงค่อนข้างง่าย / เร็ว (หมุนประเภทของสิ่งของ) รหัสการทดสอบของฉันไม่ได้ จำกัด จำนวนการจงใจอย่างรอบคอบ แต่อย่างใดมันมีลักษณะดังนี้: while (true) { draw(); swap_buffers(); } ฉันหมดเวลาอย่างระมัดระวังและฉันพบว่าเวลาจากการโทรครั้งเดียวeglSwapBuffers()(หรือglfwSwapBuffersสิ่งเดียวกัน) ต่อไปคือ ~ 16.6 มิลลิวินาที เวลาจากหลังจากการโทรถึงeglSwapBuffers()ก่อนการโทรครั้งถัดไปจะน้อยกว่านั้นเล็กน้อยถึงแม้ว่าสิ่งที่ถูกวาดจะง่ายมาก เวลาที่การแลกเปลี่ยนบัฟเฟอร์ใช้เวลาน้อยกว่า 1 มิลลิวินาที อย่างไรก็ตามเวลาจากแอปเปลี่ยนสิ่งที่มันวาดในการตอบสนองต่อการกดปุ่มเพื่อการเปลี่ยนแปลงที่เกิดขึ้นจริงบนหน้าจอคือ> 150ms (ประมาณ 8-9 เฟรมมูลค่า) วัดจากการบันทึกกล้องของหน้าจอและคีย์บอร์ดที่ 60fps …

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