ข้ามไปเนื้อหา

โกโด (เกมเอนจิน)

จากวิกิพีเดีย สารานุกรมเสรี
เอนจินโกโด (Godot Engine)
ผู้ออกแบบฆวน ลีนีเอ็ตสกี (Juan Linietsky) และ แอเรียล มานซูร์ (Ariel Manzur)
วันที่เปิดตัว14 มกราคม 2014; 10 ปีก่อน (2014-01-14)[1]
รุ่นเสถียร
4.3[2] แก้ไขบนวิกิสนเทศ / 15 สิงหาคม 2024; 2 เดือนก่อน (15 สิงหาคม 2024)
ที่เก็บข้อมูล
ภาษาที่เขียนC++[3]
ระบบปฏิบัติการMicrosoft Windows, macOS, Linux, Android, Web, FreeBSD, NetBSD, OpenBSD[4]
แพลตฟอร์มSee § Supported platforms
ขนาด28–189.3 Megabytes (varies by operating system)[5]
ภาษา36 ภาษา
รายชื่อภาษา
Arabic, Argentine Spanish, Brazilian Portuguese, Bulgarian, Catalan, Czech, Dutch, English, Esperanto, Finnish, French, Galician, German, Greek, Hebrew, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Malay, Norwegian Bokmål, Persian, Polish, Portuguese, Romanian, Russian, Slovak, Simplifield Chinese, Spanish, Swedish, Thai, Traditional Chinese, Turkish, Ukrainian, Vietnamese
ประเภทเกมเอนจิน
สัญญาอนุญาตMIT License
เว็บไซต์godotengine.org แก้ไขสิ่งนี้ที่วิกิสนเทศ

โกโด (อังกฤษ: Godot /ˈɡɒd/)[a] เป็นเกมเอนจินเสรีและโอเพนซอร์สข้ามแพลตฟอร์ม ซึ่งเผยแพร่ภายใต้สัญญาอนุญาตของสถาบันเทคโนโลยีแมสซาชูเซตส์ เดิมทีได้รับการพัฒนาใน กรุงบัวโนสไอเรสโดยนักพัฒนาซอฟต์แวร์ชาวอาร์เจนตินา ฆวน ลีนีเอ็ตสกี (Juan Linietsky) และ แอเรียล มานซูร์ (Ariel Manzur)[6] สำหรับใช้ในบริษัทหลายแห่งในละตินอเมริกา ก่อนที่จะเผยแพร่สู่สาธารณะในปี 2014[7] สิ่งแวดล้อมการพัฒนาใช้งานได้บนหลากหลายแพลตฟอร์ม และสามารถส่งออกผลงานไปยังแพลตฟอร์มอื่นๆ ได้อีกมากมาย เอนจินนี้ได้รับการออกแบบมาเพื่อสร้างเกมทั้ง 2D และ 3D สำหรับแพลตฟอร์มคอมพิวเตอร์ส่วนบุคคล มือถือ และ เว็บ และยังสามารถใช้ในการพัฒนาซอฟต์แวร์ที่ไม่ใช่เกม รวมถึงโปรแกรมแก้ไขอีกด้วย

คุณสมบัติ

[แก้]

โกโดช่วยให้ผู้พัฒนาวิดีโอเกม สามารถสร้างเกมทั้งแบบ 2D และ 3D โดยใช้ภาษาการเขียนโปรแกรมหลายภาษา เช่น C++, C# และ GDScript[8] ในเอนจินมีระบบลำดับชั้นของโหนดเพื่ออำนวยความสะดวกในการพัฒนา[9] สามารถสร้างคลาสจากประเภทโหนดเพื่อสร้างประเภทโหนดที่มีความเฉพาะทางมากขึ้นซึ่งสามารถสืบทอดได้ โหนดจะถูกจัดระเบียบภายใน "ฉาก" ซึ่งเป็นกลุ่มโหนดที่สามารถนำกลับมาใช้ใหม่ได้ สร้างอินสแตนซ์ได้ สืบทอดได้ และซ้อนกันได้ ทรัพยากรเกมทั้งหมด รวมถึงสคริปต์และทรัพยากรกราฟิก จะถูกบันทึกไว้เป็นส่วนหนึ่งของ ระบบไฟล์ ของคอมพิวเตอร์ (แทนที่จะอยู่ใน ฐานข้อมูล) วิธีการจัดเก็บข้อมูลนี้มีวัตถุประสงค์เพื่ออำนวยความสะดวกในการทำงานร่วมกันระหว่างทีมพัฒนาเกมโดยใช้ระบบการควบคุมการปรับปรุงแก้ไขซอฟต์แวร์[10]

