การพัฒนาเกม

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

7
การทดสอบอัตโนมัติในการพัฒนาเกมเป็นเรื่องธรรมดาแค่ไหน? [ปิด]
นักพัฒนาเกมเมอร์ใช้ในการเขียนการทดสอบหน่วยและการรวม? มันเป็นเรื่องธรรมดาในหมู่นักพัฒนาปริศนา? และในบรรดานักพัฒนาซอฟต์แวร์ MMORPG และ FPS (ฉันไม่มีพื้นฐานในการพัฒนาเกมและฉันไม่คิดเกี่ยวกับการทำงาน - มันเป็นเพียงข้อสงสัยที่เกิดขึ้นกับฉันดังนั้นไม่จำเป็นต้องพยายามโน้มน้าวให้ฉันเขียนพวกเขาแม้ว่าฉันจะชอบเขียนแบบทดสอบอัตโนมัติ )

7
ฉันจะปรับปรุงความเร็วการเรนเดอร์ของเกมประเภท Voxel / Minecraft ได้อย่างไร?
ฉันกำลังเขียนโคลนของ Minecraft เอง (เขียนด้วยภาษาจาวา) มันใช้งานได้ดีในขณะนี้ ด้วยระยะการดู 40 เมตรฉันสามารถกด 60 FPS บน MacBook Pro 8,1 ได้อย่างง่ายดาย (Intel i5 + Intel HD Graphics 3000) แต่ถ้าฉันวางระยะทางในการมองที่ 70 เมตรฉันจะไปถึง 15-25 FPS ใน Minecraft ตัวจริงฉันสามารถใส่ความไม่ลงรอยกันในการมองไกล (= 256m) ได้โดยไม่มีปัญหา ดังนั้นคำถามของฉันคือฉันควรทำอย่างไรเพื่อทำให้เกมของฉันดีขึ้น? การเพิ่มประสิทธิภาพที่ฉันใช้: เก็บเฉพาะชิ้นส่วนในหน่วยความจำเท่านั้น (ขึ้นอยู่กับระยะการมองของผู้เล่น) Frustum culling (ครั้งแรกบนชิ้นแล้วบนบล็อก) วาดเฉพาะใบหน้าที่มองเห็นได้จริงๆของบล็อกเท่านั้น ใช้รายการต่ออันที่มีบล็อกที่มองเห็นได้ ส่วนที่มองเห็นได้จะเพิ่มเข้าไปในรายการนี้ หากพวกเขากลายเป็นล่องหนพวกเขาจะถูกลบออกจากรายการนี้โดยอัตโนมัติ บล็อกกลายเป็น (ใน) มองเห็นได้โดยการสร้างหรือทำลายบล็อกเพื่อนบ้าน การใช้รายการต่ออันประกอบด้วยบล็อกการปรับปรุง กลไกเดียวกับรายการบล็อกที่มองเห็นได้ ใช้newคำสั่งแทบไม่มีในลูปเกม …

6
เป็นไปได้ถูกต้องตามกฎหมายที่จะสร้างโคลนของเกมหรือไม่?
ด้วยเกมกระดานเช่น "Monopoly", "Domino", "Checkers" หรือ "Chess" ผู้พัฒนาเกมสามารถทำโคลนนิ่งและขายได้หรือไม่ ฉันสามารถสร้างเกม ZX Spectrum ได้หรือไม่? มีหลายส่วนของเกมที่สามารถทำเช่นเดียวกันได้หรือไม่?
35 legal 

