การพัฒนาเกม

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

5
การใช้แนวนอนแบบทำลายได้ 2D (เช่น Worms)
ขั้นตอนใดที่จะมีส่วนร่วมในการสร้างภูมิทัศน์ 2D แบบทำลายได้เช่นใน Worms? ในทางอุดมคติแล้วมีวิธีใดบ้างที่กระบวนการนี้จะทำให้มีประสิทธิภาพมากที่สุด
76 2d  terrain 

5
ฟิสิกส์ 2D platformer ดี [ปิด]
ฉันมีตัวควบคุมอักขระพื้นฐานตั้งค่าสำหรับ platformer 2D กับ Box2D และฉันเริ่มปรับแต่งเพื่อพยายามทำให้รู้สึกดี เอ็นจิ้นฟิสิกส์มีปุ่มปรับแต่งมากมายและไม่ชัดเจนสำหรับฉันเขียนด้วยเครื่องมือฟิสิกส์เป็นครั้งแรกที่ฉันควรใช้ การกระโดดควรใช้แรงหลายเห็บเหรอ? แรงกระตุ้นหรือไม่? ตั้งค่าความเร็วโดยตรง? ฉันจะหยุดอวตารจากการเกาะติดผนังได้โดยไม่ต้องกำจัดแรงเสียดทานทั้งหมด (หรือฉันจะกำจัดแรงเสียดทานทั้งหมด แต่ในอากาศเท่านั้น)? ฉันควรจำลองตัวละครเป็นแคปซูลหรือไม่? กล่องที่มีมุมมน กล่องที่มีสองล้อ? แค่ล้อใหญ่วงเดียว? ฉันรู้สึกเหมือนมีคนทำสิ่งนี้มาก่อน! ดูเหมือนจะมีทรัพยากรน้อยมากที่มีอยู่ในเว็บที่ไม่ใช่ "ฟิสิกส์ลูกคนแรกของทารก" ซึ่งทั้งหมดถูกตัดออกไปซึ่งฉันหวังว่าจะมีใครบางคนแก้ไขปัญหานี้แล้ว ตัวอย่างส่วนใหญ่ของเครื่องมือฟิสิกส์สำหรับ platformers มีการควบคุมแบบลอยตัวหรือการกระโดดในอากาศหรือพฤติกรรมที่หาประโยชน์ได้ง่ายเมื่อการเจาะทะลุสูงเกินไปเป็นต้น ตัวอย่างของสิ่งที่ฉันหมายถึง: การกระโดดสั้น ๆ ก็เป็นการกระโดดระยะทางสั้น ๆ แตะยาวกระโดดสูงขึ้น การลื่นไถลสั้นเมื่อหยุดหรือย้อนทิศทางที่ความเร็วสูง ยืนอยู่บนความลาดเอียงได้อย่างมั่นคง ความเร็วอะนาล็อกเมื่อใช้ตัวควบคุมแบบอะนาล็อก ทุกสิ่งอื่น ๆ ที่แยก platformers ที่ดีจาก platformers ไม่ดี กล้าแนะนำแพลตฟอร์มที่มีความเสถียรหรือไม่? ฉันไม่ได้มองหา "เฮ้ทำแบบนี้" เห็นได้ชัดว่าสิ่งที่ถูกต้องคือขึ้นอยู่กับสิ่งที่ฉันต้องการในเกม แต่ฉันหวังว่าจะมีใครซักคนที่ผ่านความเป็นไปได้และพูดว่า "เทคนิคที่ดี A ใช้คุณสมบัติ X ได้ดีเทคนิค …
76 box2d  physics  input 

