Final Fantasy XII (12) นั้นมีระบบการต่อสู้ที่แตกต่างจากภาคอื่นๆอย่างสิ้นเชิง โดยส่วนตัวผมเพิ่งได้เล่นจริงๆจังๆจนจบก็ตอนที่ Remastered ลงบน PS4 นี่แหละครับในชื่อ Final Fantasy XII : The Zodiac Age ซึ่งแน่นอนวันนี้เราจะมาพูดถึงระบบต่อสู้ของเกมนี้กัน
Gambits เป็นชื่อของระบบต่อสู้ในเกม Final Fantasy 12 ซึ่งถ้าใครเป็น Programmer มาจะค่อนข้างคุ้นเคยมากเลยครับ เพราะนี่มันเป็น Basic Programming ชัดๆ
จากรูปข้างบนนั้นระบบ Gambits นั้นจะเป็นการตั้ง programให้ตัวละครทำ action ต่างๆ ตามเงื่อนไข เช่น ถ้าศัตรูบินอยู่ให้โจมตี ถ้าทีมเราพลังต่ำกว่า 30% ให้ใช้เวทย์มนต์ฟื้นหลัง ถ้าทีมเราติดพิษให้ใช้เวทย์แก้ผิด เป็นต้น หรือเราเรียกอีกอย่างนึงว่าการตั้งค่า AI (หรือ Bot?)
โดยที่ระบบนี้จะทำงานตามเงื่อนไขจาก บนลงล่าง หมายความว่าถ้าเหตุการณ์เข้าเงื่อนไขแรกก็ทำ action นั้นเลยโดยที่จะไม่ทำเงื่อนไข้ด้านล่างต่อ ซึ่งถือว่าเป็นการจบหนึ่งเทิร์นของตัวละครนั้นๆ
ที่นี้ถ้าเราลองเลือก 3 ตัวแรกมาลองแปลงเป็น Code ง่ายๆกัน มันก็น่าจะเป็นประมาณนี้ครับ
if( enemy.IsFlying() ){ me.Attack(enemy); } else if( team.IsHPbelow(30) ){ let m = team.getIsHPbelow(30); me.Curaja(m); } else if(team.IsHPbelow(50) ){ let m = team.getIsHPbelow(50); me.Curaga(m); }
ซึ่งตีความลำดับของ Script ได้ว่า
- ถ้าศัตรูบินได้ ตีมันก่อนเลย
- ถ้าทีมเรามีคนพลังชีวิตต่ำกว่า 30% ให้ใช้เวทย์ Curaja
- ถ้าทีมเรามีคนพลังชีวิตต่ำกว่า 50% ให้ใช้เวทย์ Curaga (ซึ่งเป็นเวทย์ที่ฟื้นพลังชีวิตได้สูงกว่า Curaja)
ก็จะเห็นได้ว่าการเล่นเกม(บางเกม) ก็อาจจะช่วยให้เรารู้จัก Programming ได้นิดหน่อยนะครับสำหรับคนที่ไม่ได้มาสายนี้ แต่สำหรับคนที่เป็น Programmer/Developer ก็ยิ่งทำให้เข้าใจระบบของเกมได้ง่ายขึ้นทำให้เล่นได้ง่ายและสนุกไปกับมันมากขึ้น