การพัฒนาเกม

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

3
กรอบการเคลื่อนไหวอิสระ
ฉันได้อ่านการเคลื่อนไหวอีกสองเธรดที่นี่: การเคลื่อนไหวตามเวลา Vs การเคลื่อนไหวตามอัตราเฟรมหรือไม่ และ เมื่อใดที่ฉันควรใช้ขั้นตอนเวลาที่แน่นอนหรือแปรผัน แต่ฉันคิดว่าฉันขาดความเข้าใจพื้นฐานของการเคลื่อนไหวแบบอิสระของเฟรมเพราะฉันไม่เข้าใจว่าหัวข้อเหล่านี้กำลังพูดถึงอะไร ฉันติดตามบทเรียน SDL ของ lazyfoo และเข้าสู่บทเรียนอิสระของเฟรม http://lazyfoo.net/SDL_tutorials/lesson32/index.php ฉันไม่แน่ใจว่าส่วนการเคลื่อนไหวของรหัสพยายามที่จะพูดอะไร แต่ฉันคิดว่ามันเป็นแบบนี้ (โปรดแก้ไขให้ฉันถ้าฉันผิด): เพื่อให้มีการเคลื่อนไหวแบบอิสระเฟรมเราต้องค้นหาว่าวัตถุอยู่ไกลแค่ไหน ( เช่นสไปรต์) เคลื่อนไหวภายในกรอบเวลาที่กำหนดเช่น 1 วินาที หากจุดเคลื่อนที่ที่ 200 พิกเซลต่อวินาทีฉันต้องคำนวณว่ามันเคลื่อนที่ภายในวินาทีนั้นด้วยการคูณ 200 pps โดย 1/1000 ของวินาที นั่นถูกต้องใช่ไหม? บทเรียนบอกว่า: "ความเร็วเป็นพิกเซลต่อวินาที * เวลานับตั้งแต่เฟรมสุดท้ายเป็นวินาทีดังนั้นหากโปรแกรมทำงานที่ 200 เฟรมต่อวินาที: 200 pps * 1/200 วินาที = 1 พิกเซล" แต่ ... ฉันคิดว่าเราคูณ 200 pps …
11 frame-rate 

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

