BY StolenHeart
9 Dec 21 3:40 pm

Rollback Netcode นวัตกรรมที่นำพานักสู้จากอีกซีกโลกให้มาสู้กันได้แบบไร้สะดุด

190 Views

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

รู้จักกับ Netcode

Sfxte

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

และชุดคำสั่ง Netocde คือสิ่งสำคัญที่จะช่วยให้การเล่นเกมผ่านระบบออนไลน์เป็นไปอย่างลื่นไหลนั่นเอง

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

Internet Connection

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

ยุคสมัยของนักสู้ก่อนที่จะมี Rollback Netcode

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

Delay Based Netcode Flowchart

ภาพอธิบายการเชื่อมต่อแบบ Delay-Based Netcode ที่จะมีความหน่วงติดมาเสมอ

แล้ว Delay-Based Netcode มันทำงานยังไง? ถ้าจะบอกให้เห็นภาพกันง่าย ๆ ก็คือการที่ผู้เล่นฝั่งหนึ่งกดคำสั่งออกมา แล้วก็ต้องรอให้อีกฝ่ายได้รับคำสั่งตัวนั้นเสียก่อน ผลลัพธ์จึงจะปรากฏขึ้นในจอของทั้งสองฝั่ง ซึ่งเราคาดเดาไม่ได้ว่าจะมาเมื่อไหร่ เพราะเกมจะต้องรอคำสั่งจากฝั่งหนึ่งส่งไปให้ถึงอีกฝั่งหนึ่งก่อน ยิ่งความหน่วงและความห่าง(Latency) ยิ่งมาก ก็ต้องรอคำสั่งนานขึ้นไปด้วย

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

ตัวอย่างอาการ Lag Spike ที่ทำลายช่วงเวลาดี ๆ ในเกมไปอย่างน่าเสียดาย

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

และนั่นทำให้หลายเกมที่มีศักยภาพมากพอต้องกลายเป็น Dead Game แบบช่วยไม่ได้ เนื่องจากระบบออนไลน์ที่เล่นกันแทบไม่ได้ แต่ในยุคนั้นการนัดเจอเพื่อเล่นแบบออฟไลน์ยังทำได้ง่ายและไร้กังวล หลายเกมก็ยังจะพอมีชุมชนผู้เล่นคอยอุ้มชูไว้ไม่ให้หายไปก่อนเวลา อย่างเช่น KOF, Marvel vs Capcom หรือ Super Smash Bros. ที่ยังมีกลุ่มผู้เล่นยืนหยัดมาจนถึงตอนนี้

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

และ Rollback Netcode ก็ได้ถือกำเนิดขึ้น

ต้นกำเนิดของ Rollback Netcode

Tony Cannon

Tony Cannon

จุดเริ่มต้นของการพัฒนา Rollback Netcode นั้นเริ่มมาจากชายผู้มีชื่อว่า Tony Cannon หนึ่งในผู้จัดงานแข่งเกมต่อสู้ที่ใหญ่ที่สุดในโลกอย่าง Evolution Championship Series นั่นเอง โดยเขานั้นพบว่าระบบออนไลน์ของเกม Street Fighter II: Hyper Fighting ที่วางจำหน่ายในปี 2006 บนเครื่อง Xbox 360 นั้นมีระบบออนไลน์ที่แย่มากจนเล่นไม่ได้เลย ทำให้เขาเริ่มมีความคิดที่จะพัฒนาระบบออนไลน์ที่ดีกว่านี้เพื่อยกระดับเกมต่อสู้ให้มีระบบการเชื่อมต่อที่ลื่นไหลและเล่นได้สะดวกขึ้น

