Genshin Impact

ภายหลังจาก Hoyoverse (ชื่อเดิมคือ Mihoyo) ผู้พัฒนาเกมมือถือที่เป็นกระแสโด่งดังอย่างมากในช่วงปี 2020 ได้ทำอัพเดทตัวเกมเป็น Version 4.3 เมื่อวันที่ 20 ธันวาคม 2566 ที่่ผ่านมา กลับพบว่ามีผู้เล่นส่วนหนึ่งไม่สามารถเข้าเกมได้ อาการที่เกิดขึ้นคือหลังจากกดปุ่ม launch แล้วตัวเกมไม่ถูกเปิดขึ้นมา

ผู้ใช้ Reddit นามว่า MinusPL ค่อนข้างมั่นใจว่าปัญหาดังกล่าวเกิดจากการรองรับการชุดคำสั่ง SSE 4.1 และ SSE 4.2

แน่นอนว่าผู้มีเล่นที่มีปัญหาเดียวกันนี้มา comment ตอบมากมาย โดยส่วนมากมักจะเป็นผู้เล่นที่ใช้ CPU รุ่นเก่าราว 10 ปีขึ้นไปทั้งสิ้น

ณ วันที่เขียนข่าว (26/12/2566 19.33น.) ทางบริษัท hoyoverse เองยังไม่แจ้งให้ผู้เล่นว่ารับทราบถึงปัญหานี้แล้วและยังไม่มีวิธีแก้ไขออกมาแต่อย่างใด

[แก้ไข] ทางบริษัทได้ประกาศว่าทราบถึงปัญหาดังกล่าวแล้วจะแก้ไขในอัพเดทถัดไปเพื่อให้รองรับอุปกรณ์ดังกล่าว

