คำถามติดแท็ก software-engineering

วิศวกรรมซอฟต์แวร์เป็นการออกแบบและพัฒนาซอฟต์แวร์ตามที่ใช้กับการพัฒนาเกม คำถามที่ใช้แท็กนี้ควรเกี่ยวกับแนวคิดและการปฏิบัติเชิงทฤษฎีที่เกี่ยวข้องกับภารกิจในการสร้างหรือออกแบบซอฟต์แวร์ ไม่ควรใช้แท็กนี้เพียงเพราะคำถามเกี่ยวข้องกับการเขียนโปรแกรมหรือมีรหัส

28
เกมที่ดีในการ“ รับปีกของคุณ” คืออะไร? [ปิด]
ฉันเชื่อว่าในการที่จะเป็นนักพัฒนาเกมที่ดีคุณต้องสร้างเกม จากมุมมองของโปรแกรมเมอร์เกมระดับเริ่มต้นที่ดีสำหรับมือของคุณสกปรกคืออะไร? แต่ละเกมเหล่านี้สอนทักษะและความท้าทายอะไรให้คุณ?

16
ผู้เขียนเกมทุกคนควรรู้คณิตศาสตร์ [ปิด]
คำถามง่ายๆพอ: โปรแกรมเมอร์เกมทุกคนควรมีความเข้าใจอย่างถ่องแท้เพื่อให้ประสบความสำเร็จ ฉันไม่ได้พูดถึงการแสดงผลคณิตศาสตร์หรืออะไรในพื้นที่เฉพาะของการเขียนโปรแกรมเกมโดยเฉพาะอย่างยิ่งสิ่งต่าง ๆ ที่แม้แต่ผู้เขียนโปรแกรมเกมควรรู้และถ้าพวกเขาไม่คิดว่ามันจะมีประโยชน์ หมายเหตุ:เนื่องจากไม่มีคำตอบที่ถูกต้องคำถามนี้ (และคำตอบ) คือวิกิชุมชน นอกจากนี้ถ้าคุณอยากสมการทางคณิตศาสตร์น้ำยางแฟนซีรู้สึกอิสระที่จะใช้http://mathurl.com/

9
รูปแบบการออกแบบการเขียนโปรแกรมอะไรบ้างที่มีประโยชน์ในการพัฒนาเกม [ปิด]
ฉันมีหนังสือสองสามเล่มเกี่ยวกับรูปแบบการออกแบบและได้อ่านบทความบางอย่าง แต่ไม่สามารถเข้าใจได้อย่างชัดเจนว่ารูปแบบการออกแบบโปรแกรมใดที่จะเป็นประโยชน์ในการพัฒนาเกม ตัวอย่างเช่นฉันมีหนังสือชื่อว่า ActionScript 3 ที่มีรูปแบบการออกแบบที่มีรายละเอียดรูปแบบการออกแบบหลายอย่างเช่นตัวควบคุมมุมมองโมเดล, ซิงเกิล, โรงงาน, คำสั่ง ฯลฯ ในฐานะที่เป็นคนใหม่ในเรื่องนี้ฉันไม่สามารถคิดได้ว่าสิ่งใดจะเป็นประโยชน์หรืออันที่จริงหากสิ่งเหล่านี้เป็นรูปแบบการออกแบบที่ฉันควรจะเรียนรู้และพยายามใช้ บางทีอาจมีรูปแบบการออกแบบเฉพาะโปรแกรมเกมอื่น ๆ ที่ฉันไม่รู้ด้วยซ้ำ หากคุณมีประสบการณ์ในการใช้รูปแบบการออกแบบบางอย่างในการพัฒนาเกมฉันชอบที่จะได้ยิน การให้เหตุผลว่าเหตุใดจึงใช้ตัวอย่างรหัสหรือแหล่งข้อมูลออนไลน์จะมีประโยชน์มากเช่นกันหากคุณมี ตอนนี้ฉันสนใจการใช้ ActionScript 3 และ C ++ มากที่สุด แต่อาจได้รับประโยชน์จากประสบการณ์และตัวอย่างจากภาษาใด ๆ ขอบคุณ!

