Skip to main content
0

สารจากนักเขียน

เนื่องด้วยสถานการณ์ปัจจุบันจากนโยบายใหม่ของ 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 ไปเลย !!
เข้าใช้งานระบบ DevLab ฟรี !เรียนรู้เพิ่มเติม

เรียนรู้ไอที “อัพสกิลเขียนโปรแกรม” จากตัวจริง
ปั้นให้คุณเป็น คนสายไอทีระดับมืออาชีพ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า