คำถามติดแท็ก patterns

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

1
หน่วยทดสอบโครงการเกม C # / XNA
ฉันมีความสามารถในการพัฒนาเกมตั้งแต่เริ่มเขียนโปรแกรม แต่ไม่เคยจริงจัง ฉันทำงานในฐานะนักพัฒนาแอปทางธุรกิจ แต่ฉันทำงานกับบางเกมในเวลาว่าง ในโลกธุรกิจ (บน Microsft web-dev stack) ASP.NET MVC กำลังเป็นที่นิยมอย่างมากเนื่องจากความง่ายในการทดสอบหน่วยวิธีการทำงานของอินเตอร์เฟส ฉันสงสัยว่ารูปแบบการออกแบบใด (MVC, MVP, MVVM และอื่น ๆ ) ที่สามารถใช้เขียนเกมที่ตรรกะของเกมทั้งหมดสามารถทดสอบได้อย่างง่ายดาย เป็นไปได้หรือเป็นไปได้? ฉันเสียเวลาของฉันดีกว่าไหมในการสร้างแบบเต็มและเรียกใช้การทดสอบชนิด "รวม" แทนการทดสอบหน่วย? โค้ดตัวอย่างจะดีมาก แต่การเขียนก็มีประโยชน์เช่นกัน (ฉันพยายามเพิ่มแท็กการทดสอบหน่วย แต่ไม่จำเป็นต้องมีตัวแทน ... )

