By Arnon Puitrakul - 16 พฤศจิกายน 2022
เมื่อหลาย ๆ วันก่อน Resident Evil Village สำหรับ Mac ก็ได้เปิดให้ซื้อ และ ดาวน์โหลดมาเล่นผ่าน App Store กันไปแล้ว หลังจากเปิดตัวให้ดูในงาน WWDC'22 ที่ผ่านมา นับว่าเป็นเกม AAA แรก ๆ เลยที่เป็น Native Apple Silicon เลยทำให้เราตั้งคำถามว่า เอ๊ะ ทำไม ถึงไม่มีเกม Port ลงมาใน Apple Silicon มากนัก
สำหรับคนที่ไม่ได้ใช้งานพวก Mac ทั้งหลาย อาจจะยังไม่เก๊ตฟิลเท่าไหร่ว่า สถานการณ์การ Support เกมบน macOS เป็นอย่างไร ต้องยอมรับเลยว่า เกมที่เราเล่นกันส่วนน้อยมาก ๆ ที่จะรองรับ macOS เต็ม ๆ และ น้อยมาก ๆ ที่รัน Native Apple Silicon
ทำให้ทุกวันนี้เกมส่วนใหญ่มาก ๆ ที่เรารันได้บน macOS จะต้องรันผ่าน Rosetta ซึ่งทำให้ Performance หายไป 10-20% ไปเลย ตัวอย่างนึงคือ Raise of the Tomb Rider เอาจริง ๆ เลยคือ ทำให้เราตกใจกับ Performance ของ M1 ตัวปกติมาก ๆ ขนาดเป็นตัวเริ่มต้นยังทำได้ดีขนาดนี้ เพราะก่อนหน้านี้ Intel Mac ถ้าไม่ใช่รุ่น 15 นิ้ว หรือ 16 นิ้ว จะไม่มีทางได้ Discreate GPU เลย ทำให้พึ่งพา Integrated Graphic จาก Intel ซึ่ง Performance ไม่ได้ดีเท่าไหร่นัก
อีก Level ของการรันคือ ไม่มี Native Binary บน macOS ต้องรันผ่านอีก Compatibility Layer นึง อาจจะเป็น Wine หรือ Crossover อะไรก็ว่ากันไป ก็ทำให้ Performance หายไปอีก และ บางอย่างเช่นพวก Kernel Anticheat ก็จอบอไปอีก ตัวอย่างของเคสแบบนี้ก็คือ GTA V ซึ่ง M1 ก็ทำออกมาได้น่าตกใจมาก ๆ
แต่ตัวที่ Ultimate จริง ๆ คือ Resident Evil Village ที่พึ่งเปิดให้ซื้อ และ โหลดกันไป ซึ่งเป็นทั้ง Native Binary บน macOS โดยเฉพาะ และ ใช้งานพวก Metal 3 ที่ทำให้มันได้ใช้งาน Hardware ได้อย่างเต็มประสิทธิภาพสูงสุดจริง ๆ ซึ่งผลที่ได้ออกมา บอกเลยว่าน่าประทับใจมาก ๆ
หลาย ๆ คนชอบบอกว่า เครื่อง Mac มันราคาแพงมาก ๆ เราว่าเมื่อก่อน มันก็เป็นแบบนั้นจริง ๆ นะ เพราะราคาต่อ Performance ที่ได้สำหรับหลาย ๆ งานถือว่า แพงมาก ๆ แต่ก็แลกมากับความ Premium ของ Software และการทำงานหลาย ๆ อย่างที่ดีมาก ๆ จนทำให้หลาย ๆ คนเลือกที่จะซื้อ Mac มาเป็นเครื่องสำหรับการทำงาน
แต่ด้วยการมาถึงของ Apple Silicon ที่เราเล่าไปแล้วว่า แม้แต่จะเป็นรุ่นเริ่มต้นอย่าง M1 ปกติเลย ก็สามารถรันเกมระดับ AAA อย่าง Resident Evil ได้สบาย ๆ เลย และ ถ้าใช้กับ Macbook Air ได้เรื่องของน้ำหนักที่เบา พกพาไปได้สะดวก ๆ และ ยังรันเกม AAA ระดับนั้นได้ ถึงจะความละเอียดไม่สูงมาก แต่ก็เป็นตัวเริ่มต้นที่ดีมาก ๆ เลยทีเดียว
ดังนั้นจริง ๆ แล้วในยุคของ Apple Silicon ราคาต่อ Performance เรามองว่าเป็นราคาที่ถูกมาก ๆ เผลอ ๆ ถูกกว่า Laptop หลาย ๆ ตัวในท้องตลาดด้วยซ้ำ ยิ่งบวกกับความ Premium, น้ำหนัก และการใช้พลังงาน ทำให้ Mac ใหม่ ๆ ราคาไม่แพงอย่างที่เมื่อก่อนเป็นซะอีก
แต่เราว่าที่ทำให้หลาย ๆ คนมองว่ามันเป็นเครื่องที่ไม่คุ้มค่าเท่าไหร่ เป็นเพราะ Upgradability หรือ ความสามารถในการ Upgrade เครื่องนั่นเอง ซึ่งสำหรับ Mac เอง ต้องยอมรับเลยว่า ในยุคของ Apple Silicon เรียกได้ว่า Non-Upgradable เต็มรูปแบบเลยทีเดียว อาจจะเป็นสาเหตุนึงละกัน
โอเค ถ้าเราบอกว่า เรารับราคาเครื่องมันโอเค อีกปัญหาเอง ก็น่าจะหนีไม่รอดอย่าง Apple นังทัวร์ดีย์ !!!! เพราะเรื่อง Graphic API โดยเฉพาะเลย ซึ่งเราในฝั่งของผู้เล่น ไม่ได้รู้สึกอะไรกับเรื่องนี้เลย เป็นเรื่องของผู้พัฒนาเกมล้วน ๆ
โดยทั่ว ๆ ไป เวลาเราพัฒนาเกม เราจะเขียนให้เครื่องคอมพิวเตอร์แสดงผลพวก Graphic ต่าง ๆ จริง ๆ แล้วมันคือ คณิตศาสตร์ ล้วน ๆ มันเป็นการคำนวณทางคณิตศาสตร์ทั้งหมด แต่ถ้าเราจะให้ Programmer มานั่งเขียนสูตรทางคณิตศาสตร์ทุกวัน เราว่า ส่วนอื่น ๆ ของเกมก็คงไม่ได้ทำแล้วละ เลยทำให้มันเกิดพวก Graphic API ขึ้นมาเช่น OpenGL, Cuda, Vulcan, DirectX สำหรับ Windows และ Metal สำหรับ macOS
ตัวของ Cuda ของ Nvidia และ DirectX เป็นของ Windows อันนี้เราข้ามไปเลยละกัน เพราะ Apple ก็ไม่ได้ใช้ GPU ของ Nvidia และ ก็ไม่ได้ใช้ Windows ก็ macOS ความ Apple เขาอะเนอะ แล้วพอ Apple ควบคุมทั้ง Hardware และ Software ทำให้ Apple ควบคุมได้หมดอย่างเบ็ดเสร็จจริง ๆ
ทำให้พวก Cross-Platform Graphic API ทั้งหลาย เช่น Vulcan และอีกหลาย ๆ ตัวไม่ Support บน macOS หรือบางตัวเช่น OpenCL ก็ Depreciated ไม่ Support อีกต่อไปแล้ว เรามองว่า เป็นเพราะการมาถึงของ Metal ที่เป็นของ Apple เอง มันก็ไม่น่าแปลกเท่าไหร่ละกันที่ Apple จะปิดกั้นทุกตัว แล้วเปิดแค่ของตัวเองให้ใช้เท่านั้น
ดังนั้น ถ้าเราจะ Port จริง ๆ บางตัวมันก็จะมีตัว Convert อยู่ อย่าง ถ้าเราใช้ Vulcan มันก็จะมี Tool สำหรับ Convert อย่าง MoltenVK เพื่อมาแปลงให้อยู่ในฝั่ง Metal API
จริง ๆ ถ้า Apple เปิด Support พวก Cross-Platform Graphic API เรามองว่า เกมหลาย ๆ เกม โดยเฉพาะพวก AAA Games ก็น่าจะมาลงเยอะขึ้น แต่ Apple ก็เลือกที่จะปิด ไม่ให้เข้ามา
พอ Apple ปิด และ ควบคุมทุกคนให้เข้ามาใช้งาน Metal ทั้งหมด ทำให้ถ้านักพัฒนาเกมอยากจะเอาเกมมาลง เขาก็ต้องใช้งาน Metal ซึ่งจะรันได้แค่บน Apple Device เท่านั้น หรือ ถ้าเราจะเอาเกมจาก Platform อื่น ๆ เช่น Windows Port ลงมาใส่ ก็เรียกว่า ต้องไปหา Converter มา หรือแปลงมาแล้ว Performance เ_ย อยากทำดี ๆ ก็ต้องมารื้อเขียนแยกอีก เอาเป็นว่า มันเป็นการลงทุนที่มหาศาลมาก ๆ
แต่ถ้าเราเป็นนักพัฒนาเกม เป็นเจ้าของ Studio เกม การที่เราจะลงทุนมหาศาลเพื่อ Port เกมสักเกมลงไปใน macOS มันเป็นเรื่องที่ควรทำจริง ๆ เหรอ เพราะต้องยอมรับเลยว่า Market Share ของ Mac User นั้นน้อยกว่า Windows User มาก ๆ
โดยเฉพาะในเรื่องของการเล่นเกม ต่าง ๆ ที่ ณ ปัจจุบันที่เขียน เราก็รู้กันดีอยู่แล้วว่าเกมเกือบทุกเกมรองรับ Windows ไปซะหมด ดังนั้น ถ้าเราเป็นนักพัฒนา เราก็อยากพัฒนาครั้งเดียว แล้วพาเกมไปหาผู้เล่นของเราได้เยอะที่สุด เราก็ต้องเลือกเขียนลง Windows ก่อนแน่นอน ไม่เขียนลง macOS แน่นอน
ดังนั้นการเขียนเกม เพื่อ macOS ก่อน ทั้ง ๆ ที่ Market Share น้อยกว่าอยู่แล้ว ถ้าคิดดี ๆ Maket Share ตรงนั้น ก็ไม่ได้บอกว่า ทุกคนเล่นเกม และ ไม่ได้บอกว่า ทุกคนจะมีเครื่อง Mac ที่ Performance สูงเพียงพอที่จะเล่นได้อีก นั่นแปลว่า จริง ๆ แล้ว Mac User ที่เล่นเกม และ เล่นได้ มันมีน้อยกว่าที่คิดแน่นอน การเขียนลง macOS เลยไม่ได้เป็นตัวเลือกที่ดี การแปลงมาลง ก็น่าจะเป็นตัวเลือกที่ดีกว่าเยอะ
เมื่อก่อน การเล่นเกมบนเครื่อง Mac เป็นเรื่องที่ไม่คุ้มค่าเท่าไหร่ จนกระทั่งการมาถึงของ Apple Silicon ที่ให้ความสามารถของ GPU ที่สูงมาก ๆ ตั้งแต่รุ่นเริ่มต้น ขนาดที่ทำให้เราสามารถรัน AAA Game ได้เลยทีเดียว เป็นข้อพิสูจน์เลยนะว่า พลังการประมวลผลมันไม่ธรรมดาเลย แต่คนที่ไม่พร้อมจริง ๆ หรือไม่เอาด้วยละกัน คือ Apple เอง ที่เลือกจะควบคุมทุกอย่าง เปิดให้เล่นแค่ Metal เท่านั้น และคนที่พร้อมจะเล่นเกมจริง ๆ มันน้อยเกินกว่าจะลงทุน Port มาลง Mac ก็ทำให้เราที่เป็น Mac User เองก็ยังคงต้องนั่งมอง Windows User เล่นเกมใหม่ ๆ ตาปริบ ๆ ต่อไป
หลังจากดูงาน Google I/O 2024 ที่ผ่านมา เรามาสะดุดเรื่องของการใส่ Watermark ลงไปใน Content ที่ Generate จาก AI วันนี้เราจะมาเล่าให้อ่านกันว่า วิธีการทำ Watermark ใน Content ทำอย่างไร...
ก่อนหน้านี้เราทำ Content เล่าความแตกต่างระหว่าง CPU, GPU และ NPU ทำให้เราเกิดคำถามขึ้นมาว่า เอาเข้าจริง เราจำเป็นต้องมี NPU อยู่ในตลาดจริง ๆ รึเปล่า หรือมันอาจจะเป็นแค่ Hardware ตัวนึงที่เข้ามาแล้วก็จากไปเท่านั้น วันนี้เราจะมาเล่าให้อ่านกัน...
บทความนี้ เราเขียนสำหรับมือใหม่ หรือคนที่ไม่ได้เรียนด้านนี้แต่อยากรู้ละกัน สำหรับวันนี้เรามาพูดถึงคำที่ถ้าเราทำงานกับพวก Developer เขาคุยกันบ่อย ๆ ใช้งานกันเยอะ ๆ อย่าง Database กันว่า มันคืออะไร ทำไมเราต้องใช้ และ เราจะมีตัวเลือกอะไรในการใช้งานบ้าง...
หากใครที่อายุใกล้ ๆ 30 ต้องเคยผ่านประสบการณ์โลกออนไลน์ในยุค 90s' มาไม่มากก็น้อย เป็นยุคที่เราเน้นใช้โปรแกรมเถื่อน ขายกันอยู่ในห้างพั____พ กันฉ่ำ ๆ ตำรวจตรวจแล้วเราไม่มีขายตัว แต่เคยสงสัยถึงที่มาของโปรแกรมเหล่านี้มั้ยว่า เขา Crack กันอย่างไร วันนี้เราจะมาเล่าให้อ่านกัน...