5
โลก 'ถิ่นทุรกันดาร' ที่สร้างขึ้นขนาดใหญ่
ฉันแน่ใจว่าคุณทุกคนรู้เกมเช่นป้อมปราการแคระ - ถิ่นทุรกันดารและแผ่นดินที่สร้างขึ้นขนาดใหญ่ บางสิ่งเช่นนี้นำมาจากบทความที่มีประโยชน์มากนี้ อย่างไรก็ตามฉันสงสัยว่าฉันจะใช้สิ่งนี้กับขนาดที่ใหญ่ขึ้นได้อย่างไร ขนาดของ Minecraft นั้นมาถึงใจแล้ว (ไม่ใช่ขนาด 8x ของพื้นผิวโลกใช่ไหม) Pseudo-infinite ฉันคิดว่าคำที่ดีที่สุดจะเป็น บทความพูดถึงเสียงเพอร์ลินเศษส่วน ฉันไม่มีทางเป็นผู้เชี่ยวชาญในเรื่องนี้ แต่ฉันได้รับความคิดทั่วไป (มันเป็นเสียงที่สร้างขึ้นแบบสุ่มซึ่งมีลักษณะกึ่งกันดังนั้นจึงไม่ใช่แค่ค่าพิกเซลแบบสุ่ม) ฉันสามารถกำหนดขอบเขต X โดย X ในขนาดเพิ่มสิ่งที่ประเภทโหลดภูมิภาคบางส่วนและมีเสียงหนึ่งบิตสร้างภูมิภาค แต่สิ่งนี้จะส่งผลให้เกิดหมู่เกาะจำนวนมาก ในอีกด้านหนึ่งฉันไม่คิดว่าฉันจะสามารถสร้างเสียงเพอร์ลินซึ่งมีมวลมหาศาลได้ และมันจะเป็นแค่เกาะใหญ่ที่ฉันคิดว่า ฉันค่อนข้างมั่นใจว่าเสียงเพอร์ลินหรือเสียงรบกวนจะเป็นคำตอบในทางใดทางหนึ่ง ฉันหมายถึงแผนที่ดูดีจริงๆ และคุณสามารถแทนที่ ascii ด้วยกระเบื้องและดูสิ่งที่สวยงามมาก

6
ฉันจะเพิ่มประสิทธิภาพโลก Minecraft-esque voxel ได้อย่างไร?
ฉันพบว่าโลกขนาดใหญ่ที่ยอดเยี่ยมของ Minecraft นั้นช้ามากในการนำทางแม้ว่าจะใช้ Quad-Core และกราฟิกการ์ดเนื้อ ฉันถือว่าความเชื่องช้าของ Minecraft มาจาก: Java เนื่องจากการแบ่งพาร์ติชันและการจัดการหน่วยความจำเร็วขึ้นในภาษา C ++ การแบ่งพาร์ติชันที่อ่อนแอของโลก ฉันอาจผิดทั้งสองข้อ อย่างไรก็ตามนี่ทำให้ฉันคิดถึงวิธีที่ดีที่สุดในการจัดการโลก voxel ขนาดใหญ่ มันเป็นโลก 3 มิติจริงที่บล็อกสามารถอยู่ในส่วนใดของโลกก็เป็นพื้นอาร์เรย์ใหญ่ 3D [x][y][z]ซึ่งแต่ละบล็อกในโลกที่มีประเภท (เช่นBlockType.Empty = 0, BlockType.Dirt = 1ฯลฯ ) ฉันคิดว่าเพื่อให้โลกประเภทนี้ทำงานได้ดีคุณจะต้อง: ใช้ต้นไม้ที่มีความหลากหลาย ( oct / kd / bsp ) เพื่อแยกลูกบาศก์ทั้งหมดออก ดูเหมือนว่า oct / kd จะเป็นตัวเลือกที่ดีกว่าเนื่องจากคุณสามารถแบ่งพาร์ติชันในระดับต่อคิวบ์ไม่ใช่ระดับต่อสามเหลี่ยม ใช้อัลกอริทึมบางอย่างเพื่อหาว่าบล็อกใดที่สามารถเห็นได้ในปัจจุบันเนื่องจากบล็อกที่อยู่ใกล้กับผู้ใช้มากขึ้นอาจทำให้บล็อกยุ่งเหยิง ทำให้วัตถุบล็อกมีน้ำหนักเบาดังนั้นจึงเป็นการเพิ่มและนำออกจากต้นไม้ได้อย่างรวดเร็ว ฉันเดาว่าไม่มีคำตอบที่ถูกต้องสำหรับเรื่องนี้ แต่ฉันสนใจที่จะเห็นความคิดเห็นของประชาชนในเรื่องนี้ คุณจะปรับปรุงประสิทธิภาพในโลก voxel …

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

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

