libGDX เขียนเกม part 1: ดาวน์โหลดและติดตั้ง
โอกาสนี้อยากจะนำเสนอการฝึกเขียนโปรแกรมให้แก่มือใหม่โดยใช้ libGDX เขียนด้วยภาษา Kotlin มาลับทักษะของเราแล้วสร้างสรรค์ให้เป็นเกมในฝันร่วมกันเถิดนะ
ตั้งแต่เด็กแล้วที่ผมมักจะนำสมุดวาดเขียน (เล่มใหญ่) มาวาดเป็นเกมกระดาน ตั้งกฏกติกาแพ้ชนะ สรรหาลูกเต๋ากับตัวเดินพลาสติกแล้วเรียกรวมเหล่าเพื่อนมาเล่นเกมด้วยกัน มันสนุกมากทั้งยังจดจำได้จนถึงทุกวันนี้
แต่ก่อนเราจะเริ่มเขียนเกม เราต้องเขียนโปรแกรมเป็นก่อน ต้องรู้จักภาษาที่เลือกใช้ และต้องมี logic ความคิดแบบลำดับขั้นตอน ง่ายๆว่าเรากำลังจะเป็นโปรแกรมเมอร์นั่นแหละครับ
เครื่องคอมพิวเตอร์ที่ใช้เขียนโปรแกรมและเขียนเกม
บอกกันตรงๆผมชอบเครื่องแรงสเปคสูง แต่งบประมาณที่ซื้อได้ก็ยังสำคัญกว่าอยู่ดี เลือกระหว่าง
- เครื่อง Windows ขอที่ราคา 25,000 ขึ้นไปนะครับ core i7
- เครื่อง Mac ขอเป็น Macbook Pro ก็แล้วกัน
หรือใครมีใช้อยู่แล้วก็เอาตามนั้นแหละ ลื่นไม่ลื่น ได้ไม่ได้ค่อยแก้ไขกันไป
โปรแกรมที่ต้องติดตั้ง
โปรแกรมในที่นี้คือโปรแกรมที่เราจะใช้ในการเขียนภาษาโปรแกรม และเป็นโปรแกรมช่วยเหลืออื่นๆที่ทำให้เราเขียนภาษาโปรแกรมนั้นง่ายขึ้น เช่น ตอนนี้ผมอยากเรียนภาษาโปรแกรมที่ชื่อ Kotlin ก็ต้องหา Kotlin Compiler เพื่อที่ตัว compiler จะแปลภาษาโปรแกรม Kotlin ให้กลายเป็นไฟล์ .class แล้วนำไป run บน JVM
แต่ถ้าจะให้ผมเขียนภาษา Kotlin แบบเปิด Text Editor ขึ้นมาแล้วลงมือเขียนก็ยากเกินไป จะรู้ได้อย่างไรว่าพิมพ์ตรงไหนผิดถูก อย่างนี้ต้องอาศัยประสบการณ์การเขียนโปรแกรมมาพอควรจึงจะทำได้ แต่ผมเพิ่งเริ่มต้นดังนั้นควรหาโปรแกรมช่วยเหลือ ที่จะช่วยให้การเขียน Kotlin ง่ายขึ้น มี highlight สีสัน บอกได้ว่าตรงไหนผมเขียนผิด ทั้งสามารถแนะนำการเขียนที่ถูกต้องแก่ผมได้ อย่างนี้จะง่ายหน่อย อย่างนี้ถูกใจแท้เหลา
โปรแกรมช่วยเขียนภาษา Kotlin ทั้งยังมี Kotlin Compiler ให้เลือกติดตั้งมาในตัวเลยที่ผมอยากแนะนำชื่อ IntelliJ IDEA รุ่น Community (ฟรีด้วย) ให้หาดาวน์โหลดมาติดตั้งในเครื่องให้เรียบร้อย
สำหรับมือใหม่ที่งงกับคำว่า Java, JDK, JRE, JVM ไม่เข้าใจ .class คืออะไร คือยังแยกแยะไม่ออกไม่ต้องกังวลใจไป ผมขออธิบายให้เข้าใจง่ายๆไวๆไปก่อน มาดู
- Java คือภาษาโปรแกรมภาษาหนึ่ง ได้แนวคิดและพัฒนาในยุคของภาษา C
- Kotlin ก็ภาษาโปรแกรมภาษาหนึ่ง ได้แนวคิดและพัฒนาในยุคของภาษา Java
- JDK ย่อมาจาก Java Development Kit คือชุดเครื่องมือ (ข้างในก็มีสารพัดโปรแกรม เช่น Java Compiler, Debugger) ใช้เขียนภาษา Java เพื่อแปลภาษา Java ให้มีไฟล์นามสกุลเป็น .class
- JRE ย่อมาจาก Java Runtime Environment เป็นโปรแกรมตัวหนึ่งที่เข้าใจไฟล์ .class และจะทำงานไฟล์ .class ให้เป็นสิ่งที่เราต้องการ
- JVM ย่อมาจาก Java Virtual Machine สำคัญมาก เพราะทั้ง JDK และ JRE ต่างก็ต้องเรียกใช้โปรแกรม JVM นี้เพื่อทำงานโค้ดคำสั่งของไฟล์ .class ทีละคำสั่ง มันเป็นตัว Interpreter ที่จะ execute ไฟล์ .class ให้กลายเป็นภาษาเครื่อง (Machine Languages) ที่เหมาะสมกับ Hardware ของเครื่องต่อไป
ภาษา Kotlin เองไม่ต่างจาก Java มันจะถูก compile ด้วย Kotlin Compiler ให้ได้ไฟล์ .class เมื่อไรก็ตามที่เราสั่ง run ประดาไฟล์ .class เหล่านั้นก็จะถูกส่งให้ JVM ทำงานในท้ายที่สุด
หากยังไม่รู้จัก Kotlin แนะนำให้อ่าน
ผมอยากให้เริ่มได้ง่ายและไวที่สุด ดังนั้นแนะนำให้โหลดโปรแกรม IntelliJ IDEA รุ่น Community มาติดตั้ง (ย้ำอีกครั้ง) อันนี้เลย
Programming languages & libGDX
ภาษาที่สามารถใช้เขียนเกมร่วมกับ libGDX ได้แก่
- Scala
- Java
- Kotlin > ผมเลือกตัวนี้
- Clojure
- Groovy
libGDX สร้างเป็นเกมบน platform ใดบ้าง
- Windows
- Linux
- Mac OS X
- Android
- IOS
- Web (HTML 5)
เครื่องมือที่สนับสนุนการเขียนโปรแกรม
- IntelliJ IDEA > ผมเลือกตัวนี้
- Eclipse IDE
- NetBeans IDE
- Gradle ใช้จัดการ dependencies (ซึ่งจะอยู่ในรายการติดตั้งของ IntelliJ IDEA ด้วย)
- Jenkins ใช้จัดการ CI/CD
libGDX ไม่มีค่าใช้จ่าย
สามารถใช้งานได้ฟรีด้วยใบอนุญาต Apache 2
ดาวน์โหลด libGDX
ตรงไปที่นี่
เชื่อว่าเพื่อนๆหลายคนใช้เครื่อง Windows แต่ว่าผมใช้ Mac ดังนั้นสภาพแวดล้อมในการพัฒนาและเรียนรู้ของพวกเราจะแตกต่างกัน ตรงนี้ก็ขอให้ค่อยเป็นค่อยไปและใจเย็นๆ (หรือไม่ถ้ามีงบ ผมก็เชียร์ให้ซื้อ Macbook Pro นะครับ มันใช้ดีจริงๆ)
กดปุ่ม Download Setup App ตามรูป เราจะได้ gdx-setup.jar มา แบบนี้
เวลาดับเบิลคลิกแล้วมันจะแจ้งว่า gdx-setup.jar เนี่ยไม่สามารถเปิดได้ เนื่องจากยังไม่ผ่านการ identified หรือรับรองว่าปลอดภัย
ใครสน No Care!
เพื่อนที่ใช้เครื่อง Mac ให้คลิกขวาที่ไฟล์ดังกล่าว จากนั้นกดปุ่ม option ค้างไว้ จากนั้นจึงเลือกคำสั่ง open
เมื่อปรากฏหน้าต่างนี้ ให้กดปุ่ม Open ได้เลย
gdx-setup.jar จะถูกทำงานด้วย JRE (ให้แน่ใจนะว่าในเครื่องได้ลง JRE ไว้แล้ว)
โดยที่
- Name คือชื่อของเกม
- Package ใช้แยกแยะหรือจัดกลุ่มประดา class, interface, enum และอื่นๆทั้งหลาย จะเรียกว่า namespaces ก็ได้ ยังใช้ในการระบุตัวตนของ application ไม่ให้ซ้ำกับ application อื่น
- Game Class ก็คือชื่อคลาสหลัก
- Destination บันทักไว้ที่ไหน
- Android SDK ที่อยู่ของโปรแกรมพัฒนา android
- Sub Projects เกมที่เขียนนี้จะเล่นได้บน platform ไหนบ้าง
- Extensions คือไลบรารีเพิ่มเติมที่อยากใช้กับโปรเจกต์
ตัวผมและมือใหม่เพิ่งเริ่มศึกษา ดังนั้นเลือก Sub Projects แค่ Desktop
เพราะผมจะใช้ภาษา Kotlin ในการเขียน ดังนั้น กดปุ่ม Advanced
เสร็จแล้วกด Save และกด Generate
Generating app in /Users/pros/works/libgdx/hello
Executing ‘/Users/pros/works/libgdx/hello/gradlew clean — no-daemon’
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/5.4.1/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing
> Task :core:clean
> Task :desktop:clean
BUILD SUCCESSFUL in 4s
2 actionable tasks: 2 executed
Done!
To import in Eclipse: File -> Import -> Gradle -> Gradle Project
To import to Intellij IDEA: File -> Open -> build.gradle
To import to NetBeans: File -> Open Project…
Run Program
เราจะทดสอบรันโปรแกรมครับ
ให้เปิด IntelliJ IDEA และเลือกคำสั่ง open เปิดไปยัง folder ชื่อ hello ที่ถูก generate ไว้
ปล่อยให้ Gradle ทำงานของมันไปสักพัก…
เมื่อ Gradle ทำงานเสร็จแล้ว ซ้ายมือคือหน้าต่าง Project เลือก desktop แล้วเปิดไฟล์ DesktopLaucher
กดปุ่มสามเหลี่ยมสีเขียวจากในรูปข้างต้นเพื่อ run โปรแกรม
มือใหม่อาจทั้งมืนทั้งงงว่ามัน error อะไรหว่า มันขาดอะไรไป เหตุใดจึง run ไม่ได้ ไม่เป็นไร ค่อยลองผิดลองถูกแก้ไขปัญหาไป หากไม่ได้ก็สั่งให้ gdx-setup.jar สร้างโปรเจกต์ให้ใหม่ได้
ลองตรวจสอบดูก่อนว่าที่เครื่องได้ติดตั้ง JRE หรือ JDK ไว้แล้วหรือยัง เช่น
java -version
javac -version
ไว้พบกัน part ต่อไปและขอบคุณสำหรับเสียงปรบมือเพื่อเป็นกำลังใจครับ
อ่านต่อ
อ้างอิง
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360002874519-Which-JDK-for-Kotlin-development-