4
ทำไมบางครั้งเกมที่สร้างขึ้นด้วยเอนจิ้นข้ามแพลตฟอร์มบางครั้งเป็นเอกสิทธิ์ของ Windows?
หากเอ็นจิ้นรองรับ Windows, OS X และ Linux ทำไมบางครั้งเราเห็นเกมที่ใช้เอ็นจิ้นเหล่านี้เช่นSpace Hulk: Deathwingจำกัด เฉพาะ Windows เท่านั้น

10
ฉันจะทำอะไรได้บ้างเพื่อให้แน่ใจว่าฉันมีพลังที่จะทำงานในเกมขณะทำงานเต็มเวลา? [ปิด]
ฉันทำงานเป็นวิศวกรซอฟต์แวร์ 40+ ชั่วโมงต่อสัปดาห์และฉันพบว่าระหว่างความสมดุลในชีวิตส่วนตัวของฉันและความรับผิดชอบในครอบครัวที่ฉันไม่มีพลังงานอย่างแท้จริงในการพัฒนาเกม ฉันจะทำอะไรเพื่อให้มีเวลามากขึ้นสำหรับงานอดิเรกของฉันโดยไม่ทำให้ตัวเองเสียหน้าคอมพิวเตอร์? ฉันแน่ใจว่าต้องมีใครบางคนที่นี่ประสบความสำเร็จในการพัฒนาเกมในขณะที่ทำงานเป็นโปรแกรมเมอร์ที่ด้านข้าง

6
กระสุนทำงานในวิดีโอเกมอย่างไร
ฉันเจอคำถามนี้เมื่อฉันออกแบบวิดีโอเกมใน C # หากเราพิจารณาเกมเช่นBattlefieldหรือCall of Dutyกระสุนหลายร้อยหรือหลายพันกระสุนกำลังบินในเวลาเดียวกัน เหตุการณ์ถูกเรียกใช้อย่างต่อเนื่องและจากสิ่งที่ฉันรู้สิ่งนี้ดูดพลังการประมวลผลมากมาย ... หรือไม่? ฉันต้องการทราบว่านักพัฒนาเกมต่าง ๆ จัดการกับสัญลักษณ์แสดงหัวข้อย่อย (2D และ 3D) และวิธีที่มีประสิทธิภาพที่สุดสำหรับแต่ละรายการอย่างไร ฉันอ่านคำถามว่ากระสุนถูกจำลองในวิดีโอเกมอย่างไร แต่มันไม่ได้สัมผัสว่ากระสุนทำงานอย่างไรจากมุมมองการออกแบบโปรแกรม ฉันมีความคิดสองสามข้อ แต่ก็มีข้อเสีย: วิธีที่มีประสิทธิภาพที่สุดที่ฉันคิดได้ (สำหรับเกม 2D): สมมติว่าฉันต้องสร้างคลาสที่ชื่อว่า Bullet แต่ผู้ใช้กดปุ่มค้างไว้นาน 0.01 วินาทีทุกครั้งที่มีการสร้างวัตถุ Bullet กระสุนนี้มี: 1ความเร็ว 2ตำแหน่งเริ่มต้นของตำแหน่งที่มันถูกยิงจาก 3 Sprite เนื้อ 4เอฟเฟกต์ที่โจมตี เนื่องจากสัญลักษณ์แสดงหัวข้อจะเป็นคลาสของตัวเองจึงสามารถจัดการการวาดการเคลื่อนไหวและการดำเนินการฟังเอง หน่วยประมวลผลจะไม่สามารถประมวลผลวัตถุนับพันรายการได้ยากหรือไม่แล้วจะถูกทำลาย (เมื่อมีการเรียกใช้เอฟเฟกต์เมื่อโจมตี) พื้นที่แรม? วิธีการที่มีประสิทธิภาพสำหรับเกม 3D - อีกหนึ่งความคิดที่ฉันมีคือ: ให้บอกว่าฉันสร้างคลาสอาวุธ อาวุธนี้มีคุณสมบัติหลากหลายซึ่งบางส่วน: 1ตรวจสอบว่าอาวุธเล็งไปที่ใดและตัดสินว่ามองเป้าหมายหรือไม่ 2เรียกภาพเคลื่อนไหวของการยิงปืน 3มีเมธอด doDamage …