5
การอัพเดทเรนเดอร์อิสระในเกมลูปคืออะไร?
มีบทความหนังสือและการอภิปรายมากมายในลูปเกม อย่างไรก็ตามฉันมักเจอสิ่งนี้: while(running) { processInput(); while(isTimeForUpdate) { update(); } render(); } สิ่งที่ทำให้ฉันรำคาญใจเกี่ยวกับวิธีการนี้คือการแสดงผลแบบ "ปรับปรุงอิสระ" เช่นสร้างเฟรมเมื่อไม่มีการเปลี่ยนแปลงเลย ดังนั้นคำถามของฉันคือทำไมวิธีการนี้มักถูกสอน

4
ขั้นตอน…บ้านพร้อมห้องกำเนิด
ฉันได้ดูอัลกอริธึมและบทความเกี่ยวกับขั้นตอนการสร้างดันเจี้ยน ปัญหาคือฉันพยายามสร้างบ้านที่มีห้องและพวกเขาดูเหมือนจะไม่ตรงกับความต้องการของฉัน สำหรับหนึ่งดันเจี้ยนมีทางเดินที่บ้านมีห้องโถง และในตอนแรกพวกเขาอาจดูเหมือนกัน แต่โถงไม่มีอะไรมากไปกว่าพื้นที่ที่ไม่ใช่ห้องพักในขณะที่ทางเดินได้รับการออกแบบมาเป็นพิเศษเพื่อเชื่อมต่อพื้นที่หนึ่งไปยังอีกพื้นที่หนึ่ง ความแตกต่างที่สำคัญอีกประการหนึ่งของบ้านก็คือคุณมีความกว้างและความสูงที่เฉพาะเจาะจงและคุณต้องเติมสิ่งทั้งปวงด้วยห้องและห้องโถงในขณะที่ในคุกใต้ดินนั้นมีพื้นที่ว่างเปล่า ฉันคิดว่าห้องโถงในบ้านเป็นสิ่งที่อยู่ระหว่างทางเดินดันเจี้ยน (พาคุณไปที่ห้องอื่น) และพื้นที่ว่างในคุกใต้ดิน (มันไม่ได้กำหนดไว้ในรหัสอย่างชัดเจน) โดยเฉพาะอย่างยิ่งข้อกำหนดคือ: มีชุดของห้องที่กำหนดไว้ล่วงหน้า ฉันไม่สามารถสร้างกำแพงและประตูได้ในทันที ห้องสามารถหมุนได้ แต่ไม่สามารถปรับขนาดได้ อีกเพราะฉันมีชุดห้องที่กำหนดไว้ล่วงหน้าฉันสามารถหมุนได้เท่านั้นไม่ปรับขนาด ขนาดของบ้านถูกตั้งค่าและจะต้องเต็มไปด้วยห้อง (หรือห้องโถง) ฉันต้องการเติมบ้านขนาด 14x20 ด้วยห้องว่างเพื่อให้แน่ใจว่าไม่มีพื้นที่ว่าง นี่คือภาพบางส่วนที่จะทำให้ชัดเจนยิ่งขึ้น: อย่างที่คุณเห็นในบ้าน "พื้นที่ว่าง" ยังคงเดินได้และทำให้คุณจากห้องหนึ่งไปอีกห้องหนึ่ง ดังนั้นเมื่อพูดทั้งหมดนี้บางทีบ้านอาจเป็นเพียงคุกใต้ดินที่อัดแน่นจริงๆกับทางเดิน หรือมันเป็นอะไรที่ง่ายกว่าดันเจี้ยน อาจมีบางอย่างที่นั่นและฉันไม่พบเพราะฉันไม่รู้ว่าจะค้นหาอะไร ที่นี่ฉันต้องการความช่วยเหลือของคุณ: คุณช่วยชี้วิธีออกแบบอัลกอริทึมนี้ให้ฉันได้ไหม มีความคิดเห็นเกี่ยวกับขั้นตอนอะไรบ้าง? หากคุณสร้างตัวสร้างดันเจี้ยนคุณจะดัดแปลงมันให้เหมาะกับความต้องการของฉันได้อย่างไร คุณสามารถเจาะจงหรือเจาะจงได้ตามใจชอบ ฉันกำลังมองหาสมองของคุณจริง ๆ

