การพัฒนาเกม

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

7
ฉันจะหาตัวอย่างของรหัสเกมที่ดี (มีการจัดการที่ดี) ได้ที่ไหน [ปิด]
ฉันจะหาตัวอย่างของรหัสเกมที่ดี (มีการจัดการที่ดี) ได้ที่ไหน ฉันหวังว่าฉันจะรับเคล็ดลับขององค์กรได้ ตัวอย่างส่วนใหญ่ในหนังสือสั้นเกินไปและไม่ต้องลงรายละเอียดมากมายเพื่อความกระชับ ฉันสนใจเป็นพิเศษเกี่ยวกับวิธีจัดกลุ่มตัวแปรและวิธีการของคุณเพื่อให้โปรแกรมเมอร์คนอื่นรู้ว่าจะต้องดูที่ใดในโค้ด ตัวอย่างเช่น initializers ที่ด้านบนจากนั้นวิธีการที่จะนำเข้าจากนั้นวิธีการที่ปรับปรุงมุมมอง ฉันไม่สนใจภาษาใดภาษาหนึ่งโดยเฉพาะตราบใดที่ OOP ฉันดูแหล่งที่มาของ Quake 2 และ 3 แต่พวกมันก็เป็นแบบตรง C และไม่ค่อยมีคำแนะนำสำหรับการจัดระเบียบวัตถุของคุณ คุณเคยเห็นแหล่งข้อมูลที่ดีบ้างไหม? พอยน์เตอร์ใด ๆ ของรหัสที่ทำให้คุณพูดว่า "ว้าวการจัดระเบียบที่ดี" จะดีมาก

7
การหาเส้นทางในเกม RTS ทำงานอย่างไร
[crossposted จาก stackoverflow] ในเกมเช่น Warcraft 3 หรือ Age of Empires วิธีที่ฝ่ายตรงข้าม AI สามารถเคลื่อนไหวเกี่ยวกับแผนที่ดูเหมือนจะไร้ขีด จำกัด แผนที่มีขนาดใหญ่มากและตำแหน่งของผู้เล่นอื่นก็เปลี่ยนแปลงอยู่ตลอดเวลา การค้นหาเส้นทาง AI ในเกมเช่นนี้เป็นอย่างไร วิธีการค้นหากราฟแบบมาตรฐาน (เช่น DFS, BFS หรือ A *) ดูเหมือนเป็นไปไม่ได้ในการตั้งค่า

2
น้ำ / มหาสมุทรจำลองและฟิสิกส์
ฉันกำลังมองหาข้อมูลอ้างอิงเกี่ยวกับการจำลองน้ำและวิธีจำลองการโต้ตอบกับร่างกาย (เช่นเรือ, เรือ, เรือดำน้ำ) ฉันพบการอ้างอิงจำนวนมากเกี่ยวกับลักษณะภาพของน้ำ (คลื่นการสะท้อน ฯลฯ ) แต่มีน้อยมากเกี่ยวกับวิธีจัดการกับวิธีที่มันควรมีปฏิสัมพันธ์กับร่างกาย ประสบการณ์ของฉันกับการพัฒนาเกมมี จำกัด มากและฉันติดอยู่ที่นี่จริงๆ โดยพื้นฐานแล้วฉันต้องการที่จะทำให้ตำแหน่งของเรือแตกต่างกันไปตามคลื่น ฉันจะทำสิ่งนี้ได้อย่างไร ฉันใช้ Panda3D แต่หวังว่าจะได้รับฟังเทคนิคและการใช้งานที่ใช้ในเทคโนโลยีที่มีอยู่
42 physics 

6
คุณจะจัดการอัตราส่วนภาพที่แตกต่างใน platformer 2d อย่างไร
เมื่อนานมาแล้ว 4: 3 เป็นอัตราส่วน apect เพียงอย่างเดียวที่คุณจะพบบนพีซี วันนี้สิ่งที่พบบ่อยที่สุดคือ 16:10 แต่จอภาพใหม่ส่วนใหญ่ (โดยเฉพาะแลปท็อป) คือ 16: 9 ฉันกำลังเขียน platformer 2D และฉันไม่สามารถตัดสินใจได้ว่าจะจัดการกับอัตราส่วนต่าง ๆ ทั้งหมดได้อย่างไร นี่คือแนวคิดบางส่วน: 4: 3 ได้รับเนื้อหามากขึ้นเวดกรีนถูกตัดทั้งด้านบนและล่าง 16: 9 ได้เนื้อหามากขึ้นส่วนที่เหลือถูกตัดไปทางขวา เกมดังกล่าวอยู่ใน 16: 9 พร้อมแถบแนวนอนสีดำสำหรับ ARs อื่น ๆ เกมนี้เป็นแบบ 4: 3 พร้อมแถบแนวตั้งสีดำสำหรับ ARs อื่น ๆ
41 2d  aspect-ratio 

