การพัฒนาเกม

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

3
เคลื่อนที่ไปรอบ ๆ / หลีกเลี่ยงอุปสรรค
ฉันต้องการเขียน "เกม" ที่คุณสามารถวางสิ่งกีดขวาง (สีแดง) แล้วจุดสีดำพยายามหลีกเลี่ยงมันและไปที่เป้าหมายสีเขียว ฉันใช้วิธีที่ง่ายมากในการหลีกเลี่ยงถ้าจุดสีดำอยู่ใกล้กับสีแดงมันจะเปลี่ยนทิศทางของมันและเคลื่อนที่ไปครู่หนึ่งจากนั้นมันจะเคลื่อนที่ไปข้างหน้าไปยังจุดสีเขียว ฉันจะสร้างเส้นทาง "ราบรื่น" สำหรับเครื่องเล่น "ที่ควบคุมด้วยคอมพิวเตอร์" ได้อย่างไร แก้ไข:ไม่ใช่ความเรียบเป็นจุดหลัก แต่เพื่อหลีกเลี่ยงการปิดกั้น "กำแพง" สีแดงและไม่ให้ชนเข้ากับมันแล้วหลีกเลี่ยง ฉันจะใช้อัลกอริทึมการค้นหาพา ธ ได้อย่างไรหากฉันมี 3 จุด (และอะไรจะทำให้สิ่งต่าง ๆ ซับซ้อนมากขึ้นถ้าคุณสามารถวางสิ่งกีดขวางได้หลายอย่าง?)
12 ai  path-finding 

4
การวาดภูมิประเทศระดับ sidescroller 2D ขนาดใหญ่
ฉันเป็นโปรแกรมเมอร์ที่ค่อนข้างดี แต่ตอนนี้มันมาถึงการเพิ่มระดับพื้นฐานบางอย่างให้กับเกม 2D ของฉันที่ฉันติดอยู่ สิ่งที่ฉันต้องการทำ: ระดับการทดสอบ "เนินเขาสีเขียว" ที่ยอมรับได้ขนาดใหญ่ (8000 * 1,000 พิกเซล) สำหรับเกมของฉัน วิธีที่ดีที่สุดสำหรับฉันที่จะทำคืออะไร? มันไม่จำเป็นต้องดูดีมันแค่ไม่ควรมีลักษณะเหมือนมันถูกสร้างขึ้นในสี MS ด้วยเครื่องมือบรรทัดและถังสี โดยพื้นฐานแล้วควรโคลนกับหญ้าที่อยู่ด้านบนสร้างขึ้นในบางรูปแบบของเนินเขา แต่ฉันจะวาดมันอย่างไรฉันไม่สามารถดึงเครื่องมือดินสอออกมาแล้วเริ่มวาดเป็นพิกเซลต่อพิกเซลได้ไหม


2
เสียงที่จะอธิบายสภาพอากาศ?
ฉันพยายามคิดถึงเสียงที่จะช่วยถ่ายทอดเวลาของวันและสภาพอากาศ ฉันยังไม่แน่ใจในทุกสภาพอากาศที่ฉันจะพิจารณาและบางอย่างชัดเจน เช่นถ้าฝนตกเสียงฝนตก แต่ถ้าอย่างนั้นฉันก็คิดว่าจะเป็นวันที่สงบ ถ้าถึงเวลาเช้าฉันก็จะทำเสียงนกร้องหรืออะไรก็ได้ เวลากลางคืนอาจเป็นนกฮูกหรือบางอย่าง ชุดผสมที่ดีของเสียง / อากาศ / เวลาที่จะมีผลดีคืออะไร?

