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

C ++ เป็นภาษาเขียนโปรแกรมแบบสแตติกแบบหลายกระบวนทัศน์รวบรวมภาษาโปรแกรมอเนกประสงค์

1
วิธีการ LOD ที่ดีที่สุดสำหรับการเรนเดอร์ดาวเคราะห์
ฉันกำลังทำวิทยานิพนธ์ของฉันมันเป็นเครื่องมือในการแสดงภูมิประเทศขนาดดาวเคราะห์ ฉันยังทำการค้นคว้าเสร็จและพบสิ่งต่าง ๆ มากมายเกี่ยวกับเรื่องนี้ปัญหาคือฉันไม่สามารถตัดสินใจได้ว่าควรใช้วิธีใดในระดับรายละเอียด (LOD) ฉันรู้เกี่ยวกับ geomipmapping, geometry clipmaps (GPU) และ chunked LOD โดย Ulrich ที่ทำงานได้ดีบนภูมิประเทศขนาดใหญ่และสามารถใช้ในการเรนเดอร์ 6 หน้าของลูกบาศก์แล้ว "spherify" cube ด้วยวิธีนี้และฉันเข้าใจวิธีการใช้ทั้งหมด วิธีการเหล่านี้ใน GPU โดยใช้ C ++ / OpenGL / GLSL (ใช้วิธีการเช่น ROAM หรือวิธีอื่น ๆ ที่ไม่ได้ใช้คิวบ์ไม่อยู่ในมือฉันเพราะการทำพื้นผิวเป็นเรื่องเจ็บปวด) นอกจากนี้เมื่อเร็ว ๆ นี้ฉันได้เข้าสู่การสอนเกี่ยวกับการเรนเดอร์ภูมิประเทศโดยใช้เทสเซลเลชันเชดเดอร์ที่นี่ ดังนั้นฉันไม่มีเวลาที่จะใช้วิธีการทั้งหมดและดูว่าวิธีใดดีที่สุดและเหมาะสมกว่าสำหรับระดับดาวเคราะห์และฉันขอให้ที่นี่เพื่อดูว่ามีคนทำการเปรียบเทียบแบบนี้และช่วยฉันตัดสินใจว่าวิธีใด ฉันควรติดตั้งและใช้งาน (ผู้สอนของฉันเป็นบ้าและอยากให้ฉันทำอะไรกับ icosahedron แต่ฉันไม่เข้าใจวิธีการนั้นยกเว้นว่าใช้ ROAM) อย่างไรก็ตามหากคุณสามารถช่วยฉันตัดสินใจหรือมีข้อเสนอแนะหรือวิธีการอื่นใดฉันจะขอบคุณจริงๆ เงื่อนไขหนึ่งก็คือวิธีการนั้นควรจะสามารถใช้งานด้าน GPU (อย่างน้อยที่สุด) เพื่อป้องกันปัญหาคอขวดของ CPU …

2
พื้นฐานการผสมภาพเคลื่อนไหว
ว่าฉันมีกรอบที่มีตัวละครที่สามารถวิ่งและเดินได้และแน่นอนหยุดนิ่ง ฉันคิดถูกมั้ยว่าการผสมอนิเมชั่นเป็นกระบวนการของการเปลี่ยนแปลงระหว่างสิ่งเหล่านี้ได้อย่างราบรื่น ถ้าเป็นเช่นนั้นทฤษฎีพื้นฐานของการทำงานนี้คืออะไรและฉันจะใช้มันอย่างไร
23 c++  animation 

3
หนึ่งจะทำการทดสอบหน่วยในเครื่องมือเกมได้อย่างไร
สิ่งที่น่าละอายเป็นอย่างมากฉันไม่เคยเขียนแบบทดสอบหน่วยที่เหมาะสมมีเพียงโปรแกรมทดสอบขนาดเล็กที่ไม่มีการรวบรวมกันซึ่งฉันจะทิ้งหลังจากการทดสอบประสบความสำเร็จ ฉันไม่มีความคิดที่ชัดเจนว่าจะทำการทดสอบหน่วยในโครงการเกมอย่างไร (ภาษาของฉันคือ C ++) ฉันควรมีโครงการแยกต่างหากสำหรับแต่ละระบบย่อยในเอ็นจินของฉันและการทดสอบที่เกี่ยวข้องกับมันแล้วมีโครงการ / โซลูชันที่ใหญ่กว่าที่สร้างเอ็นจิ้นจริง พูดเช่นฉันมีeventโมดูลในเครื่องยนต์ของฉัน ฉันจะจัดการกับสิ่งนั้นได้อย่างไร