ผู้เล่นจึงมีหนทางแค่สามทางเท่านั้น

  1. รอผู้พัฒนาออกแพทอัพเดทตัวเกม
  2. เล่นเกมบนแพลตฟอร์มอื่น เช่น มือถือ PS 5 หรือ บน Nvidia Geforce Now (Cloud Gaming)
  3. ซื้อ CPU รุ่นใหม่ (แน่นอนว่าต้องซื้อ Mainboard และ Ram ใหม่ด้วย = =")

Minimum System requirement ตอนเกมเปิดให้บริการวันแรก

Minimum System Requirements Version 4.1

ที่มา : reddit

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

ใช่แล้วแรกเริ่มเพราะเราพบปัญหานี้ แก้ทุกทางไม่หายจนกระทั้งลงOSใหม่ก็ไม่หาย เอะใจแปลกๆละ เลยค้นหาแล้วเจอคนที่เป็นเหมือนกัน

บัคแบบนี้แก้ยาก
ถ้าเป็นที่ คอมไพเรอร์ ก็ตั้งให้ไม่ใช้ SSE
สร้างเป็น _NO-SSE.exe มาแก้ขัด แต่ความเร็วน่าจะตกฮวบ

แต่ถ้า Mihoyo เขียน function assembly เองนี่ หาทางแก้ลำบากแน่
เพราะมันเป็นเฉพาะบางเครื่อง (bug แบบ it work on my machine) 🤔

เอ่อ...ผมไม่ค่อยเข้าใจเลยครับ มันเป็นบัคหรือครับนึกว่าCPUไม่support ยังไงรบกวนช่วยอธิบายขยายความจะเป็นพระคุณมากครับ

ประมาณว่าต้องเขียนแยก function เดียว 2ครั้งครับ

สมัย MMX ยุคแรกๆ (โห..พูดแล้วแก่)
dev ต้องเขียน 2 แบบคือ ใช้ MMX กับไม่ใช้ MMX
จากนั้นก็ตรวจ CPU ว่ามี MMX มั๊ย
ถ้ามีก็เอา pointer function ชี้ไปที่ function มี MMX
ถ้าไม่มีเอา pointer function ชี้ไปที่ function ไม่มี MMX
เวลาเรียกใช้ก็ให้เรียกผ่าน pointer function เสมอ
ห้ามเรียกเองตรงๆ

บางเกมแยก เป็น game.exe กับ game_MMX.exe ไปเลยก็มี

Genshin Impact มันเป็น Unity เนี่ยสิครับ ... หรือว่าซื้อ Source License มานะ?

จริง ๆ ไม่ต้องถึงระดับ build แยกหรอกครับ มัน check cpu capability แล้ว if-else บ้านๆ เอาได้ครับ

สมมติถ้าเป็น SDL ก็จะเขียนประมาณ

if(SDL_HasSSE41()) { 
   runSSE41Commands();
} else {
   runNonSIMD();
}

อ้างอิง SDL_HasSSE41

ถ้าใช้ API อื่นก็อาจจะต้องลง library ที่เช็คแฟล็กตรงนี้ให้แทนได้ครับ เช่น cpuinfo

แต่ผมเดาว่าเค้าอาจจะใช้ 3rd-party library ที่ไม่มี fallback นะ ผมคิดว่าเดฟจำนวนนึงคงไม่คิดว่า เกมเมอร์จะยังใช้เครื่องที่เป็น Core Duo หรือ Jaguar หรือเก่ากว่าอยู่ อะไรแบบนี้ครับ

เกมเมอร์จะยังใช้เครื่องที่เป็น Core Duo หรือ Jaguar หรือเก่ากว่าอยู่ อะไรแบบนี้ครับ

เห็นบอกว่าบนโทรศัพท์กินเครื่องมากๆ จน Android เอาแทบไม่อยู่ ผมนึกว่าคอมพวกนั้นเอาไม่อยู่ไปนานแล้วเสียอีก

มันเอาอยู่นะครับและเล่นคอนเท้นที่ยากที่สุดของเกมได้ครับ fps 60 ก็จริงแต่เปิด 1%lowจะได้ราวๆ10-20fps ครือเป็น60fpsที่กระตุกนิดๆมึนหัวหน่อยๆเล่น1080p กับการ์ด1050Ti พอได้น่ะครับ

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

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

ส่วนที่มองว่าใช้ unity license แบบที่เข้าถึงซอร์สโค๊ดได้คือ ถ้าผมเข้าใจไม่ผิด ... ใน Unity มันไม่มีคอนฟิกแบบจะใช้ CPU capability สูงมากน้อยแค่ไหนน่ะครับ เลยเดาว่าน่าจะเป็น custom engine code ของ MiHoYo เอง (ซึ่ง license ถูก ๆ มันคอมไพล์โค๊ดเองไม่ได้ไง) แต่ผมอาจจะจำผิดนะ ไม่ชัวร์ขนาดนั้นครับ

เบื้องหลังของ Genshin แทบไม่ได้รันโค้ดบน C# เลย แต่ใช้ Lua Interpreter ที่ Custom เอง คาดว่าเหตุผลเบื้องหลังคือใช้เพื่อซ่อนโค้ด (Obfuscation) ด้วยความที่ว่าเป็นเกมออนไลน์ที่ประมวลผลที่ฝั่ง Client-side เสียส่วนใหญ่เพื่อประหยัดต้นทุน และเนื่องจากฝั่ง Lua ปรับแต่งได้ยืดหยุ่นกว่าด้วย และค่อนข้างข้ามแพลตฟอร์ม (ของ C# ก็มี MoonSharp เป็นต้น) ผมคิดว่าอาจจะเป็นเพราะตัวรันโค้ดของ Genshin มากกว่าจะเป็น Unity ที่ก่อปัญหา

เปิดหาใน Git จะมีเครื่องมือ RE เพื่อ Genshin โดยเฉพาะเลย อย่าง https://github.com/CallowBlack/genshin-luadec ก็เคยมีอยู่และก็หายไปซะงั้น และยังมีคลิปวิดีโอสอนแฮกอยู่ประปราย ก็เป็นการทำ Injection เข้า Lua ของ Genshin เช่นกัน ซึ่งหลายวิดีโอก็โดน Copyright Strike โดย Hoyoverse อย่างรวดเร็ว

การใช้ pointer function เพื่อหนีการใช้ if ในทุกๆการ call ครับ
เป็นทริคการ optimize ขั้นสูงอย่างนึง

ยิ่งถ้า function นั้นใช้บ่อยๆ เรียก 1000รอบ ก็ if 1000 ที
และผลคือมันทำให้กิน cpu branch predict ไปเพียบด้วย
เขาถึงเล่นท่ายากให้เป็น pointer function แล้ว
initial ด้วย if เพียงครั้งเดียว

ซึ่งถ้า function นั้นเป็นของ unity
ก็น่าจะใช้กระบวนท่านี้อยู่แล้ว เพราะมันกลายเป็นเทคนิคมาตรฐานไปละ
ซึ่ง unity เลิก support ก็จบกัน

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

เครื่องมันรันได้อยู่นะครับ เกมอาจจะต้องการขยายกลุ่มคนเล่นให้กว้างไม่ได้ต้องความแรงๆ เพื่อภาพสวยๆ

https://genshin.hoyoverse.com/en/news/detail/103699

ไม่ได้บอกตรง ๆ ว่า จะต้องเป็น CPU ที่มี SSE 4 แต่บอกว่า Minimum i5 or equivalent

ซึ่ง SSE4 มีมาตั้งแต่สมัย Penryn หรือ สมัย Core 2 Duo เลย ตอนนั้นมี 4.1 ถ้าเป็น Core i เป็นต้นมาก็จะมี 4.2

ฝั่ง AMD ต้องเป็น Jaguar ขึ้นไป ถึงจะมี 4.1 4.2 ก่อนหน้าจะเป็น 4a

ผมใช้ athlon x4 845 (รุ่นก่อน ryzen เปิดตัว) ยังเล่นได้ ดูใน cpuz มี sse4.1 sse4.2 รอดไปยังไม่ต้องยกเครื่องใหม่

ถ้าเก่ากว่านี้แล้วมีปัญหาคงซีรี่ย์ Phenom ละมั้ง

น่าจะใช่แหละครับผมใช้ Phenom x6 1055T เล่นได้มาตลอด เพิ่งจะมามีปัญหา4.3นี่ล่ะครับ minimumดันไม่ได้บอกฝั่งAMDเสียด้วย

ต้องลองดูครับว่าเล่นได้จริงไหมเพราะขั้นต่ำบอกว่าGen 4th

แต่2500นี่รุ่นเดียวกัน x6ของผมเลย ความแรงคู่คี่กันแค่ตอนนั้นผมอยากลองAMDแล้วก็ไม่ได้ตั้งใจเอามาเล่นเกม = ="