การพัฒนาเกม

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

4
อะไรคือวิธีที่ทำได้ในการตั้งค่างบประมาณเนื้อหา (เช่นจำนวนรูปหลายเหลี่ยม) สำหรับเนื้อหาระดับในหัวเรื่อง 3 มิติ
ในการตอบคำถามนี้เพื่อ swquinnคำตอบทำให้เกิดคำถามที่ตรงประเด็นมากกว่าที่ฉันต้องการฟังคำตอบ ฉันจะโพสต์กลยุทธ์ของเราเอง (สัญญาว่าจะไม่ยอมรับเป็นคำตอบ) แต่ฉันอยากได้ยินผู้อื่น โดยเฉพาะ: คุณจะกำหนดงบประมาณที่เหมาะสมสำหรับทีมเนื้อหาของคุณอย่างไร โดยทั่วไปแล้วหนึ่งในคำถามแรกที่ถามในการพัฒนาคือ: งบประมาณรูปหลายเหลี่ยมของเราคืออะไร แน่นอนว่าทุกวันนี้เป็นเรื่องยากที่การนับยอด / โพลีคนเดียวเป็นปัจจัย จำกัด แทนความซับซ้อนของ shader อัตราการเติมความซับซ้อนของแสงทั้งหมดมาสู่การเล่น สิ่งที่ทีมงานด้านเนื้อหาต้องการคือจำนวน / ขีด จำกัด ที่ยากต่อการทำงานเพื่อให้พวกเขามีความคาดหวังที่สมเหตุสมผลว่าเนื้อหาของพวกเขาเมื่อเข้าไปในเอ็นจิ้นจริงจะไม่หนักเกินไป เนื่องจากว่า 'มันขึ้นอยู่กับ' ไม่ใช่คำตอบที่มีประโยชน์โดยเฉพาะฉันต้องการได้ยินกลยุทธ์ที่ทำให้ฉันสามารถกำหนดขีด จำกัด ที่สามารถทำงานได้โดยไม่ต้องเป็น) ทำให้เข้าใจผิดหรือ b) ผิด

3
Unity มีการสนับสนุนไทม์ไลน์ที่มีอยู่แล้วหรือไม่?
ฉันวางแผนที่จะพัฒนาเกมใน Unity3D และพยายามทำความเข้าใจกับสิ่งที่เอ็นจิ้นได้จัดเตรียมไว้แล้วและสิ่งที่ฉันต้องเขียนโค้ดเอง ตัวเกมจะเป็นเกมจังหวะซึ่งหมายถึงการซิงก์เสียงและเหตุการณ์กราฟิกเพื่อให้พวกเขาเล่นเสมอเมื่อพวกเขาควรจะ สิ่งที่ฉันกำลังมองหาเพื่อหลีกเลี่ยงเป็นสถานการณ์ที่อาจเกิดความล่าช้าซึ่งเสียงหรือกราฟิกเริ่มคืบหน้าเร็วกว่าอีก เมื่อเราพูดถึงระบบการประสานงานประเภทนี้ในชั้นเรียนการออกแบบเกมของฉันที่มหาวิทยาลัยศาสตราจารย์ของฉันเรียกการออกแบบประเภทนี้ว่า "เส้นเวลา" แนวคิดที่ว่าคุณสามารถยกตัวอย่างสิ่งเหล่านี้อย่างน้อยหนึ่งอย่างเพื่อความก้าวหน้าในอัตราที่ต่างกันกำหนดสิ่งต่าง ๆ ที่จะเกิดขึ้นในอนาคตและซิงค์เหตุการณ์เป็นระยะ อย่างไรก็ตามการเรียกคลาสนี้ว่า "Timeline" นั้นถูก จำกัด เฉพาะอาจารย์ของฉันเองเนื่องจาก googling สำหรับฟังก์ชั่นการใช้งาน "Timeline" บางอย่างของ API นั้นเป็นความพยายามที่ไร้ผล มีชื่อสามัญเพิ่มเติมสำหรับฟังก์ชันประเภทนี้หรือไม่ Unity มีวิธีการใด ๆ ที่มีอยู่ก่อนเพื่อประสานงานการจัดกำหนดการของเหตุการณ์เช่นนี้หรือเป็นสิ่งที่ต้องสร้างขึ้นบนเครื่องยนต์หรือไม่ และถ้าเป็นเช่นนั้นฉันขอขอบคุณที่ชี้ไปที่บทเรียนบางอย่าง!