แพลตฟอร์มที่รองรับ

[แก้]

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

โปรแกรมแก้ไขโกโดที่ใช้สำหรับการสร้างเกมโกโดรองรับแพลตฟอร์มต่อไปนี้:

เอนจินรองรับการส่งออกโครงการไปยังแพลตฟอร์มอื่นๆ อีกมากมาย รวมถึงแพลตฟอร์มแก้ไขทั้งหมด แพลตฟอร์มที่รองรับในปัจจุบันของ โกโด4.0 ได้แก่:[15]

เอนจินโกโดสามารถรันบนเครื่องเล่นวิดีโอเกมได้ แม้ว่าเครื่องเล่นวิดีโอเกมยอดนิยมจะไม่ได้รับการสนับสนุนอย่างเป็นทางการ เนื่องจากไม่อนุญาตให้เผยแพร่รหัสเฉพาะแพลตฟอร์มภายใต้สัญญาอนุญาตโอเพนซอร์ซ[17] เกมสามารถพอร์ตไปยังเครื่องเล่นวิดีโอเกมได้ผ่านบริษัทบุคคลที่สาม[18][19] ขณะนี้ทีมงานโกโดกำลังพัฒนาให้โกโด 4 รองรับเครื่องเล่นวิดีโอเกมโดยทีมงานภายนอกได้[15] W4 Games บริษัทเชิงพาณิชย์ที่ก่อตั้งโดยสมาชิกบางส่วนของผู้นำโครงการโกโด ได้ประกาศวา่ต่อไปจะให้บริการพอร์ตเกมที่สร้างด้วยโกโด 4.0 ให้กับแพลตฟอร์ม ไมโครซอฟท์, นินเท็นโด และ โซนี่[20][21]

สำหรับสถาปัตยกรรม CPU นั้น โกโดรองรับเอกซ์86 (x86) อย่างเป็นทางการบนแพลตฟอร์มเดสก์ท็อปทั้งหมด (ทั้ง 32 บิตและ 64 บิต หากมี) และมีการรองรับสถาปัตยกรรมตระกูล ARM อย่างเป็นทางการบนแมคโอเอสและลินุกซ์,[22] แพลตฟอร์มมือถือ และแพลตฟอร์ม Oculus แบบสแตนด์อโลน (ทั้ง 32 บิตและ 64 บิต หากมี) แพลตฟอร์มเว็บใช้เว็บแอสเซมบลี 32 บิต นอกจากนี้ยังมีการรองรับริสค์-วี (RISC-V) และ PowerPC ลินุกซ์อย่างไม่เป็นทางการและถือเป็นเพียงแค่การทดลอง[23][24]

การเขียนสคริปต์

[แก้]
ภาพหน้าจอของการแก้ไขไฟล์ GDScript โดยใช้ตัวแก้ไขสคริปต์ในตัวของโกโด 3.4