3
ฉันควรใช้ไฟล์ข้อความสำหรับบันทึกข้อมูลของฉันหรือไม่
คำถามของฉันคือฉันควรใช้ไฟล์ข้อความเพื่อบันทึกข้อมูลเกมของฉันหรือไม่ ฉันมีความกังวลพื้นฐานเกี่ยวกับการทำเช่นนี้: ไม่มีวิธีใดในการปกป้องข้อมูลดังนั้นผู้ใช้สามารถทำให้หมดทุกอย่างถ้าพวกเขาแตะมันและฉันไม่ต้องการให้เกิดขึ้น อาจไม่ใช่วิธีที่มีประสิทธิภาพที่สุดในการจัดเก็บข้อมูลของฉัน (จะมีจำนวนมาก) ฉันรู้วิธีแยก / เขียนไฟล์ข้อความอย่างมีประสิทธิภาพ แต่สำหรับการทำต้นแบบพวกเขายอดเยี่ยม ฉันแค่ต้องการมองไปสู่อนาคตสำหรับสิ่งที่ฉันควรจะคิดเกี่ยวกับการเปลี่ยนไปใช้เพื่อที่จะไม่เจาะฉันในหน้าใกล้สิ้นสุดการพัฒนา หากฉันไม่ควรใช้ไฟล์ข้อความฉันควรใช้อะไรดี ฉันต้องการบางสิ่งบางอย่างที่รองรับ C ++

1
รูปแบบไฟล์สำหรับโมเดล 3 มิติแบบคงที่และเคลื่อนไหว
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เนื่องจากสามารถตอบได้ใน Game Exchange Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันกำลังเขียนเกม 3 มิติใน C ++ กับ OpenGL และฉันมาถึงส่วนที่จะโหลดโมเดล 3 มิติดังนั้นฉันจึงกำลังมองหารูปแบบไฟล์และเทคนิคยอดนิยมสำหรับ แสดงตาข่ายคงที่และ แสดงภาพเคลื่อนไหวตาข่าย ฉันได้พบรูปแบบและเทคนิคที่เป็นไปได้ค่อนข้างมากเช่นภาพเคลื่อนไหวเฟรมเฟรม, ภาพเคลื่อนไหวโครงกระดูก, MD2 ถึง MD5, 3DS, X, Collada ฯลฯ pp เพื่อความเรียบง่ายฉันต้องการใช้รูปแบบ (และเทคนิค) ที่ช่วยให้ทั้งตาข่ายคงที่และเคลื่อนไหว ดังนั้นคำถามของฉันคือถ้ารูปแบบใดรูปแบบหนึ่งเหมาะสมกับงานนั้นและรูปแบบใดที่คุณต้องการแนะนำ และเพื่อชี้แจงเล็กน้อย: ฉันไม่ต้องการภาพเคลื่อนไหวที่นุ่มนวลหรือคุณลักษณะใหม่เอี่ยม Sidenote: เพราะฉันเป็นแฟนของเครื่องปั่น (แต่ไม่ใช่ผู้เชี่ยวชาญ ;-)) มันจะมีประโยชน์ถ้ามันสามารถใช้กับมันได้ - แต่แน่นอนว่ามันไม่ควรจะเป็นโชว์จุกที่นี่
22 c++  opengl 


