เครื่องยนต์เช่น Frostbite มีลักษณะอย่างไรในระยะแรก ๆ ? [ปิด]


15

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

มีบทความที่ดีออนไลน์หรือตัวอย่างที่ทุกคนเห็นหรือไม่


1
ไม่ใช่คำตอบโดยตรง แต่การดูทั้ง 5 ส่วนของวิดีโอนี้อาจทำให้คุณเข้าใจถึงเทคโนโลยีyoutube.com/watch?v=EN549g0GNgc#t=9m22
Stowelly

คำตอบ:


25

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

การแสดงผล:

เริ่มต้นด้วยการเรนเดอร์คิวบ์แบบแรเงา เพิ่มเอฟเฟกต์แสงพื้นฐานให้กับมัน เพิ่มวิธีย้ายกล้องไปรอบ ๆ ตอนนี้คุณสามารถบินไปรอบ ๆ ลูกบาศก์ที่น่าเบื่อแขวนอยู่ในโมฆะสีดำที่ไม่มีที่สิ้นสุด เย้.

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

สามขั้นตอนสำคัญต่อไปสามารถทำได้ในลำดับใด ๆ

  • ก่อนอื่นคุณจะต้องการภูมิประเทศ เกมที่ทันสมัยส่วนใหญ่แบ่งการแสดงผลเป็น "เรขาคณิตคงที่" และ "นักแสดง" ที่รูปทรงเรขาคณิตแบบคงที่รวมถึงสิ่งที่ไม่เปลี่ยนแปลง (ผนังพื้นดินเสาตะเกียง) และนักแสดงรวมถึงสิ่งต่าง ๆ ที่เปลี่ยนแปลง (ผู้เล่นยานพาหนะเสาตะเกียงทำลายล้าง) แนวคิดการเรนเดอร์พื้นฐานเหมือนกันสำหรับทั้งคู่มีการเพิ่มประสิทธิภาพที่คุณสามารถทำได้สำหรับเรขาคณิตคงที่ที่คุณไม่สามารถทำได้สำหรับนักแสดง คุณจะต้องมีภูมิประเทศสำหรับวิศวกรเกมเพลย์เพื่อไปต่อดังนั้นหากพวกเขากำลังรอคุณอยู่ก็ถึงเวลาที่จะต้องทำการเรนเดอร์ภูมิประเทศอย่างน้อยที่สุด

  • ประการที่สองคุณจะต้องการพื้นผิว นี่เป็นเรื่องใหญ่และมีโอกาสมากที่คุณจะได้ก้าวไปอีกขั้นเพื่อทำสิ่งที่สำคัญกว่านั้นจากนั้นกลับมาทำซ้ำอีกครั้ง พาสแรกของคุณอาจเพิ่มพื้นผิวให้กับโมเดล รอบที่สองของคุณอาจเพิ่มแสงและพฤติกรรมของพื้นผิวที่ดีขึ้น รอบที่สามของคุณอาจเพิ่มเงา (ฉันสามารถเติมการตอบสนองทั้งหมดที่พูดถึงเงา) ขึ้นอยู่กับประเภทของเกมที่คุณเล่นเกมนี้อาจมีความซับซ้อนตามอำเภอใจ คุณอาจสลับเอนจิ้นเกมทั้งหมดของคุณไปที่การแสดงผลที่เลื่อนออกไป

  • ประการที่สามคุณจะต้องการภาพเคลื่อนไหว อนิเมเตอร์ของคุณ (สมมติว่าคุณไม่ได้มีชีวิตอยู่ในปี 2538) จะมีการจัดทำ rigs อนิเมชั่นสำหรับแบบจำลองของพวกเขาซึ่งประกอบไปด้วยกระดูกที่วิ่งผ่านรูปแบบและข้อมูลเกี่ยวกับการเคลื่อนไหวของกระดูกระหว่างภาพเคลื่อนไหวบางอย่าง คุณอาจเริ่มต้นด้วยความสามารถในการเล่นภาพเคลื่อนไหวตามต้องการจากนั้นเพิ่มความสามารถในการผสมภาพเคลื่อนไหวเข้าด้วยกัน

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

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

ประมาณจุดนี้ศิลปินของคุณจะต้องการเครื่องมือทำพื้นผิวใหม่หรือคุณสมบัติภาพเคลื่อนไหวใหม่และนักออกแบบระดับของคุณจะต้องการเทคนิคการเรนเดอร์ภูมิประเทศแบบใหม่ กลับไปที่ "สามขั้นตอนสำคัญต่อไปสามารถทำได้ตามลำดับ" และทำซ้ำจนกว่าเกมจะเสร็จ