โกโดรองรับภาษาการเขียนโปรแกรมต่างๆ สำหรับการสร้างเกม รวมถึงภาษาที่แถมมากับตัวที่ชื่อจีดีสคริปท์ (GDScript) นอกจากนั้นก็มี C++[25] และ C# นอกจากนี้ เอนจินยังมี GDNative ซึ่งเป็นเครื่องมือสำหรับสร้างการผูกกับภาษาอื่นๆ อีกด้วย ภาษาที่ GDNative รองรับอย่างเป็นทางการได้แก่ C และ C++[26] ภาษาที่ชุมชนสร้างการรองรับให้ ได้แก่ ภาษารัสต์ (Rust), ภาษานิม (Nim), ภาษาแฮสเคิล(Haskell), ภาษาโคลจูร์ (Clojure), ภาษาซวิฟท์​ (Swift) และ ภาษาดี (D)[27] นอกจากนี้ยังรองรับการเขียนโค้ดเชิงภาพ ผ่าน Orchestrator ภาษาเสรีและโอเพนซอร์สของบุคคลที่สาม [28] การเขียนโค้ดเชิงภาพเดิมทีนั้นใช้ VisualScript ซึ่งแถมมากับตัวเอนจิน ซึ่งได้รับการออกแบบมาให้เทียบเท่ากับ GDScript[19] แต่ต่อมาในโกโด 4.0 ตัว VisualScript ก็ถูกลบออกจากเอนจินหลัก[29] นอกจากนี้เกมโกโดที่รันบนเบราว์เซอร์สามารถเชื่อมต่อกับรหัสจาวาสคริปต์ของเบราว์เซอร์ได้

โปรแกรมแก้ไข โกโดประกอบด้วยตัวแก้ไขข้อความที่มีการเยื้องอัตโนมัติ ไฮไลท์ไวยากรณ์ การพับรหัส และการเติมรหัส นอกจากนี้ยังมีโปรแกรมดีบักเกอร์ที่สามารถกำหนดจุดพักและ ขั้นตอนการทำงานของโปรแกรม (program stepping) ได้[30]

จีดีสคริปท์

[แก้]
จีดีสคริปท์
กระบวนทัศน์Object-oriented
ผู้พัฒนาชุมชนโกโด
ระบบชนิดตัวแปรDynamic, Duck
ระบบปฏิบัติการข้ามแพลตฟอร์ม
นามสกุลของไฟล์.gd
เว็บไซต์docs.godotengine.org
ได้รับอิทธิพลจาก
C, C++, Python

โกโดมีภาษาสคริปต์ในตัวมันเองที่เรียกว่าจีดีสคริปท์[30] ซึ่งเป็นภาษาโปรแกรม ระดับสูงที่มีการกำหนดประเภทแบบค่อยเป็นค่อยไป ซึ่งมีไวยากรณ์คล้ายกับภาษาไพทอน แต่ต่างจากไพทอนตรงที่จีดีสคริปท์ได้รับการปรับปรุงให้เหมาะสมสำหรับสถาปัตยกรรมแบบฉากของโกโดและสามารถระบุประเภทของตัวแปรที่เข้มงวดได้ นักพัฒนาของโกโดได้ระบุว่ามีการทดสอบภาษาสคริปต์ของบุคคลที่สามมาเป็นทางเลือกมากมาย เช่น ภาษาลูอา, ภาษาไพทอน และ กระรอก (ภาษาโปรแกรม) (Squirrel) ก่อนที่จะตัดสินใจว่าการใช้ภาษาที่สร้างขึ้นใหม่นั้นจะช่วยเพิ่มประสิทธิภาพและบูรณาการกับตัวแก้ไขได้ดียิ่งขึ้น ในเวอร์ชัน 4.0 ฟีเจอร์ใหม่ที่เรียกว่า Typed array[31] ได้ถูกนำไปใช้บนจีดีสคริปท์ ช่วยให้ผู้ใช้สามารถเปลี่ยนอาร์เรย์ปกติเป็นแบบมีชนิดและเปลี่ยนกลับได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนแปลงรหัสมากนัก[30] ในการอัปเดต 4.0 ในภายหลัง ยังมีการเพิ่มพจนานุกรมแบบมีประเภท (Typed Dictionaries) ซึ่งทำให้ผู้ใช้สามารถประกาศคู่ กุญแจ-ค่า ที่มีประเภทชัดเจนเพื่อเพิ่มความปลอดภัยของประเภทของสคริปต์ต่อไป[32] ประเภทคงที่ (static types) ที่เป็นตัวเลือกที่ช่วยให้แบ็กเอนด์ C++ สามารถใช้การปรับแต่งที่ทำให้ประสิทธิภาพเพิ่มขึ้นอย่างเห็นได้ชัด โดยพบว่าจีดีสคริปท์ที่ใช้ประเภทคงที่ทำงานเร็วขึ้นกว่า 40%[33][34]

