การ "Hard Code" คืออะไร? Hard Code เปรียบเสมือนคุณทำประตูแบบไม่มีลูกบิด ทุกครั้งที่คุณจะล็อคประตู คุณต้องเอาตะปูมาตอกๆ ยึดประตูนั้นกับกำแพง พอคุณต้องการจะออกไปข้างนอก คุณก็ต้องงัดตะปูนั้นออกทีละดอกๆ จะดีกว่าไหม? ถ้าเหนื่อยอีกนิด หาลูกบิดมาใส่ประตูของคุณ ถ้าคุณมัวตอกตะปูใส่ประตูนานๆเข้า หนึ่งคือ คุณเหนื่อยกว่าเดิม สองคือ ประตูคุณจะพังในเวลาไม่ช้า
ยกตัวอย่างเกมบางเกมมีเอฟเฟกเสียง "หวือๆๆๆ" ก่อนเข้าวาร์ป
ทีนี้วันนึง ถ้าคุณอยากเปลี่ยนเสียงนั้น ให้เป็น "ปิ๊งๆๆ" คุณจะทำยังไง?
เข้าไปแก้จุดวาร์ปทุกจุด ในทุกแม็พ จาก "หวือๆๆๆ" ให้กลายเป็น "ปิ๊งๆๆ" เหรอ?
ถ้ามีจุดวาร์ป 80 จุดในเกม...แล้วจะแก้ครบไหม? แก้ไม่ครบก็เป็น bug อีก
ถ้าคุณมีโค้ดซ้ำๆกันลักษณะนี้ในเกม คุณกำลัง Hard Code อยู่!! ซึ่งควรแก้ไขโดยด่วน ก่อนที่โปรเจกต์จะโตไปกว่านี้
วิธีแก้ไขคือ ใช้ common event (เหตุการณ์ทั่วไป)
จำคำแนะนำของผมไว้นะครับ event ที่มีการใช้บ่อยครั้ง ให้ป้อนคำสั่งลงไปให้ "น้อยที่สุด"
ที่เหลือให้ใช้ common event แทน เพราะแทนที่คุณจะต้องไปแก้จุดวาร์ป 80 จุดในเกม คุณก็มาแก้แค่ common event แท่งเดียว ได้ผลลัพธ์แบบเดียวกัน ประหยัดเวลาไปกว่ากันแบบฟ้ากับเหว
คอสร้างเกม action เดินยิง/เดินฟันคงรู้ดี เวลาจะกำหนดพลังชีวิตให้มอนสเตอร์ คุณต้องป้อนคำสั่งเข้าไปใน event ว่า "ตัวแปร [031:พลังชีวิตศัตรู1] == 40" นะ
แล้วหลังจากนั้นคุณก็ copy มอนสเตอร์นั้นไปวางไว้ตามแม็พต่างๆ
วันดีคืนดี คุณอยากจะกลับไปแก้พลังชีวิตของมอนสเตอร์ชนิดนั้น แต่จะทำอย่างไรดี? เพราะคุณ copy มอนสเตอร์ชนิดนั้นแพร่พันธุ์ออกไปแล้วเป็นสิบๆตัว คุณต้องไปนั่งแก้พลังชีวิตของมอนสเตอร์ชนิดนั้นในทุกแม็พ
แต่ชีวิตจะง่ายขึ้นทันทีถ้าคุณรู้จักใช้ common event
เพราะเวลาคุณจะแก้ คุณก็แก้แค่จุดเดียว
การ Hard Code มักจะเกิดขึ้นกับ event เหล่านี้ : ประตู, หีบ, วาร์ป, มอนสเตอร์ในเกมเดินยิง, ผักในระบบปลูกผัก, ร้านค้า, จุดเซฟ, หินสำหรับดัน, หลุมให้ตัวละครตกลงไป, เหวให้ตัวละครกระโดดข้าม, แผนที่โลกที่ติดอยู่ฝาบ้าน, การโชว์หน้าตัวละคร
อ้อ ทิ้งท้ายไว้อีกเรื่องนึงครับ เรื่องไฟล์เสียง ไฟล์ภาพ เป็นการดี หากคุณจะตั้งชื่อไฟล์เสียงและไฟล์ภาพทุกอันด้วย เพื่ออะไร? เพื่อเวลาที่คุณอยากเปลี่ยนภาพตัวละคร หรือเปลี่ยนเสียงเพลง คุณสามารถเอาไฟล์อื่นมาแก้ให้เป็นชื่อเดียวกัน แล้วยัดเข้าไปแทนที่ไฟล์เดิมในโปรเจกต์ได้ทันที บางทีสร้างเกมมาจนจบแล้ว เพิ่งนึกได้ว่าตรูใช้ไฟล์ภาพ Character เป็นรูป Arshes อยู่ และมีการเปลี่ยนภาพตัวละครหลายจุดมากในเกม แก้ในโค้ดไม่หมดแน่ๆ แก้ที่ไฟล์เอาดีกว่า
หลีกเลี่ยงการ Hard Code เพื่อสุขอนามัยที่ดีของโค้ดเกมคุณนะครับ และเสียเหงื่อให้น้ำตาดีกว่าเสียกีฬาให้ยาเสพติดครับ สวัสดีครับ