9
ทำไมเนื้อหาโค้ดฮาร์โค้ดถึงไม่ดี?
ฉันรู้ว่าส่วนใหญ่เก็บข้อความสนทนาในไฟล์เกม แต่ฉันเคยเห็นเกมที่ใช้ข้อความเป็นตัวเขียนเนื้อหา (แผนที่ตัวเลือกคำสั่งของผู้เล่นที่เป็นไปได้ข้อความในเนื้อเรื่อง) ลงในรหัสเกม ฉันนึกถึงเหตุผลไม่กี่ข้อ แต่อะไรคือสาเหตุหลักที่ทำให้เกมข้อความแม้แต่เก็บทุกอย่างไว้ในไฟล์นอกโปรแกรม รายละเอียดการใช้งานแตกต่างกันเล็กน้อยระหว่างการเก็บเนื้อหาในบางสิ่งเช่นรูปแบบ XML ที่เป็นที่นิยมการแยกวิเคราะห์แล้วแสดงแผนที่ / การแสดงข้อความตามตัวแปรที่สร้างจากไฟล์ XML และเพียงแค่ละไฟล์ XML ทั้งหมด พวกเขาทั้งสองจบลงด้วยสตริงที่ส่งออกไปยังหน้าจอ ไม่ใช่ความแตกต่างเพียงสัญกรณ์ใช่ไหม บางเกมยังมีกราฟิก (ASCII art?) อยู่ในโค้ด ฉันรู้ว่ามันไม่ถูกต้องและฉันสามารถเดาได้ว่าทำไมมันถึงไม่ดี แต่ก็ไม่รู้เหตุผลสำคัญว่าทำไม เป็นที่นิยมอย่างมากที่จะมีเนื้อหาส่วนใหญ่อยู่นอกโปรแกรม แม้แต่ป้อมปราการคนแคระก็ไม่ได้ใช้อักขระ ASCII จริง แต่ภาพของอักขระ ASCII ที่โหลดเข้าสู่หน่วยความจำ ฉันถามเป็นหลักเพราะมันเป็นบิตของ PITA ในการสร้างวิเคราะห์และทำงานกับไฟล์ XML คุณรู้ไหมว่า ... เมื่อเทียบกับทางเลือกที่ขี้เกียจเพียงสร้างดันเจี้ยนที่ไม่เหมือนใคร (เนื้อหา) คลาสของตัวเอง

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

5
วิธีที่ดีที่สุดในการอนุญาตให้ผู้เล่นถ่ายภาพ“ Dye” โดยไม่สูญเสียคุณภาพสี?
ฉันกำลังสร้างเกม 2.5D isometric (ภาพ 2 มิติ) ฉันต้องการให้ผู้เล่นสามารถ "ย้อมสี" ชุดเกราะของพวกเขาเสื้อผ้าและสิ่งอื่น ๆ ฉันพบว่าการทำให้สีเทาซีดจางทุกอย่างนำไปสู่การสูญเสียสีผิวที่ "เป็นธรรมชาติ" มากขึ้น ตัวอย่างเช่นการสร้างมังกรที่มีโทนสีเทาแดง / เหลืองจากนั้นใช้สีซ้อนทับนำไปสู่การมังกรสีแดงล้วนๆที่สูญเสียสีรองทั้งหมด ในขณะเดียวกันการตายด้วยสีแดง / เหลือง Dragon Blue เดียวกันทำให้มันเป็นสีน้ำเงิน / ขาวซึ่งดูดีมาก ตัวละครในเกมของฉันไม่มีอุปกรณ์มากมาย เกมดังกล่าวใกล้เคียงกับที่ League of Legends จัดการกับตัวละครและกราฟิก อาจมีอักขระประเภทเดียว (เช่นฮีโร่) แต่มีหลายชุดสำหรับตัวละครเป็นตัวเลือก ฉันต้องการให้ผู้เล่นสามารถปรับแต่งได้มากที่สุดใน "ชุด" และตัวละครในจำนวนที่ จำกัด ดังนั้นฉันต้องการให้ผู้เล่นสามารถเลือกตัวละครเลือกอาวุธหนึ่งตัวเลือกสลับระหว่างชุดตัวเลือกจำนวนหนึ่ง (เลเยอร์ลงบนตัวละคร) แล้วย้อมทุกอย่างส่วนใหญ่ (เลือกสีโลหะเฉพาะสำหรับอาวุธเลือกสีใดก็ได้ เลยสำหรับเสื้อผ้า) ถ้าฉันสามารถใช้โทนสีเทาได้โดยไม่ทำให้สีผมเสีย นี่คือตัวอย่างของสิ่งที่ฉันกำลังพูดถึง: มันเป็นไปไม่ได้ที่จะ "ย้อม" มังกรไม่ว่าฉันจะใช้ตัวเลือก "Color Overlay" ของ …

