สารจากนักเขียน
เนื่องด้วยสถานการณ์ปัจจุบันจากนโยบายใหม่ของ Engine ที่นักพัฒนาเกมทุกคนนิยมใช้งานกันอย่าง Unity ที่ไม่เหมือนเดิมอีกต่อไปทำให้นักพัฒนาเกมอย่างพวกเราต้องเตรียมหาช่องทางกันในวันนี้ผมก็อยากลองอะไรใหม่ ๆ ด้วยการย้ายบ้านมาสู่ Engine อีกตัวอย่าง Godot Engine ที่มีประสิทธิภาพไม่ได้ด้อยไปกว่า Unity เลยครับ
เขียนโดย
Chairawit Iamkhajornchai
Internship @ borntoDev
บทความนี้ตีพิมพ์ และ เผยแพร่เมื่อ 28 กันยายน 2566
Godot Engine คืออะไร ?
เป็นโปรแกรม Open-Source / Cross-Platform ทีใช้สำหรับการพัฒนาเกมแบบ 2D & 3D รวบรวมชุดเครื่องมือที่หลากหลายในการพัฒนาเกมโดยมีฟีเจอร์ที่โดดเด่นดังนี้
- โปรแกรมมีอินเตอร์เฟซที่ใช้งานง่ายและเป็นระเบียบ
- Engine สำหรับ 2D เกมโดยเฉพาะ
- มีตัวขับเคลื่อนไหวที่ยืดหยุ่นสำหรับการชนกันโดยไม่ต้องใช้ระบบฟิสิกส์
- ทำงานลน Windows, Linux, Haiku ทำงานได้ทั้แบบ 32 bit และ 64 bit
- รองรับแพลตฟอร์มที่หลากหลายทั้ง Mobile, Desktop, Website
สำหรับใครที่สนใจก็สามารถศึกษาเพิ่มเติมได้ที่ : https://godotengine.org/
ต่อไปเรามาลองสร้างเกมบน Godot Engine แบบง่าย ๆ กัน
เปิด Godot Engine และไปที่ “New Project” และเลือก Path สำหรับเก็บตัวโปรเจกต์ของเรา
เราจะมายังภายใน Godot Engine โดยวันนี้เราจะทำเป็นเกม 2D Platformer กันนะครับ
แบบ Basic กระโดดกับเคลื่อนไหวได้ละกัน
ทำการสร้าง Scence มาเก็บไว้ก่อนละกันครับ
โดยผมจะให้ชื่อว่า “World” ต่อมาก็มาสร้างตัวละครสำหรับควบคุมกัน
ให้เพื่อน ๆ เลือก”Other Node” แล้วจากนั้นพิมพ์หาคำว่า “CharacterBody2D”
เมื่อสร้างมาแล้วถัดไปเราก็จะต้องสร้าง Sprite2D กับ CollisionShape2D ต่อด้วยการให้คลิกที่ “+” ด้านบนที่เราสร้างมาเมื่อเสร็จแล้วจะได้ลำดับหน้าตาเป็นแบบนี้เลย
ต่อมาให้ลองทดสอบดูก่อนว่า Sprite2D ของเราทำงานได้ปกติดีไหม
ให้เพื่อน ๆ ทำการลากภาพที่จะใช้ไปไว้ที่ช่อง Texture ตรงแทบ Inspector
และต่อมาก็ให้เพื่อน ๆ ไปปรับขนาดของ CollisionShape2D ให้ครอบคลุมกับตัว Sprite ของเราด้วยการเลือก “New RectangleShape2D” ไว้สำหรับตรวจสอบการชนของ Objective ภายในเกม
เมื่อเสร็จสิ้นขั้นตอนนี้แล้วให้เพื่อน ๆ ทำการ Save เพื่อถัดไปเราจะนำ Player ไปใช้บน “World” ที่เราเตรียมไว้กัน เลือก icon ข้างรูป + แล้วพิมพ์ชื่อไฟล์ที่เพื่อน ๆ Sve เอาไว้แล้วก็ Open ออกมา
และต่อมาเราจะไปเขียน Scripts ให้ Player กันให้เลือกรูปกระดาษข้าง ๆ Icon ค้นหา ละก็ทำการสร้าง Folder “Scripts” ขึ้นมาเลย
เขียน Script สำหรับการเคลื่อนไหวของ Player ที่เราสร้างขึ้นมา
แต่ก่อนหน้านั้นให้เพื่อน ๆ ไปที่ Project -> Project Setting -> Input Map
ตั้งปุ่มสำหรับควบคุมภายในเกมกันก่อนนะครับโดยเบื้องต้นผมจะใช้ 3 ปุ่มคือ A , D ในการเคลื่อนไหวแล้วก็ Spacebar สำหรับกระโดด
จากนั้นก็มาเริ่มเขียนโค้ดกันเลยย🎮
เริ่มตั้งแต่บรรทัดที่ 3 – 5 : ประกาศสร้างตัวแปรชนิด var ที่ไว้สำหรับเก็บข้อมูล 3 ส่วนได้แก่ Gravity , Speed , Jump_force
บรรทัดที่ 7 : ทำการสร้าง Function ขึ้นมาที่ไว้สำหรับตรวจว่าผู้เล่นยืนอยู่บนพื้นหรือไม่และมีการตรวจเช็คความเร็วการร่วงตกตามแนวแกน Y ด้วย
บรรทัดที่ 13 : กำหนดเงื่อนไขในการเช็คการกระโดดของผู้เล่นหากมีการกดปุ่มโดยจะกระโดดได้เพียงจังหวะเดียว (ถ้าอยากได้มากกว่านั้นให้นำ is_on_floor() ออกไป)
บรรทัดที่ 18 : สำหรับการเคลื่อนที่ของผู้เล่นในการขยับไปซ้ายขวา
บรรทัดที่ 20-22 : จะเป็นในเกี่ยวกับการเคลื่อนที่ของผู้เล่น
และบรรทัดที่ 24 : จะเป็นการตรวจสอบ Log ค่าผลลัพธ์ เพื่อไว้ใช้ตรวจสอบ
เมื่อลองรันทดสอบดูจะพบว่า ตัวละครของเราสามารถเคลื่อนไหวได้รวมไปถึงการกระโดดด้วยแต่ก็ยังร่วงตก Map ไปอยู่ดีก็เพราะว่าเรายังไม่มี Platformer ยังไงล่ะ !🧑💻
ต่อไปมาทำ Platformer กัน
ให้เพื่อน ๆ พิมพ์ “StaticBody2D” จากนั้นก็สร้างขึ้นมาแล้วอย่าลืมตั้งชื่อกันด้วย
แล้วก็เพิ่มต่อท้ายอีก 2 ตัวก็คือ MeshInstance2D กับ CollisionShape2D
ต่อมาให้ไปที่ Inspector ของ MeshInstance2D สำหรับสร้าง Platform ไว้รองรับตัว Player กันเลือก Mesh -> “New QuadMesh” แล้วก็สามารถกำหนดขนาดของ Platfrom ได้ตรงที่ Inspector ในช่อง Size เลยแล้วก็ตกแต่งสีตามสะดวกจากนั้นก็ไปคลุม CollisionShape2D ให้ครอบคลุมกับ Platform ที่เราสร้างมาด้วยนะครับ
จากนั้นลองทดสอบดูจะพบว่าตัวเกมของเรา ผู้เล่นสามารถกระโดดและเคลื่อนไหวได้อย่างอิสระแล้ว เพื่อให้เกมดูมีอะไรให้ทำมากขึ้นเรามาทำ Level Design เพิ่มอีกสักหน่อยละกันกับระบบ Camera
ไปที่ Player ที่เราเคยสร้างไว้ให้เพิ่ม “Camera2D” เข้ามาเพื่อคอยติดตามการเคลื่อนไหวของ Player
จากนั้นมาลองทดสอบเกมดูกันเลย🎮
https://media.giphy.com/media/ISYWJ1wftz7PKWQ17I/giphy.gif
อย่างที่เราเห็นกันไปเกมก็สามารถนำไปต่อยอดได้หลายอย่างไม่ว่าจะเป็นเกมอย่าง Jump King หรือ Game Platformer Runner ทั้งหลาย การเลือกใช้ Godot Engine ก็ถือว่าตอบโจทย์ได้เป็นอย่างดีเลยในการทำเกมแนว Casual เล่นง่าย ๆ ไม่ซับซ้อน 😃
ระบบฝึกทักษะ การเขียนโปรแกรม
ที่พร้อมตรวจผลงานคุณ 24 ชั่วโมง
- โจทย์ปัญหากว่า 200 ข้อ ที่รอท้าทายคุณอยู่
- รองรับ 9 ภาษาโปรแกรมหลัก ไม่ว่าจะ Java, Python, C ก็เขียนได้
- ใช้งานได้ฟรี ! ครบ 20 ข้อขึ้นไป รับ Certificate ไปเลย !!