การพัฒนาเกม

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

2
ท้องฟ้าที่กระเจิงจากชั้นบรรยากาศจากสิ่งประดิษฐ์ในอวกาศ
ฉันกำลังอยู่ในขั้นตอนการดำเนินการกระจายดาวเคราะห์ในอวกาศจากอวกาศ ฉันใช้เฉดสีของ Sean O'Neil จากhttp://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.htmlเป็นจุดเริ่มต้น ฉันมีปัญหาเดียวกันที่เกี่ยวข้องกับ fCameraAngle ยกเว้นกับ SkyFromSpace shader ซึ่งตรงข้ามกับ GroundFromSpace shader ที่นี่: http://www.gamedev.net/topic/621187-sean-oneils-atmospheric-scattering/ ฉันได้รับวัตถุแปลกประหลาดที่มีท้องฟ้าจากอวกาศ shader เมื่อไม่ได้ใช้fCameraAngle = 1ในวงใน สาเหตุของสิ่งประดิษฐ์เหล่านี้คืออะไร? สิ่งประดิษฐ์นั้นหายไปเมื่อ fCameraAngle ถูก จำกัด ไว้ที่ 1 ฉันก็ดูเหมือนจะไม่มีสีสันที่ปรากฏในกล่องทรายของ O'Neil ( http://sponeil.net/downloads.htm ) ตำแหน่งกล้อง X = 0, Y = 0, Z = 500 GroundFromSpace ทางซ้าย, SkyFromSpace ทางด้านขวา ตำแหน่งกล้อง X = 500, …

5
เคล็ดลับในกลศาสตร์เกมเพื่อหลีกเลี่ยงการรับมือกับการชดเชยความล่าช้าของเครือข่าย?
การใช้การชดเชยความล่าช้าของเครือข่ายเป็นเรื่องยากจะหลีกเลี่ยงได้อย่างไร อาจเป็นไปได้ที่จะใช้เทคนิคและสร้างกลไกของเกมในลักษณะที่ความล่าช้าจะได้รับการรับรู้ว่าไม่สำคัญหรือเป็นส่วนหนึ่งของเกม เทคนิคเหล่านั้นคืออะไรและมีเกมใดบ้างที่มีอยู่ (MMORPG, กลยุทธ์, ... ) ที่ใช้เทคนิคดังกล่าว? UPDATE: เกมตามเทิร์นไม่จำเป็นต้องมีการชดเชยความล่าช้า แต่น่าสนใจที่จะเห็นวิธีการแบบเรียลไทม์ (หรือเพียงแค่ความประทับใจในแบบเรียลไทม์ส่วนสำคัญ - ผู้ใช้ไม่ควรถูกบล็อกและบังคับให้รอ) เหตุผลหลักสำหรับฉันที่จะหลีกเลี่ยงการชดเชยความล่าช้าคือความเรียบง่าย
20 networking  mmo  rpg  rts  lag 

6
ต้นไม้ไดอะล็อกทำงานอย่างไร
นั่นคือสิ่งที่เชื่อมต่อกับสิ่งที่และวิธีการย้ายระหว่างบรรทัดคำพูดเมื่อการสนทนาย่อยสิ้นสุดลง? หากคุณมีตัวอย่างของแผนภูมิโต้ตอบพื้นฐานใน C # โปรดโพสต์ไว้
20 c#  dialog-tree 

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

5
สเปรดชีตในการออกแบบเกม?
มีสองกรณีจากสองสัปดาห์ที่ผ่านมาที่ฉันได้ยินจากนักพัฒนาเกมที่รู้จักกันดีว่าพวกเขาใช้สเปรดชีตเมื่อออกแบบเกม คนแรกที่เป็น David Whatley ในวิดีโอ GDCVault นี้: จาก Zero ถึง Time Magazine: App Success ที่สองเป็นพวกที่ทำWalled สวนประจำสัปดาห์ เดวิดบอกว่าเขาทำตัวเป็นแบบอย่างทุกอย่างและใช้แบบจำลองเก่ง ๆ เพื่อดูว่าทุกอย่างเล่นได้อย่างไร เขากำลังพูดถึงเรื่องอะไรในโลก? มันเห็นหรือไม่ว่ากลไกของเกมตอบสนองซึ่งกันและกัน? มีที่ไหนบ้างที่ฉันสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้?

2
บทเรียนทั้งหมดสำหรับ libGDX อยู่ที่ไหน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันค้นหาทางออนไลน์เพื่อขอความช่วยเหลือและแบบฝึกหัดใน LibGDX แต่ฉันไม่พบอะไรเลยยกเว้นและวิกิสำหรับถามคำถามเกี่ยวกับ stackexchange นอกเหนือจากแหล่งที่มา (ตัวอย่าง) และwikiแล้วยังมีบทเรียนอื่น ๆ ออนไลน์ที่ซ่อนอยู่หรือโดยอ้อม? จากสิ่งที่ฉันอ่านมีเอกสารไม่มากสำหรับ LibGDX ดังนั้นจึงมีเพียงสองตัวเลือกที่ฉันเห็น ยอมแพ้ย้ายไปยังเฟรมเวิร์กอื่น ถามคำถามกับผู้คนมากมาย
20 android  libgdx 

3
ทำไม RK4 ถึงดีกว่าการรวมออยเลอร์? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน8 เดือนที่ผ่านมา ในตอนท้ายของสไลด์ที่ยิ่งใหญ่เหล่านี้ผู้เขียนเปรียบเทียบผู้รวมระบบที่แตกต่างกันทั้งหมดที่นำเสนอ ไม่ทางใดก็ทางหนึ่งพวกเขาทั้งหมดสั้นยกเว้นการปรับปรุงการรวมออยเลอร์และการรวมRunge Kutta 4ซึ่งทั้งสองผ่านการทดสอบทั้งหมด ฉันคิดว่าฉันควรจะพูดถึงว่าฉันกำลังทำงานในเกม 2D ที่มีวิชาฟิสิกส์ไม่มาก ฉันแค่อยากรู้ว่าการรวมออยเลอร์ที่ปรับปรุงแล้วจะสั้นและ RK4 จะต้องใช้แทน เกมของฉันประกอบด้วยแรงโน้มถ่วงง่ายๆ (กระโดดและล้ม) เคลื่อนไหวตามแนวแกน X และ Y และการชนกันของกล่องสี่เหลี่ยม มันคุ้มค่าหรือไม่ที่จะนำ RK4 ไปใช้หรือจะปรับปรุงออยเลอร์ให้เพียงพอหรือไม่? ฉันเห็นการสนทนาจำนวนมากที่ผู้ใช้ของ Euler Integration ถูกตีสอน แต่จากสิ่งที่ฉันเห็นการปรับปรุง Euler ที่ปรับปรุงนั้นมีความสำคัญในเรื่อง 2D ง่าย ๆ ฉันคิดว่ามันจะเร็วขึ้นด้วย

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

7
วิธีหลีกเลี่ยงวัตถุเกมลบโดยไม่ตั้งใจใน C ++
สมมติว่าเกมของฉันมีสัตว์ประหลาดที่สามารถโจมตีได้ด้วยระเบิด เรามาเลือกชื่อสัตว์ประหลาดตัวนี้แบบสุ่ม: Creeper ดังนั้นCreeperคลาสมีวิธีการที่มีลักษณะดังนี้: void Creeper::kamikaze() { EventSystem::postEvent(ENTITY_DEATH, this); Explosion* e = new Explosion; e->setLocation(this->location()); this->world->addEntity(e); } เหตุการณ์ไม่ได้เข้าคิวพวกเขาจะถูกส่งทันที ซึ่งทำให้วัตถุที่จะได้รับการลบบางภายในการเรียกร้องให้Creeper postEventบางสิ่งเช่นนี้ void World::handleEvent(int type, void* context) { if(type == ENTITY_DEATH){ Entity* ent = dynamic_cast<Entity*>(context); removeEntity(ent); delete ent; } } เพราะCreeperวัตถุที่ได้รับการลบในขณะที่วิธีการที่จะยังคงทำงานก็จะมีปัญหาเมื่อพยายามที่จะเข้าถึงkamikazethis->location() ทางออกหนึ่งคือการจัดคิวเหตุการณ์ลงในบัฟเฟอร์และส่งต่อในภายหลัง นั่นเป็นวิธีแก้ปัญหาทั่วไปในเกม C ++ ใช่ไหม รู้สึกเหมือนแฮ็คสักหน่อย แต่นั่นอาจเป็นเพราะประสบการณ์ของฉันกับภาษาอื่นที่มีการจัดการหน่วยความจำที่แตกต่างกัน ใน C ++ มีวิธีแก้ปัญหาทั่วไปที่ดีกว่าสำหรับปัญหานี้หรือไม่ที่วัตถุจะลบตัวเองออกจากภายในหนึ่งในวิธีการใด …
20 c++  scene-graph 

2
มีชุดไพ่ที่ดีสำหรับแผนที่ฐานสิบหกที่ให้บริการฟรีหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ไม่มีใครรู้ชุดไพ่ที่ดีสำหรับแผนที่ฐานสิบหกที่มีให้ใช้ฟรีหรือไม่ กระเบื้องจาก Battle for Wesnoth ดูเหมือนจะอยู่ภายใต้ใบอนุญาตที่อนุญาตให้ผู้อื่นใช้พวกเขาในเกมของพวกเขา แต่เกมที่ฉันกำลังพัฒนาอยู่ในระดับที่เลขฐานสิบหกจะเทียบเท่ากับพื้นที่ที่บุคคลจะยืนอยู่ ในขณะที่แผ่นกระเบื้องของ Wesnoth มีขนาดใหญ่กว่า (ตัวอย่างเช่นมีแผ่นกระเบื้องป่าที่มีต้นไม้หลายต้นบนฐานสิบหก) มีเกมอื่น ๆ หรือแหล่งอื่น ๆ ที่มีกราฟิกเรียงต่อเนื่องที่มีอยู่หรือไม่
20 tiles  assets 

1
ฉันจะปัดไพ่ออกให้เท่า ๆ กันได้อย่างไร
ให้ชุดไพ่ (ภาพสี่เหลี่ยมผืนผ้าที่มีความกว้างและความสูง) ฉันจะหมุนและจัดตำแหน่งแต่ละภาพเพื่อให้ปรากฏในรูปแบบ 'แฟน' ได้เหมือนที่คุณจะถือไพ่ในชีวิตจริง ต้องใช้คณิตศาสตร์อะไรในการทำเช่นนี้? UPDATE นี่คือขั้นตอนสุดท้ายในการติดตั้งเบราว์เซอร์ใน JavaScript: https://cosmicrealms.com/blog/2013/03/16/hand-of-cards/ และ http://jsfiddle.net/tyyvk/108/

4
การคำนวณความเร็วต่ำสุดของกระสุนปืนที่จำเป็นในการเข้าถึงกลุ่มเป้าหมายเป็นรูปโค้งโค้ง
หากฉันมีจุดที่ฉันต้องการตีในตอนท้ายหรือในช่วงโค้งพาราโบลาฉันจะคำนวณความเร็ว x และ y ที่ต้องการได้อย่างไร

6
ค้นหาทิศทางของการเดินทางในโลกที่มีขอบล้อมรอบ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เนื่องจากสามารถตอบได้ใน Game Exchange Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันต้องการค้นหาทิศทางระยะทางที่สั้นที่สุดจากจุดหนึ่งในโลก 2 มิติของฉันไปยังอีกจุดที่ขอบถูกห่อ (เช่นดาวเคราะห์น้อย ฯลฯ ) ฉันรู้วิธีหาระยะทางที่สั้นที่สุด แต่ฉันพยายามหาทิศทางที่มันอยู่ ระยะทางที่สั้นที่สุดจะได้รับจาก: int rows = MapY; int cols = MapX; int d1 = abs(S.Y - T.Y); int d2 = abs(S.X - T.X); int dr = min(d1, rows-d1); int dc = min(d2, cols-d2); …
20 c++  algorithm 

3
OBB กับการตรวจจับการชน OBB
สมมติว่าคุณมี Bounding Box Object สองชิ้นแต่ละอันจะเก็บจุดยอดปัจจุบันของกล่องในเวกเตอร์ที่มีจุดยอดทั้งหมดของวัตถุที่หมุนและแปลโดยสัมพันธ์กับแกนทั่วไป นี่คือภาพเพื่ออธิบายปัญหาของฉัน: ฉันจะทำงานอย่างไรหาก OBB ทั้งสองวางซ้อนทับลิงก์ใด ๆ เพื่อช่วยอธิบายวิธีการแก้ไขปัญหาจะได้รับการต้อนรับ ไม่มีอะไรซับซ้อนเกินไปโปรด ...

4
มีเครื่องยนต์ฟิสิกส์ 2 มิติที่สามารถจำลองของเหลวและก๊าซได้หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ณ จุดนี้แพลตฟอร์มและภาษาการเขียนโปรแกรมไม่สำคัญว่าฉันแค่อยากจะรู้ว่ามีบางสิ่งที่มีอยู่สำหรับเรื่องนี้ ความช่วยเหลือใด ๆ ที่ชื่นชม
20 2d  physics 

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