เกมทั้งหมดไม่สามารถหลีกเลี่ยงการโหลดเริ่มต้นหรือไม่


23

เช่นเดียวกับเกมยักษ์ใหญ่ในโลกเปิดโหลดแผนที่ขนาดใหญ่แบบไดนามิกเราไม่สามารถโหลดแผนที่เมนูและอินเทอร์เฟซหรือการตั้งค่า 3D แบบเสมือนจริงด้วยวิธีการโหลดแบบไดนามิกเดียวกันได้หรือไม่ ดูเหมือนว่าจะไม่สามารถโหลดอินเทอร์เฟซและสถานที่ต่าง ๆ ภายในเกมได้แบบไดนามิกเช่นเดียวกับแผนที่โลกเปิดขนาดใหญ่ที่ถูกโหลดขณะที่คุณเดินผ่านพวกเขา

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


16
โปรดทราบว่าในเกมเวิร์ลด์ 'ราบรื่น' หลายเกมจะมีเวลาโหลดเมื่อผู้เล่นย้ายไปยังตำแหน่งที่ไม่สามารถคาดเดาได้ หนึ่งสามารถเดินจากปลายด้านหนึ่งของนิวยอร์กไปยังส่วนอื่น ๆ ใน The Division โดยไม่ต้องโหลดหน้าจอในขณะที่การเดินทางไปยังสถานที่ที่รวดเร็วต้องมีการโหลด ทุกอย่างเกี่ยวกับการรู้ว่าจะโหลดอะไรต่อไป
Felsir

2
@Felsir Dungeon Siege ทำแบบเดียวกัน
Mason Wheeler

ตัวอย่างเช่น Batman Arkham Origins ใช้หน้าจอการโหลดก่อน cutscenes และเมื่อเข้าสู่พื้นที่ใหม่ทั้งหมด เรื่องราวที่ขับเคลื่อนด้วยเรื่องราวธรรมชาติที่ก้าวหน้านั้นให้ยืมตัวเองได้ดีและทำให้ผู้ใช้รู้สึกผ่อนคลายอย่างเป็นธรรมชาติ สิ่งนี้ทำงานได้ดีโดยเฉพาะอย่างยิ่งเนื่องจากพื้นที่ที่กว้างขวางและมีสินทรัพย์ความละเอียดสูง มันจะใช้เวลานานในการเขียนโค้ดและทดสอบคุณสมบัตินี้เพื่อผลประโยชน์เพียงเล็กน้อย
Casey Kuball

ทำให้ RAM ของคุณสูงถึง 128GB สร้างไดรฟ์ RAM ขนาด 64GB ขึ้นไปโหลดเกมของคุณลงในไดรฟ์ RAM เวลาในการโหลดจะเร็วมากคุณแทบจะสังเกตไม่เห็น ฉันอัพเกรดเป็น SSD และเวลาในการโหลดลดลงอย่างมาก การอัปเกรดการ์ดวิดีโอโดยเฉพาะกับ RAM วิดีโอเพิ่มเติม
cybernard

การโหลด Async ต้องใช้เวลาซึ่งอาจแตกต่างกันไปขึ้นอยู่กับ CPU และความเร็วดิสก์ คุณไม่สามารถมั่นใจได้ว่าสิ่งต่างๆจะถูกโหลดตามเวลาที่คุณต้องการ
Alan Wolfe

คำตอบ:


31

คำตอบคือใช่ซึ่งสามารถทำได้ในกรณีส่วนใหญ่อย่างน้อยในระดับหนึ่ง

เหตุผลที่มันไม่ได้ทำมีหลายอย่าง:

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

ตามมาถึงจุด 'สมดุลเซิร์ฟเวอร์โหลด' เกมออนไลน์จำนวนมากที่เข้ามาในตลาดในปัจจุบันมีพื้นที่ 'ฮับ' กลางที่ไม่เหมือนใครสำหรับคุณและไม่มีใครสามารถเข้าถึงได้ บ่อยครั้งที่พื้นที่เหล่านี้ถูกวางไว้ด้านหลังโหลดโซนหรือพื้นที่เดินช้า ๆ (เช่น BOO ใน 'The Division') เพื่อให้พวกเขาปลอดภัยสามารถนำคุณออกจากอินสแตนซ์ที่คุณเคยอยู่และวางไว้ในอินสแตนซ์ส่วนตัวของคุณเอง .
SGR

