มาทำความรู้จักกับ LibGDX กันครับ

Published on
Game Development
2014/04/introduction-to-libgdx
Discord

วันนี้ผมมีวิธีการเขียนเกมมานำเสนอครับ เป็นการเขียนเกมบนมือถือแอนดรอยส์ แต่จริงๆมันก็สามารถ Cross-Platform ไปรันได้ทั้งบราวเซอร์ Desktop และ iOS ครับ โดยบทความนี้จำเป็นต้องใช้ Framework เข้ามาช่วย นั้นก็คือ libgdx นั่นเอง

Libgdx คืออะไร?

Libgdx เป็น Game Framework พัฒนาด้วยภาษา java ที่สามารถเล่นได้ทุก Platform (cross-platform) ทั้งบน Windows, Linux, Mac OS X, Android, iOS หรือแม้แต่ HTML5 บน browser.

ทำไมผมถึงเลือก libgdx

แทนที่จะเป็นเจ้าใหญ่ๆอย่าง Unity, Cocos2d หรือแม้แต่ AndEngine ก็เพราะว่า libgdx นั้นเขียนด้วย java ซึ่งส่วนตัวผมมีความคุ้นเคยอยู่แล้ว ประกอบกับมันสามารถรันได้แบบ Cross-Platform เขียนที่เดียว รันได้ทุกเครื่อง นี่แหละเหตุผลหลักที่เลือก

ภาพรวมของ Libgdx

การทำงานของ Libgdx คือ เราเพียงแค่เขียนโค๊ดเพียงแค่ครั้งเดียว ด้วย java และสั่ง deploy ไปหลายๆ platform ได้เลย โดยไม่ต้องไปแก้ไขตัว source code โดยทาง Libgdx นั้นเตรียม ฟังค์ชั่นที่จำเป็นๆ ให้เราหมดแล้วเช่น File System, Input Device, Render Sprites & Text, User Interface, Audio, OpenGL เป็นต้น โดยความเห็นส่วนตัวของผม มองว่า Libgdx ดูเหมาะจะเป็น Library มากกว่า Framework เมื่อเทียบกับเจ้าอื่นๆ เช่น Unity Framework หรือ AndEngine

ตัวอย่างเกมส์ที่ทำด้วย Libgdx

ภาพด้านล่างคือตัวอย่างเกมที่ทำด้วย Libgdx ครับ มีเยอะครับ

https://libgdx.badlogicgames.com/gallery.html

โครงสร้างและการทำงานของ libgdx

libgdx จะมีโครงสร้างของโปรเจ็คแบ่งออกตามแต่ละ Platform และมี main โปรเจ็ค 1 โฟลเดอร์สำหรับจัดการตัว Game ต่างๆครับ

สมมติผมตั้งชื่อเกมส์นี้ว่า gdxahoy ตัวโปรเจ็คและโครงสร้างของ libgdx จะประกอบไปด้วยโฟลเดอร์

  • gdxahoy : เป็นโฟลเดอร์หลักสำหรับเขียนทั้งตัว MainGame, Game Loop ทุกอย่างทำที่นี้หมด
  • gdxahoy-android : สำหรับเปิดบน Android ไว้สำหรับเก็บ คลาส AndroidStarter และไฟล์ assets/ ต่างๆ จะถูกเก็บไว้ที่นี่
  • gdxahoy-html : สำหรับรันด้วย HTML5 โดยใช้ GWT ในการรัน เมื่อได้ไฟล์ war สามารถอัพขึ้นโฮสหรือ tomcat, jetty ได้เลย เหมือน java ทั่วๆไป
  • gdxahoy-desktop : สำหรับเปิดบน Desktop
  • gdxahoy-robovm : สำหรับเปิดบน iOS

โดยทุกๆโฟลเดอร์จะลิงค์ไปที่ไฟล์ assets เดียวกันคือที่โฟลเดอร์ของ gdxahoy-android assets คือไฟล์พวกรูปภาพ เสียง ฉาก ฟ้อน ต่างๆ

หากเราต้องการให้ตัวเกมส์สามารถรันบนเครื่องแอนดรอยส์ได้ เราก็เพียงแค่ สร้าง AndroidStarter คลาสขึ้นมา ในโฟลเดอร์ gdxahoy-android ตัว AndroidStarter จะไปทำการเปิดตัว MainGame ใน gdxahoy อีกทีนึง ซึ่งโฟลเดอร์ gdxahoy นี้คือหัวใจของเกมเลยครับ เพราะเวลาเขียนโปรแกรม เราจะเขียนกันที่โฟลเดอร์นี้แทบทั้งหมด ส่วนโฟลเดอร์อื่นๆ เป็นเพียงแค่คลาส Starter

เครื่องมือที่ใช้เขียน

  • JDK สิ่งนี้ต้องมีแน่นอนอยู่แล้ว หากเคยเขียน Java หรือ Android มาก่อน
  • Android SDK อันนี้ก็จำเป็นต้องมี เพราะว่าเป้าหมายคือเกมส์บน Android
  • Eclipse หรือ ADT Bundle หรือ IntelijIDEA

หากใครยังไม่มีเครื่องมือ หรือไม่รู้ว่าจะเริ่มอย่างไร อ่านบทความนี้ได้ครับ

เอาละครับ เกริ่นนำไปพอสมควร สำหรับ Libgdx คิดว่าภาพรวมคงยังนึกไม่ออก ว่าจะเขียนยังไง มีวิธีการอย่างไรบทความต่อไปผมจะมานำเสนอวิธีการติดตั้งเครื่องมือ ตั้งค่าโปรเจ็คสำหรับเขียนเกมส์ด้วย Libgdx กันครับ รอติดตามกันได้เลยครับ

Update

ตอนนี้ทางเว็บได้เพิ่มในหมวด Tutorial สำหรับ LibGDX แล้วนะครับ สามารถติดตามอ่านได้จากลิงค์ด้านล่างได้เลย

Buy Me A Coffee
Authors
Discord