การพัฒนาเกม

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

3
ลองจับหรือ ifs สำหรับการจัดการข้อผิดพลาดใน C ++
มีการใช้ข้อยกเว้นกันอย่างแพร่หลายในการออกแบบเกมเอ็นจิ้นหรือมันจะดีกว่าถ้าใช้ข้อความล้วน ๆ ? ตัวอย่างเช่นมีข้อยกเว้น: try { m_fpsTextId = m_statistics->createText( "FPS: 0", 16, 20, 20, 1.0f, 1.0f, 1.0f ); m_cpuTextId = m_statistics->createText( "CPU: 0%", 16, 20, 40, 1.0f, 1.0f, 1.0f ); m_frameTimeTextId = m_statistics->createText( "Frame time: 0", 20, 20, 60, 1.0f, 1.0f, 1.0f ); m_mouseCoordTextId = m_statistics->createText( "Mouse: (0, 0)", 20, …

2
EA DICE สร้างสภาพแวดล้อมที่ทำลายล้างได้ใน Battlefield Bad Company 2 และ Battlefield 3 ได้อย่างไร [ปิด]
ผู้คนใน EA DICE สร้างสภาพแวดล้อมที่สามารถทำลายได้ใน Battlefield Bad Company 2 และ Battlefield 3 ได้อย่างไร พวกเขารวมตัวอาคารออกจากภูมิภาคย่อยที่กำหนดไว้ล่วงหน้าซึ่งแตกสลายเมื่อมีการระเบิดหรือสิ่งที่คล้ายกัน? ฉันไม่สามารถคิดอย่างอื่นได้
30 physics 

10
ทำไมความเพียรถึงถึงจำเป็นต่อการออกแบบโร๊คไลค์?
Roguelikes และ roguelike-like ( Spelunky , The Binding of Isaac ) มีแนวโน้มที่จะแบ่งปันองค์ประกอบของการออกแบบเกม: โลกที่สร้างขึ้นตามขั้นตอน การเติบโตของตัวละครด้วยความสามารถและพลังใหม่ เสียชีวิตถาวร ฉันสามารถเข้าใจว่าทำไมการเริ่มต้นด้วย permadeath เป็นหลักฐานจะนำคุณไปสู่ความคิดอื่น ๆ : ถ้าคุณกำลังจะเริ่มต้นใหม่มากคุณจะต้องการความหลากหลายในประสบการณ์ของคุณ แต่ทำไมสององค์ประกอบแรกแสดงถึงวิธีการที่อนุญาต?

7
จุดเกราะมีจุดประสงค์อะไร
ฉันเคยเห็นช่างที่ฉันเรียกว่า "คะแนนเกราะ" ในหลาย ๆ เกม: Quake, Counter Strike และอื่น ๆ โดยทั่วไปในขณะที่ผู้เล่นมีคะแนนเกราะเหล่านี้เขาจะได้รับความเสียหายน้อยลง อย่างไรก็ตามพวกเขากระทำในลักษณะเดียวกันกับที่คะแนนสุขภาพทำ: คุณสูญเสียพวกเขาโดยรับความเสียหายดังกล่าว ทำไมคุณถึงออกแบบคุณสมบัติเช่นนี้? นี่เป็นเพียงแค่สุขภาพ 2.0 หรือฉันขาดอะไรไป? สำหรับฉันแล้วเกราะมีความหมายเฉพาะเช่นเกมสวมบทบาทซึ่งเป็นค่าคงที่ที่กำหนดความต้านทานของคุณ แต่ฉันไม่เห็นว่าทำไมจะต้องลดลงในระหว่างการต่อสู้

3
วิธีการนำการจัดการข้อความไปใช้อย่างเหมาะสมในระบบเอนทิตีที่อิงองค์ประกอบเป็นหลัก
ฉันกำลังใช้ชุดตัวเลือกของระบบเอนทิตีที่มี: ระดับ Entityที่มีน้อยกว่าประชาชนที่ผูกส่วนประกอบเข้าด้วยกัน กลุ่มของคลาสคอมโพเนนต์ที่ไม่มี "ตรรกะของคอมโพเนนต์" ซึ่งเป็นข้อมูลเท่านั้น กลุ่มของคลาสระบบ (aka "ระบบย่อย", "ผู้จัดการ") สิ่งเหล่านี้ทำการประมวลผลตรรกะเอนทิตีทั้งหมด ในกรณีพื้นฐานส่วนใหญ่ระบบจะทำซ้ำรายการของเอนทิตีที่พวกเขาสนใจและดำเนินการกับแต่ละรายการ วัตถุชั้น MessageChannelที่ใช้ร่วมกันโดยระบบเกมทั้งหมด แต่ละระบบสามารถสมัครสมาชิกเพื่อรับฟังข้อความบางประเภทและยังสามารถใช้ช่องทางในการส่งข้อความไปยังระบบอื่น ๆ ตัวแปรเริ่มต้นของการจัดการข้อความระบบมีดังนี้: เรียกใช้การอัปเดตในแต่ละระบบเกมตามลำดับ หากระบบทำบางสิ่งบางอย่างกับองค์ประกอบและการกระทำนั้นอาจเป็นที่สนใจของระบบอื่น ๆ ระบบจะส่งข้อความที่เหมาะสม (ตัวอย่างเช่นการเรียกระบบ messageChannel.Broadcast(new EntityMovedMessage(entity, oldPosition, newPosition)) เมื่อใดก็ตามที่มีการย้ายเอนทิตี) แต่ละระบบที่สมัครรับข้อความที่ระบุจะได้รับวิธีการจัดการข้อความ หากระบบกำลังจัดการเหตุการณ์และตรรกะการประมวลผลเหตุการณ์ต้องการข้อความอื่นที่จะเผยแพร่ข้อความจะได้รับการถ่ายทอดทันทีและวิธีการประมวลผลข้อความอีกสายหนึ่งถูกเรียก ตัวแปรนี้ก็โอเคจนกระทั่งฉันเริ่มปรับระบบตรวจจับการชนกันให้เหมาะสม (มันช้าลงจริงๆเมื่อจำนวนของเอนทิตีเพิ่มขึ้น) ในตอนแรกมันแค่วนซ้ำเอนทิตีแต่ละคู่โดยใช้อัลกอริทึมแรงเดรัจฉานอย่างง่าย จากนั้นฉันก็เพิ่ม "ดัชนีเชิงพื้นที่" ที่มีตารางของเซลล์ที่เก็บเอนทิตีที่อยู่ภายในพื้นที่ของเซลล์ที่เฉพาะเจาะจงจึงอนุญาตให้ทำการตรวจสอบเฉพาะเอนทิตีในเซลล์ข้างเคียง ทุกครั้งที่เอนทิตีย้ายระบบการชนจะตรวจสอบว่าเอนทิตีชนกับบางสิ่งในตำแหน่งใหม่หรือไม่ หากเป็นเช่นนั้นการชนจะได้รับการตรวจพบ และถ้าทั้งสองหน่วยงานชนกันเป็น "วัตถุทางกายภาพ" (ทั้งคู่มีองค์ประกอบ RigidBody และตั้งใจที่จะผลักกันออกไปเพื่อไม่ให้ครอบครองพื้นที่เดียวกัน) ระบบแยกตัวแข็งโดยเฉพาะขอให้ระบบการเคลื่อนไหวย้ายหน่วยงานไปบางส่วน ตำแหน่งเฉพาะที่จะแยกพวกเขา สิ่งนี้จะทำให้ระบบการเคลื่อนที่ส่งข้อความแจ้งเตือนเกี่ยวกับตำแหน่งเอนทิตีที่เปลี่ยนไป ระบบตรวจจับการชนหมายถึงการตอบสนองเพราะมันต้องการที่จะอัพเดทดัชนีอวกาศ ในบางกรณีมันทำให้เกิดปัญหาเนื่องจากเนื้อหาของเซลล์ (รายการทั่วไปของวัตถุเอนทิตีใน C #) …


11
ทางเลือกระบบ Game State?
เท่าที่ฉันจะบอกได้เกมส่วนใหญ่มี "ระบบสถานะเกม" บางอย่างที่สลับไปมาระหว่างรัฐเกมที่แตกต่างกัน สิ่งเหล่านี้อาจเป็น "Intro", "MainMenu", "CharacterSelect", "กำลังโหลด" และ "เกม" ในอีกด้านหนึ่งมันเหมาะสมอย่างยิ่งที่จะแยกสิ่งเหล่านี้ออกเป็นระบบรัฐ ท้ายที่สุดพวกเขาจะแตกต่างกันและจะต้องอยู่ในงบสวิตช์ขนาดใหญ่ซึ่งยุ่งเหยิงอย่างเห็นได้ชัด; และแน่นอนว่าพวกเขามีระบบรัฐที่ดี แต่ในเวลาเดียวกันฉันมองไปที่สถานะ "เกม" และสงสัยว่ามีบางอย่างผิดปกติเกี่ยวกับวิธีการของระบบรัฐนี้หรือไม่ เพราะมันเหมือนช้างอยู่ในห้อง มันมีขนาดใหญ่และชัดเจน แต่ก็ไม่มีใครถามถึงแนวทางของระบบเกม ฉันคิดว่าเกม "โง่" อยู่ในระดับเดียวกับ "เมนูหลัก" แต่ก็ไม่มีวิธีใดที่จะแยกรัฐ "เกม" ออก ระบบสถานะของเกมเป็นวิธีที่ดีที่สุดหรือไม่? มีเทคนิคที่แตกต่างและดีกว่าในการจัดการและดีกว่า "สถานะเกม" หรือไม่? มันโอเคไหมที่จะมีสถานะอินโทรที่วาดภาพยนตร์และฟังเพื่อป้อนจากนั้นสถานะโหลดที่ลูปบนตัวจัดการทรัพยากรและจากนั้นสถานะของเกมที่ทำทุกอย่างได้จริงหรือไม่ สิ่งนี้ดูเหมือนจะไม่สมดุลสำหรับคุณหรือไม่ ฉันพลาดอะไรไปรึเปล่า?

6
ข้อ จำกัด ที่ร้ายแรงที่สุดของ Unity คืออะไร [ปิด]
เมื่อได้อ่านคำถามที่ร้อนแรงเกี่ยวกับ Unity vs. UDK vs. ID บางอย่างฉันอยากรู้ว่า: อะไรคือข้อ จำกัดที่ซ้ำแล้วซ้ำอีกที่ทำให้หมดกำลังใจที่สุดของ Unity เพื่อที่จะทำให้คำถามนี้ไม่เป็นอัตนัยอีกครั้งฉันกำลังพูดถึงผู้กระทำผิดซ้ำกันบนของ Unity คือ นี่คือสิ่งที่ในฐานะผู้ใช้ Unity คุณต้องการมีคนบอกคุณก่อนเริ่มใช้งาน ฉันเคยได้ยินจากคนที่ Unity ไม่จัดการกับการควบคุมเวอร์ชันได้ดีเพราะมันสร้างไฟล์ไบนารีจำนวนมาก (ซึ่งไม่สามารถกระจายได้) สำหรับฉันนี่มันไม่ง่อยเลยจริง ๆ ขณะที่ฉันทำงานคนเดียว คิด?
30 unity 

7
การทำงานเป็นทีมในความสามัคคี
ฉันมีโปรเจ็กต์ Unity โดยไม่มีการควบคุมเวอร์ชันใด ๆ และฉันต้องการแชร์กับนักพัฒนาคนอื่นเพื่อให้เราทั้งคู่สามารถทำงานกับโปรเจ็กต์นี้ได้ ควรใช้กลยุทธ์ใดที่เล่นได้ดีกับสินทรัพย์ของ Unity

4
ค่าใช้จ่ายในการจัดจำหน่ายผ่านไอน้ำคือเท่าใด
เราอยู่ในช่วงพรีอัลฟาของโครงการพัฒนาเกมและยังไม่ได้รับคำตอบจาก Valve เกี่ยวกับวิธีการทำงานเพื่อเผยแพร่ผ่าน Steam เราต้องการข้อมูลนี้เพื่อทำโมเดลธุรกิจที่มีต้นทุนที่แตกต่างกันในการพัฒนาและเผยแพร่เกมนี้ ดังนั้นคำถามของฉันคือโครงสร้างราคาคืออะไร พวกเขาขายเปอร์เซ็นต์ของเราหรือไม่ ถ้าเป็นเช่นนั้นเท่าไหร่ ขอบคุณเฟลิกซ์
30 valve  costs  steam 

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

8
สร้างความสนใจที่แท้จริงของบุคคลในการเขียนโปรแกรมเกม
ฉันสอนหลักสูตรการเขียนโปรแกรมเกมระดับ 3, 4 ปี (วท.บ. สาขาการพัฒนาเกมคอมพิวเตอร์) เราพบว่านักเรียนใหม่และที่คาดหวังมักจะสร้างความสนใจและความสามารถในการเล่นเกมการออกแบบเกมและการเขียนโปรแกรมเกม (ฉันรู้ว่าชื่ออาจมีความเฉพาะเจาะจงมากขึ้นหรือเป็นคำอธิบาย แต่มีเหตุผลภายในที่ทำให้เราไม่สามารถเปลี่ยนได้) เรามีวันเปิดให้บริการเมื่อนักเรียนที่คาดหวังสามารถมาพูดคุยกับอาจารย์และนักศึกษาปัจจุบัน สิ่งนี้ส่งผลให้นักเรียนจำนวนมากลงทะเบียนโปรแกรมของเราที่พบว่าตนเองมีความสนใจและ / หรือความสามารถสอดคล้องกับระดับการศึกษาที่ตนเลือกผิด เรามีตัวเลือกสำหรับพวกเขาในการเปลี่ยนเมเจอร์ เราไม่มีตัวเลือกสำหรับนักเรียนที่ต้องการศิลปะหรือการออกแบบที่เกี่ยวข้องกับเกม ดังนั้นนักเรียนบางคนก็ติดมันเป็นเวลา 4 ปีที่ยากลำบาก / ไม่มีความสุขเพราะมันเป็นระดับที่ใกล้เคียงที่สุดสำหรับพวกเขาในการเล่นเกม เราร่างเนื้อหาของโปรแกรมในหนังสือชี้ชวนของเรา แต่นักเรียนที่เข้ามาส่วนใหญ่มีประสบการณ์การเขียนโปรแกรมเพียงเล็กน้อยดังนั้นชื่อเรื่องเช่นโครงสร้างข้อมูล, วิศวกรรมซอฟต์แวร์หรือกราฟิก 3D ไม่ได้มีความหมายมากนักสำหรับพวกเขา "ฉันไม่ได้คาดหวังว่าคณิตศาสตร์ในกราฟิก 3 มิติมากนักฉันคิดว่ามันจะเป็นเช่นการวาดภาพ ... " Is there any way to help establish a person's genuine interest in game programming, so that they can make a …
30 education 

6
มีการออกแบบวิดีโอเกมใดที่ใช้ตัวเลขสุ่มที่ไม่สม่ำเสมอในรูปแบบที่น่าสนใจหรือไม่
วิดีโอเกมที่หลากหลายใช้ตัวเลขที่กระจายอย่างสม่ำเสมอเพื่อตัดสินผลลัพธ์ของเหตุการณ์เช่น "โอกาส 50% ที่จะถูกโจมตี" มักจะหมายถึงการตรวจสอบว่าตัวเลขจุดลอยตัวแบบสุ่มจาก 0-1 มากกว่า 0.5 หรือไม่ เกมจำนวนมากจะเลเยอร์ไม่กี่เปอร์เซ็นต์ของชุดเหล่านี้ที่ด้านบนของแต่ละอื่น ๆ เช่น D&D Hit Roll เป็นตัวเลขที่กระจายอย่างสม่ำเสมอจาก 1-20 ยกเว้นว่า 1 และ 20 มีผลลัพธ์พิเศษ ในใจของฉันดูเหมือนว่าจะมีการเพิ่มการวิจารณ์ที่สำคัญโดยนักออกแบบเพื่อลองและเลียนแบบความจริงที่ว่าในความเป็นจริงการกดปุ่ม / หายไปหรือชนะ / แพ้นั้นไม่ได้เป็นผลลัพธ์ไบนารี ในหลายกรณีจำนวนชีวิตจริงของ "ความเสียหาย" ที่เกิดจากการโจมตีน่าจะใกล้เคียงกับการกระจายของเส้นโค้งเกาส์ / เบลซึ่งจำนวนมากส่งผลให้อยู่ตรงกลาง แต่เป็นช่วงเวลาที่น่าตื่นเต้นมาก เกมลูกเต๋าอย่าง Settlers of Catan จำลองการแจกแจงแบบเกาส์นด้วยการเพิ่มม้วนอิสระหลายชุดเข้าด้วยกัน แต่ฉันรู้สึกว่าฉันแทบไม่เคยเห็นกลไกนี้ในวิดีโอเกมเลย ดูเหมือนว่าเกมเช่น Civilization (Sid Meier พูดคุยกันอย่างกว้างขวางที่ GDC เกี่ยวกับการรับรู้ของผู้เล่นที่ไม่ตรงกับคณิตศาสตร์จริงที่ใช้ในเกม) จะได้รับประโยชน์จากผลลัพธ์ที่ตรงกับสิ่งที่ทำงานในโลกแห่งความจริง มีวิดีโอเกมใดบ้างที่ใช้การแจกแจงแบบเกาส์หรือแบบไม่สม่ำเสมอในรูปแบบตัวเลขที่น่าสนใจใช่ไหม

5
ฉันจะหลีกเลี่ยง "เกินไป" โชคดี / โชคไม่ดีในการสร้างเลขสุ่มได้อย่างไร
ขณะนี้ฉันกำลังจัดการกับระบบการต่อสู้แบบผู้เล่นหลายคนซึ่งความเสียหายที่ผู้เล่นทำนั้นจะถูกคูณด้วยปัจจัยสุ่มระหว่าง 0.8 และ 1.2 ในทางทฤษฎีการสุ่ม RNG อย่างแท้จริงในที่สุดอาจให้ผลจำนวนเดียวกันหลายครั้ง (ดูTetris ขึ้นเขียง ) ซึ่งอาจส่งผลในการแข่งขันที่ผู้เล่นจะได้เสมอทำให้เกิดความเสียหายสูงมากในขณะที่คนอื่น ๆ มักจะทำให้เกิดความเสียหายที่ต่ำมาก ฉันจะทำอย่างไรเพื่อให้แน่ใจว่าสิ่งนี้จะไม่เกิดขึ้น RNG บางตัวดีกว่าตัวอื่นที่หลีกเลี่ยงการทำซ้ำหรือไม่?

6
คะแนนพองตัวทำให้ผู้เล่นมีความสุขมากขึ้นหรือไม่ [ปิด]
ฉันรู้ว่าสิ่งนี้จะขึ้นอยู่กับพื้นฐานของเกมต่อสถานการณ์และไม่ใช่คำถามทางเทคนิค แต่ฉันจำได้ว่าเคยได้ยินในเทคโนโลยีพอดคาสต์เมื่อไม่กี่ปีก่อนที่มีจำนวนคะแนนที่สูงเกินจริง (เช่น 1,000 คะแนนเทียบกับ 1 คะแนน) เป็นที่นิยมในเกมเพราะมันเป็นแบบมาตรฐานหรือเพราะมันแสดงให้เห็นว่าให้ผลตอบรับ / ประสบการณ์ที่ดีขึ้นจากผู้ใช้ ดูเหมือนว่าจะทำให้ผู้ใช้มีความสุขมากกว่าจำนวนแต้มที่น้อยลง ตั้งแต่ฉันไม่สามารถหาหลักฐานสนับสนุนทั้งสองวิธีสำหรับทฤษฎีที่ว่าคะแนนพองสามารถทำให้ผู้ใช้มีส่วนร่วม ทฤษฎีจุดพองตัวนี้จริงหรือไม่? ฉันจะหาข้อมูลเพิ่มเติมได้ที่ไหนและโดยเฉพาะอย่างยิ่งข้อมูลการทดลองบางอย่างเกี่ยวกับวิธีการที่แตกต่างกันและประสิทธิผลของมัน

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