3
ค่าความเร็วที่ไม่ใช่จำนวนเต็ม - มีวิธีที่สะอาดกว่านี้ไหม
บ่อยครั้งที่ฉันต้องการใช้ค่าความเร็วเช่น 2.5 สำหรับการย้ายตัวละครของฉันในเกมที่ใช้พิกเซล การตรวจจับการชนโดยทั่วไปจะทำได้ยากขึ้นหากฉันทำเช่นนั้น ดังนั้นฉันเลยทำอะไรแบบนี้: moveX(2); if (ticks % 2 == 0) { // or if (moveTime % 2 == 0) moveX(1); } ฉันประจบประแจงอยู่ข้างในทุกครั้งที่ฉันต้องเขียนมันมีวิธีที่สะอาดกว่าในการย้ายตัวละครที่มีค่าความเร็วที่ไม่ใช่จำนวนเต็มหรือฉันจะยังคงติดอยู่กับเรื่องนี้ตลอดไปหรือไม่?

5
การปรับปรุงฟังก์ชั่น O (N ^ 2) (เอนทิตีทั้งหมดทำซ้ำมากกว่าเอนทิตีอื่น ๆ ทั้งหมด)
พื้นหลังเล็กน้อยฉันเขียนโค้ดเกมวิวัฒนาการกับเพื่อนใน C ++ โดยใช้ ENTT สำหรับระบบเอนทิตี สิ่งมีชีวิตที่เดินไปรอบ ๆ ในแผนที่ 2 มิติกินสีเขียวหรือสิ่งมีชีวิตอื่นทำซ้ำและคุณสมบัติของพวกมันกลายพันธุ์ นอกจากนี้ประสิทธิภาพก็ดี (60fps ไม่มีปัญหา) เมื่อเกมทำงานแบบเรียลไทม์ แต่ฉันต้องการที่จะเพิ่มความเร็วอย่างมีนัยสำคัญโดยไม่ต้องรอ 4h เพื่อดูการเปลี่ยนแปลงที่สำคัญ ดังนั้นฉันต้องการได้เร็วที่สุด ฉันกำลังดิ้นรนเพื่อหาวิธีที่มีประสิทธิภาพสำหรับสิ่งมีชีวิตในการค้นหาอาหารของพวกเขา สิ่งมีชีวิตแต่ละคนควรจะมองหาอาหารที่ดีที่สุดที่อยู่ใกล้พวกเขา หากต้องการกินสิ่งมีชีวิตที่อยู่ในภาพควรจะมองไปรอบ ๆ ตัวเองในรัศมี 149.64 (ระยะการมองของมัน) และตัดสินว่าควรกินอาหารชนิดใดซึ่งขึ้นอยู่กับโภชนาการระยะทางและประเภท (เนื้อสัตว์หรือพืช) . ฟังก์ชั่นที่รับผิดชอบในการค้นหาสิ่งมีชีวิตทุกชนิดของพวกเขาคือการกินอาหารประมาณ 70% ของเวลาใช้งาน ทำให้การเขียนง่ายขึ้นในขณะนี้มันจะเป็นดังนี้: for (creature : all_creatures) { for (food : all_entities_with_food_value) { // if the food is within the …

6
แยกข้อมูลเกม / ตรรกะจากการเรนเดอร์
ฉันกำลังเขียนเกมโดยใช้ C ++ และ OpenGL 2.1 ฉันคิดว่าฉันจะแยกข้อมูล / ตรรกะออกจากการแสดงผลได้อย่างไร ในขณะนี้ฉันใช้คลาสพื้นฐาน 'Renderable' ที่ให้วิธีเสมือนจริงเพื่อนำมาใช้วาดภาพ แต่วัตถุทุกชิ้นมีรหัสพิเศษเฉพาะวัตถุเท่านั้นที่รู้วิธีการตั้งค่าเครื่องแบบ shader อย่างถูกต้องและจัดระเบียบข้อมูลบัฟเฟอร์อาร์เรย์จุดสุดยอด ฉันลงเอยด้วยฟังก์ชัน gl * จำนวนมากโทรไปทั่วรหัสของฉัน มีวิธีการทั่วไปในการวาดวัตถุหรือไม่?
21 c++  opengl  rendering  logic  data 

4
มีการใช้งานการประกอบเท่าไหร่ในรหัสเกมสมัยใหม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว โดยเฉลี่ยแล้วแอสเซมบลีที่ใช้ในรหัสเกมสมัยใหม่บ่อยแค่ไหน? โดยเฉพาะบนแพลตฟอร์มที่มีคอมไพเลอร์ C ++ ที่ดีอยู่แล้วเช่น x86, PPC หรือ ARM - เพราะฉันคิดว่าเกมบนระบบฝังตัวใช้ประโยชน์จากการประกอบอย่างกว้างขวาง
21 c++  c 

5
เรียนรู้ที่จะเพิ่มประสิทธิภาพด้วยการชุมนุม [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันเป็นนักเรียนปีสองของเทคโนโลยีเกมคอมพิวเตอร์ ฉันเพิ่งเสร็จต้นแบบตัวแรกของตัวเอง "ชนิด" ของผู้เบิกทาง (ที่ไม่ได้ใช้ A * แทนวิธีการทางเรขาคณิต / การจดจำรูปแบบผู้ค้นหาเพียงแค่ต้องการความรู้เกี่ยวกับภูมิประเทศที่อยู่ในมุมมองของเขาในการตัดสินใจเพราะฉัน ต้องการ AI ที่สามารถสำรวจได้จริงหากภูมิประเทศเป็นที่รู้จักกันดีแล้วมันก็จะเดินไปในทางที่สั้นที่สุดได้อย่างง่ายดายเพราะผู้เบิกทางมีหน่วยความจำของโหนด) อย่างไรก็ตามคำถามของฉันเป็นเรื่องทั่วไปมากขึ้น: ฉันจะเริ่มเพิ่มประสิทธิภาพอัลกอริทึม / ลูป / for_each / etc ได้อย่างไร ใช้แอสเซมบลีแม้ว่ายินดีต้อนรับเคล็ดลับทั่วไป ฉันกำลังมองหาหนังสือที่ดีโดยเฉพาะเพราะมันยากที่จะหาหนังสือที่ดีในหัวข้อนี้ มีบทความเล็ก ๆ น้อย ๆ ออกมาเช่นนี้แต่ยังไม่มีความรู้เพียงพอที่จะปรับอัลกอริทึม / เกม ... ฉันหวังว่าจะมีหนังสือดีๆเล่มหนึ่งออกมาฉันไม่สามารถหา ...

10
การแข่งขันกับ C ++ สำหรับการเขียนโปรแกรมเกม
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Game Exchange Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันสงสัยว่าเพราะเหตุใด C ++ จึงเป็นที่นิยมสำหรับการพัฒนาเกมไม่ใช่ภาษาอื่นแทน ฉันรู้ว่าคุณสามารถสร้างรหัสได้อย่างรวดเร็วด้วย แต่สิ่งที่ทำให้มันเป็นที่นิยม? เป็นเพราะความรวดเร็วหรือไม่ มันเป็นคุณสมบัติอื่น ๆ ในภาษาเช่นกระบวนทัศน์ OO หรือพกพา? มันเป็นเพราะห้องสมุดทั้งหมดที่ถูกสร้างขึ้นเมื่อเวลาผ่านไป? หรือการรวมกันของเหตุผลเหล่านี้ (และอื่น ๆ ) ทั้งหมด? หากใครบางคนสามารถกรอกฉันในนี้ฉันจะมีความสุขมาก :-)
21 c++ 

2
การนำกล้อง / วิวพอร์ตไปใช้กับเกม 2D
วิธีการที่ใช้ประโยชน์ได้จริงในการนำกล้อง / วิวพอร์ตไปใช้กับเกม 2D คืออะไร? ฉันได้อ่านแล้วฉันควรจะเก็บตำแหน่งของวัตถุในโลกแทนตำแหน่งที่สัมพันธ์กับหน้าจอหรือไม่? สถานการณ์ปัจจุบัน: ฉันใช้เกม 2D ง่าย ๆ ที่ฉันโหลดวัตถุและระดับจากไฟล์ XML ปัจจุบันไฟล์ XML ระดับมีลักษณะดังนี้: <map> <tile obj="ground" x="0" y="555" /> <tile obj="ground" x="16" y="555" /> <tile obj="ground" x="32" y="555" /> ... </map> วัตถุทั้งหมดมี 2d-vector "position" ที่เก็บตำแหน่งปัจจุบันของพวกเขาบนหน้าจอ สิ่งที่ฉันต้องการให้เป็น: ในรูปภาพ: กล้องมีทั้งแบบ 800x600 หรือ 640x480 บล็อกและสไปรต์คือ 16x16 พิกเซล ขนาดโลกอาจแตกต่างกันไป พิกัดที่ควรจะเป็นมาตรฐานเมื่อเทียบกับโลกไม่ใช่ที่หน้าจอ? ตำแหน่งวิวพอร์ตที่สัมพันธ์กับ …
20 c++  2d  architecture  camera 

4
คอนเทนเนอร์ที่มีประสิทธิภาพที่สุดในการจัดเก็บวัตถุเกมแบบไดนามิกคืออะไร [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเป็นนักกีฬาคนแรกและฉันรู้เกี่ยวกับคอนเทนเนอร์ประเภทต่างๆมากมาย แต่ฉันต้องการค้นหาคอนเทนเนอร์ที่มีประสิทธิภาพที่สุดสำหรับการจัดเก็บวัตถุไดนามิกที่จะเพิ่มและลบออกจากเกมค่อนข้างบ่อย EX-กระสุน ฉันคิดว่าในกรณีนี้มันจะเป็นรายการเพื่อให้หน่วยความจำไม่ต่อเนื่องและไม่มีการปรับขนาดใด ๆ ที่เกิดขึ้น แต่ฉันก็ใคร่ครวญโดยใช้แผนที่หรือชุด หากใครมีข้อมูลที่เป็นประโยชน์ฉันจะขอบคุณมัน ฉันกำลังเขียนสิ่งนี้ใน c ++ โดยวิธี ฉันยังคิดวิธีแก้ปัญหาที่ฉันคิดว่าจะใช้ได้ ในการเริ่มต้นฉันจะจัดสรรเวกเตอร์ที่มีขนาดใหญ่ .. พูดได้ 1,000 วัตถุ ฉันจะติดตามดัชนีที่เพิ่มล่าสุดในเวกเตอร์นี้เพื่อให้ฉันรู้ว่าจุดสิ้นสุดของวัตถุอยู่ที่ไหน จากนั้นฉันจะสร้างคิวที่จะเก็บดัชนีของวัตถุทั้งหมดที่ "ลบ" จากเวกเตอร์ (จะไม่มีการลบจริงฉันจะรู้ว่าสล็อตนั้นฟรี) ดังนั้นหากคิวว่างเปล่าฉันจะเพิ่มดัชนีล่าสุดที่เพิ่มเข้าไปในเวกเตอร์ + 1 มิฉะนั้นฉันจะเพิ่มดัชนีของเวกเตอร์ที่อยู่ด้านหน้าของคิว

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