Games

จู่ ๆ นักพัฒนาเกมอินดี้เปิดเผยหนึ่งความลับที่เลวร้ายที่สุดในวงการเกม หลังจากที่ยอมรับว่าแถบ Loading ในวิดีโอนั้นเป็นของปลอม ประเด็นนี้เริ่มมาจากคุณ Alasdair Beckett-King โพสต์แบบติดตลกในทวีตเตอร์ว่า “นักพัฒนาเกมมักจะให้ความสำคัญกับการเคลื่อนไหวของแถบโหลดให้สัมพันธ์กับเวลาที่เกมใช้โหลดสิ่งต่าง ๆ พอทำกระบวนการนี้เสร็จ พวกเขาถึงค่อยเริ่มทำงานในส่วนกราฟฟิก หรืออื่น ๆ ของเกม” หลังจากนั้นก็มีนักพัฒนาเกมตัวจริงเข้ามายืนยันหลายคนว่าแถบการโหลดในเกมส่วนใหญ่เป็นของปลอม

รูปจากเกม Metal Gear Solid 4 ตัวอย่างเกมที่มีฉากการโหลด

Vladimir Bogdanic นักพัฒนาเกมของ Croatian Studio ที่มีผลงานอย่าง Eye in the Dark บอกว่า “เราใส่หน้าแถบโหลดเข้าไป และให้มันหยุดชั่วคราวครั้งละ 5 วินาที เพราะเราต้องเปลี่ยนเข้าสู่ฉากในเกมได้อย่างแนบเนียน แม้ว่าบางทีเกมจะโหลดเสร็จทันทีก็ตาม”

“หน้าจอโหลดแผนที่แบบสุ่มในเกม Age of Empires ผมเคยเขียนให้แถบโหลดเด้งไป 20% ซึ่งให้ความรู้สึกว่าเหมาะสมกับบทในสคริปต์” Greg Street อดีตนักพัฒนาเกมที่เคยพัฒนา Age of Empires และ World of Warcraft กล่าว

แต่ก็ใช่ว่าจะมีแต่นักพัฒนาที่จะเข้ามายืนยันว่าจริง Mike Dailly หนึ่งในผู้สร้าง Grand Theft Auto ดั้งเดิมได้ตอบกลับว่า “ผมไม่เคยทำแถบปลอม อันที่จริงผมพยายามทำอย่างเต็มที่ให้แถบโหลดมันถูกต้อง และราบรื่นมากที่สุด แต่เอาจริงนะผมโคตรเกลียดแถบโหลดที่ค้างอยู่ที่ 20% เป็นชาติ แล้วอยู่ ๆ ก็เด้งไป 100% เลย”

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

ที่มา - Rock Paper Shotgun

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ล่าสุดที่เจอหลอดโหลดปลอม ก็คือใน Stable Diffusion Web UI ตอนที่โหลดโมเดลเข้ามา จะเจอว่า ETA บอก จะโหลดเสร็จใน 5 วินาทีนะ แล้วเกจเวลามันก็ค่อย ๆ เลื่อนจนเต็มใน 5 วินาที แต่ความจริงคือมันใช้เวลาโหลดประมาณ 30 วินาที ด้วยสาเหตุว่า ผมเอาโมเดลไปใส่ในฮาร์ดดิสก์จานหมุน 5555

ส่วนตัวคิดว่า ไอ้แถบโหลดนี่ ขึ้นกับว่าจะแทร็คโปรเกรสยังไง ปัญหาคือในฉากโหลดที่เราเห็นมันไม่ได้ทำแค่โหลดข้อมูล มันมีทั้งการ Decompression, shader compile, เตรียมข้อมูลโน่นนั่นนี่ ฯลฯ และทุกอย่างมันไม่ได้ใช้เวลาเท่ากัน และการแทร็คโปรเกรสเองบางทีมันก็ไม่ง่าย อย่างเรื่องการอัพโหลด Texture ไปบน GPU เองมันก็แทร็คไม่ได้ว่าอัพโหลดไปแล้วกี่ไบท์ แล้วเหลืออีกกี่ไบท์