5
ใน 2D ฉันจะหาวัตถุที่ใกล้ที่สุดถึงจุดได้อย่างมีประสิทธิภาพได้อย่างไร
ฉันมีเอ็นจิ้นเกมขนาดใหญ่และฉันต้องการคุณสมบัติในการค้นหาจุดที่ใกล้ที่สุด ฉันสามารถใช้ทฤษฎีบทพีทาโกรัสในการค้นหาแต่ละระยะทางและเลือกหนึ่งขั้นต่ำ แต่นั่นต้องใช้การวนซ้ำทั้งหมด ฉันยังมีระบบการชนกันโดยที่ฉันจะเปลี่ยนวัตถุให้เป็นวัตถุขนาดเล็กบนกริดที่เล็กกว่า (เช่น minimap) และถ้าวัตถุมีอยู่ในกริดสเปซเดียวกันฉันจะตรวจสอบการชนกัน ฉันสามารถทำได้เพียงทำให้ระยะห่างของกริดใหญ่ขึ้นเพื่อตรวจสอบความใกล้ชิด (แทนที่จะตรวจสอบทุก ๆ ออบเจ็กต์) อย่างไรก็ตามมันจะทำการเซ็ตอัพเพิ่มเติมในคลาสฐานของฉัน มันคุ้มหรือไม่ มีบางสิ่งที่มีประสิทธิภาพและแม่นยำฉันสามารถใช้เพื่อตรวจจับวัตถุใดที่อยู่ใกล้ที่สุดโดยอิงจากรายการคะแนนและขนาด
35 c++  2d  algorithm  vector  picking 

13
สร้างเอฟเฟกต์เสียงได้อย่างไร? [ปิด]
เพื่อนของฉันและฉันกำลังจะจบเกมแรกของเราในตอนนี้และฉันเพิ่งค้นพบว่าแม้ว่าเขาจะสามารถสร้างแทร็กเพลงที่ดีได้ แต่เขาก็ไม่รู้ว่าจะทำเอฟเฟกต์เสียงได้อย่างไร ตัวอย่างเช่นการระเบิด สร้างเอฟเฟกต์เสียงได้อย่างไร?
35 sound 

