อยากสร้างเกมเป็น ทำยังไงดี? (พื้นฐาน Unity3D ฉบับมือใหม่ #2)

สวัสดีครับ! จาก ตอนที่ 1 เราได้ทำการติดตั้งโปรแกรมและสร้าง Project ใหม่ขึ้นมาเรียบร้อยแล้ว ในตอนที่ 2 นี้ เราจะมาเริ่มทำความเข้าใจเกี่ยวกับแนวคิดในการสร้างเกมผ่านโปรแกรม Unity รวมถึงการทำความรู้จักกับเครื่องมือแต่ละส่วนของโปรแกรมกันนะครับ

แนวคิดในการพัฒนาเกมบน Unity

Unity เป็น Game Engine ที่ถูกพัฒนาขึ้นมาเพื่อให้พวกเราสามารถสร้างเกมได้ง่ายขึ้น โดยนำการแสดงผลแบบ 3 มิติเข้ามาช่วย ทำให้เราไม่จำเป็นต้องก้มหน้าก้มตาเขียนโค๊ดอย่างเดียว และยังทำให้เรามองเห็นภาพรวมของเกมเราได้ง่ายขึ้นด้วย

ยกตัวอย่างเช่น

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

(แต่อย่าลืมว่า การคำนวณด้วยคณิตศาสตร์ ยังไงก็ให้ผลที่แม่นยำกว่าการประมาณค่าด้วยมืออยู่แล้ว อย่าลืมจุดนี้ไปหล่ะ !)

World of Unity3D

โลกของเกม Unity นั้น เกม 1 เกมจะประกอบไปด้วย Scene หลายๆ scene ครับ ยกตัวอย่างง่ายๆก็คือ Main Menu, Character Select, Option, Gameplay เป็นต้น หรือก็คือแต่ละหน้าของเกมนั่นเอง

ในแต่ละ Scene ก็จะมีพื้นที่หลักอยู่ เราจะเรียกพื้นที่นี้ว่า World ซึ่งก็จะประกอบไปด้วยวัตถุหลายอย่าง เราจะเรียกวัตถุเหล่านี้ว่า GameObject ครับ ยกตัวอย่างเช่น ตัวละครหลัก, ศัตรู, สิ่งกีดขวาง, ลูกกระสุน ทุกอย่างนี้ล้วนเป็น GameObject ทั้งหมด

โดยฉากหนึ่งฉากเนี่ย สิ่งนึงที่จะขาดไม่ได้เลยก็คือ Camera หรือก็คือกล้องนั่นเอง เพราะเจ้ากล้องนี้จะมีหน้าที่ในการฉายสิ่งที่ผู้เล่นของเราจะได้เห็นนั่นเองครับ (ถ้าเกมของเราไม่มี Camera หน้าจอของผู้เล่นก็จะดำสนิท)

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

ถึงเวลาที่จะมารู้จักเครื่องมือต่างๆกันแล้ว!

หน้าต่างการทำงานของ Unity จะแบ่งได้เป็นหลายส่วนย่อยตามนี้ครับ

เครื่องมือแต่ละส่วนของโปรแกรม Unity

1.Scene

หน้าต่างนี้ จะเปรียบเสมือนกล้องของผู้พัฒนาครับ โดยเราจะเห็นภาพโดยรวมของเกมของเราผ่านหน้าต่างนี้ และการขยับกล้องในโลกนี้ จะไม่ส่งผลกระทบอะไรต่อตัวเกมของเราครับ

เปรียบเทียบระหว่างหน้าต่าง Game (ซ้าย) และ Scene (ขวา)

ยกตัวอย่างเช่นภาพด้านบนนี้ หน้าต่างทางด้านซ้ายคือหน้าต่าง Game ซึ่งหน้าต่างนี้จะโชว์สิ่งที่ Camera มองเห็น ส่วนทางด้านขวาคือหน้าต่าง Scene ซึ่งจะมีแต่ผู้พัฒนาเท่านั้นที่เห็น ผู้เล่นของเกมจะไม่สามารถมองเห็นได้ครับ

2.Console

ส่วนนี้เปรียบเสมือนหน้าต่างบอกข้อมูลแก่ผู้พัฒนา หากตัวเกมมี Bug หรือ Error อะไรเกิดขึ้น ก็จะแสดงผลขึ้นมาให้เราดูในหน้าต่างนี้ครับ รวมถึงการใช้คำสั่ง print(); หรือ Debug.Log(); ก็จะโชว์ในหน้าต่างนี้เช่นกัน

3.Hierarchy

หน้าต่างนี้จะเป็นเหมือน Inventory ของ Scene ที่กำลังเปิดอยู่ มีหน้าที่บอกเราว่าใน scene นั้นมี GameObject อะไรอยู่บ้างครับ

4.Game

หน้าต่างนี้จะแสดงสิ่งที่ผู้เล่นของเราจะเห็นครับ โดยภาพที่แสดงบนหน้าจอนี้ จะมาจากสิ่งที่อยู่ใน World และถูกมองผ่าน Camera ของเราครับ

5.Project

หน้าต่างนี้เปรียบเสมือน Folder ของโปรเจคต์ของเรา Resources ต่างๆจะถูกเก็บไว้ในหน้าต่างนี้ โดยเราสามารถหยิบวัตถุต่างๆใส่เข้าไปใน Scene ที่กำลังเปิดอยู่ได้ผ่านหน้าต่างนี้ครับ

6.Inspector

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

สำหรับ ตอนที่ 2 นี้ ผมขอจบบทความตรงจุดที่เราได้ทำความรู้จักเกี่ยวกับหน้าต่างการทำงานส่วนต่างๆของโปรแกรม Unity3D แล้ว

(แต่อาจยังไม่เห็นภาพรวมทั้งหมด ไม่เป็นไรครับ ของแบบนี้ต้องจดจำจากการปฏิบัติจริงอยู่แล้ว)

ใน ตอนที่ 3 เราจะมาเริ่มสร้าง scene กันแล้วนะครับ ใครที่ชอบหรือพอใจกับบทความนี้ ก็สามารถนำไปแชร์ต่อให้เพื่อนๆได้ครับ ขอบคุณที่เข้ามาอ่านครับผม ^^

--

--

Phuwadech Santhanapirom (Meg ☁️)
Technologies For Everyone

Indie Game Developer. Third year student at Computer Engineering, Chiang Mai University. First Generation of Computer Gifted at The Prince Royal’s College.