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

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

4
การเขียนโปรแกรมกิจกรรมเรื่องราวของเกม
ฉันได้พัฒนาโปรแกรมเกมใน c / c ++ และ DirectX ฉันมีเอนจินแบบเรียงต่อกันสำหรับแผนที่ผู้เล่นแบบเคลื่อนไหว / สไปรต์ NPC พูดคุยกับ npc เมนูและการเปลี่ยนระดับ แต่ไม่มีเกมมันแค่รู้สึกว่างเปล่า ฉันได้ดูรอบ ๆ และได้ยินคำตอบ buzzword แต่ฉันต้องการทราบวิธีการใช้เรื่องราวในเกมของฉัน บางคนได้กล่าวว่าไฟล์บันทึกที่มีธงกำกับดูแลทุกการกระทำ / สถานะที่เป็นไปได้ที่มีอยู่ในเกม แต่ฟังดูน่าหัวเราะ มันค่อนข้างทะเยอทะยานเล็กน้อย แต่ฉันตั้งเป้าที่จะเล่นเกมอย่าง Pokemon / Final Fantasy ที่เก่ากว่า มีใครรู้หรือไม่ว่าเกมเหล่านี้ทำงานอย่างไรหรือใช้ทฤษฎีอย่างไร ฉันกำลังมองหาอยู่พักหนึ่งและจะซาบซึ้งกับทุกคนที่เข้ามา
28 c++  directx 


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

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

3
การพัฒนาเกม Android ใน c ++
ดังนั้นการเป็นนักพัฒนา c / c ++ เป็นหลักฉันจึงคิดเสมอว่าตัวเลือกเดียวสำหรับการพัฒนาเกมมือถือสำหรับฉันคือการใช้ iOS ซึ่งอนุญาตให้ c / c ++ (และลดวัตถุประสงค์ C) ฉันได้ยินมาจากเพื่อนว่า Android นั้นมีชุดเครื่องมือการพัฒนาดั้งเดิมซึ่งอนุญาตให้ใช้รหัส c ++ เพื่อทำงานกับ Android มีใครใช้สิ่งนี้และถ้าเป็นเช่นนั้นคุณจะพบได้อย่างไร? ฉันหมายถึงมันจะ "ใช้งานได้" เช่น iOS หรือมีข้อควรพิจารณาเพิ่มเติมที่ต้องได้รับการดูแลเนื่องจากอุปกรณ์ Android ที่มีให้เลือกมากมายหรือไม่
26 c++  android 

9
คุณสามารถแนะนำไลบรารี C ++ GUI อะไรได้บ้าง [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังสร้างเอ็นจิ้นเกมของตัวเองใน C ++ และตอนนี้ฉันกำลังตัดสินใจว่าควรจะใช้อินเทอร์เฟซผู้ใช้แบบใด ฉันควรใช้ห้องสมุดหรือไม่ ฉันควรทำเอง
26 c++  gui 


3
การสร้างกำแพงในเกมที่เป็นกระเบื้อง
หลังจากใช้เวลาในวันนี้เพื่อจดบันทึกบางอย่างเกี่ยวกับการติดตั้งกำแพงในเกมที่ใช้กระเบื้องของฉันฉันก็รู้ทันทีว่ามันจะไม่ง่ายอย่างที่ฉันคิดไว้ก่อน ในขณะที่งานปัจจุบันของฉันไม่ได้ใกล้เคียงกับการสร้างรหัสที่เกี่ยวข้องกับกำแพงจริง ๆ ฉันได้มาด้วยวิธีที่แตกต่างกันสามวิธี ตอนนี้ฉันไม่แน่ใจว่าหนึ่งในความคิดของฉันจะทำงานได้ดีที่สุดและไม่ว่าฉันจะพลาดบางสิ่งบางอย่างหรือไม่ สำคัญ: ตัวละครสามารถยืนบนแผ่นกระเบื้องที่มีกำแพงได้โดยไม่คำนึงถึงรูปร่างของพวกเขา สิ่งที่พบได้ทั่วไปสำหรับทั้งสามรูปแบบ: tilemap จะ "เก็บไว้" ในคอนเทนเนอร์แบบมิติเดียว std :: vector (หรือคล้ายกัน) เหตุผลในการอธิบาย (ต่างไปจากเดิม) ในคำตอบของคำถามอื่น คลาสคอนเทนเนอร์ในเกมแบบเรียงต่อกัน กลับไปที่ผนัง A) วิธีการง่ายๆ ไม่มีอะไรแฟนซีที่นี่ แต่ละคอนเทนเนอร์แบบเรียงต่อกันสามารถเก็บอักขระไม่เพียง แต่วัตถุ Wall หนึ่งหรือหลายซึ่งแนบกับขอบภายในกระเบื้อง จุดเด่น: ใช้งานง่ายไม่มีอะไรเปลี่ยนแปลงในเครื่องยนต์ จุดด้อย: สองสิ่ง หนึ่ง - อาจอยู่ในหัวของฉัน แต่ชุดค่าผสมบางอย่างอาจดูน่าเกลียด สอง - วิธีนี้ช่วยให้สามารถสร้างกำแพงสองชั้นจากแผ่นติดกันสองแผ่น สิ่งปลูกสร้างจะเป็นส่วนสำคัญของเกมและผนังสองชั้นช่วยให้ผู้สร้างสามารถยกระดับวัสดุของกำแพงผ่านวิธีการเล่นเกมและเพิ่มความทนทานที่เพิ่มขึ้นด้วยการเพิ่มกำแพงที่มีอยู่เป็นสองเท่า ไม่เป็นที่น่าพอใจ แน่นอนว่าฉันสามารถรวมขั้นตอนที่ห้ามกำแพงสองชั้น แต่จะมีความรู้สึกที่ไม่ดี B) วิธีการอันชาญฉลาด (?) แทนที่จะปล่อยให้ผู้เล่นตีสองครั้งทั่วทั้งแผนที่ฉันจะเอาชนะพวกมัน ผนังทุกหลังมีสองส่วนที่ติดกับขอบของกระเบื้องจากด้านใน ดังนั้นในการสร้าง "Wall …

