เมื่อผมกลับมาเปิดเซิร์ฟเวอร์เกม GTA SA:MP Roleplay

ถ้าย้อนเวลากลับไปช่วงประมาณปี 2555–2556 นั่นคือช่วงเวลาที่ผมเริ่มหลงใหลกับการทำเซิร์ฟเวอร์เกม GTA San Andreas Multiplayer (SA:MP) อย่างจริงจัง
สำหรับหลายคน GTA: San Andreas คือเกม Open World ที่เล่นคนเดียว แต่สิ่งที่ทำให้เกมนี้กลายเป็นตำนานอีกบทหนึ่ง คือการที่กลุ่มนักพัฒนาซึ่งใช้ชื่อว่า SA:MP Team ได้สร้าง Multiplayer Mod ขึ้นมา ผ่านการ Reverse Engineering และการดัดแปลงตัวเกม จนทำให้ผู้เล่นหลายร้อยหรือหลายพันคน สามารถเข้ามาอยู่ในโลกเดียวกันได้ครับผม
ทุกวันนี้มันอาจดูเป็นเรื่องธรรมดา แต่ถ้าย้อนกลับไปเมื่อเกือบ 20 ปีก่อน มันเป็นเรื่องที่ผมต้องใช้คำว่า ว้าววววว มากครับ
เซิร์ฟเวอร์ในยุคแรก ๆ ยังเรียบง่ายมาก ส่วนใหญ่จะเน้นความสนุกแบบตรงไปตรงมา มีคำสั่งอย่าง /getgun เพื่อเรียกปืนมายิงกัน เพิ่มเลือด เพิ่มเกราะ ขับรถ แบ่งแก๊ง หรือกำหนดสิทธิ์การใช้ยานพาหนะของแต่ละแก๊ง ข้อมูลส่วนใหญ่ยังถูกเก็บไว้ในไฟล์ .txt มากกว่าฐานข้อมูล MySQL เพราะในเวลานั้นระบบต่าง ๆ ยังไม่ได้ซับซ้อนเหมือนทุกวันนี้ครับ
แม้จะเรียบง่าย แต่สำหรับคนในยุคนั้น มันคือโลกใบใหม่เลยนะครับ โคตรมันส์
เมื่อ Community ของ SA:MP เติบโตขึ้น Multiplayer ก็ได้รับการพัฒนาอย่างต่อเนื่อง มีระบบใหม่ ๆ เกิดขึ้นมากมาย ทั้งระบบบ้าน ระบบธุรกิจ ระบบเศรษฐกิจ ระบบองค์กร ระบบงาน และฟีเจอร์อีกนับไม่ถ้วน
จนวันหนึ่งผมได้รู้จัก Game Mode จากต่างประเทศตัวหนึ่งที่ชื่อว่า South Central Roleplay (SCRP)
สำหรับผม มันคือหนึ่งใน Game Mode ที่ดีที่สุดของยุคนั้นที่แจกฟรี และแม้ว่าเกมโหมดนี้มันจะเต็มไปด้วยบั๊ก และขึ้นชื่อเรื่องการถูก วางยา อยู่บ่อยครั้งก็ตาม แต่ผมก็ยังชื่นชอบเกมโหมดนี้ครับ
คำว่า วางยา ในวงการ SA:MP หมายถึงการที่ผู้สร้างหรือผู้แก้ไข Game Mode แอบซ่อนโค้ดหรือคำสั่งลับเอาไว้ เช่น คำสั่งแปลก ๆ ที่ผู้ดูแลเซิร์ฟเวอร์ไม่รู้ว่ามีอยู่ เมื่อเปิดเซิร์ฟเวอร์ไปสักระยะ ผู้ไม่หวังดีก็สามารถใช้ช่องโหว่เหล่านั้นเข้ามาควบคุมหรือสร้างความเสียหายกับเซิร์ฟเวอร์ได้ ซึ่งในยุคนั้นถือว่าเป็นปัญหาที่พบได้บ่อยมากครับ
ในช่วงนั้น รูปแบบของเซิร์ฟเวอร์ก็เริ่มแบ่งออกเป็นหลายแนว เช่น
- RP (Roleplay) คือการสวมบทบาทเป็นตัวละคร ใช้ชีวิตในโลกเสมือนจริง มีอาชีพ มีองค์กร มีธุรกิจ และต้องเล่นตามบทบาทของตัวเอง
- DM (Deathmatch) คือการเล่นที่เน้นการต่อสู้ ยิงกัน แข่งขัน และความรวดเร็ว
- RPDM คือการผสมผสานระหว่างทั้งสองแนว มีความเป็น Roleplay แต่ยังคงให้อิสระในการเล่นมากกว่า RP แบบจริงจัง
ส่วนตัวแล้ว ผมชอบ Roleplay มากกว่า แต่ก็ไม่ได้ชอบ RP ที่เข้มงวดจนเกินไป
ผมเชื่อว่า Roleplay ที่ดี ไม่ใช่การทำทุกอย่างให้เหมือนชีวิตจริงที่สุด แต่คือการสร้าง ความสมดุลระหว่างความสมจริงกับความสนุก
เพราะถ้าสมจริงมากเกินไป เกมก็จะเริ่มอึดอัด แต่ถ้าสนุกอย่างเดียวจนไม่มีเหตุผล มันก็จะไม่ใช่ Roleplay อีกต่อไป
และนั่นเอง คือเหตุผลที่ทำให้ผมตัดสินใจกลับมาพัฒนาเซิร์ฟเวอร์ GTA SA:MP อีกครั้ง ในวัย 28 ย่าง 29 ปี
หลายคนอาจมองว่า มันคือเกมเก่าที่ผ่านยุครุ่งเรืองไปแล้ว
แต่สำหรับผม มันยังเป็นพื้นที่ที่เปิดโอกาสให้สร้างสรรค์สิ่งใหม่ ๆ ได้อีกมาก
ครั้งนี้ ผมยังคงเลือกใช้ South Central Roleplay เป็นฐานในการพัฒนาระบบทั้งหมด
ไม่ใช่เพราะมันสมบูรณ์แบบ
แต่เพราะผมเชื่อว่า โครงสร้างของมันแข็งแรงมาก
มันผ่านการใช้งานจริงมาหลายปี มีระบบหลักแทบทุกอย่างที่เซิร์ฟเวอร์ Roleplay ต้องมี ทำให้สามารถต่อยอดได้ง่ายกว่าการเริ่มต้นเขียนทุกอย่างใหม่ตั้งแต่ศูนย์ ซึ่งผมลองแล้วครับ ขนาดใช้เอไอช่วยแม่งเหนื่อยจริง เพราะเราต้องหาปลั๊กอินเองหรือเขียนปลั๊กอินใหม่ (ขนาดเอไอสมัยนี้ มันยังไม่รู้จักปลั๊กอินบางอย่างเลยครับ เหมือนเราต้องคอยเขียนรากฐานเพื่อ ชง ให้เอไอเข้าใจก่อน ซึ่งเหนื่อยมาก)
แต่แน่นอน...
ผมไม่ได้เอามาเปิดใช้งานแบบเดิม ๆ
สิ่งที่ผมต้องการ คือการนำมันมาปรับปรุง แก้ไขบั๊ก ลบสิ่งที่ไม่จำเป็น และออกแบบระบบใหม่ให้เหมาะกับยุคปัจจุบัน
คนที่ไม่เคยเขียนสคริปต์ SA:MP อาจนึกภาพไม่ออกว่า การพัฒนา Game Mode ในสมัยก่อนมันยากแค่ไหน
.
.
Game Mode อย่าง South Central Roleplay มีโค้ดเกือบ 100,000 บรรทัด เขียนด้วยภาษา Pawn
และในยุคนั้นยังไม่มีแนวคิดเรื่อง Modular Architecture ที่ได้รับความนิยมเหมือนปัจจุบัน
ทุกอย่างแทบจะกองรวมอยู่ในไฟล์เดียวกันหมดครับ .pwn และ compile to .amx
ไม่มีการแยกโฟลเดอร์ตามระบบ
ไม่มีการแบ่งโมดูลที่ชัดเจน
ไม่มีโครงสร้างโปรเจกต์ที่เป็นระเบียบ
มันคือโค้ดดิบ ๆ ที่ถูกเขียนต่อเติมมาตลอดหลายปี และใช้ CTRL+F ข้ามไปข้ามมาระหว่างบรรทัดที่เกี่ยวข้องกัน
.
ผมบอกเลยว่า โคตรนรก คือถ้าไม่เข้าใจภาพรวมเกมโหมดที่กำลังทำจริงๆ นี่บัคเกิดขึ้นแน่นอนครับ..
.
.
เวลาจะเพิ่มระบบใหม่สักระบบ หรือแก้ไขบั๊กสักจุด เราต้องไล่อ่านโค้ดทีละส่วน เพื่อหาว่าฟังก์ชันนี้เกี่ยวข้องกับอะไร มีผลกระทบกับระบบไหนบ้าง
บางครั้งการแก้ไขโค้ดเพียงไม่กี่บรรทัด ก็อาจทำให้ระบบอีกสิบจุดพังโดยไม่รู้ตัว
ยิ่งไปกว่านั้น ในยุคนั้นยังไม่มี AI ที่ช่วยอธิบายโค้ด, ช่วยค้นหาความสัมพันธ์ของฟังก์ชัน หรือช่วยรีแฟกเตอร์โครงสร้าง
ทุกอย่างต้องอาศัยประสบการณ์ ความอดทน และการลองผิดลองถูก --> ทำเสร็จ ->compile to .amx -> test จริง
ยอมรับเลยว่า มันเป็นความท้าทายที่สนุก แต่ก็เหนื่อยมากนะครับ
แต่เมื่อเวลาผ่านมาถึงยุคของ AI .. ทุกอย่างกลับเปลี่ยนไปอย่างสิ้นเชิง
สิ่งแรกที่ผมทำ ไม่ใช่การเพิ่มระบบใหม่
แต่คือการให้ AI ช่วยวิเคราะห์โครงสร้างของโปรเจกต์ทั้งหมด
จาก Game Mode ที่เคยเป็นไฟล์ขนาดมหึมา AI สามารถช่วยแยกโครงสร้างออกเป็นหมวดหมู่ตามหน้าที่ เช่น ระบบผู้เล่น ระบบยานพาหนะ ระบบธุรกิจ ระบบองค์กร ระบบไอเทม ระบบบ้าน และระบบอื่น ๆ ได้อย่างเป็นระเบียบ
สิ่งที่เมื่อสิบกว่าปีก่อนอาจต้องใช้เวลาหลายวัน หรืออาจเป็นสัปดาห์หรือเดือนในการจัดโครงสร้างใหม่
..วันนี้ AI สามารถช่วยทำโครงสร้างให้ได้ภายในเวลาแปปเดียว ไม่เหมือนสมัยก่อน
แต่ผมก็ยังมองว่า เอไอ มันก็ไม่ได้มาแทนนักพัฒนา..
.
.
สุดท้ายแล้ว คนที่ต้องตัดสินใจว่าจะออกแบบระบบอย่างไร แก้ไขอะไร หรือเลือกแนวทางไหน ก็ยังเป็นนักพัฒนาเหมือนเดิม
แต่ AI ช่วยลดเวลาที่ต้องเสียไปกับงานซ้ำ ๆ และทำให้เราสามารถโฟกัสกับสิ่งที่สำคัญกว่า นั่นคือการออกแบบ Gameplay การสร้างระบบใหม่ และการสร้างประสบการณ์ที่ดีให้กับผู้เล่น
สำหรับผม ความแตกต่างระหว่างการพัฒนาเซิร์ฟเวอร์ในอดีตกับปัจจุบัน ไม่ใช่แค่ฮาร์ดแวร์ที่เร็วขึ้น หรืออินเทอร์เน็ตที่ดีขึ้น
แต่คือการที่เรามีเครื่องมืออย่าง AI มาช่วยให้การทำงานกับ Legacy Code ที่เคยปวดหัว(โค้ดเก่าที่พัฒนาต่อได้ยาก) มาทำให้พัฒนาต่อได้ง่ายและรวดเร็วขึ้นโดยการให้เอไอวางโครงสร้างโค้ดใหม่แต่การทำงานยังเหมือนเดิม
ผมไม่ได้กลับมาทำเซิร์ฟเวอร์ครั้งนี้เพียงเพราะความคิดถึงนะครับ
แต่ผมอยากพิสูจน์ว่า...
เกมอายุเป็น 20 ปี ยังสามารถถูกพัฒนาให้ทันสมัย มีระบบที่ละเอียด และยังคงสนุกสำหรับผู้เล่นยุคใหม่ได้
และนี่ก็คือจุดเริ่มต้นของการเดินทางครั้งใหม่ของเซิร์ฟเวอร์ที่ผมกำลังสร้างขึ้นอีกครั้ง
และผมไม่ได้ต้องการทำระบบให้ล้ำขึ้นนะครับ
แต่ผมจะทำระบบเกมให้ละเอียดขึ้นมากกว่าเดิม.
..
.
.
.