Cài đặt và sử dụng libGDX

libGDX là một java framework để xây dựng game đa nền tảng. libGDX hoạt động dựa trên OpenGL (ES) trong các nền tảng: Windows, Linux, macOS, Android, iOS và trình duyệt; cung cấp một môi trường phát triển mạnh mẽ cho các nhà phát triển muốn xây dựng trò chơi theo phong cách của riêng mình và hoàn toàn miễn phí.

Để bắt đầu với libGDX chúng ta cần cài đặt một IDE (Integrated Development Environment). Đơn giản thì IDE là một phần mềm để ta thực hiện việc gõ các đoạn mã và chạy các đoạn mã đó để ra được kết quả mà ta mong muốn.

Có rất nhiều IDE được sử dụng để phát triển các chương trình được xây dựng bằng ngôn ngữ Java như: Eclipse , Netbeans, IntelliJ IDEA, … Nhưng thuận tiện để phát triển nhất thì mình khuyên mọi người nên sử dụng Android Studio.

Sau khi đã cài đặt IDE thành công việc tiếp theo ta cần là tải về công cụ cài đặt project của libGDX (gdx-setup): Bấm để tải về

Tìm đến thư mục vừa tải về ta sẽ thấy một tập tin là gdx-setup.jar, để chạy được file này chúng ta cần sử dụng cửa sổ lệnh và chạy dòng lệnh

java -jar gdx-setup.jar

Giao diện cho phép ta thực hiện các cài đặt cho project game sẽ được hiện lên như sau:

Trong màn hình tạo project trên ta cần khai báo các thông tin:

  • Name: tên của trò chơi, nên là chữ viết thường và có thể dùng dấu gạch ngang (-) để phân tách các từ
  • Package: package java mà ta sẽ sử dụng. Ví dụ như: xyz.papapip.gamebanga
  • Game Class: tên của class chính trong game của chúng ta.
  • Destination: đường dẫn tới thư mục mà game sẽ được tạo.
  • Android SDK: đường dẫn tới nơi chứa Android SDK.
  • Supported  Platforms: libGDX hỗ trợ nhiều nền tảng vì thế mặc định các nền tảng mà nó hỗ trợ sẽ được tích chọn. Chúng ta có thể bỏ chọn một hoặc nhiều nền tảng mà ta không muốn phát triển game của mình trên đó.
  • Official Extensions: các thư viện sẽ được tích hợp vào trong trò chơi của chúng ta:
    • Bullet: Thư viện dùng để phát hiện va chạm trong game 3D.
    • FreeType: Thư viện hỗ trợ việc thay đổi kích thước của chữ trong game. Tuy nhiên với nền tảng HTML chúng ta cần phải có thêm thao tác biên dịch riêng cho nó, nếu không thư viện sẽ không hoạt động.
    • Tools: Tập hợp các thư viện xử lý bitmap font, texture packers,…
    • Controllers: thư viện xử lý các controllers. Ví dụ: XBox 360 controller
    • Box2d: thư viện xử lý vật lý trong game 2D
    • Box2dlights: 2D lighting framework sử dụng box2d cho việc rendering OpenGL ES 2.0 và raycasting.
    • Ashley: là một entity framework
    • Ai: một thư viện hỗ trợ trí tuệ nhân tạo trong game.

Khi đã điền và chọn các thông tin phù hợp ta sẽ bấm nút `Generate ` quá trình tạo project được bắt đầu.

Lưu ý: Để biên dịch game của bạn cho nền tảng iOS thì bạn cần phải cài đặt Xcode (Xcode chỉ tương thích trên macOS)

Ngoài việc sử dụng giao diện để tạo project chúng ta cũng có thể dùng câu lệnh để tạo project như sau:

java -jar gdx-setup.jar --dir mygame --name gamebanga --package xyz.papapip.gamebanga --mainClass MyGame --sdkLocation mySdkLocation [--excludeModules <modules>] [--extensions <extensions>]