โปรแกรมเฮลโลเวิลด์ง่ายๆ สามารถเขียนได้ดังนี้:

func _ready():
	print("Hello World")

โปรแกรมที่ซับซ้อนมากขึ้น เช่น การสร้างลำดับฟีโบนักชี สามารถเขียนได้ดังนี้:

func _ready():
	var nterms = 5
	print("Fibonacci sequence:")
	for i in range(nterms):
		print(fibonacci(i))

func fibonacci(n):
	if n <= 1:
		return n
	else:
		return fibonacci(n - 1) + fibonacci(n - 2)

การนำไปใช้

[แก้]

OKAM Studio ได้ผลิตเกมหลายเกมด้วยโกโด เช่น Dog Mendonça & Pizza Boy, ที่ใช้ส่วนขยาย Escoria adventure game extension[35] นอกจากนี้ยังใช้เอนจินนี้ในการเรียนการสอนระดับมัธยมปลายในรัฐเวสต์เวอร์จิเนีย เนื่องจากใช้ได้ง่ายแม้ผู้ใช้จะเขียนโปรแกรมไม่เป็นก็ตาม[36] และยังมีสื่อการเรียนการสอนเพียบพร้อมอีกด้วย นอกจากนี้ Gotcha Gotcha Games ผู้สร้าง RPG Maker ประกาศว่าจะใช้โกโดเป็นระบบสร้างเกมใหม่ของพวกเขา ระบบนี้ชื่อ Action Game Maker และมีกำหนดเผยแพร่ในปี พ.ศ. 2568[37]

ดูเพิ่ม

[แก้]

หมายเหตุ

[แก้]
  1. The engine's name is derived from the play Waiting for Godot. For native English speakers, the engine maintainers recommend god-oh, with the "t" being silent like in the French original, but they also acknowledge that a variety of pronunciations exist.[38]

อ้างอิง