1
วิธีการจำลองความสูงในเกมจากบนลงล่างของกระเบื้อง
ฉันจะจำลองความสูงในเกม 2D แบบบนลงล่างได้อย่างไร วิธีหนึ่งที่ฉันคิดคือการสร้างกระเบื้องที่ควรจะมีความสว่างสูงกว่า แต่ฉันสงสัยว่ามีการใช้มาตรฐานหรือดีกว่า

1
การวางระเบิดอัจฉริยะ Bomberman AI
ฉันกำลังพยายามใช้อัลกอริทึม AI สำหรับ Bomberman ขณะนี้ฉันมีการทำงาน แต่ไม่ได้ใช้งานอย่างชาญฉลาดมาก (AI ปัจจุบันมีความคลั่งไคล้ในการวางระเบิด) นี่เป็น AI ตัวแรกที่ฉันเคยลองใช้และฉันติดอยู่นิดหน่อย อัลกอริทึมที่ซับซ้อนมากขึ้นที่ฉันมีในใจ (คนที่ฉันคาดว่าจะทำให้การตัดสินใจที่ดีกว่า) จะซับซ้อนเกินไปที่จะแก้ปัญหาที่ดี คุณมีเคล็ดลับทั่วไปอย่างไรในการใช้งาน Bomberman AI มีวิธีที่แตกต่างกันอย่างสิ้นเชิงในการทำบอททั้งการป้องกันหรือการรุกมากขึ้น? แก้ไข: อัลกอริทึมปัจจุบัน อัลกอริทึมปัจจุบันของฉันมีลักษณะดังนี้ (รหัสหลอก): 1) พยายามวางระเบิดแล้วค้นหาเซลล์ที่ปลอดภัยจากการวางระเบิดทั้งหมดรวมถึงที่วางไว้ หากต้องการค้นหาเซลล์นั้นให้วนซ้ำทั้งสี่ทิศทาง หากคุณสามารถหาเซลล์ที่แตกต่างที่ปลอดภัยและไปถึงมันได้ทันเวลา (เช่นหากทิศทางขึ้นหรือลงให้มองหาเซลล์ที่พบทางซ้ายหรือขวาของเส้นทางนี้) จากนั้นจะปลอดภัยที่จะวางระเบิดและย้าย ในทิศทางนั้น 2) หากคุณไม่สามารถค้นหาและปลอดภัยเซลล์ที่แตกต่างให้ลองวางระเบิดแล้วดูอีกครั้ง เวลานี้คุณจะต้องมองหาเซลล์ที่ปลอดภัยในทิศทางเดียวเท่านั้น (คุณไม่ต้องแยกจากมัน) 3) หากคุณยังไม่สามารถหาเซลล์ที่ปลอดภัยได้โปรดอย่าทำอะไรเลย for $(direction) in (up, down, left, right): place bomb at current location if (can find …
13 algorithm  ai 

4
วิธีการตรวจจับเส้น 2D บนการชนกันของเส้น
ฉันเป็นนักพัฒนาเกมแอ็คชั่นแฟลชผู้ซึ่งย้อนหลังไปกับคณิตศาสตร์อยู่บ้าง แต่ฉันคิดว่าฟิสิกส์น่าสนใจและเท่ห์มาก สำหรับการอ้างอิงนี้เป็นเกมที่คล้ายกับเกมที่ฉันทำ: เกมแฟลชแก้ ฉันได้สร้างเกมที่ไม่พันกันนี้จนเกือบเต็มไปด้วยตรรกะ แต่เมื่อเส้นสองเส้นตัดกันฉันต้องการเส้นตัดเหล่านั้นหรือ 'พันกัน' เพื่อแสดงสีที่แตกต่างกัน สีแดง มันจะเป็นคนที่ใจดีจริงๆถ้าคุณสามารถแนะนำอัลกอริทึมสำหรับการตรวจจับการชนกันของส่วนของเส้น ฉันเป็นคนที่ชอบคิดว่า 'เห็น' มากกว่า 'เลขคณิต' :) แก้ไข: ฉันต้องการเพิ่มไดอะแกรมสองสามรายการเพื่อให้สื่อความคิดชัดเจนยิ่งขึ้น ป.ล. ฉันพยายามทำหน้าที่เป็น private function isIntersecting(A:Point, B:Point, C:Point, D:Point):Boolean ขอบคุณล่วงหน้า.