1
อัลกอริธึมการหาเส้นทางแบบสามเหลี่ยม A * (TA *)
ฉันต้องการความช่วยเหลือในการทำความเข้าใจอัลกอริทึม Triangle A * (TA *) ที่อธิบายโดย Demyen ในการหาเส้นทางแบบอิงสามเหลี่ยมที่มีประสิทธิภาพของกระดาษในหน้า 76-81 เขาอธิบายถึงวิธีการปรับอัลกอริทึม A * ปกติสำหรับการหาสมการเพื่อค้นหาเส้นทางที่เหมาะสมที่สุดที่อาจเป็นไปได้แม้หลังจากที่ถึง / ขยายโหนดสุดท้ายแล้ว ปกติ A *จะหยุดเมื่อโหนดสุดท้ายถูกขยาย แต่นี่ไม่ใช่เส้นทางที่ดีที่สุดเสมอเมื่อใช้ในกราฟที่วิเคราะห์ตำแหน่ง นี่คือปัญหาที่ฉันมี ปัญหานี้แสดงไว้ในหน้า 78 รูปที่ 5.4: ฉันเข้าใจวิธีการคำนวณค่า g และ h ที่แสดงในกระดาษ (หน้า 80) และฉันคิดว่าเงื่อนไขการหยุดการค้นหาคือ: if (currentNode.fCost > shortestDistanceFound) { // stop break; } โดย currentNode คือโหนดการค้นหาที่ผุดจากรายการที่เปิด (ลำดับความสำคัญคิว) ซึ่งมีคะแนน f ต่ำสุด shortestDistanceFound …

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

7
การมีเพศสัมพันธ์ต่ำและการทำงานร่วมกันแน่น
แน่นอนมันขึ้นอยู่กับสถานการณ์ แต่เมื่อวัตถุคันล่างหรือระบบสื่อสารกับระบบระดับที่สูงขึ้นควรเรียกกลับหรือเหตุการณ์ที่จะรักษาตัวชี้ไปยังวัตถุระดับที่สูงขึ้น? ตัวอย่างเช่นเรามีชั้นเรียนที่มีตัวแปรสมาชิกworld vector<monster> monstersเมื่อmonsterชั้นเรียนสื่อสารกับworldฉันควรจะใช้ฟังก์ชั่นโทรกลับแล้วหรือฉันควรจะมีตัวชี้ไปยังworldชั้นเรียนภายในmonsterชั้นเรียนหรือไม่?

3
พวกเขาติดตาม NPCs ใน Left 4 Dead อย่างไร
พวกเขาติดตามซอมบี้ NPC ใน Left 4 Dead ได้อย่างไร ฉันกำลังพูดถึง NPCs ที่เพิ่งเดินเข้าไปในกำแพงหรือเดินไปรอบ ๆ อย่างไร้จุดหมาย แม้ว่าผู้เล่นจะไม่เห็นพวกเขาพวกเขาอยู่ที่นั่น (พูดภายในห้องหรือหลังประตู) สมมติว่ามีซอมบี้ประมาณ 10 ตัวในห้องโถงและในห้อง เกมนี้เก็บซอมบี้เหล่านั้นไว้ในรายการและย้ำผ่านคำสั่งหรือไม่? พวกเขาเพิ่งวางไข่เมื่อผู้ใช้อยู่ในรัศมีที่แน่นอนหรือถึงตำแหน่งพิเศษหรือไม่? สมมติว่าคุณวางหน่วย 4 (ควบคุมโดยผู้เล่น) ในสถานที่ที่แตกต่างกันอย่างสมบูรณ์ทั่วแผนที่ สมมติว่าคุณไม่ได้ถูกจับกลุ่มแล้วคุณก็ไม่ได้ฆ่า NPC ที่ไร้จุดหมายเหล่านี้ เกมจะติดตามซอมบี้ทั้งหมด 10 x 4 = 40 ตัวหรือไม่? หรือความเข้าใจของฉันสมบูรณ์ เหตุผลที่ฉันถามคือถ้าฉันใช้สิ่งที่คล้ายกันบนอุปกรณ์มือถือการติดตาม NPC 40 หรือมากกว่านั้นอาจไม่ใช่ความคิดที่ยอดเยี่ยม
11 game-design  ai 

6
ฉันจะมั่นใจได้ว่าอัตราส่วนการจ่ายที่เหมาะสมสำหรับเครื่องสล็อตได้อย่างไร
ฉันได้ทำการวิจัยมากมายเกี่ยวกับเครื่องกำเนิดตัวเลขแบบสุ่มสำหรับเครื่องสล็อตการคำนวณหยุดหมุนและวิธีการให้โอกาสผู้ใช้ในการชนะ สิ่งที่ฉันไม่สามารถหาได้คือวิธีการประกันอย่างถูกต้องว่าเครื่องจะได้รับการจัดอันดับการจ่ายเงิน (ขอพูด) 95% ดังนั้นฉันมีการตั้งค่ารีลกับ 22 ช่องว่างในนั้น เต็มไปด้วยสัญลักษณ์ที่แตกต่างกัน 16 แบบ เมื่อฉันได้รับหมายเลขสุ่มของฉัน mod หารด้วย 64 และได้ส่วนที่เหลือฉันกระโดดไปที่ตาราง loop up เพื่อดูว่า stop virtual เกี่ยวข้องกับตำแหน่ง reel อย่างไร ตอนนี้ฉันมีวงล้อที่จะหยุดฉันต้องแน่ใจว่าอัตราส่วนการจ่ายเงินถูกต้องหรือไม่ สำหรับทุกดอลล่าร์ที่ใส่เข้าไปฉันจะแน่ใจได้อย่างไรว่าเครื่องจะจ่ายเงิน 0.95 เซนต์ ขอบคุณสำหรับความคิด ฉันกำลังทำงานใน actionscript ถ้ามันช่วยในเรื่องภาษา แต่โดยทั่วไปฉันแค่มองหาทฤษฎี แก้ไข:มีเงินจริงเกี่ยวข้องเฉพาะกับความจริงที่ว่าพวกเขาสามารถซื้อโทเคนมากขึ้นเพื่อเล่นได้มากขึ้น จะไม่มีการจ่ายเงินจริงให้กับคน ๆ นั้นหากพวกเขาจะต้องจ่ายเงินตามจำนวนที่จ่ายจริง ๆ

3
TRON: อัลกอริธึมเกม AI ใช่ไหม
Lightouts หรือสิ่งที่มันถูกเรียกว่าชอบ ด้วยอาร์เรย์ 2d ที่เป็นตัวแทนของแผนที่เกมโดยที่แต่ละองค์ประกอบสามารถเป็น 0 หรือ 1 (0 แทนพื้นที่ว่างเปล่าและ 1 แทนพื้นที่ว่างเต็ม) ขั้นตอนวิธีสำหรับศัตรู AI ของ TRON คืออะไร?
11 2d  ai 

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

2
แอนิเมชั่นโครงกระดูกที่มีประสิทธิภาพ
ฉันกำลังใช้รูปแบบแอนิเมชั่นโครงกระดูก ( ดังที่ได้รับแจ้งที่นี่ ) สำหรับเกม RTS การนำเสนอแต่ละแบบของแต่ละรุ่นบนหน้าจอจะมีขนาดเล็ก แต่จะมีจำนวนมาก! ในแอนิเมชั่นโครงกระดูกเช่นไฟล์ MD5 คุณสามารถแนบจุดสุดยอดแต่ละจุดเข้ากับข้อต่อได้ตามต้องการ คุณจะสนับสนุนสิ่งนี้ได้อย่างมีประสิทธิภาพในขณะที่ทำการแก้ไขใน GLSL อย่างไร หรือเอ็นจิ้นทำแอนิเมชั่นของพวกเขาบน CPU หรือไม่ หรือเครื่องยนต์ตั้งค่าขีด จำกัด โดยพลการในข้อต่อสูงสุดต่อจุดสุดยอดและเรียก nop คูณสำหรับข้อต่อเหล่านั้นที่ไม่ได้ใช้จำนวนสูงสุด? มีเกมที่ใช้แอนิเมชั่นโครงกระดูกในการตั้งค่าคล้าย RTS หรือไม่ดังนั้นจึงพิสูจน์ได้ว่าในการ์ดกราฟิกในตัวที่ฉันไม่มีอะไรต้องกังวลเกี่ยวกับเส้นทางของกระดูก?

3
สุ่มวางศัตรูบนตาราง 2d
ฉันต้องการวางไอเท็มและศัตรูแบบสุ่ม (หรือสุ่มให้มากที่สุด) ในขณะนี้ฉันใช้Randomคลาสของ XNA เพื่อสร้างตัวเลขระหว่าง 800 สำหรับ X และ 600 สำหรับ Y มันรู้สึกเหมือนศัตรูวางไข่ไปทางด้านบนของแผนที่มากกว่าตรงกลางหรือด้านล่าง ฉันไม่ได้สร้างเครื่องกำเนิดไฟฟ้าซึ่งอาจเป็นสิ่งที่ต้องพิจารณา มีเทคนิคอื่น ๆ ที่อธิบายซึ่งสามารถปรับปรุงการจัดวางศัตรูแบบสุ่มในตาราง 2d หรือไม่?
11 xna  2d  sprites  random 

7
การแยกภาพวาดและตรรกะในเกม
ฉันเป็นนักพัฒนาที่เพิ่งเริ่มยุ่งเกี่ยวกับการพัฒนาเกม ฉันเป็น. Net ผู้ชายดังนั้นฉันจึงยุ่งกับ XNA และตอนนี้ฉันกำลังเล่นกับ Cocos2d สำหรับ iPhone คำถามของฉันนั้นกว้างกว่าจริง ๆ สมมติว่าฉันกำลังสร้างเกมโป่งง่ายๆ ฉันมีBallชั้นเรียนและPaddleชั้นเรียน มาจากการพัฒนาของโลกธุรกิจสัญชาตญาณแรกของฉันคือไม่มีรหัสรูปวาดหรือการป้อนข้อมูลในทั้งสองคลาส //pseudo code class Ball { Vector2D position; Vector2D velocity; Color color; void Move(){} } ไม่มีสิ่งใดในคลาสบอลที่จัดการอินพุตหรือจัดการกับรูปวาด จากนั้นฉันจะมีคลาสอีกคลาสของฉันGameหรือของฉันScene.m(ใน Cocos2d) ซึ่งจะสร้างบอลขึ้นมาใหม่และในระหว่างวนรอบเกมมันจะจัดการกับบอลตามที่ต้องการ ในบทเรียนหลายบทสำหรับทั้ง XNA และ Cocos2d ฉันเห็นรูปแบบเช่นนี้: //pseudo code class Ball : SomeUpdatableComponent { Vector2D position; Vector2D velocity; Color color; …

2
ฟังก์ชั่นผ่อนคลาย
ฉันเริ่มมีส่วนร่วมกับฟังก์ชั่นการผ่อนคลาย (Flash AS3) เกิดความพยายามทำความเข้าใจเว็บไซต์ TweenLite และ Robert Penner: http://www.robertpenner.com/easing/ คำถามที่ฉันมีคือพื้นฐานทางคณิตศาสตร์ของฟังก์ชันเหล่านี้คืออะไร ฉันเคยเห็นไซต์อื่น ๆ แก้ไขฟังก์ชั่นเพื่อสร้างฟังก์ชั่นการผ่อนคลายที่กำหนดเอง

3
RTS บนแผนที่ 3 มิติเช่นโลก
คุณจะ 'สร้าง' โลก 3 มิติได้อย่างไรถ้างานศิลปะและแผนที่ที่มีอยู่ของคุณเป็นกริด 2D ง่าย ๆ ? มีวิธีการที่สามารถนำผลงานศิลปะกลับมาใช้ใหม่ได้หรือไม่?
11 3d  maps 

2
ฉันจะกระจายการปฏิบัติการดั้งเดิมให้กับโปรแกรม Python ได้อย่างไร
เมื่อไม่นานมานี้งานของฉันทั้งหมดเป็น Python (และ Ruby) และฉันรักสองภาษานี้ มีไลบรารีมากมายสำหรับการพัฒนาเกมบน Python แต่ปัญหาที่ฉันเห็นคือเฟรมเวิร์กเหล่านั้นจำนวนมากไม่ครอบคลุมถึงส่วน "การกระจาย" ของการสร้างเกม ฉันต้องการเขียนโค้ดเกมของฉันบน Python (และไลบรารี่ Python พิเศษอื่น ๆ ที่ฉันต้องการ) และสามารถแจกจ่ายไฟล์ปฏิบัติการสำหรับแพลตฟอร์มพีซีหลัก (Windows, Mac และ Linux) มีตัวเลือกอะไรบ้างหรือชุดที่ดีที่สุดสำหรับสิ่งนี้ (อาจเป็น pyglet + cx_freeze)
11 python  pyglet 

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