เกม:

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

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

เมื่อคุณมีฟิสิกส์การเคลื่อนไหวขั้นพื้นฐานทำงานแล้วคุณจะอยู่ในส่วนใดส่วนหนึ่งของ "สิ่งเหล่านี้สามารถทำได้พร้อมกัน" อีกครั้ง:

  • การต่อสู้จะต้องดำเนินการ คุณต้องการสิ่งที่สามารถยิงสิ่งต่าง ๆ ในสิ่งต่าง ๆ และสิ่งเหล่านั้นต้องทำงานอย่างเหมาะสม

  • ฟิสิกส์จะต้องดำเนินการ คุณมีการชนกัน แต่การชนเป็นเพียงส่วนเล็ก ๆ ของฟิสิกส์ เมื่อมีคนขับรถจี๊ปออกจากรถถังทุกอย่างจะต้องทำงานอย่างที่ตั้งใจไว้

  • กลศาสตร์เกมจะต้องดำเนินการ คุณจะรู้ได้อย่างไรว่าคุณชนะหรือแพ้? บ่อยครั้งสิ่งที่วางไข่และสิ่งที่ควบคุมได้อย่างไร หากคอมมิวนิสต์พิชิตจุดวางไข่ทำไมมันยังคงวิ่งพล่านยานอนาธิปไตย? เรื่องแบบนั้น

สิ่งเหล่านี้อาจใช้เวลาอีกครั้งโดยขึ้นอยู่กับว่านักออกแบบของคุณต้องการให้คุณทำอะไร นอกจากนี้คุณยังจะต้องใช้เวลาในการติดตามข้อบกพร่อง ("เฮ้ดูสิว่าเกิดอะไรขึ้นเมื่อฉันขับรถถังไปบนปีกของเครื่องบินขับไล่ไอพ่นนี้") โปรดทราบว่าสิ่งนี้จะเกิดขึ้นกับโลกที่ไม่มีพื้นผิวหรือมีนางแบบวิ่งไปมาในตำแหน่งแท่นขุดเจาะตัวละครหรือกับรถถังที่มีเพียงกล่องขนาดใหญ่ที่มีคำว่า "TANK" พ่นสีคล้ำ

UI:

UI สามารถเริ่มต้นได้ก่อนที่รหัสการแสดงผลหลักจะเริ่มขึ้นเนื่องจาก UI และการเรนเดอร์เกมในโลกมีแนวโน้มที่จะใช้ codepath ที่แตกต่างกันโดยสิ้นเชิง แทนที่จะเริ่มต้นด้วยลูกบาศก์คุณจะเริ่มต้นด้วยกล่องจากนั้นเพิ่มพื้นผิวลงในกล่องจากนั้นเพิ่มข้อความลงในกล่อง

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

ฉันสามารถพูดคุยเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ได้ตามต้องการ แต่มันจะกลายเป็น megaresponse ถ้าฉันทำดังนั้นตอนนี้ฉันจะไม่ :)


4
ยอดเยี่ยม .. ขอบคุณสำหรับเวลาและความเข้าใจที่น่าทึ่ง!
Djave

If the Communists conquer a spawn point, why does it keep spawning Anarchist vehicles?ทำงานเกี่ยวกับเกมเกี่ยวกับสงครามกลางเมืองสเปน?
Peter Taylor

1
ไม่เลว แต่โพสต์ของคุณใช้กับเกมพื้นฐานเท่านั้นไม่ใช่เกม AAA วันนี้ทางเทคนิคเป็นเพียงครึ่งหนึ่งของการต่อสู้ เพียงมองไปรอบ ๆ UDK และคุณจะเห็นว่ามีฟังก์ชั่นที่แตกต่างกันมากมาย
ปีเตอร์Ølsted

1
นอกจากนี้แนวความคิดที่เรียบง่ายของพื้นผิวและเฉดสีนั้นมีมากขึ้นในเวลาไม่กี่วันด้วยการใช้การแพร่กระจาย แค่ดูว่าวัสดุถูกสร้างขึ้นมาได้อย่างไรในแต่ละวันudk.com/elements/img/galleries/features-shaders-hero.jpg
Peter Ølsted

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