[แก้]
  1. Linietsky, Juan (14 มกราคม 2014). "Godot Engine - First public release!". Godot Engine. สืบค้นเมื่อ 2019-07-01.
  2. "Godot 4.3, a shared effort".
  3. "The Godot Game Engine Open Source Project on Open Hub". สืบค้นเมื่อ 30 July 2015.
  4. 4.0 4.1 "Godot Features". Godot Engine (ภาษาอังกฤษ). คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2021-05-13. สืบค้นเมื่อ 2021-05-10.
  5. "Releases · godotengine/Godot". GitHub.
  6. "Historia de Godot". Headsem. 15 September 2017.
  7. Linietsky, Juan (4 March 2016). "Godot 2.0: Talking with the Creator". 80.lv. สืบค้นเมื่อ 18 June 2016.
  8. 8.0 8.1 Hill, Paul (2023-05-19). "Godot Engine arrives on Epic Games Store making it easier to download". Neowin (ภาษาอังกฤษ). สืบค้นเมื่อ 2023-05-19.
  9. "The 5 Best Game Engines for Beginners in Video Game Development". MUO (ภาษาอังกฤษ). 2022-02-05. สืบค้นเมื่อ 2023-05-19.
  10. "File system". Getting started. Godot Docs. สืบค้นเมื่อ 2019-07-20.
  11. Dealessandri, Marie (2020-04-15). "What is the best game engine: is Godot right for you?". GamesIndustry.biz (ภาษาอังกฤษ). สืบค้นเมื่อ 2023-05-19.
  12. "Godot Engine 4.4 documentation in English: Using the Web editor". Godot Engine (ภาษาอังกฤษ). เก็บจากแหล่งเดิมเมื่อ 2024-10-08. สืบค้นเมื่อ 2024-10-18.
  13. Verschelde, Rémi (2022-08-05). "Godot Engine - Godot 3.5: Can't stop won't stop". Godot Engine (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-09-14.
  14. 14.0 14.1 "Compiling for Linux, *BSD - Godot Engine (latest) documentation in English". Godot Engine (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-04-16.
  15. 15.0 15.1 "Godot 4.0 sets sail: All aboard for new horizons". Godot Engine (ภาษาอังกฤษ). สืบค้นเมื่อ 2023-03-01.
  16. "Mozilla Awards $385,000 to Open Source Projects as part of MOSS "Mission Partners" Program". The Mozilla Blog. สืบค้นเมื่อ 17 October 2016.
  17. "Third-party support". Godot Docs. สืบค้นเมื่อ 25 September 2023.
  18. "Console Support". Godot Documentation (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-05-09.
  19. 19.0 19.1 Minor, Jordan. "Godot Review". PCMAG (ภาษาอังกฤษ). สืบค้นเมื่อ 9 September 2023.
  20. Sawers, Paul (August 19, 2022). "How W4 plans to monetize the Godot game engine using Red Hat's open source playbook". Techcrunch.com. สืบค้นเมื่อ September 7, 2023. Put simply, Godot can’t be a community-driven open source project and support consoles at the same time. But there are ways around this, which is why W4 hopes to make money by offering a porting service to help developers convert their existing games into a console-compatible format.
  21. "W4 Games Unveils W4 Consoles A Practical Console Porting Solution For Game Developers". W4Games.com. August 6, 2023. สืบค้นเมื่อ September 7, 2023.
  22. "Release candidate: Godot 4.2 RC 1". Godot Engine (ภาษาอังกฤษ). สืบค้นเมื่อ 2024-01-30.
  23. "Add support for the RISC-V architecture". GitHub (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-04-17.
  24. "Add support for PowerPC family". GitHub (ภาษาอังกฤษ). สืบค้นเมื่อ 2022-04-17.
  25. "Godot with C++". 7 July 2020. สืบค้นเมื่อ 2021-06-17.
  26. "GDNative C++ example". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 24 January 2022. สืบค้นเมื่อ 2021-06-17.
  27. "Godot languages support". GitHub. สืบค้นเมื่อ 2021-06-17.
  28. "Orchestrator – Visual Scripting For Godot". GameFromScratch.com (ภาษาอังกฤษ). 2024-02-27. สืบค้นเมื่อ 2024-03-16.
  29. "Godot 4.0 will discontinue VisualScript". Godot Engine. สืบค้นเมื่อ 2022-09-08.
  30. 30.0 30.1 30.2 "GDScript basics: History". Getting started. Godot Docs. สืบค้นเมื่อ 2019-07-20.
  31. "TypedArrays". สืบค้นเมื่อ 2021-06-04.
  32. "TypedDictionaries". สืบค้นเมื่อ 2024-10-07.
  33. "Optimizations for GDScript VM". 2023-01-02. สืบค้นเมื่อ 2024-10-07.
  34. "Yes, your Godot game runs faster with static types". 2024-02-14. สืบค้นเมื่อ 2024-10-07.
  35. Suckley, Matt (15 August 2015). "OKAM Studio on empowering designers with Godot Engine's adventure game framework Escoria". PocketGamer.biz. สืบค้นเมื่อ 29 December 2017.
  36. Brasseur, Vicky (16 August 2016). "Godot open source game engine helps power the future in West Virginia". Opensource.com. สืบค้นเมื่อ 29 December 2017.
  37. Writer, Nic Reuben Staff; Reuben, Nic (2024-07-12). "Action Game Maker is RPG Maker's sprintier, jumpier sibling". Rock, Paper, Shotgun (ภาษาอังกฤษ). สืบค้นเมื่อ 2024-07-13.
  38. "Godot Name". Godot Press Kit (ภาษาอังกฤษ). สืบค้นเมื่อ 2021-05-09.