1
แยกฟิสิกส์และตรรกะเกมออกจากรหัส UI
ฉันกำลังทำงานในเกมตัวต่อที่ง่าย การเล่นเกมประกอบไปด้วยบล็อกที่เคลื่อนไหวได้ค่อนข้างมากในบริเวณเกมดังนั้นมันเป็นการจำลองทางฟิสิกส์ที่ไม่สำคัญ อย่างไรก็ตามการใช้งานของฉันอยู่ในความคิดของฉันไกลจากอุดมคติและฉันสงสัยว่าถ้าคุณสามารถให้คำแนะนำกับฉันเกี่ยวกับวิธีที่จะทำให้ดีขึ้น ฉันแบ่งรหัสออกเป็นสองส่วน: ตรรกะของเกมและ UI อย่างที่ฉันทำกับเกมปริศนามากมาย: ตรรกะของเกมรับผิดชอบกฎทั่วไปของเกม (เช่นระบบกฎอย่างเป็นทางการในหมากรุก) UI แสดงพื้นที่เกมและชิ้นส่วน (เช่นกระดานหมากรุกและชิ้นส่วน) และรับผิดชอบภาพเคลื่อนไหว (เช่นการเคลื่อนไหวของชิ้นส่วนหมากรุก) ตรรกะของเกมแสดงถึงสถานะของเกมเป็นตารางตรรกะซึ่งแต่ละหน่วยเป็นความกว้าง / ความสูงของเซลล์หนึ่งในตาราง ดังนั้นสำหรับกริดที่มีความกว้าง 6 คุณสามารถย้ายบล็อกของความกว้าง 2 ได้สี่ครั้งจนกว่ามันจะชนกับขอบเขต UI ใช้กริดนี้และวาดโดยการแปลงขนาดโลจิคัลเป็นขนาดพิกเซล (นั่นคือคูณด้วยค่าคงที่) อย่างไรก็ตามเนื่องจากเกมแทบจะไม่ได้มีตรรกะของเกมเลยเลเยอร์ตรรกะในเกมของฉัน [1] จึงไม่ต้องทำอะไรมากมายนอกจากการตรวจจับการชน นี่คือวิธีการทำงาน: ผู้เล่นเริ่มลากชิ้นส่วน UI ถามตรรกะของเกมสำหรับพื้นที่การเคลื่อนไหวทางกฎหมายของชิ้นส่วนนั้นและให้ผู้เล่นลากมันภายในพื้นที่นั้น ผู้เล่นปล่อยชิ้นส่วนไป UI จัดเรียงส่วนเข้ากับกริด (เพื่อให้อยู่ในตำแหน่งตรรกะที่ถูกต้อง) UI บอกตรรกะของเกมถึงตำแหน่งโลจิคัลใหม่ (ผ่านวิธีการเปลี่ยนแปลงซึ่งฉันควรหลีกเลี่ยง) ฉันไม่ค่อยมีความสุขกับสิ่งนั้น: ฉันกำลังเขียนการทดสอบหน่วยสำหรับเลเยอร์เกมตรรกะของฉัน แต่ไม่ใช่ UI และมันกลับกลายเป็นว่ารหัสที่ยุ่งยากทั้งหมดนั้นอยู่ใน UI: การหยุดชิ้นส่วนจากการชนกับผู้อื่นหรือขอบเขตและสแนปอินตาราง ฉันไม่ชอบความจริงที่ว่า UI บอกตรรกะของเกมเกี่ยวกับสถานะใหม่ฉันอยากให้มันเรียกmovePieceLeft()วิธีการหรืออะไรทำนองนั้นเหมือนในเกมอื่น ๆ …

3
ฉันจะใช้ "การรับรู้" ของหน่วยได้อย่างไร
ฉันใช้ Unity3d เพื่อพัฒนาเกมต้นแบบลูกผสม RTS / TD อะไรคือวิธีที่ดีที่สุดสำหรับ "การรับรู้" ระหว่างหน่วยและศัตรูของพวกเขา มันมีเหตุผลหรือไม่ที่ต้องให้ทุกหน่วยตรวจสอบระยะทางกับศัตรูทุกคน วิธีที่ฉันจะทำในตอนนี้คือการมีทรงกลมทริกเกอร์ในทุกหน่วย หากศัตรูเข้าสู่ทริกเกอร์ยูนิตจะรับรู้ถึงศัตรูและเริ่มการตรวจสอบระยะทาง สิ่งนี้บันทึกการตรวจสอบที่ไม่จำเป็นบ้างไหม? การปฏิบัติที่ดีที่สุดที่นี่คืออะไร
12 ai  unity  rts 