7
แหล่งข้อมูลที่ดีสำหรับการเรียนรู้ OpenGL สมัยใหม่ (3.0 หรือใหม่กว่า)? [ปิด]
ฉันสะดุดเมื่อค้นหาทรัพยากรที่ดีเพื่อเริ่มต้นด้วย OpenGL (3.0 หรือใหม่กว่า) ฉันพบหนังสือจำนวนมาก แต่ไม่มีเลยที่จะถือว่าเป็นทรัพยากรที่ดี! ที่นี่สองตัวอย่าง: คู่มือการเขียนโปรแกรม OpenGL (ฉบับที่ 7) http://www.amazon.com/exec/obidos/ASIN/0321552628/khongrou-20 นี่คือเนื้อหาทั้งหมดที่คัดค้าน! เกือบทุกบทเริ่มต้นด้วยหมายเหตุเกี่ยวกับเรื่องนั้น OpenGL Superbible (5th Edition) http://www.amazon.com/exec/obidos/ASIN/0321712617/khongrou-20 หนังสือเล่มนี้ใช้ไลบรารีที่สร้างโดยผู้เขียนเพื่ออธิบายข้อโต้แย้งหลักซ่อนสิ่งที่คุณต้องการเรียนรู้! ฉันไม่ต้องการเรียนรู้วิธีใช้ห้องสมุดของคุณ! ฉันต้องการเรียนรู้ OpenGL! ฉันหวังว่าคุณจะเข้าใจว่านี่ไม่ใช่คำถามเดียวกันเช่น "เฮ้ฉันไม่สามารถใช้ Google ... บอกวิธีการเรียนรู้ OpenGL" ฉันเพิ่งค้นหาแบบเต็มและลึก แต่ฉันไม่สามารถหาแหล่งข้อมูลที่ดีและสมบูรณ์เพื่อเรียนรู้ OpenGL "ใหม่" ที่หลีกเลี่ยงหัวข้อที่เลิกใช้แล้ว ใครบางคนสามารถมุ่งหน้าฉันไปในทิศทางที่ถูกต้อง? ฉันรู้ว่า C ++ และฉันมีประสบการณ์ 10 ปีในการพัฒนา ... ฉันสามารถหาแหล่งข้อมูลที่ดีได้ที่ไหน ฉันต้องการใช้เวลากับมันและฉันต้องการเรียนรู้อย่างลึกซึ้ง
73 opengl  assets 

6
จะเขียนเกมเครือข่ายได้อย่างไร? [ปิด]
จากเหตุผลที่ว่าทำไมการพัฒนา MMO จึงเป็นเรื่องยาก : การพัฒนาเกมผ่านเครือข่ายนั้นไม่สำคัญ มีอุปสรรคขนาดใหญ่ที่ต้องเอาชนะไม่เพียง แต่แฝงอยู่เท่านั้น แต่ยังป้องกันการโกงการจัดการของรัฐและการทำโหลดบาลานซ์ด้วย หากคุณไม่มีประสบการณ์ในการเขียนเกมบนเครือข่ายนี่จะเป็นการฝึกการเรียนรู้ที่ยาก ฉันรู้ทฤษฎีเกี่ยวกับซ็อกเก็ตเซิร์ฟเวอร์ลูกค้าโปรโตคอลการเชื่อมต่อและสิ่งต่าง ๆ ตอนนี้ฉันสงสัยว่าจะเรียนรู้วิธีการเขียนเกมเครือข่ายได้อย่างไร: วิธีการสมดุลปัญหาโหลด? วิธีจัดการสถานะเกม ทำอย่างไรให้ซิงโครไนซ์กัน? วิธีการป้องกันการสื่อสารและลูกค้าจากวิศวกรรมย้อนกลับ? วิธีแก้ไขปัญหาความล่าช้า สิ่งใดที่ควรคำนวณภายในเครื่องและสิ่งใดบนเซิร์ฟเวอร์ ... มีหนังสือบทแนะนำเว็บไซต์บทความที่น่าสนใจหรือคำถามอื่น ๆ เกี่ยวกับเรื่องนี้หรือไม่? ฉันกำลังมองหาคำตอบที่กว้าง แต่คำตอบที่เฉพาะเจาะจงก็ดีเกินไปที่จะเรียนรู้ความแตกต่าง