10
ทำไมผู้พัฒนาเกมถึงเขียนโปรแกรมของตัวเองแทนที่จะใช้สิ่งที่มีอยู่
ฉันสังเกตว่าผู้พัฒนาเกมขนาดใหญ่และมีชื่อเสียงมักจะพัฒนาเอนจิ้นของตัวเอง ตัวอย่างเช่น Valve, Crytek, Ubisoft, Epic Games และ Square-Enix อาจเป็นเพราะพวกเขาทำได้หรือเป็นไปได้ว่าเครื่องยนต์ที่มีอยู่ไม่ตอบสนองความต้องการมากพอดังนั้นเราจะพัฒนาของเราเอง? ฉันนึกภาพเกมที่ต้องใช้เอนจิ้นเฉพาะไม่ได้ ความชอบของ Unity หรือ Unreal นั้นเพียงพอที่จะสร้างเกมประเภทใดก็ได้ แม้ว่าจะไม่ได้พวกเขามีซอร์สโค้ดซึ่งสามารถแก้ไขได้เพื่อตอบสนองความต้องการพิเศษบางอย่าง ทำไมผู้พัฒนาเกมถึงเขียนโปรแกรมของตัวเองแทนที่จะใช้สิ่งที่มีอยู่

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

5
ฉันจะสร้างเอฟเฟกต์ไฟที่ดีด้วยการผสมอัลฟ่าและอนุภาคได้อย่างไร
การใช้การตั้งค่าต่อไปนี้สำหรับเอฟเฟกต์อนุภาค OpenGL: SRC: GL_SRC_ALPHA DST: GL_ONE สร้างการผสมผสานเพิ่มเติมซึ่งมีลักษณะที่งดงามบนพื้นหลังสีดำ แต่น่ากลัวในสีที่สว่างกว่าเพราะมันเริ่มจางลงเป็นสีขาว จากนั้นฉันก็ใช้การผสมอัลฟา: SRC: GL_SRC_ALPHA DST: GL_ONE_MINUS_SRC_ALPHA สิ่งนี้ทำให้พื้นหลังอื่น ๆ สามารถใช้งานได้โดยไม่ส่งผลกระทบต่อสีของอนุภาค แต่อนุภาคเหล่านั้นดูหมองคล้ำเมื่อเปรียบเทียบกับการผสมผสานแบบเติมแต่ง ฉันจะสร้างเอฟเฟกต์ไฟที่ดีด้วยการผสมอัลฟ่าและอนุภาคได้อย่างไร สารเติมแต่ง: อัลฟา: UPDATE: ตามคำแนะนำของเดวิดด้านล่างฉันสร้างพื้นผิวแยกต่างหากจากนั้นใช้การผสมผสานแบบเติมต่อเอฟเฟกต์ของอนุภาคก่อนที่จะวาดลงบนพื้นผิว ปัญหาที่เกิดขึ้นก็คือการวาดภาพบนพื้นผิว alpha = 0 ส่งผลให้ชิ้นส่วนที่เป็นสีของอนุภาคปรากฏขึ้นด้านหน้าแผนที่โลกของฉันเนื่องจากโดยปกติคุณมีพื้นหลังสีดำแทน เคล็ดลับคือใช้พื้นผิวสองแบบ ฉันสร้างพื้นผิวสีดำแล้วดึงอนุภาคบนมัน จากนั้นฉันก็ลบชั้นอัลฟ่าของอนุภาคออกจากพื้นผิวนี้ทำการลบสิ่งที่เป็นของแข็งสีดำรอบ ๆ และลบล้างอนุภาคที่มองเห็นได้บางส่วนในขณะที่ปล่อยให้สีดำพื้นฐานที่คุณคาดหวัง ในระยะสั้นเป็นกระบวนการที่ทรหด แต่ในที่สุดก็มาถึง: นี่คือกระทู้ที่ฉันโพสต์กระบวนการของฉัน: http://www.cocos2d-iphone.org/forum/topic/28707?replies=8#post-141528 วิดีโอ: http://www.youtube.com/watch?v=JptGbEO3b5E

3
วัตถุประสงค์ของบัฟเฟอร์ stencil คืออะไร? ยิ่งไปกว่านั้นลายฉลุในคอมพิวเตอร์กราฟิกคืออะไร
ฉันอ่านคำว่า stencil มากและฉันก็ไม่รู้ว่ามันมีจุดประสงค์อะไรในคอมพิวเตอร์กราฟิก เห็นภาพขาวดำบนวิกิพีเดียฉันยังคงมีปัญหากับมัน ทำไมเราใช้ stencil หรือ stencil buffer และ Z-buffer ต่างกันอย่างไร ทำไมใช้คำนี้ซึ่งดูเหมือนจะมีความหมายบางอย่างในการออกแบบกราฟิก?