2
ให้แน่ใจว่าเขาวงกตแผนที่บ้านพร้อมลิฟต์สามารถแก้ไขได้หรือไม่
ในเกมของฉันเราเห็นพื้นของบ้านจากด้านข้างและฮีโร่สามารถใช้ลิฟท์ได้ - ลิฟท์จะยกขึ้น (ไปที่ลิฟท์ถัดไปขึ้นไป) หรือลง (ขึ้นไปที่ลิฟท์ถัดไป) ขึ้นอยู่กับลูกศร แสดงแล้วและมีลิฟท์สองตัวเชื่อมต่ออยู่เสมอ นั่นเป็นวิธีเดียวที่ฮีโร่สามารถเคลื่อนที่ในแนวตั้งได้แม้ว่าเขาสามารถเคลื่อนที่ในแนวนอนได้อย่างอิสระ แผนที่บ้านเป็นตาราง 11x5 แบบสุ่มที่มีรายการแตกต่างกันและผนังที่ไม่มีใครเทียบได้ไปทางซ้ายสุดทางขวาสุดและบางครั้งอยู่ในตำแหน่งตรงกลางสองตำแหน่ง: คำถามของฉัน: ฉันจะแน่ใจได้อย่างไรว่าแผนที่จะถูกสุ่ม แต่ยังสามารถแก้ไขได้ตลอดเวลาและฮีโร่ที่เริ่มต้นที่ด้านซ้ายของชั้นล่างสามารถปล่อยให้มันผ่านการยกขึ้นชี้ขึ้นที่ชั้นบนได้อย่างไร สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ภาษา Lua เพื่อการพัฒนา ขอบคุณมาก!
13 2d  maze 

5
ความแตกต่างระหว่างผู้กำกับและผู้สร้างเกมคืออะไร?
ฉันกำลังดูรายชื่อเกมที่ Hironobu Sakaguchi ได้ทำงานและสังเกตเห็นว่าเขาได้รับเครดิตต่างจากเกมหนึ่งไปอีกเกมหนึ่ง เพียงเพื่ออ้างถึงเกมสองสามรายการจากรายการนั้นเขาได้รับการยกย่องว่า: ผู้กำกับใน Final Fantasy 1 ถึง 5, The Last Story ผู้ผลิตใน Final Fantasy 6, 7, 9 และ Tactics, Lost Odyssey ผู้อำนวยการสร้างใน Xenogears, Vagrant Story, Final Fantasy 8 ทำให้ฉันรู้ว่าฉันไม่ทราบความแตกต่างระหว่างตำแหน่งเหล่านี้กับสิ่งที่พวกเขามีส่วนร่วมในกระบวนการพัฒนาเกม

3
การเดินแบบสุ่มแบบเอนเอียงและอนุรักษ์นิยม
ฉันมีเทพดาซึ่งมีVelocityและทั้งเก็บไว้เป็นPosition Vector2ในแต่ละUpdateรอบความเร็วจะถูกเพิ่มเข้าไปในตำแหน่ง ฉันอยากให้สไปรต์เวกเตอร์ตัวที่สาม, Target. อาจมีการกำหนดเป้าหมายใหม่ในการวนซ้ำใด ๆ ฉันต้องการให้ผีสไปรต์เคลื่อนไหวเป็นหลักในรูปแบบการเดินแบบสุ่ม แต่ต้องมีพารามิเตอร์สองพารามิเตอร์ดังนี้: การเดินสุ่มโดยทั่วไปมีแนวโน้มที่จะเพิ่มหรือลดระยะทางให้เท่ากันTarget(บวกกับโอกาสเล็กน้อยของการเคลื่อนไหวแบบสัมผัส) ฉันต้องสามารถอคติการเดินแบบสุ่มของฉันในขณะที่ยังคงสุ่มทิศทางที่สไปรต์ "ตัดสินใจ" ควรมีแนวโน้มที่จะนำมันเข้ามาใกล้Targetยิ่งขึ้น การเดินแบบสุ่มควร "ราบรื่น" - สไปรต์ไม่ควรเปลี่ยนทิศทางอย่างรวดเร็วเนื่องจากจะดูเหมือนว่า "ริบหรี่" หรือ "สั่น" กับผู้เล่น มันควรค่อย ๆ เปลี่ยนทิศทางด้วยวิธีนี้หรืออย่างนั้นเคลื่อนแบบสุ่มในขณะที่เข้าใกล้อย่างช้า ๆ เมื่อเฉลี่ย อะไรคือวิธีที่ดีและเรียบง่ายในการทำสิ่งนี้? ถ้าเป็นไปได้ให้คำตอบเป็นVector2 RandomWalk(Vector2 target)วิธี ฉันมีNextGaussian(mean, stdev)วิธีที่ใช้ได้อยู่แล้วหากเป็นประโยชน์