9
ง่ายต่อการใช้เอนจิ้น 3D ข้ามแพลตฟอร์มสำหรับการพัฒนาเกม C ++? [ปิด]
ฉันต้องการลองเขียนเกม 3 มิติ อย่างไรก็ตามฉันไม่ต้องการที่จะเริ่มต้นที่ระดับต่ำของการวาดรูปสามเหลี่ยมแต่ละตัวและการเขียนวัตถุ 3 มิติของตัวเองและอื่น ๆ ฉันได้ยินสิ่งต่าง ๆ เช่นIrrlicht , Crystal Space 3DและCafuแต่ฉันไม่มีประสบการณ์ใด ๆ เลย ฉันกำลังมองหาคำแนะนำจากผู้ที่มีประสบการณ์กับเครื่องมือเหล่านี้หรือเครื่องมืออื่น ๆ ที่เขียนได้ดีและเริ่มต้นใช้งานได้ง่ายโดยไม่ต้องเรียนรู้ทฤษฎีคณิตศาสตร์ 3 มิติจำนวนมากและวิธีการทำงานของ GPU ภายใน
73 c++  3d  cross-platform 

11
ฉันจะกำหนดความต้องการฮาร์ดแวร์ / ซอฟต์แวร์ขั้นต่ำของเกมได้อย่างไร
เมื่อฉันพัฒนามันขึ้นมาคนเดียวฉันมีทรัพยากรที่ จำกัด เพียงอย่างเดียวคือพีซีหนึ่งเครื่องที่ฉันพัฒนาและทดสอบเกม ดังนั้นฉันจึงรู้ว่าเกมของฉันใช้งานได้กับการตั้งค่านั้นเท่านั้น ฉันมีตัวเลือกอะไรในการทดสอบเกมเกี่ยวกับการผสมผสานฮาร์ดแวร์ / ระบบปฏิบัติการที่ต่างกัน มันเป็นเกมบนเดสก์ท็อป windows

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

6
ทำไมเกม RPG ทำให้คุณรู้ว่าต้องใช้ XP ระดับเท่าไหร่?
ฉันอ่านบทความนี้เรียกว่าBehavioral Game Designและมันบอกว่า: ... เราจะทำให้ผู้เล่นรักษาอัตรากิจกรรมที่สม่ำเสมอได้อย่างไร ... คำตอบคือตารางอัตราส่วนตัวแปรซึ่งแต่ละคำตอบมีโอกาสที่จะให้รางวัล RPGs (ฉันกำลังคิดถึง JRPG ดั้งเดิมเช่น Final Fantasy 1-6) อย่าทำเช่นนี้เมื่อพูดถึงการเพิ่มระดับตัวละคร คุณสามารถหยุดเกมชั่วคราวและดูว่า XP คุณต้องเพิ่มระดับอีกครั้ง ฉันไม่เคยเล่น WoW มาก่อน แต่ฉันสงสัยว่ามันจะช่วยให้คุณรู้ว่าคุณต้องเพิ่มระดับ XP ด้วยเช่นกัน ใน WoW มีตัวอย่างมากมายของ "ตารางอัตราส่วนตัวแปร" ที่อื่นในเกมดังนั้นทำไมไม่เป็นเช่นนั้นกับ XP ที่คุณต้องการเพิ่มระดับ? ฉันสงสัยว่านักออกแบบเกมมืออาชีพส่วนใหญ่รู้บทเรียนในบทความนี้ เหตุใดจึงเป็นเรื่องปกติสำหรับ XP ที่คุณต้องการให้เป็นที่รู้จักในระดับต่อไป พวกเขาสามารถออกแบบเกมเพื่อให้เป็นแบบสุ่มโดยที่คุณไม่เคยรู้เลยว่ามีศัตรูกี่คนที่คุณต้องฆ่าในระดับต่อไป เหตุใดพวกเขาจึงไม่ใช้สิ่งนี้เป็นโอกาสที่จะได้ "กำหนดการอัตราส่วนตัวแปร"?

1
ฉันจะสร้าง "พื้นผิวเปียก" / "แอ่งน้ำตื้น" ใน Unity ได้อย่างไร
ในเกมของฉันฉันต้องสร้างแอ่งน้ำแบบไดนามิก แต่ฉันไม่สามารถหาบทช่วยสอนที่แสดงให้เห็นว่าฉันสามารถสร้างเอฟเฟกต์ได้อย่างไร (ตัวอย่างที่แสดงด้านล่าง) ฉันจะทำมันได้อย่างไร

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