5
API สะพานที่ไม่เชื่อเรื่องพระเจ้า (เช่น OpenGL / D3D / อะไรก็ตาม) คุณใช้มันอย่างไรคุณสร้างมันขึ้นมา Pro's and Con's [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา คุณกำลังสร้างเอนจิ้น 3 มิติ คุณต้องการโลกที่หลากหลายที่สุด ทันใดนั้นคุณก็รู้ว่าถ้าคุณต้องการใช้ Direct3D บนเครื่อง Windows และ OpenGL บน OSX / Linux คุณจะต้องเสียสละคุณสมบัติที่รองรับของตัวหารที่ใช้ร่วมกันให้น้อยที่สุด บางคนอาจใช้ OpenGL ในสามระบบปฏิบัติการ 'เพราะมันดูเหมือนจะเป็นตัวหารร่วมน้อยที่สุดด้วยตัวเอง ทั้งหมดเป็นสิ่งที่ดี. จากนั้นคุณต้องพอร์ตกราฟิก API ของคุณไปที่ GX ของ Nintendo คุณต้องสร้างเส้นทาง PS3 และ Xbox360 ด้วย คุณทำอะไร? คุณออกแบบ API ของคุณเองซึ่งเป็นตัวหารน้อยที่สุดในตัวเองและเขียนการใช้งานแบ็กเอนด์สำหรับแต่ละแพลตฟอร์มหรือคุณเขียนสำหรับแต่ละแพลตฟอร์มเป็นสาขาของตัวเองหรือไม่? หากคุณเลือกที่จะออกแบบ API ของคุณเองคุณใช้รูปแบบบริดจ์หรือวูดูของคุณเองหรือไม่ ความบ้าคลั่งหยุดอยู่ที่ไหนที่คุณตระหนักถึงทุกสิ่งและวิธีการอ่างล้างจานในครัวจะต้องหยุดและคุณมีเครื่องมือแยกต่างหากสำหรับแต่ละแพลตฟอร์มเป็นสาขา หรือคุณยึดติดกับทุกอย่างและอ่างล้างจานในครัวและเก็บเฉพาะแพลตฟอร์มไว้ในความเชี่ยวชาญของโมดูลแบ็กเอนด์สำหรับแต่ละแพลตฟอร์ม

2
การค้นหารูปร่างใน 2D Array จากนั้นปรับให้เหมาะสม
ฉันเพิ่งได้รับอนุญาตให้ใช้รูป ... ภาพด้านล่างจากเกมของฉันแสดงบล็อกมืดบางส่วนซึ่งได้รับการยอมรับว่าเป็นส่วนหนึ่งของรูปร่าง "T" ตามที่เห็นรหัสได้ทำให้บล็อกมืดลงด้วยจุดสีแดงและไม่เห็นรูปร่าง "T" ที่มีเส้นขอบสีเขียว รหัสของฉันวนซ้ำผ่าน x / y ทำเครื่องหมายบล็อกที่ใช้หมุนรูปร่างทำซ้ำเปลี่ยนสีทำซ้ำ ฉันเริ่มพยายามแก้ไขการตรวจสอบนี้ด้วยความกังวลใจมาก แนวคิดปัจจุบันคือ: วนรอบตารางและจดบันทึกรูปแบบที่เกิดขึ้นทั้งหมด (ไม่ทำเครื่องหมายบล็อกตามที่ใช้) และวางสิ่งเหล่านี้ลงในอาร์เรย์ วนซ้ำผ่านกริดอีกครั้งคราวนี้สังเกตว่าบล็อกใดถูกครอบครองโดยรูปแบบใดและด้วยเหตุใดจึงมีหลายรูปแบบ วนลูปผ่านกริดอีกครั้งคราวนี้สังเกตว่ารูปแบบใดขัดขวางรูปแบบใด รู้สึกอย่างนั้น ... ฉันจะทำยังไงดี? ฉันคิดว่าฉันจะต้อง ลองผสมผสานรูปร่างที่ขัดแย้งกันหลายแบบเริ่มต้นด้วยสิ่งกีดขวางรูปแบบส่วนใหญ่ก่อน ฉันจะเข้าใกล้คนนี้ได้อย่างไร ใช้เหตุผลที่บอกว่าฉันมี 3 รูปร่างที่ขัดแย้งกันครอบครอง 8 บล็อกและรูปร่างเป็น 4 บล็อกต่อหนึ่งดังนั้นฉันจึงสามารถมีได้สูงสุดสองรูปร่าง (ฉันยังต้องการรวมรูปร่างอื่น ๆ และอาจมีการให้คะแนนน้ำหนักซึ่งจะต้องพิจารณาเมื่อผ่านรูปร่างที่ขัดแย้งกัน แต่อาจเป็นอีกวัน) ฉันไม่คิดว่ามันเป็นปัญหาการจัดเก็บขยะ แต่ฉันไม่แน่ใจว่าจะหาอะไร หวังว่าจะทำให้รู้สึกขอบคุณสำหรับความช่วยเหลือของคุณ แก้ไขแม้จะมีความชัดเจนของคำถามทุกคนดูเหมือนจะเข้าใจใช่ ฉันต้องการค้นหารูปร่าง "T" สูงสุดภายในแต่ละสี (เพราะถ้าฉันให้คะแนนสองและคุณได้สามคุณจะรำคาญเล็กน้อย)

4
ฟังก์ชั่นแบบต่อเฟรมการโทรและการส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์ในการออกแบบเกม
การออกแบบเกมแบบดั้งเดิมอย่างที่ฉันรู้นั้นใช้ความหลากหลายและฟังก์ชั่นเสมือนจริงเพื่ออัพเดทสถานะของเกม กล่าวอีกนัยหนึ่งชุดฟังก์ชั่นเสมือนจริงจะถูกเรียกในช่วงเวลาปกติ (เช่น: ต่อเฟรม) ในทุกวัตถุในเกม เมื่อเร็ว ๆ นี้ฉันค้นพบว่ามีอีกระบบการส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์เพื่อปรับปรุงสถานะของวัตถุเกม ที่นี่วัตถุมักจะไม่ได้รับการปรับปรุงในแต่ละเฟรม แต่จะมีการสร้างระบบการส่งข้อความเหตุการณ์ที่มีประสิทธิภาพสูงและวัตถุเกมจะได้รับการอัพเดตหลังจากได้รับข้อความเหตุการณ์ที่ถูกต้องเท่านั้น จัดกิจกรรมขับเคลื่อนสถาปัตยกรรมเกมจะอธิบายได้ดีใน: เกมการเข้ารหัสที่สมบูรณ์โดยไมค์แมคชาฟฟรี ฉันขอความช่วยเหลือจากคำถามต่อไปนี้: อะไรคือข้อดีและข้อเสียของทั้งสองวิธีคืออะไร? อันไหนดีกว่าอีกอัน? การออกแบบเกมเป็นไปตามหลักสากลและดีกว่าในทุก ๆ ด้านหรือไม่? ดังนั้นจึงแนะนำให้ใช้งานแม้ในแพลตฟอร์ม mombile? อันไหนมีประสิทธิภาพมากขึ้นและยากต่อการพัฒนา เพื่อชี้แจงคำถามของฉันไม่ได้เกี่ยวกับการลบความหลากหลายโดยสิ้นเชิงจากการออกแบบเกม ฉันเพียงต้องการที่จะเข้าใจความแตกต่างและผลประโยชน์จากการใช้การส่งข้อความที่ขับเคลื่อนด้วยเหตุการณ์และการโทรปกติ (ต่อเฟรม) ไปยังฟังก์ชั่นเสมือนจริงเพื่ออัปเดตสถานะเกม ตัวอย่าง: คำถามนี้ทำให้เกิดความขัดแย้งเล็กน้อยที่นี่ดังนั้นฉันขอเสนอตัวอย่าง: ตาม MVC เครื่องมือเกมแบ่งออกเป็นสามส่วนหลัก: Application Layer (การสื่อสารของฮาร์ดแวร์และระบบปฏิบัติการ) เกมลอจิก มุมมองเกม ในเกมแข่งรถ Game View รับผิดชอบในการแสดงผลหน้าจอโดยเร็วที่สุดอย่างน้อย 30 เฟรมต่อวินาที Game View รับฟังอินพุตของผู้เล่นด้วย ตอนนี้สิ่งนี้เกิดขึ้น: ผู้เล่นกดแป้นคันเร่งเป็น 80% GameView สร้างข้อความ "เหยียบเชื้อเพลิงรถยนต์ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.