Trong đó

  • dir: thư mục sẽ chứa project trên máy tính
  • name: tên của ứng dụng, nên là chữ viết thường và các từ có thể được cách nhau bởi dấu gạch ngang (-)
  • package: package java mà ta sẽ sử dụng. Ví dụ như: xyz.papapip.gamebanga
  • mainClass: Tên của class chính mà game sẽ bắt đầu chạy
  • sdkLocation: đường dẫn tới nơi bạn đặt Android SDK trên máy tính
  • excludeModules: các modules tương ứng với các nền tảng mà bạn không muốn phát triển. Các modules sẽ được phân tách nhau bởi dấu ‘;’ ví dụ: Android;ios.
  • extensions: Các thư viện bạn muốn sử dụng để phát triển game: Box2d, Ashley, Ai, Box2dlights, Bullet,.. Các thư viện được khái báo cách nhau bởi dấu ‘;’

Cấu trúc của một project được tạo bởi libGdx:

settings.gradle            <- nới khái báo các modules bên trong project. Mặc định sẽ có các modules: core, desktop, android, html, iOS
build.gradle               <- file Gradle chính chứa các khai báo thư viện, plugins được sử dụng trong project. 
gradlew                    <- local Gradle wrapper
gradlew.bat                <- file script dùng để chạy Gradle trên hệ điều hành Windows
gradle                     <- file script dùng để chạy Gradle trên Unix
local.properties           <- khai báo vị trí đường dẫn của Android SDK dành cho IDE IntelliJ

assets/                    <- thư mục chứa các tài nguyên như hình ảnh, âm thanh,… của game

core/
    build.gradle           <- file Gradle để build cho module core
    src/                   <- Thư mục chứa tất cả các class dòng code mà ta sẽ xây dựng trò chơi.

desktop/
    build.gradle           <- file Gradle để build cho module desktop
    src/                   <- Thư mục chứa code dành riêng cho desktop, trong đó có chưa class LWJGL để chạy trên môi trường desktop

android/
    build.gradle           <- file Gradle để build cho module android
    AndroidManifest.xml    <- file config cho ứng dụng android nó có thể chứa các khai báo xin cấp quyền, các key để sử dụng các api của bên thứ ba,…
    res/                   <- thư mục chứa các tài nguyên như icon, layout giao diện của ứng dụng Android
    src/                   <- thư mục chứa code của Android project, chứa class dùng để chạy ứng dụng Android

html/
    build.gradle           <- file Gradle build cho module html
    src/                   <- thư mục chứa code dành cho html project, trong đó cũng có chứa các config cũng như file để chạy ứng dụng trên html
    webapp/                <- thư mục chứa url của trang index và web.xml

ios/
    build.gradle           <- file Gradle để build cho module iOS
    src/                   <- thư mục chứa code của iOS project , trong đó cũng chứa file dùng để chạy ứng dụng.

Trong cấu trúc trên ta nhìn thấy gradle xuất hiện rất nhiều lần. Vậy gralde có vai trò gì trong một project được tạo ra bởi libGdx. Tổng quan thì gradle là một công cụ dùng để build tự động mã nguồn mở. Để hiểu thêm về gradle ta có thể đọc bài viết Gradle trong Android Studio.

Chạy project trên Android Studio

Ta mở android studio sau đó chọn File -> open rồi mở thư mục game mà vừa được tạo ra. Quá trình đồng bộ các thư viện và cài đặt sẽ mất một khoảng thời gian.

Để chạy được game trên các nền tảng khác nhau thì tương ứng với các nền tảng ta cũng phải có một vài bước cài đặt. Ví dụ như ta muốn chạy trên môi trường Desktop thì ta sẽ thực hiện các bước trên Android Studio như sau:

Trên thanh tool bar chọn phần Run Configurations

Chọn Edit Configurations…

Ta bấm dấu + ở phía góc trái màn hình để mở ra popup chọn các loại config. Bấm chọn Application

Chọn đầy đủ các thông tin trong màn hình sau đó bấm OK

Phần Run Configurations sẽ đổi thành như trên.

Vậy là ta đã config xong giờ bấm run để chạy. Giao diện cửa sổ game mặc định sẽ hiện lên.

Lưu ý: Với trường hợp ta dùng máy tính chạy mac OS khi build có thể sẽ xuất hiện lỗi:

Caused by: java.lang.IllegalStateException: GLFW may only be used on the main thread and that thread must be the first thread in the process. Please run the JVM with -XstartOnFirstThread. This check may be disabled with Configuration.GLFW_CHECK_THREAD0.

Chúng ta mở lại phần Edit Configurations… -> chọn modify options

Chọn Add VM options sau đó ta thêm -XstartOnFirstThread vào ô VM options vừa thêm sau đó bấm OK.

Leave a Reply

Your email address will not be published. Required fields are marked *