ด้วยความตั้งใจนี้เองทำให้เขาเริ่มพัฒนาระบบ Middleware ที่มีชื่อว่า GGPO ที่ย่อมาจาก Good Game Peace Out และนำไปเสนอให้กับทาง Capcom เพื่อแก้ปัญหาระบบการเล่นออนไลน์ และได้รับผลตอบรับที่ดีมาก และถูกนำไปใช้ในเกมใหม่ ๆ ของทาง Capcom และ SNK อย่างแพร่หลายในเวลาต่อมา ซึ่งก็ทำให้เกมเก่าอย่าง Super Street Fighter II Turbo, KOF 2002 และ Metal Slug X จนเกมเหล่านี้กลับมาได้รับความนิยมอีกครั้ง เพราะสามารถเล่นผ่านระบบออนไลน์ได้นั่นเอง

Ggpo

ความลับของ Middle Ware GGPO ที่ทำให้การออนไลน์สำหรับเกมเหล่านี้มีประสบการณ์ที่ดีขึ้นก็คือ Rollback Netcode นั่นเอง

รูปแบบการทำงานของ Rollback Netcode นั้นแตกต่างจาก Delay-Based Netcode อยู่หลายส่วน กล่าวคือมันไม่ได้รอว่าผู้เล่นจะกดปุ่มอะไรแล้วส่งข้อมูลไปหาผู้เล่นอีกฝั่ง แต่เป็นการ “ทำนาย” ว่าผู้เล่นคนนั้นจะกดปุ่มอะไรออกมาแล้วส่งสัญญาณไปหาก่อนล่วงหน้า แล้วย้อนเวลากลับมาหาผลลัพธ์ที่ถูกต้องแทน

Rollback

แม้ท่าจะออกไปแล้ว แต่เกมก็จะกลับมาแก้ไขและแสดงผลสัพธ์ที่ถูกต้อง หรือตัดส่วนที่ไม่จำเป็นออกเพื่อแสดงผลให้ตรง นี่คือข้อดีของ Rollback Netcode(ภาพโดย MysticCode)

ยกตัวอย่างเช่น ถ้าเป็น Delay-Based Netcode แล้วภาพของเราไม่หน่วงไม่ดีเลย์ ช่วงเวลาในการดีเลย์ระหว่างเรากับผู้เล่นฝั่งตรงข้ามนั้นอยู่ที่ 45ms เมื่อเรากดปุ่มเตะ ข้อมูลที่จะส่งไปหายังฝ่ายตรงข้ามนั้นจะใช้เวลาเพิ่มขึ้นไปอีก 45ms จนทำให้เกิดอาการกระตุกหรือหน่วงขึ้น แต่ Rollback Netcode จะข้ามช่วงเวลา 45ms นั้นไป แล้วออกเป็นท่าเตะทันที ซึ่งแม้ถ้าย้อนดูภาพการเล่นในภายหลังจะรู้สึกว่าภาพมันตัดแปลก ๆ แต่เวลาเล่นจริงเราจะแทบไม่รู้สึกเลย เหมือนกับการร้องเพลง Happy Birthday ในงานวันเกิดแล้วเรามาตะครุบเนื้อร้องตามเพื่อนทีหลังนั่นแหละ อารมณ์ประมาณนั้นเลย

แล้วในช่วงเวลา 45ms นั้นทางฝั่งตรงข้ามเขาจะเห็นอะไร? โดยปกติแล้วเราก็จะเห็นตัวละครของฝั่งเรายืนนิ่ง ๆ เพราะตัวระบบ Netcode กำลังเดาอยู่ แต่ถ้าหากเล่นไปเรื่อย ๆ มันก็จะพยายามพัฒนาตัวเองเพื่อคาดเดาว่าเราจะทำอะไรต่อไปในการเล่นนั้น ๆ

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

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

ปัญหาของ Rollback Netcode แบบ One Side ที่มีโอกาสเกิดขึ้นได้ กับการที่ฝั่งหนึ่งลื่น แต่อีกฝั่งกระตุกจนเล่นไม่ได้

