Tags:
Node Thumbnail

ทีมงาน Epic Games เผยรายละเอียดทางเทคนิคเบื้องหลังเกม Fortnite for Android ที่ถูกจับตาอย่างมาก เพราะเป็นการให้ดาวน์โหลดตรงแบบไม่ผ่าน Play Store แต่ความร้อนแรงของเกม ก็ทำให้มีผู้ดาวน์โหลดถึง 15 ล้านคนภายใน 21 วันแรกที่เปิดตัว

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

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

ประเด็นที่น่าสนใจคือ แม้ว่า Fortnite จะไม่ลง Play Store แต่กูเกิลก็ส่งวิศวกรจากทีม Android มาช่วยเหลือ Epic ในการปรับแต่งประสิทธิภาพของเกมด้วยเช่นกัน นอกจากนี้พาร์ทเนอร์รายอื่นที่มีชื่อปรากฏคือ ARM, Qualcomm, Imagination Technologies, Razer, HiSilicon

No Description

ข้อมูลอื่นที่น่าสนใจ

  • Android มี fragmentation สูง ไม่ใช่แค่ฮาร์ดแวร์แตกต่าง แต่หลายครั้งที่มือถือสองรุ่นใช้ SoC ตัวเดียวกัน แต่ใช้ไดรเวอร์กราฟิกคนละเวอร์ชันกัน ก็มีผลต่อประสิทธิภาพ
  • Snapdragon มีส่วนแบ่งตลาดสูงถึง 71% ในฮาร์ดแวร์กลุ่มที่ Fortnite รองรับ
  • ประเด็นเรื่องเวอร์ชันของ OS กลับพลิกโผ เพราะในมือถือรุ่นใหม่ๆ ที่อายุไม่เกิน 2 ปี (ออกในปี 2015 เป็นต้นมา) มีสัดส่วนของ Android Oreo สูงถึง 92% ตามด้วย Nougat 7% และรุ่นอื่นๆ ที่เก่ากว่านั้นเพียง 0.5% แต่ถ้าเป็นมือถือที่อายุมากเกิน 2 ปี สัดส่วนจะแตกต่างอย่างมีนัยสำคัญ
  • Epic ใช้ระบบ profile ฮาร์ดแวร์โดยแบ่งเป็น 4 ระดับคือ Low (ปิดเกือบทุกอย่างที่ไม่จำเป็น), Mid, High, Epic (เปิดตัวเลือกกราฟิกทุกอย่าง)
  • จุดที่เป็นคอขวดมากที่สุดคือซีพียู เพราะมีความแตกต่างกันสูงมาก มือถือรุ่นท็อปๆ อย่าง Galaxy S9 (Snapdragon) สามารถรองรับคำสั่งวาดได้ถึง 1,500 คำสั่งต่อหนึ่งเฟรม ในขณะที่มือถือรุ่นล่างๆ ทำได้เพียง 400 คำสั่งต่อเฟรม
  • Epic ปรับแต่งเรื่องการลดจำนวนวัตถุที่ต้องวาดบนจอมาแล้วใน Fortnite for iOS ที่ออกมาก่อน ทำให้ไม่สามารถลดจำนวนลงได้อีก จึงต้องหาทางเลือกอื่นในการ optimize และพบว่าทางที่ได้ผลมากที่สุดคือการรีดประสิทธิภาพหน่วยความจำด้วยการจำลอง uniform buffers (รายละเอียดในต้นฉบับ)
  • Epic พบว่า Vulkan ดูมีอนาคต แต่อุปกรณ์ที่รองรับยังมีน้อย และพบกับบั๊กระหว่างการใช้งาน ทำให้เกมยังต้องพึ่ง OpenGL ES เป็นหลัก แต่ก็ยังรองรับ Vulkan บนอุปกรณ์รุ่นใหม่สองตัวคือ Galaxy S9+ และ Note 9 (เวอร์ชัน Snapdragon/Adreno) โดยพบว่า Vulkan ให้ประสิทธิภาพดีกว่า OpenGL ถึง 20%
  • อีกปัญหาที่แก้ยากคือการจัดการหน่วยความจำ เพราะไม่มีอะไรการันตีว่า OS จะกันพื้นที่หน่วยความจำให้เกม Fortnite มากแค่ไหน (แต่ละเครื่องก็แตกต่างกัน) และต้องแย่งชิงหน่วยความจำกับแอพตัวอื่นๆ ที่รันอยู่เบื้องหลังด้วย ทีมงานจึงต้องทดสอบอย่างหนักเพื่อให้มั่นใจว่า Fortnite จะไม่แครชหากเจอปัญหาแย่งชิงหน่วยความจำลักษณะนี้