4
ความแตกต่างระหว่างแผนที่ฉากและแผนที่ภาพสามมิติ
ฉันกำลังหัวเราะกับตัวเองที่ไม่รู้เรื่องนี้ Google ไม่ได้ให้คำตอบที่ชัดเจน ใครช่วยอธิบายว่า orthogonal map และ isometric map คืออะไรและต่างกันอย่างไร
41 maps 


5
นักแสดงในเกมควรมีความรับผิดชอบในการวาดภาพตนเองหรือไม่?
ฉันยังใหม่ต่อการพัฒนาเกม แต่ไม่ได้เขียนโปรแกรม ฉัน (อีกครั้ง) เล่นกับเกมประเภท Pong โดยใช้canvasองค์ประกอบของ JavaScript ฉันสร้างPaddleวัตถุที่มีคุณสมบัติดังต่อไปนี้ ... width height x y colour ฉันยังมีPongวัตถุที่มีคุณสมบัติเช่น ... width height backgroundColour draw(). draw()วิธีการในปัจจุบันคือการรีเซ็ตcanvasและที่เป็นที่คำถามขึ้นมา ควรPaddleวัตถุมีdraw()วิธีการรับผิดชอบสำหรับการวาดภาพหรือควรdraw()ของPongวัตถุต้องรับผิดชอบสำหรับการวาดภาพของนักแสดง (ฉันคิดว่าเป็นคำที่ถูกต้องโปรดแก้ไขฉันหากฉันไม่ถูกต้อง) ฉันคิดว่ามันจะเป็น advantagous สำหรับPaddleการวาดตัวเองที่ผมยกตัวอย่างวัตถุสองและPlayer Enemyถ้ามันไม่ได้อยู่ในPongของdraw()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

1
เหตุใดการทำแผนที่เงาจึงเป็นมาตรฐาน
แม้ว่าฉันจะเป็นโปรแกรมเมอร์โดยการค้าขาย แต่ฉันก็แทบไม่ได้สัมผัสกับการพัฒนาเกมเลย ฉันมีคำถามนี้มาระยะหนึ่งแล้วและตอนนี้ฉันกำลังมองหาการพัฒนาเกมฉันคิดว่ามันจะเป็นช่วงเวลาที่ดีสำหรับการถาม เหตุใดการทำแผนที่เงาจึงเป็นวิธีที่พิเศษในการใช้เกมเพื่อสร้างเงา จะทื่อมันดูน่ากลัว แม้กระทั่งเกมที่ทันสมัยที่มีการตั้งค่าเงาสูงสุดมีเงาแบบ block-y ที่ทำให้เสียสมาธิมาก Doom 3 ทำเมื่อ 11 ปีที่แล้วใช้ปริมาณเงาที่ดูดีกว่าการใช้แผนที่เงาที่ฉันเคยเห็นซึ่งรวมถึงเกม AAA ที่เปิดตัวในสัปดาห์เดียวกันกับคำถามนี้ที่โพสต์ไว้ บุคคลที่สามดัดแปลงสำหรับ Doom 3 ทำให้ขอบเงาอ่อนลงทำให้พวกเขาน่าประทับใจยิ่งขึ้น มีปัญหาทางเทคนิคหรือข้อ จำกัด บางประการเกี่ยวกับการนำสิ่งต่าง ๆ เช่นปริมาณเงา? แผนที่เงานั้นง่ายต่อการนำไปใช้งานหรือไม่ที่ devs ไม่ได้พิจารณาเรื่องอื่นเลย? ข้อมูลเดียวที่ฉันสามารถค้นหาเกี่ยวกับเรื่องนี้คือรูปหลายเหลี่ยมที่ประกอบขึ้นเป็นเล่มอาจมีขนาดใหญ่มากขึ้นและมีความต้องการมากขึ้น บางทีปริมาณเงามีความต้องการของระบบที่สูงขึ้นมาก แต่ถ้าเป็นเช่นนั้นพวกเขาจะใช้มันอย่างไรในปี 2004? คำถามนี้ไม่เฉพาะเจาะจงกับการทำแผนที่เงากับปริมาณเงาพวกเขาเป็นเพียง 2 เดียวที่ฉันเคยเห็นใช้ในผลิตภัณฑ์เต็มรูปแบบและฉันไม่สามารถหาข้อมูลมากมายเกี่ยวกับเทคนิคอื่น ๆ ได้

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