7
นอกจากนี้ยังมีปัญหาของหน่วยความจำ อาจไม่สามารถโหลดระดับที่มีอยู่ในขณะที่รักษาระดับปัจจุบันในหน่วยความจำ (โดยเฉพาะอย่างยิ่งสำหรับคอนโซลหรืออุปกรณ์พกพา) ดังนั้นคุณต้องใช้หน้าจอการโหลด
Jezzamon

@Jezzamon ฉันคิดว่าแผนที่ Skyrim ทั้งหมดจะไม่ถูกเก็บไว้ในความทรงจำในเวลาใดก็ตาม บางทีฉันผิด แต่ถ้าไม่ทำไมสถานการณ์อื่น ๆ ไม่เหมาะสมกับกลยุทธ์การโหลดแบบไดนามิกของแผนที่โลกเกมเปิดขนาดใหญ่?
Viziionary

แทบไม่มีใครกลิ้งเอ็นจิ้นเกมของตัวเองออกจากศูนย์อีกต่อไป พวกเขาซื้อเอ็นจิ้น (Unreal, Unity, CryEngine) และมิดเดิ้ลมิดเดิ้ลแล้วมัดเข้าด้วยกัน เอ็นจิ้นพื้นฐานมักไม่ได้รับการตั้งค่าให้สตรีมเนื้อหาอย่างต่อเนื่องหรือรีสตาร์ทโดยไม่ต้องโหลดซ้ำ ลองคิดดูว่าคุณตายไปแล้วในเกมเดียวที่ต้องเผชิญกับความเร็วในการโหลด 60 วินาทีแม้ว่าจะมีการโหลดเนื้อหาและระดับแล้ว เหตุผลที่ @Peter ให้ไว้ก็เป็นสาเหตุที่คุณไม่เห็นเกมที่ให้คุณเริ่มเล่นเกมเหล่านั้นในขณะที่คุณยังดาวน์โหลดสินทรัพย์บ่อยครั้ง
Tom B

2
@Viziionary ระดับปกติจะนำพื้นผิวมาใช้ใหม่จำนวนมากและระดับที่แตกต่างจะใช้พื้นผิวชุดอื่น ระดับดันเจี้ยนจะใช้พื้นผิวกำแพงดันเจี้ยนจำนวนมากระดับทะเลทรายจะใช้พื้นผิวหินทรายและทะเลทรายระดับภูเขาจะใช้พื้นผิวหินหญ้าและหิมะ ฯลฯ สำหรับเกมที่มีลักษณะเหมือนจริง มีการใช้พื้นผิวทั่วทั้งระดับจะทำให้มีหน่วยความจำเหลือน้อย (หรือจะยกเลิกการโหลดพื้นผิวที่คุณต้องการ)
ปีเตอร์ - Unban Robert Harvey

10

หากเมนูของคุณมีเนื้อหามากมายเนื้อหาเหล่านั้นต้องใช้เวลาโหลด คุณไม่มีความคิดว่าคนสั่งซื้อจะนำทางเมนูของคุณอย่างไร พวกเขาสามารถคลิกตัวเลือก -> back -> เครดิตหรือเครดิต -> back -> เริ่มเกมได้อย่างรวดเร็ว ดังนั้นจึงไม่มีกลยุทธ์การสตรีมที่เหมาะสม

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


ทำไมไม่จัดลำดับความสำคัญในการโหลดเมนูหนัก / เข้าถึงบ่อย? ในเกม RPG ใด ๆ ถ้าฉันเปิดเมนูมันเป็น 90% ของเวลาในการจัดเตรียมสิ่งที่ฉันพบหรือใช้รายการ คุณสามารถเริ่มต้นด้วยเมนูเหล่านี้ หรือเริ่มต้นด้วยเมนูที่ใช้เวลาในการโหลด 5 นาทีและปล่อยการโหลดถ้าผู้ใช้ออกจากเมนู
DrakaSAN