Epic ระบุว่าโดยเฉลี่ยแล้ว มือถือที่ออกในแต่ละปีจะมีประสิทธิภาพดีขึ้น 50% จากปีก่อน ทำให้สถานะของ Fortnite for Android ตอนนี้ถือว่าทำงานได้ดีมากบนมือถือรุ่นใหม่ที่ออกขายในปีนี้, ดีพอควรสำหรับมือถือที่ออกปีที่แล้ว และพอรับได้สำหรับมือถืออายุ 2 ปี ส่วนมือถือที่เก่ากว่านั้นอาจรันไม่ไหวแล้ว

No Description

ประเด็นเรื่องความปลอดภัยเป็นอีกเรื่องที่ Epic ให้ความสำคัญ เพราะรู้ดีว่าการไม่ลง Play Store ย่อมส่งผลให้มีผู้ประสงค์ร้ายสร้างเว็บไซต์ปลอมมาหลอกให้คนดาวน์โหลด Fortnite แล้วแอบฝังมัลแวร์เข้ามาด้วย ซึ่งบริษัทสำรวจพบถึง 47 เว็บไซต์ ทางออกคือการร่วมมือกับผู้พัฒนาเบราว์เซอร์ (รวมถึงกูเกิล) บริษัทแอนตี้ไวรัส และผู้เกี่ยวข้องอื่นๆ บล็อค URL เหล่านี้หรือแจ้งเตือนว่าเป็นเว็บอันตราย

No Description

Epic ยังนำบทเรียนที่ได้จากการปรับแต่ง Fortnite for Android กลับไปใส่ในโค้ดของเอนจิน Unreal เวอร์ชัน 4.21 เพื่อให้นักพัฒนาเกมรายอื่นๆ ได้ประโยชน์ไปพร้อมกัน

ที่มา - Epic Games

Get latest news from Blognone

Comments

By: TeamKiller
ContributoriPhone
on 8 September 2018 - 16:24 #1069683
TeamKiller's picture

เหมือน Mobile Device จะมี fragmentation ยิ่งกว่าฝั่ง PC Windows อีกหรือเปล่าเนี่ย

By: osmiumwo1f
ContributorWindows PhoneWindows
on 8 September 2018 - 18:34 #1069694 Reply to:1069683
osmiumwo1f's picture

ส่วนตัวมองว่าถ้าในแง่ของฮาร์ดแวร์อย่างเดียว ฝั่ง PC มี fragmentation เยอะกว่า แต่ในแง่ของซอฟต์แวร์อย่างเดียว (OS) ฝั่ง Android มี fragmentation เยอะกว่าครับ

By: big50000
AndroidSUSEUbuntu
on 9 September 2018 - 01:52 #1069729
big50000's picture

ที่น่าสนใจคือ Google ก็มาช่วย

By: checkmate95
ContributorAndroid
on 9 September 2018 - 02:06 #1069730 Reply to:1069729
checkmate95's picture

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

By: Hoo
AndroidWindows
on 9 September 2018 - 15:56 #1069787 Reply to:1069729

ผมว่า เพราะเป็นสนาม know-how ในการทำเกมเจ๋งๆบน Android ที่ห้ามพลาดนะ

จบงานนี้ อาจได้แง่มุมที่จะปรับปรุง Android ให้รันเกมหนักๆ หรือแนวคิดการจัดการ fragmentation สำหรับเกมหนักๆได้ดีขึ้น

By: acitmaster
AndroidUbuntuWindowsIn Love
on 10 September 2018 - 08:44 #1069823
acitmaster's picture

อาจเป็นเพราะหลังพัฒนา Epic เอากลับไปใส่ Unreal Engine ซึ่งไปช่วยนักพัฒนาอื่นๆได้อีก กูเกิลเลยมาช่วย