8
การสื่อสารที่ขับเคลื่อนด้วยเหตุการณ์ใน Game Engine: ใช่หรือไม่ใช่
ฉันกำลังอ่านGame Coding Completeและผู้เขียนแนะนำให้ใช้การสื่อสาร Event Drivenระหว่างวัตถุและโมดูลเกม โดยพื้นฐานแล้วนักแสดงเกมที่มีชีวิตทุกคนควรสื่อสารกับโมดูลหลัก (Physics, AI, Game Logic, Game View, ฯลฯ ) ผ่านระบบการส่งข้อความเหตุการณ์ภายใน ซึ่งหมายความว่าต้องออกแบบผู้จัดการเหตุการณ์ที่มีประสิทธิภาพ ระบบที่ออกแบบมาไม่ดีจะกินซีพียูเป็นวงรอบ นี่เป็นแนวทางที่ได้รับการพิสูจน์แล้วหรือไม่? ฉันจะตัดสินใจได้อย่างไรว่าจะใช้หรือไม่

9
ใหม่สำหรับการสร้าง AI - จะเริ่มที่ไหนดี [ปิด]
ฉันยังใหม่กับการเขียนโปรแกรมเกมและกำลังพยายามสร้างเกมบนพื้นที่บนลงล่างแบบ 2d พร้อมกับยานอวกาศ 2 ลำที่ต่อสู้กัน ฉันทำได้ดีกับยานอวกาศควบคุมของผู้ใช้ แต่ไม่รู้ว่าจะเริ่มเขียนโปรแกรม AI ได้อย่างไร มีวิธีการ / รูปแบบบางอย่างที่ดีกว่าสำหรับสถานการณ์นี้หรือไม่? ฉันจะเริ่มต้นที่ไหนดี

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

5
จะหลีกเลี่ยงวัตถุ GameManager god ได้อย่างไร?
ฉันเพียงแค่อ่านคำตอบสำหรับคำถามเกี่ยวกับโครงสร้างรหัสเกม มันทำให้ฉันสงสัยเกี่ยวกับGameManagerคลาสที่แพร่หลายและบ่อยครั้งที่มันจะกลายเป็นปัญหาในสภาพแวดล้อมการผลิต ให้ฉันอธิบายสิ่งนี้ อย่างแรกคือการสร้างต้นแบบ ไม่มีใครสนใจเกี่ยวกับการเขียนโค้ดที่ยอดเยี่ยมเราเพียงแค่พยายามทำให้บางสิ่งบางอย่างทำงานเพื่อดูว่าการเล่นเกมเพิ่มขึ้นหรือไม่ แล้วมี Greenlight GameManagerและในความพยายามที่จะทำความสะอาดสิ่งขึ้นบางคนเขียน อาจเป็นไปได้ที่จะถือมัดGameStatesอาจจะเก็บไม่กี่GameObjectsไม่มีอะไรใหญ่จริงๆ ผู้จัดการเล็ก ๆ น้อย ๆ ที่น่ารัก ในดินแดนที่สงบสุขก่อนการผลิตเกมกำลังก่อตัวขึ้นอย่างสวยงาม โคเดอร์มีคืนนอนหลับที่เหมาะสมและมีไอเดียมากมายในการสร้างสถาปัตยกรรมด้วยรูปแบบการออกแบบที่ยอดเยี่ยม จากนั้นการผลิตจะเริ่มขึ้นและในไม่ช้าแน่นอนว่าจะมีเวลาที่ จำกัด อาหารที่สมดุลหายไปนานแล้วตัวติดตามบั๊กแตกกับปัญหาผู้คนเครียดและเกมต้องได้รับการปล่อยตัวเมื่อวานนี้ ณ จุดนั้นโดยปกติแล้วสิ่งGameManagerนี้จะเป็นระเบียบขนาดใหญ่ที่แท้จริง (เพื่อให้สุภาพ) เหตุผลที่ง่าย หลังจากที่ทุกเมื่อเขียนเกมดี ... ทุกรหัสที่มาเป็นจริงที่นี่เพื่อจัดการเกม ง่ายเพียงเพิ่มคุณสมบัติพิเศษเล็ก ๆ น้อย ๆ นี้หรือแก้ไขข้อบกพร่องในGameManagerที่ซึ่งทุกอย่างจะถูกจัดเก็บอยู่แล้ว เมื่อเวลากลายเป็นปัญหาไม่มีวิธีการเขียนชั้นแยกต่างหากหรือแยกผู้จัดการยักษ์รายนี้เป็นผู้จัดการย่อย หลักสูตรนี้เป็นคลาสสิกต่อต้านรูปแบบที่: วัตถุพระเจ้า มันเป็นสิ่งที่ไม่ดีความเจ็บปวดที่จะผสานความเจ็บปวดที่จะรักษาความเจ็บปวดที่จะเข้าใจความเจ็บปวดที่จะเปลี่ยนแปลง คุณอยากแนะนำอะไรให้ป้องกันไม่ให้สิ่งนี้เกิดขึ้น แก้ไข ฉันรู้ว่ามันเป็นการล่อลวงที่จะตำหนิการตั้งชื่อ แน่นอนว่าการสร้างGameManagerชั้นเรียนไม่ได้เป็นความคิดที่ยอดเยี่ยม แต่สิ่งเดียวกันนี้สามารถเกิดขึ้นได้กับสิ่งที่สะอาดGameApplicationหรือGameStateMachineหรือGameSystemกลายเป็นที่ชื่นชอบของท่อเทปในตอนท้ายของโครงการ ไม่ว่าคุณจะตั้งชื่ออะไรคุณมีคลาสนั้นในรหัสเกมของคุณมันเป็นเพียงตัวอ่อนในตอนนี้คุณแค่ไม่รู้ว่ามันจะกลายเป็นมอนสเตอร์ตัวไหน ดังนั้นฉันจึงไม่คาดหวังคำตอบ "ตำหนิการตั้งชื่อ" ฉันต้องการวิธีที่จะป้องกันไม่ให้สิ่งนี้เกิดขึ้นเอกสารการเข้ารหัสและ / หรือกระบวนการที่ทีมสามารถติดตามได้โดยรู้ว่าสิ่งนี้จะเกิดขึ้นในบางช่วงของการผลิต เป็นเรื่องที่แย่เกินกว่าจะพูดได้ว่าหนึ่งเดือนของการแก้ไขข้อบกพร่องและคุณสมบัติในนาทีสุดท้ายเพียงเพราะพวกเขาทั้งหมดอยู่ในผู้จัดการที่ไม่มีใครสามารถจัดการได้