11
กลยุทธ์ในการเอาชนะ Editors ความจำสำหรับโกง - เกมบนเดสก์ท็อป [ปิด]
ฉันสมมติว่าเรากำลังพูดถึงเกมเดสก์ท็อปซึ่งเป็นสิ่งที่ผู้เล่นดาวน์โหลดและเล่นบนคอมพิวเตอร์ในพื้นที่ หลายคนเป็นบรรณาธิการหน่วยความจำที่ให้คุณตรวจจับและตรึงค่าเช่นสุขภาพของผู้เล่นของคุณ คุณจะป้องกันการโกงผ่านการปรับเปลี่ยนหน่วยความจำได้อย่างไร กลวิธีใดที่มีประสิทธิภาพในการต่อสู้กับการโกงแบบนี้? สำหรับการอ้างอิงฉันรู้ว่าผู้เล่นสามารถ: - ค้นหาบางสิ่งบางอย่างตามค่าหรือช่วง - ค้นหาสิ่งที่เปลี่ยนค่า - ตั้งค่าหน่วยความจำ - ตรึงค่าหน่วยความจำ ฉันกำลังมองหาสิ่งที่ดี ฉันสองคนใช้นั่นคือปานกลางคือ: แสดงค่าเป็นเปอร์เซ็นต์แทนที่จะเป็นตัวเลข (เช่น 46/50 = ความสมบูรณ์ 92%) คลาสระดับต่ำที่เก็บค่าไว้ในอาร์เรย์และย้ายไปพร้อมกับการเปลี่ยนแปลงแต่ละครั้ง (ตัวอย่างเช่นแทนที่จะเป็น int ฉันมีคลาสที่เป็นอาร์เรย์ของ ints และเมื่อใดก็ตามที่การเปลี่ยนแปลงค่าฉันจะใช้รายการอาร์เรย์ที่แตกต่างกันที่สุ่มเลือกไว้เพื่อเก็บค่า) เกมออฟไลน์ฟรีและเล่นคนเดียว แก้ไข:สำหรับลูกหลานฉันแก้ไขปัญหานี้ (ใน C #) และโพสต์โซลูชันของฉันที่นี่ในบล็อกของฉัน
35 anti-cheat 

9
ฉันชอบ C / C ++ มากกว่า Unity และเครื่องมืออื่น ๆ : มันใหญ่เกินไปสำหรับนักพัฒนาเกมหรือไม่? [ปิด]
เรามีโครงการเกมขนาดใหญ่ที่ใช้ Unity ที่โรงเรียน พวกเรา 12 คนกำลังทำงานอยู่ ครูของฉันดูเหมือนจะมั่นใจว่าเป็นเครื่องมือที่สำคัญในการสอนนักเรียนเพราะมันทำให้นักเรียนดูจากระดับสูงถึงระดับล่าง ฉันสามารถเข้าใจมุมมองของเขาและฉันสงสัยว่า: ความสามัคคีเป็นเครื่องมือสำคัญใน บริษัท พัฒนาเกมหรือไม่? มี บริษัท มากมายที่ใช้มันเพราะพวกเขาไม่สามารถใช้อย่างอื่นได้หรือไม่? เขาพูดเหมือน Unity เป็นผู้เล่นที่ยิ่งใหญ่ในการทำเกม แต่ฉันเห็นว่าเหมาะสมกับ บริษัท เกมอินดี้เล็ก ๆ ที่ต้องการทำเกมให้เร็วที่สุด คุณคิดว่าความสามัคคีมีความสำคัญมากในอุตสาหกรรมนี้หรือไม่? เป็นอันตรายต่อคุณค่าของทักษะ C ++ หรือไม่ ไม่ใช่ว่าฉันไม่ชอบ Unity แต่เพียงว่าฉันไม่ได้เรียนรู้อะไรเลยฉันชอบที่จะทำตามขั้นตอนเล็กน้อยกับ Ogre หรือ SFML แทน นอกจากนี้เรายังมีแบบฝึกหัดฝึกฝน C ++ ด้วย แต่สิ่งเหล่านี้เป็นเพียงการฝึกฝนทางทฤษฎีไม่มีอะไรมาก
35 unity 

11
วิธีที่ดีที่สุดในการหลีกเลี่ยงปัญหาบอดสีคืออะไร?
ผู้ชายประมาณ 5-10% มีอาการตาบอดสีบางรูปแบบ อะไรคือวิธีที่ดีที่สุดในการรับรองว่าคุณจะไม่ผละ 5-10% ของประชากรชายจากเกมของคุณ? การสังเกตความตาบอดสีไม่ได้หมายความว่าผู้คนจะเห็นเป็นขาวดำ มันมักจะหมายความว่าพวกเขาเห็นสีเขียวน้อยลงและสับสนแดง / เขียวได้ง่าย ความตาบอดสีมาเป็นองศา บางรูปแบบไม่รุนแรงบางแบบสุดขั้ว

9
เครื่องมือสำหรับการสร้างแผนที่แบบ 2d tile [ปิด]
เครื่องมืออะไรบ้างที่ฉันสามารถใช้เพื่อสร้างแผนที่แบบ 2d ได้ โปรดระบุข้อมูลด้านล่างและพยายาม จำกัด เพียงหนึ่งเครื่องมือต่อหนึ่งคำตอบ ชื่อ เชื่อมโยงไปยังเว็บไซต์ คุณสมบัติทั่วไป รูปแบบการส่งออก สิ่งอื่นใดที่คุณเห็นว่าสำคัญ
35 tools 

9
ใน Unity ฉันจะใช้รูปแบบซิงเกิลได้อย่างถูกต้องได้อย่างไร?
ฉันได้เห็นวิดีโอและแบบฝึกหัดหลายประการสำหรับการสร้างวัตถุเดี่ยวใน Unity ซึ่งส่วนใหญ่เป็น a GameManagerซึ่งดูเหมือนจะใช้วิธีการต่าง ๆ ในการสร้างอินสแตนซ์และตรวจสอบความถูกต้องของซิงเกิล มีวิธีที่ถูกต้องหรือค่อนข้างที่ต้องการในการนี ตัวอย่างหลักสองอย่างที่ฉันพบคือ: เป็นครั้งแรก public class GameManager { private static GameManager _instance; public static GameManager Instance { get { if(_instance == null) { _instance = GameObject.FindObjectOfType<GameManager>(); } return _instance; } } void Awake() { DontDestroyOnLoad(gameObject); } } ที่สอง public class GameManager { private static …

5
การวาดกระเบื้องจำนวนมากด้วย OpenGL วิธีการที่ทันสมัย
ฉันกำลังทำงานกับเกมพีซีที่มีไทล์ / สไปรต์กับทีมงานของผู้คนและเรากำลังประสบกับปัญหาด้านประสิทธิภาพ ครั้งสุดท้ายที่ฉันใช้ OpenGL คือประมาณปี 2004 ดังนั้นฉันจึงสอนตัวเองถึงการใช้โปรไฟล์หลักและฉันรู้สึกสับสนเล็กน้อย ฉันต้องวาดในบริเวณใกล้เคียงของกระเบื้อง 250-750 48x48 ไปที่หน้าจอทุกเฟรมรวมทั้งอาจจะประมาณ 50 สไปรต์ ไทล์เปลี่ยนเฉพาะเมื่อโหลดระดับใหม่และสไปรต์กำลังเปลี่ยนแปลงอยู่ตลอดเวลา กระเบื้องบางชิ้นประกอบไปด้วยชิ้นส่วน 24x24 สี่ชิ้นและส่วนใหญ่ (แต่ไม่ทั้งหมด) ของสไปรต์มีขนาดเท่ากับกระเบื้อง กระเบื้องและสไปรท์จำนวนมากใช้การผสมอัลฟา ตอนนี้ฉันกำลังทำทั้งหมดนี้ในโหมดเร่งด่วนซึ่งฉันรู้ว่าเป็นความคิดที่ไม่ดี เหมือนกันเมื่อสมาชิกในทีมของเราพยายามเรียกใช้เขาจะได้รับอัตราเฟรมที่ไม่ดีมาก (~ 20-30 fps) และมันแย่กว่ามากเมื่อมีไทล์มากขึ้นโดยเฉพาะอย่างยิ่งเมื่อไทล์เหล่านั้นเป็นแบบนั้น ถูกตัดเป็นชิ้น ๆ ทั้งหมดนี้ทำให้ฉันคิดว่าปัญหาคือจำนวนการเรียกสายที่กำลังทำอยู่ ฉันคิดถึงวิธีแก้ปัญหาที่เป็นไปได้สองสามอย่างนี้ แต่ฉันต้องการเรียกใช้พวกเขาโดยบางคนที่รู้ว่าพวกเขากำลังพูดถึงอะไรฉันจึงไม่เสียเวลากับเรื่องโง่ ๆ : กระเบื้อง: เมื่อมีการโหลดเลเวลให้วาดไทล์ทั้งหมดลงในบัฟเฟอร์เฟรมที่แนบกับพื้นผิวที่มีขนาดใหญ่และเพียงแค่วาดสี่เหลี่ยมขนาดใหญ่ที่มีพื้นผิวนั้นติดอยู่ทุกเฟรม ใส่กระเบื้องทั้งหมดลงในบัฟเฟอร์จุดสุดยอดแบบคงที่เมื่อโหลดระดับและวาดพวกเขาในแบบนั้น ฉันไม่รู้ว่ามีวิธีการวาดวัตถุที่มีพื้นผิวแตกต่างกันด้วยการเรียกใช้ glDrawElements เพียงครั้งเดียวหรือไม่หรือถ้านี่คือสิ่งที่ฉันต้องการจะทำ อาจจะแค่ใส่กระเบื้องทั้งหมดลงในพื้นผิวยักษ์ใหญ่และใช้พิกัดพื้นผิวตลกใน VBO sprites: วาดเทพดาแต่ละอันด้วยการเรียกแยกต่างหากไปยัง glDrawElements ดูเหมือนว่าจะเกี่ยวข้องกับการสลับพื้นผิวมากมายซึ่งฉันบอกว่าไม่ดี อาเรย์พื้นผิวอาจมีประโยชน์ที่นี่? ใช้ VBO แบบไดนามิกอย่างใด …
35 opengl 

9
อะไรคือความแตกต่างระหว่าง HUD และ GUI ในเกม?
ไม่มีใครทราบถึงความแตกต่างระหว่างกราฟิก HUD (แสดงผลส่วนหัว) และ GUI (ส่วนต่อประสานกราฟิกผู้ใช้) ในเกมหรือไม่? เป็นส่วนหนึ่งของ HUD ของ GUI และเพิ่งแสดงข้อมูลหรือไม่? นั่นหมายความว่าฉันไม่สามารถโต้ตอบกับ HUD ได้ในขณะที่ฉันสามารถใช้ GUI (เช่นการคลิกปุ่ม) ได้หรือไม่ หรือทั้งสองคำโดยทั่วไปอธิบายสิ่งเดียวกันหรือไม่ หมายเหตุ: ฉันกำลังพูดถึงคำเหล่านี้ในขณะที่กำลังเล่นเกม ดูตัวอย่างต่อไปนี้: อะไรจะอธิบายเป็น GUI ในภาพนี้และอะไรเป็น HUD
34 gui  terminology  hud 

6
เหตุใดเกมจึงไม่เผยแพร่ด้วย Map Editors
15 ปีที่แล้วในปี 2002 Warcraft 3เปิดตัว นอกเหนือจากการเป็นเกม RTS ที่ยอดเยี่ยมแล้วมันยังมีชีวิตอยู่นานหลายปีที่ผ่านมาเนื่องจากส่วนใหญ่เป็น World Editor ซึ่งเป็น Map Editor ระดับอุตสาหกรรมที่มีฟังก์ชั่นการใช้งานครบถ้วน มันนำไปสู่การสร้างแผนที่ที่กำหนดเองหลายล้านรายการภาพยนตร์แคมเปญและ MobAs แรก มีเพียงไม่กี่ บริษัท ที่ปล่อยบรรณาธิการของตัวเองพร้อมกับเกมของพวกเขาตั้งแต่นั้นมา แม้แต่ Blizzard ก็ไม่ได้ทำมันอีกครั้งด้วยการเปิดตัว Starcraft ใหม่ (เวอร์ชั่นที่วางจำหน่ายในที่สุดก็ไม่ได้ทรงพลังเท่ากับวอร์คราฟต์) อย่างที่เราเห็นจากประวัติศาสตร์บางสิ่งที่ดูน่าสนใจอย่างนี้อาจยืดอายุการใช้งานของเกมได้อย่างมาก เหตุใดนักพัฒนาซอฟต์แวร์จึงไม่ปล่อย World Editors ที่พวกเขาใช้ร่วมกับเกมของพวกเขา

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

2
ฉันจะทำให้ตัวละครสามารถเดินบนกำแพงได้อย่างไร
ฉันพยายามทำให้ตัวละครเคลื่อนไหวเหมือนแมงมุม: เนื่องจากความชันที่เพิ่มขึ้นซึ่งโดยปกติแล้วลูกบอลจะไม่สามารถม้วนตัวได้แมงมุมจะคลานช้า ๆ ในทำนองเดียวกันได้รับแพลตฟอร์มกลางอากาศเป็นรูปสี่เหลี่ยมผืนผ้าแทนที่จะล้มลงเมื่อถึงขอบแมงมุมจะดำเนินต่อไปห่อรอบขอบและดำเนินการต่อไปด้านข้างแล้วด้านล่างของแพลตฟอร์ม (ในที่สุดเดินไปรอบ ๆ ขอบของแพลตฟอร์ม) ฉันได้ดูส่วนประกอบ Unity 2D ที่หลากหลายด้วยความสำเร็จเพียงเล็กน้อย :( ขอบเขตการชนในโลกส่วนใหญ่ของฉันถูกทำเครื่องหมายด้วยส่วนประกอบ Collider 2D (ซึ่งทำงานได้ดีกับลูกบอลง่าย ๆ ที่ได้รับผลกระทบจากแรงโน้มถ่วง แต่น้อยกว่าด้วยตัวละครแมงมุมนี้)

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