1
@ DrakaSAN แต่นั่นก็มักจะเหมาะที่สุด แม้แต่ Diablo ดั้งเดิมก็ยังแสดงให้คุณเห็นถึงสินค้าคงคลังที่หยดหมวก วิธี "รอทุกอย่าง" ดูเหมือนจะมีการฟื้นตัวที่สำคัญกับคอนโซลที่ทันสมัยซึ่งมีหน่วยความจำ จำกัด มากเมื่อเทียบกับพีซี และเนื่องจากเกมจำนวนมากที่อยู่บนพีซีและคอนโซลเป็นพอร์ตที่คอนโซล -> พีซีข้อ จำกัด บางอย่างของคอนโซลจึงสืบทอดมาในกระบวนการ เปรียบเทียบ Diablo III หรือ Divinity กับ Skyrim หรือ Dark Souls - ความแตกต่างค่อนข้างชัดเจน
Luaan

2
เมนูโหลดช้าเป็นปัญหาที่แท้จริงในการเล่นเกมหรือไม่? ไม่
อลัน B

@AlanB เฉพาะในกรณีที่วิธีเดียวในการเข้าถึงวัสดุสิ้นเปลืองนั้นจะผ่านเมนูนั้น ดู Destiny บน Xbox 360 / PS3 และระยะเวลาในการใช้ Ammo Pack เมื่อเทียบกับรุ่น XB1 / PS4
SGR

1
@SGR ฉันกำลังจะใช้ Destiny บน PS4 เป็นตัวอย่างของเมนูที่ใช้เวลาโหลดนานเกินกว่าจะยอมรับได้ฉันไม่สามารถจินตนาการได้เลยว่ามันจะเลวร้ายแค่ไหนในคอนโซลรุ่นล่าสุด
IllusiveBrian

5

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

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

แน่นอนคุณพูดว่า "โดยไม่ต้องเปลี่ยนสภาพแวดล้อม" แต่ฉันแค่ต้องการที่จะนำขึ้น ยกตัวอย่างHaloเพราะมันเป็นสิ่งที่ฉันต้องการจะดูมากขึ้น

ภายในแคมเปญที่ต่อเนื่องหรือเมื่อใดก็ตามที่ผู้พัฒนามีอำนาจควบคุมตำแหน่งของผู้เล่นมากโซลูชั่นดังกล่าวจะทำงานได้อย่างแน่นอนเช่นเดียวกับที่คุณพูด สุนัขซุกซนชอบทำเวลาโหลดโดยที่Jak และ Daxterขึ้นชื่อว่าไม่มีเวลาในการโหลดบน PS2 และเกมUnchartedมีเวลาโหลดเพียงครั้งเดียวในตอนแรก

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


3
Jak และ Daxter มีเวลาในการโหลด พวกมันถูกซ่อนไว้หลังประตูในวิธีที่คล้ายกับลิฟต์ ME1 และวิธีซ่อนเวลาในการโหลด
Nzall

2
แต่เวลาในการโหลดที่ซ่อนอยู่ด้านหลัง S-curve ฮอลล์และไม่รู้สึกว่าเวลาโหลด
Almo

ถ้าฉันเข้าใจถูกต้องแผนที่โลกเปิดอย่าง Skyrim arent ที่โหลดเข้าสู่หน่วยความจำเพียงชิ้นส่วนที่ผู้ใช้ต้องการดูทันทีดังนั้นคุณไม่สามารถโหลดล่วงหน้าในส่วนเริ่มต้นเล็ก ๆ ของแผนที่ทั้งหมด (20?) ได้หรือไม่ ด้วยการปรับให้เหมาะสมของข้อมูลแผนที่ดูเหมือนว่า RAM จริงที่ใช้ไม่ได้เป็นปัญหาในแง่ของจำนวน RAM ที่ทันสมัยแม้แต่ในมือถือ มันเป็นพลังการเรนเดอร์ของการ์ดที่ทำให้เกมส่วนใหญ่ติดขัดฉันคิดว่า .. ฉันแค่คิดว่าคุณสามารถโหลดพื้นที่เริ่มต้นของแผนที่ Halo ทั้งหมดสำหรับผู้ใช้แล้วแสดงผลที่เลือกขณะที่เหลือจากหน่วยความจำ
Viziionary