10
C ++: สมาร์ทพอยน์เตอร์, พอยน์เตอร์ชี้, ไม่มีพอยน์เตอร์? [ปิด]
ภายในขอบเขตของการพัฒนาเกมใน C ++ รูปแบบที่คุณชื่นชอบในการใช้พอยน์เตอร์คืออะไร (ไม่ว่าจะเป็นแบบดิบขอบเขตที่แชร์หรืออื่น ๆ ระหว่างสมาร์ทและโง่) คุณอาจพิจารณา ความเป็นเจ้าของวัตถุ สะดวกในการใช้ คัดลอกนโยบาย เหนือศีรษะ การอ้างอิงครบวงจร แพลตฟอร์มเป้าหมาย ใช้กับภาชนะบรรจุ


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

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()ฉันจะต้องเขียนรหัสที่คล้ายกันสองครั้ง การปฏิบัติที่ดีที่สุดที่นี่คืออะไร? ขอบคุณ

2
จะมีหนังสืออื่น ๆ อีกในซีรี่ส์ Game Programming Gems หรือไม่ [ปิด]
เป็นเวลากว่าสามปีแล้วที่หนังสือ Game Programming Gems เล่มล่าสุดตีพิมพ์ เว็บไซต์อย่างเป็นทางการจะไม่มีการปรับปรุงอีกต่อไปและหน้าเว็บไซต์ของมาร์กเดโลอร่านี่ดูเหมือนจะบ่งบอกว่าชุดที่มีมากกว่า เคยมีแถลงการณ์อย่างเป็นทางการเกี่ยวกับเรื่องนี้ไหม? เล่มที่ 8 เป็นเล่มสุดท้ายหรือไม่ เกม Programming อัญมณีเป็นหนึ่งใน (ถ้าไม่มากที่สุดมากที่สุด) ทรัพยากรที่สำคัญสำหรับผมและอาจจะหลายพันของนักพัฒนาทั่วโลกได้ฆ่าอินเทอร์เน็ตพวกเขา?

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