(Texture ขนาด 4K หนึ่งผืน ที่ BC5 compression มีขนาดประมาณ 22MB ถ้าจำไม่ผิด ใหญ่ขนาดนี้เราไม่สามารถที่จะแบบสั่งโหลดแล้วคาดหวังว่ามันจะเสร็จทันทีได้ ก็ใช้เวลาเป็นหลักมิลลิวินาทีอยู่เหมือนกัน แล้วคิดเล่น ๆ ได้ก็ได้ว่าเกมนึงใช้ texture กี่ผืนในหนึ่งฉาก)

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

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

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

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

(อันดับหนึ่งคือดำไปเลย ไม่ต้องแตกเทรด ไม่ต้องทำอนิเมชั่น ไม่ต้อง ฯลฯ ให้มันค้างไปเลย ค้างซะจน Task Manager ถามว่า เฮ้ย ๆ เกมๆ คุณตายยัง อะไรแบบนี้)

ส่วนแบบที่ยากที่สุดผมยกให้ฉากโหลดที่เป็นมินิเกมไปเลย เช่นพวก Galaga ใน Tekken อะไรแบบนั้นครับ

อย่าง Godot นี่ควบคุม AnimationTree ตรง ๆ ไม่ได้เลย ทำให้ต้องปล่อยมันเล่นไปจนถึงจุดที่ต้องการ ในระหว่างนั้นก็ใส่หน้า Loading ปลอม ๆ เข้าไป 55555

นึกถึงเกมที่รักเรา กับเกมที่เรารัก 😆😆😆

ส่วนตัวว่าเดี๋ยวนี้ก็ไม่ค่อยใช้กันแล้วนะ หมุนๆเอาพอ
ตั้งแต่ยุค ps3, ps4 และ

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

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

พอมารู้ความจริงนี้ ... เอออย่างน้อยก็เป็นแรงบันดาลใจละนะ

เรื่องปกติ progress bar หลาย web ก็ใช่ (ผมก็ทำ)
เวลา load บางที่มันไม่มี length/size มาให้คำนวณ หรือไม่ได้ pipe stream , API ไม่รองรับ
รู้แค่โหลดเสร็จเมื่อไร
ก็ทำ progress bar เป็น animation พอให้รู้ว่ามันมี progress

regis_demo Fri, 14/07/2023 - 09:39

งั้น progress bar ตอนติดโปรแกรมก็หลอกเหมือนกันนะสิ
วิ่งพรวดมา99% แล้วค้างอยู่อย่างนั้น

ปลแต่ % ของ windows update น่าจะจริง ช้าตลอด

เคยเจอ loading ของ app ที่ต้องเข้าไปแก้ ตั้งเวลาถอยหลัง จำไม่ได้ว่ากี่วิ
พอแสดง loading เสร็จ ค่อยไป load ข้อมูลจริง ๆ

What !!!!!
เพื่อ !!!

จริง ๆ แทร็คโปรเกรส ถ้าแทร็คจากระดับล่างสุด (เช่นหน่วยเป็น byte แบบกรณีก็อปปี้ไฟล์) มันก็จะเห็นโปรเกรสละเอียดได้ แต่หลาย ๆ งานมันทำแบบนั้นไม่ได้

บางทีก็จะใช้วิธีนับจากจำนวนงานที่ทำ อาจจะมีสักสิบงาน งานที่สิบดันใช้เวลามากกว่าคนอื่นสิบเท่า มันก็จะไปค้างที่งานที่สิบ อะไรแบบนี้ครับ

ดังนั้นเราจะเห็นอะไรหลาย ๆ อย่างที่แบบ โปรเกรสมันค้างอยู่ ณ.จุดใดจุดนึงนาน ๆ สาเหตุมันก็ประมาณนี้แล

เกลียดตอนลง windows สมัยก่อน ที่ อยู่ๆก็ค้างอยู่ที่ 68%(อันนี้จำไม่ได้นะประมาณเอา) นานมากๆ จนไม่รู้ว่าเครื่องค้างรึเปล่า