1
แผนที่ไม่ใช่สิ่งที่จะต้องใช้เวลาตลอดไปในการโหลด - มันเป็นพื้นผิวขนาดใหญ่, ไฟล์โมเดล, โปรแกรม shader, ฯลฯ ซึ่งเจาะจงไปที่ระดับหรือพื้นที่
Tom B

3

เวลา.

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


2

ท้ายที่สุดมันมีทรัพยากร จำกัด

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

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

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


2

เหตุผลหนึ่งที่การโหลดแบบไดนามิกไม่ได้เป็นโซลูชันที่สมบูรณ์แบบที่คำตอบอื่น ๆ ไม่ได้คิดว่าจริง ๆ แล้วฉันคิดว่าเป็นป๊อปอินและสิ่งประดิษฐ์กราฟิกอื่น ๆ

การคาดการณ์ของสิ่งที่จะโหลดและสิ่งที่ไม่โหลดมักจะล้มเหลวและมันอาจเป็นประสบการณ์ที่น่าสนใจเมื่อมันทำ หนึ่งในตัวอย่างที่แย่ที่สุดคือ Rage by id Software อย่างน้อยในรุ่นแรกระบบ megatexture สร้างขึ้นมาเพื่อให้สิ่งที่เหมือนการหมุนไปรอบ ๆ อย่างรวดเร็วทำให้พื้นผิวปริมาณมหาศาลและแม้แต่สิ่งประดิษฐ์ทางเรขาคณิตปรากฏขึ้นก่อนที่จะจางหายไปอย่างช้าๆ

ปัญหาเหล่านี้ไม่ใช่ปัญหาก็คือทุกอย่างถูกโหลดไว้ล่วงหน้า

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

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

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


2

เหตุผลหนึ่งที่พบบ่อยคือมันไม่ง่ายเสมอภาคในการพิจารณาว่าจะต้องใช้ทรัพยากรในอนาคตอันใกล้หรือไม่

เนื่องจากคุณใช้การสลับหน้าภูมิประเทศเป็นตัวอย่างฉันจะทำต่อไป

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

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

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

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

  • บันทึกไฟล์: คุณจะต้องโหลดทุกไฟล์ไฟล์บันทึกก่อนที่ผู้ใช้จะมาถึงหน้าจอบันทึกหรือเดาว่าไฟล์ใดที่พวกเขาอาจโหลด (ล่าสุด 5 เป็นต้น)
  • UI: เกมกลยุทธ์หลายเกมเปลี่ยน UI ขึ้นอยู่กับฝ่ายของคุณ คุณจะต้องโหลดทุกการออกแบบ UI ที่เป็นไปได้ก่อนที่ผู้ใช้จะเริ่มเกม
  • โลกของเกม: ในเกมที่สร้างขึ้นตามขั้นตอนเช่นเกม Minecraft หรือ RTS เช่นอารยธรรมโลกจะไม่มีอยู่จนกว่าจะมีการดู การโหลดล่วงหน้านี้เป็นไปไม่ได้เนื่องจากไม่มีอยู่ในตอนแรก ก่อนการคำนวณพวกเขาสามารถที่ดีที่สุดที่จะทำในทำนองเดียวกันกับก่อนการโหลดและไม่ได้มีผลบังคับใช้ในกรณีทีเอส

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

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

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


1

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

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

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

เวลาแฝงยังไม่สามารถยอมรับได้เสมอไป ฉันได้ยินกรณีใน Starcraft ที่คุณจะ "อุ่นเครื่อง" เกมของคุณโดยการโหลดแผนที่ที่มีผลข้างเคียงของการแคชทุกรูปแบบ / ภาพที่โหลดแบบไดนามิก จากนั้นคุณจะออกและเล่นเกมตามปกติ สำหรับเกมเมอร์ชั้นนำการพูดติดอ่างของ GUI ที่น้อยที่สุดซึ่งส่งผลต่อการเล่นเกมของพวกเขา พยายามพิสูจน์ว่าเวลาแฝงใดที่ผู้ใช้จะยอมรับได้และจะไม่ยุ่งยาก

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