3
เซิร์ฟเวอร์เกมกระดานแบบอ้างอิงอ้างอิง [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา มีการอ้างอิง / หนังสือที่ดีที่จะแนะนำเกี่ยวกับวิธีการสร้างเซิร์ฟเวอร์เกมเทิร์นเบสหรือไม่? มันเหมือนกับเซิร์ฟเวอร์หมากรุกสำหรับจับคู่ผู้เล่นหมากรุกและรักษาสถานะของเกม ในอดีตตัวอย่างเช่น IGS (for go, weiqi) เป็นการใช้งานซ็อกเก็ต เทคโนโลยีร่วมสมัยที่มีให้เรียนรู้คืออะไร ขอบคุณ!

5
ทำไมการเรียนรู้การเสริมแรงจึงไม่ค่อยถูกใช้ในการมองเห็น
อัลกอริธึมทางทฤษฎีกราฟเส้นทางที่สั้นที่สุดที่น่านับถือ A * และการปรับปรุงในภายหลัง สำหรับฉันแล้วดูเหมือนว่า RL เป็นกระบวนทัศน์ที่เป็นธรรมชาติมากขึ้นในการย้ายตัวละครไปรอบ ๆ พื้นที่เกม และถึงกระนั้นฉันก็ยังไม่ทราบว่าเป็นนักพัฒนาเกมเดียวที่ใช้เครื่องมือสร้างเส้นทางการเรียนรู้แบบ Reinforcement Learning (ฉันไม่ได้อนุมานได้เลยว่าแอปพลิเคชัน RL ในการค้นหาเส้นทางคือ 0 เพียงว่ามันมีขนาดเล็กมากเมื่อเทียบกับ A * และเพื่อน ๆ ) ไม่ว่าจะด้วยเหตุผลใดก็ตามไม่ใช่เพราะนักพัฒนาซอฟต์แวร์เหล่านี้ไม่รู้จัก RL เนื่องจากหลักฐานจากข้อเท็จจริงที่ว่า RL ถูกใช้บ่อยในที่อื่น ๆ ในเอ็นจิ้นเกม คำถามนี้ไม่ใช่ข้ออ้างสำหรับการเสนอความคิดเห็นเกี่ยวกับ RL ในการชี้แนะทาง ในความเป็นจริงฉันสมมติว่าการตั้งค่าโดยปริยายสำหรับ A * et al มากกว่า RL นั้นถูกต้อง - แต่การตั้งค่านั้นไม่ชัดเจนสำหรับฉันและฉันอยากรู้อยากเห็นมากเกี่ยวกับเหตุผลของมันโดยเฉพาะอย่างยิ่งจากทุกคนที่พยายามใช้ RL เพื่อหาเส้นทาง

5
platformers 2D: ทำไมต้องทำให้ฟิสิกส์ขึ้นอยู่กับอัตราเฟรม?
"Super Meat Boy" เป็น platformer ที่ยากซึ่งเพิ่งออกมาสำหรับพีซีซึ่งต้องการการควบคุมที่ยอดเยี่ยมและการกระโดดพิกเซลที่สมบูรณ์แบบ รหัสฟิสิกส์ในเกมขึ้นอยู่กับอัตราเฟรมซึ่งถูกล็อคไว้ที่ 60fps นี่หมายความว่าหากคอมพิวเตอร์ของคุณไม่สามารถรันเกมได้อย่างเต็มประสิทธิภาพฟิสิกส์จะเสียสติทำให้ตัวละครของคุณทำงานช้าลงและล้มลงบนพื้น นอกจากนี้หากปิด vsync เกมจะทำงานเร็วมาก ผู้ที่มีประสบการณ์เกี่ยวกับการเขียนโปรแกรมเกม 2D สามารถช่วยอธิบายได้หรือไม่ว่าทำไมเกมถึงเขียนรหัสด้วยวิธีนี้ การวนลูปฟิสิกส์จะทำงานในอัตราคงที่หรือไม่จะเป็นทางออกที่ดีกว่าหรือไม่ (อันที่จริงฉันคิดว่าวงฟิสิกส์ใช้สำหรับบางส่วนของเกมเนื่องจากบางเอนทิตียังคงเคลื่อนไหวได้ตามปกติโดยไม่คำนึงถึงตัวละครในทางกลับกันตัวละครของคุณจะวิ่งอย่างรวดเร็ว [fps / 60] สิ่งที่รบกวนฉันเกี่ยวกับการใช้งานนี้คือการสูญเสียสิ่งที่เป็นนามธรรมระหว่างเอ็นจิ้นเกมและการเรนเดอร์กราฟิกซึ่งขึ้นอยู่กับสิ่งเฉพาะของระบบเช่นจอภาพการ์ดกราฟิกและ CPU หากไม่ว่าด้วยเหตุผลใดก็ตามคอมพิวเตอร์ของคุณไม่สามารถจัดการกับ vsync หรือไม่สามารถรันเกมด้วยความเร็ว 60fps ได้มันจะทำให้คุณประหลาดใจ ทำไมขั้นตอนการเรนเดอร์ในทางใด ๆ จึงมีอิทธิพลต่อการคำนวณทางฟิสิกส์? (เกมส่วนใหญ่ในปัจจุบันจะชะลอเกมหรือข้ามเฟรม) ในทางกลับกันฉันเข้าใจว่า platformers โรงเรียนเก่าใน NES และ SNES ขึ้นอยู่กับอัตราคงที่สำหรับการควบคุมและฟิสิกส์ของพวกเขา ทำไมถึงเป็นเช่นนี้และเป็นไปได้ไหมที่จะสร้าง patformer ในหลอดเลือดดำนั้นโดยไม่ต้องพึ่งพาการมีส่วนร่วม? จำเป็นต้องสูญเสียความแม่นยำหรือไม่หากคุณแยกการเรนเดอร์กราฟิกจากส่วนที่เหลือของเครื่องยนต์ ขอบคุณและขออภัยหากคำถามเกิดความสับสน
12 graphics  physics 

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

3
ปรับตาข่ายให้เหมาะสมสำหรับทิวทัศน์ลูกบาศก์ voxel
เล่นกับการสร้าง minecraftish / lego world landscapes ใน Unity 3D (สร้าง voxel landscapes with cubes) ฉันพบว่า mesh ที่สร้างขึ้นสำหรับทิวทัศน์เหล่านี้ใช้หน่วยความจำจำนวนมาก ในปัจจุบันตาข่ายประกอบด้วยเพียงจุดยอดสำหรับด้านที่มองเห็นของก้อน การใช้หน่วยความจำสำหรับภูมิประเทศที่ซับซ้อนอาจใช้เวลา 6 หรือ 7 ร้อย megs ตาข่ายเหล่านี้อาจปรับให้เหมาะสม แต่ฉันพยายามหาอัลกอริธึมที่เหมาะสมในการทำเช่นนี้ อัลกอริทึมต้องคำนึงถึงว่าคุณไม่ต้องการบล็อก "ผสาน" ที่มีประเภทภูมิประเทศที่แตกต่างกัน ฉันเดาว่าการเริ่มต้นที่ง่ายจริงๆอาจจะแค่ประมวลผลบล็อคทั้งหมดตามแกนหนึ่งและทำเรตติ้งพิเศษสำหรับอีกสองแกน ฉันต้องการรักษารูปร่างของตาข่ายนั่นคือไม่มีการรวมจุดยอดไปยังจุดที่มีการเปลี่ยนแปลงพื้นที่ว่างเปล่าหรือของแข็ง เหตุผลก็คืออาจมีสิ่งมีชีวิต / ฯลฯ ที่ยังคงต้องไปรอบ ๆ ตาข่าย ดังนั้นฉันไม่สามารถสร้างรายละเอียดที่ต่ำมากบิดเบือนตาข่าย ความคิด / คำแนะนำ / เคล็ดลับเกี่ยวกับเรื่องนี้?

5
ฉันควรใช้เครื่องมือฟิสิกส์เมื่อใด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ตั้งแต่ที่ฉันค้นพบBox2Dฉันใช้มันสำหรับแอพพลิเคชั่นที่เหมือนเกมใด ๆ ที่ฉันพยายามเขียนตั้งแต่ต้นแบบเล็ก ๆ หรือโปรแกรมขนาดเล็กเพื่อทดสอบบางสิ่งไปจนถึงโครงการจริง ต้องขอบคุณมันมากที่จะจัดการทุกอย่างจากการชนไปจนถึงฟิสิกส์ที่แท้จริง บางครั้งฉันมีข้อสงสัยบางอย่างเกี่ยวกับมัน: ถ้าฉันต้องจัดการกับแวดวงหรือ AABB เท่านั้นและไม่ต้องการเครื่องมือฟิสิกส์ขั้นสูง (ข้อต่อหรืออะไรทำนองนั้น) ฉันคิดว่าเครื่องยนต์ฟิสิกส์สามารถเพิ่มขนาดใหญ่ขึ้นได้ เหนือศีรษะที่ไม่จำเป็น เพื่อประเมินคำถามของฉัน: คุณจะใช้ Box2D (หรือเอนจิ้นฟิสิกส์อื่น ๆ ) ในเกมที่ฟิสิกส์ง่ายจริงๆ (เช่น Super Mario, สมมติว่า)? และถ้าไม่ทำไม?
12 physics 

6
การสร้าง (หรือเลียนแบบ)“ D-Pad” บนหน้าจอสัมผัส; เสมือน d-pad
ด้วยการเพิ่มจำนวนของอุปกรณ์ที่ใช้ระบบสัมผัสหลายคนขาด D-Pad จริงฉันสงสัยว่าถ้าใครมีทรัพยากรในการเลียนแบบ D-Pad บนหน้าจอสัมผัส? ฉันสนใจตัวอย่าง XNA และ / หรือ Android เป็นพิเศษ

2
ฉันจะสร้างคอลเลกชันของมินิเกมใน XNA ได้อย่างไรซึ่งผู้ใช้สามารถดาวน์โหลดชุดของมินิเกมและ. exe หลักสามารถรันได้โดยไม่ต้องมีการแก้ไข
ฉันกำลังสร้างเกมพีซีใน XNA จริงๆแล้วมันเป็นชุดของมินิเกม (มี 3 มินิเกมในขณะนี้) อย่างไรก็ตามฉันวางแผนที่จะสร้างและเพิ่มมากขึ้นใน 'แพ็ค' ที่สามารถดาวน์โหลดได้ คำถามของฉันคืออะไรวิธีที่ดีที่สุดเพื่อให้บรรลุนี้ ขณะนี้ความคิดของฉันคือ: สร้างอินเทอร์เฟซ 'เกม' สร้างเกมไปยังส่วนต่อประสานนี้ แต่สร้างเป็น. dll ให้ไฟล์. exe หลักสแกนไดเรกทอรีและโหลดใน. dll ที่รันไทม์ ฉันไม่ได้ยุ่งกับความคิดมาก แต่ฉันรู้ว่ามีแอปพลิเคชันอย่างน้อยที่ใช้วิธีการปลั๊กอินนี้ (Notepad ++ ดูเหมือนว่า) แต่ฉันไม่แน่ใจว่าเกมใดที่ทำ (แม้ว่าฉันจะแน่ใจ ต้องมีอยู่) อย่างไรก็ตามดูเหมือนว่านี่เป็นปัญหาที่ได้รับการแก้ไขก่อนหน้านี้ดังนั้นฉันสงสัยว่ามีรูปแบบใดของการปฏิบัติที่ดีที่สุด
12 xna  c# 

2
XNA“ XBox 360 Project” จะทำงานบน Windows ได้หรือไม่
ฉันเข้าใจว่าโครงการ XNA สำหรับ XBox 360 จะใช้. NET Compact Framework รุ่นพิเศษ แต่สมมุติว่าฉันต้องการปล่อยทั้ง XBox 360 และ Windows รุ่น XBox (โดยใช้เฟรมเวิร์กขนาดกะทัดรัด) จะยังใช้งานได้หากเผยแพร่สำหรับ Windows หรือฉันจะต้องสร้างใหม่กับกรอบปกติ (หรือ CF ที่ไม่ใช่ Xbox) เพื่อกระจาย
12 xna  windows  xbox360 

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