2
คุณจะเพิ่มภาษาสคริปต์ลงในเกมได้อย่างไร
สมมติว่าฉันมีเกมที่เขียนด้วย C ++ แต่ฉันต้องการเพิ่มฟังก์ชั่น modding หรือ scripting เข้าไป เราจะเพิ่มฟังก์ชันการเขียนสคริปต์ในเกมของคุณอย่างไร?
25 c++  scripting  modding 

5
การหมุนเวกเตอร์ 3 โดยควอเทอเนียน
ฉันพยายามหมุนเวกเตอร์ 3 ด้วย quaternion ที่กำหนด ฉันรู้ว่านี่เป็นเรื่องจริง โวลต์'= q⋅ v ⋅ q- 1โวลต์'=Q⋅โวลต์⋅Q-1 v' = q \cdot v \cdot q^{-1} ฉันรู้ว่าเป็นสิ่งที่ตรงกันข้ามที่แต่ฉันจะแมปการคูณเวกเตอร์กับควอเทอเรียนเพื่อกลับเวกเตอร์ได้อย่างไร?Q- 1Q-1 q^{-1} - คิวm a gn ฉันt U วันที่e ( q)-Qม.aก.nผมเสื้อยูdอี(Q) \frac {-q} {magnitude(q)} ฉันได้พบว่าคุณสามารถปฏิบัติต่อเป็นเมทริกซ์และแปลงและเป็นเมทริกซ์แล้วแปลงจากเมทริกซ์เป็นเวกเตอร์ได้ แต่นี่ดูเหมือนจะน้อยกว่าด้านบนเพื่อรับเวกเตอร์ มีการนำไปใช้ที่สะอาดกว่าที่ฉันสามารถใช้ได้หรือไม่?โวลต์โวลต์vQQqQ'Q'q'โวลต์'โวลต์'v'
25 c++  quaternion 

1
เกมของฉันดูเหมือนจะไม่เข้ากันกับซอฟต์แวร์การบันทึก สิ่งใดที่ทำให้เกิดสิ่งนี้
ฉันเพิ่งจบโครงการ Game-Dev เล็ก ๆ สำหรับมหาวิทยาลัยและฉันต้องการบันทึกวิดีโอเพื่อติดตามผลงานของฉัน (ในกรณีที่พวกเขาไม่สามารถให้แหล่งข้อมูลของฉันทำงานได้) โดยทั่วไปเกมของฉันไม่ทำงานเลยเมื่อ FRAPS หรือ Bandicam พยายามที่จะแนบมันฉันได้รับหน้าจอสีดำและมีกระแสข้อความ GL INVALID OPERATION จากรหัสรายงานข้อผิดพลาดของฉัน Dxtory ดูเหมือนจะไม่สามารถเชื่อมต่อกับมันได้อย่างถูกต้องเลยมันไม่ได้แสดงว่าเป็นตัวนับ FPS หรืออะไรก็ตาม ตรรกะเกมของฉันดูเหมือนว่าจะทำงานอย่างถูกต้องจากร่องรอยการตรวจแก้จุดบกพร่องมันก็ดูเหมือนว่าทุกสาย gl ห้องสมุดโทรทำลาย ฉันไม่รู้จำนวนมากเกี่ยวกับวิธีการทำงานของโปรแกรมเหล่านี้ดังนั้นฉันไม่รู้จริง ๆ ว่าฉันควรทำอย่างไรเพื่อทำให้เกิดสิ่งนี้ ฉันได้ยินว่าพวกเขาอ่านจากบัฟเฟอร์เฟรมของ OpenGL ดังนั้นฉันอาจทำอะไรผิดพลาดที่นั่นหรือ ฉันให้ GLFW และ GLEW ทำการเริ่มต้นระดับต่ำทั้งหมด แต่ฉันได้บันทึกโครงการที่ประสบความสำเร็จด้วยซอฟต์แวร์การตั้งค่าและการบันทึกเดียวกัน โดยพื้นฐานแล้วมีใครเคยเจอเรื่องแบบนี้มาก่อนหรือคุณรู้อะไรเกี่ยวกับวิธีการทำงานของโปรแกรมเหล่านี้ที่สามารถบอกสาเหตุของปัญหาได้หรือไม่

