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 ฟรี !เรียนรู้เพิ่มเติม

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

BorntoDev

Author BorntoDev

BorntoDev Co., Ltd.

More posts by BorntoDev

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

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

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

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

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

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

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

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