2
เครื่องตัดโลหะที่สมจริง
คุณจะสร้าง shader โลหะที่ดีได้อย่างไร สำหรับโลหะที่แตกต่างกันและพูดมากหรือน้อยก็กัดเซาะ / เป็นสนิมและอื่น ๆ ฉันรู้ว่าแตกต่างจากวัสดุธรรมดาคือโลหะควร 'สี' แสง specular แต่เมื่อฉันทำเช่นนั้นด้วยทองคำมันก็ดูเหมือน "สีเหลือง" ไม่ใช่โลหะเลย ความช่วยเหลือใด ๆ ชื่นชม!

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

4
วิธีหาเงินจากการสร้างเกมสำหรับ Windows [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันจะสร้างเกม ชุดของเกม แต่พวกเขาจะเพิ่มขึ้นทีละน้อย ดังนั้นในตอนแรกจะมีหนึ่งเกม เกมดังกล่าวจะเขียนด้วย C # พร้อมเทคโนโลยี WPF และ WCF รวมถึงการประมวลผลเกมฝั่งเซิร์ฟเวอร์สถิติและอื่น ๆ และใช่ฉันเพิ่งออกจากงานปัจจุบันของฉันใน บริษัท หนึ่งดังนั้นฉันต้องอยู่ต่อ ดังนั้นจะเริ่มทำเงินในการพัฒนาที่ยอดเยี่ยมนี้ได้อย่างไร มันจะทำให้ฉันมีความสุขมากทันทีที่ฉันชอบพัฒนาและเล่นเกมเหล่านั้น (gomoku, sea battle, ฯลฯ )? ฉันเห็นสองวิธีเท่านั้น - หนึ่งในนั้นคือการหานักลงทุนและอีกวิธีหนึ่งคือการจบเกมอย่างน้อยหนึ่งเกมที่มีเวลาในการให้บริการเซิร์ฟเวอร์ 100% และเริ่มกระจาย แต่ฉันต้องการคำแนะนำ ฉันต้องการความช่วยเหลือจริง ๆ แล้ว - คำอธิบายวิธีการทำสิ่งเหล่านี้ทั้งหมดและเพื่อไม่ให้อดอยาก :)

2
ฉันจะได้รับเอฟเฟกต์เรืองแสงคล้ายกับที่อยู่ใน WoW ได้อย่างไร
ฉันเพิ่งใช้เอฟเฟกต์เรืองแสงโดยใช้ตัวกรองแบบเกาส์และไม่สามารถรับเอฟเฟ็กต์แบบเต็มที่ฉันต้องการได้ ฉันอยากรู้ว่าจะทำเอฟเฟกต์เรืองแสงใน WoW ได้อย่างไร ชอบรูปนี้: รอบ ๆ ดาบนั้นเป็นเอฟเฟกต์เรืองแสงที่ดีจริงๆ สิ่งนี้จะเกิดขึ้นได้อย่างไร? นอกจากนี้บางครั้งใน WoW คุณจะเห็นเอฟเฟกต์เรืองแสงเหล่านี้ใช้ชีวิตของมันเอง ชอบแสงสีม่วงในรูปนี้: สิ่งเหล่านี้สำเร็จได้ด้วยผลกระทบของอนุภาคหรือไม่? มีแหล่งข้อมูล / บทแนะนำที่ดีที่จะช่วยให้ใครบางคนเรียนรู้วิธีการใช้เอฟเฟกต์เหล่านี้หรือไม่?
13 particles  glow 

2
ฉันจะจัดการกับการตัดจุดยอดที่อยู่ใกล้กับดวงตาได้ดีกว่าระนาบคลิปใกล้ได้อย่างไร?
ฉันเปิดโปรแกรม 3D ของฉันเองใน JavaScript และใช้เฉพาะภาพวาดบนผ้าใบไม่มี WebGL นี่เป็นโคลน Minecraft อีกอัน; ฉันรักกล่องอย่าตัดสินฉัน จนถึงตอนนี้ทุกอย่างใช้งานได้อย่างยอดเยี่ยมยกเว้นสิ่งหนึ่ง: ในแบบ 3 มิติเมื่อจุดยอดเยี่ยมอยู่ด้านหลังระนาบรูปวาดใกล้การฉายภาพบนหน้าจอของพวกเขาออกมาแปลก ๆ (สมมติว่าจุดยอดอื่น ๆ ที่ใช้ติดตามเครื่องบินอยู่ด้านหน้า) ฉันพยายามตัดจุดเหล่านี้ แต่จากนั้นฉันสามารถเห็นรางพื้นผิวที่ใช้จุดยอดเหล่านี้ ใน WebGL / OpenGL การ์ดกราฟิกจะดูแลจุดเหล่านี้และระนาบแสดงผลอย่างถูกต้อง แต่ฉันไม่สามารถเข้าถึงฮาร์ดแวร์ได้ดังนั้นฉันจะต้องใช้รหัสนี้เอง ฉันไม่แน่ใจว่าสิ่งที่จะทำให้มันในขณะนี้สิ่งสุดท้ายที่อยู่ในใจคือการย้อนกลับการฉายของจุดที่อยู่เบื้องหลังระนาบการตัดของผู้เล่นซึ่งดูเหมือนว่ามีเหตุผลเพราะฉันต้องฉายจุดไปยังหน้าจอที่อยู่ข้างหน้า ของจุดสุดยอด นี่คือความคิดของฉัน: นี่คือภาพบางส่วนที่แสดงให้เห็นถึงสิ่งที่เกิดขึ้น: จากระยะไกลกล่องสีฟ้าจะแสดงผลได้ดีอย่างสมบูรณ์ เมื่อจุดยอดหนึ่งไปด้านหลังระนาบการเล็มของผู้เล่นฉันจะฉายภาพย้อนกลับ แต่มันก็ดูไม่ถูก: focalLength *= -1; 2d.x = x*focalLength/z; 2d.y = y*focalLength/z; โปรดทราบว่าช่องสีเทาด้านหลังจะถูกลบออกอย่างสมบูรณ์เนื่องจากจุดยอดทั้งหมดที่ใช้วาดใบหน้านั้นอยู่ด้านหลังโปรแกรมเล่น นี่คือสิ่งที่เกิดขึ้นเมื่อค้นหาขึ้นหรือลง ฉันไม่รู้ว่าจะทำอย่างไรกับคณิตศาสตร์ที่อยู่เบื้องหลังสิ่งนี้ฉันหวังว่าจะมีใครบางคนประสบปัญหาเดียวกันแล้วและสามารถช่วยฉันได้

2
ฉันจะตรวจสอบได้อย่างไรว่าผู้เล่นได้สำเร็จหรือไม่?
ฉันสร้างเกม MMO และฉันเพิ่งมาถึงจุดที่ฉันต้องใช้ความสำเร็จ ... ฉันจะทำอย่างไร สิ่งที่ตรงไปตรงมาที่สุดที่ต้องทำคือเรียกใช้ทุก ๆ 100ms: for a in achievements for p in players if a.meetsRequirements(p) then p.completeAchievement(a) แต่นั่นก็ทำให้เกิดภาวะแทรกซ้อนมากขึ้น ตัวอย่างเช่นฉันจะตรวจสอบว่าความสำเร็จนั้นเสร็จสมบูรณ์ได้อย่างไร? ผู้เล่นมีคุณสมบัติที่กำหนดเองด้วยตัวเองเพื่อความสำเร็จที่เฉพาะเจาะจงหรือไม่? ฉันทำสิ่งนี้ด้วยเควสต์เพราะพวกเขาส่วนใหญ่จะ“ เก็บไม้ 100 อัน” ดังนั้นเควสต์ที่แอคทีฟของผู้เล่นจึงตรวจสอบว่า นอกจากนี้ต้องมีเวลาที่ดีกว่าในการตรวจสอบซึ่งจะทำให้เซิร์ฟเวอร์ของฉันช้าลงเป็นระยะฉันคิดว่า

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