4
ควรทำการตรวจจับการชนกันของเซิร์ฟเวอร์หรือทำงานร่วมกันระหว่างไคลเอนต์ / เซิร์ฟเวอร์หรือไม่
ฉันกำลังทำงานในเกมออนไลน์ที่จะมีการตรวจจับการชนกันอย่างหนักมาก ผู้เล่นรุ่นจะชนกับผู้เล่นคนอื่น ๆ mobs โครงสร้างภูมิประเทศและวัตถุทึบที่มีอยู่ฝั่งเซิร์ฟเวอร์เท่านั้น (ไม่ได้เก็บไว้ในไฟล์ข้อมูลลูกค้า) เพื่อจุดประสงค์ด้านความปลอดภัยฉันควรทำทั้งหมดด้านเซิร์ฟเวอร์ตรวจจับการชน? หรือฉันควรให้ลูกค้าทำการตรวจจับและให้เซิร์ฟเวอร์ติดตามมันอย่างใด? ฉันรู้สึกว่ามันจะมากเกินไปสำหรับเซิร์ฟเวอร์ที่จะทำด้วยตัวเอง (ฉันกำลังออกแบบเอ็นจิ้นสำหรับผู้เล่นหลายร้อยคนบนเซิร์ฟเวอร์เดียว) ไม่มีใครรู้ว่า MMO ที่สำคัญทำอย่างไร ฉันรู้ว่า MMO เกือบทั้งหมดในตอนนี้มีความไวต่อการแฮ็กฟิสิกส์และมักจะจัดการกับพวกเขาโดยการตรวจสอบแฮ็กและห้ามผู้คน ฉันต้องการแฮ็กที่ไม่ทำงานเลยอย่างน้อยก็สำหรับองค์ประกอบทางฟิสิกส์

4
เกม C ++ จัดการกับการจัดสรรหน่วยความจำล้มเหลวได้อย่างไร
ฉันตระหนักถึงหลายเกมที่เขียนด้วย C ++ แต่ไม่ได้ใช้ข้อยกเว้น เนื่องจากการจัดการกับความล้มเหลวในการจัดสรรหน่วยความจำใน C ++ นั้นโดยทั่วไปถูกสร้างขึ้นโดยมีstd::bad_allocข้อยกเว้นเกมเหล่านี้จะจัดการกับความล้มเหลวได้อย่างไร? พวกเขาเพียงแค่ผิดพลาดหรือมีวิธีการจัดการและกู้คืนจากข้อผิดพลาดออกจำ?


3
เป็นเรื่องปกติหรือไม่ที่เกมจะใช้ CPU 100%?
ฉันเพิ่งใช้การจัดการอินพุตแบบมัลติเธรดในเอ็นจินเกมของฉันโดยที่โค้ดที่โพลระบบปฏิบัติการเพื่อรวบรวมข้อมูลจากมันและการประทับเวลาจะอยู่ในเธรดแยกต่างหากและแต่ละเฟรมในเธรดหลักฉันกินอินพุตที่รวบรวมไว้ เวลาของเกมลอจิก ทุกอย่างทำงานได้ แต่การตั้งค่านี้ใช้ CPU ของฉัน 100% ฉันมีสองคอร์และเพิ่มขึ้นถึง 100% ในขณะที่รันเกมของฉัน ฉันได้ตรวจสอบกับเกมอื่น ๆ เพื่อดูว่าพวกเขาทำเช่นนั้นหรือไม่ ยกตัวอย่างเช่น Skyrim และ Doom 3 นั้นใช้ได้กับซีพียูมากกว่า 60% เป็นที่ยอมรับหรือไม่สำหรับเกมที่ใช้อินพุตแบบมัลติเธรดเพื่อใช้ CPU 100%? ถ้าไม่เช่นนั้นมีเทคนิคอะไรบ้างที่เกมดังกล่าวใช้เพื่อลดการใช้ cpu โดยเธรดอินพุต?

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