แต่ก็ใช่ว่า Rollback Netcode จะไม่มีข้อเสียเลย เพราะแม้ตัวเกมจะเดาสิ่งที่เกิดขึ้นได้ถูกต้องเกือบทุกครั้งถึง 90% แต่ก็มีบางสถานการณ์ที่ทำให้ตัวเกมเกิดสะดุดเมื่อเดาผิดพลาดเช่นตอนใกล้ KO แล้วเพลงดับไป หรือเสียงเอฟเฟกต์ที่ออกมาผิดพลาดจนกะจังหวะทำคอมโบไม่ได้เลย หรือในกรณีที่เลวร้ายที่สุดก็คือสิ่งที่เรียกว่า One Sided Rollback ที่อีกฝั่งหนึ่งจะมีความลื่นไหลในการเล่นมากกว่าอีกฝั่งเพราะปัญหาทางด้านการเชื่อมต่อหรือฮาร์ดแวร์ กลายเป็นความเลวร้ายที่แย่กว่าเดิมไปเลย

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

ความสำเร็จและการเปลี่ยนแปลงของวงการเกมต่อสู้

Thekingoffightersxv 1

Rollback Netcode ถูกใช้อย่างแพร่หลายในเกมต่อสู้และเกม Action ยุคเก่ามากมาย เช่น Street Fighter III 3rd Strike, Skull Girls, Metal Slug และ Fightcade รวมไปถึงตอนนี้เกมฟอร์มใหญ่หลายเกมก็มีการนำ Rollback Netcode มาใช้และกลายเป็นจุดขายหลักของเกมต่อสู้ในยุคนี้ไปแล้ว เช่น Guilty Gear Strive, Melty Blood Type Lumina และ KOF XV เป็นต้น และทางคุณ Tony Cannon เองก็เปิดให้ GGPO เป็น Open Source ให้ทุกคนนำไปใช้งานได้ตามเงื่อนไขอย่างอิสระด้วย

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

อีกสิ่งหนึ่งที่ทำให้ Rollback Netcode ได้รับความนิยมนอกจากอาการหน่วงที่น้อยลงก็คือมันทำให้ผู้เล่นที่อยู่คนละซีกโลกสามารถสนุกกับเกมได้จนเกือบเทียบเท่ากับการเล่นแบบ Offline เช่นสำหรับผู้เขียนเองที่สามารถเล่นกับผู้เล่นจากญี่ปุ่นหรือเกาหลีใต้ได้ โดยที่ตัวเกมไม่หน่วงหรือกระตุกจนเกินไปในเกม Guilty Gear Strive หรือ Melty Blood และผู้เล่นฝั่งตะวันตกหลายคนก็สามารถเข้ามาต่อกรกับผู้เล่นฝั่งเอเชียได้ถ้าหากความเร็วอินเทอร์เนตของสองฝั่งแรงมากพอ แม้จะไม่ได้ถึงกับ 100% แต่ก็ใกล้เคียงมากแล้ว

ที่สำคัญคือผู้พัฒนาเกมต่อสู้หลายรายก็เริ่มที่จะนำระบบ Rollback Netcode มาใช้กับเกมเก่า ๆ ที่เคยได้รับความนิยมมากในสมัยก่อน เช่น SNK และ Arc System Works ที่นำ Rollback Netcode ไปใช้กับ KOF 98 UM, KOF 2002 UM, และเริ่มทดสอบในเกม BlazBlue Cross Tag Battle กับ BlazBlue Centralfiction ในเดือนนี้อีกด้วย

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

แหล่งข้อมูลอ้างอิง

Analysis: Why Rollback Netcode Is Better: Core-A Gaming

Rollback Netcode Explained: GameRant

Bad netcode is killing many of your favorite fighting games: Polygon

Explaining how fighting games use delay-based and rollback netcode: ARS Tecnica

The lag-fighting techniques behind GGPO’s netcode

8 Frames in 16ms: Rollback Networking in Mortal Kombat and Injustice 2: GDC Conference 2019

Code Mystics Explains Netcode: Input Delay vs. Rollback: Code Mystics

Putinart Wongprajan

เค้ก - Content Writer

Back to top