Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Android SDK
Code

Làm quen với Google Play Games Services

Difficulty:IntermediateLength:MediumLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Công nghệ làm Game liên tục phát triển. Tuy nhiên, rất nhiều yếu tố cốt lõi của gameplay vẫn không thay đổi trong nhiều thập niên. Điểm số, bảng điểm, nhiệm vụ, thành tích và hỗ trợ đa người chơi là những ví dụ điển hình. Nếu bạn đang phát triển một trò chơi cho nền tảng Android, bạn không phải thực hiện những yếu tố đó một cách thủ công. Thay vào đó bạn chỉ cần sử dụng Google Play games services API.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo ra một trò chơi Android đơn giản, thêm Google Play games services vào nó và sử dụng các hàm API cho leaderboard (bảng điểm) và achievement (thành tích).

Yêu cầu tiên quyết

Để có thể theo dõi hướng dẫn này, bạn sẽ cần những thứ sau đây:

1. Tạo một trò chơi đơn giản

Không có gì thú vị trong việc thêm Play games services APIs cho một dự án Android Studio rỗng. Vì vậy, hãy để chúng tôi tạo ra một trò chơi mà người dùng đạt điểm chỉ bằng cách nhấn vào một nút. Chính xác hơn, mục tiêu của trò chơi sẽ bấm vào một nút càng nhanh càng tốt trong vòng 60 giây.

Bước 1: Tạo giao diện trò chơi

Bố cục của trò chơi sẽ có một nút Button, người dùng sẽ nhấp vào để đạt được điểm, và hai TextView để hiển thị điểm số và thời gian còn lại. Nếu bạn đặt tất cả chúng bên trong một RelativeLayout và canh giữa chúng cả theo chiều ngang và theo chiều dọc, bạn sẽ có một bố cục trông như thế này:

Trò chơi của chúng ta sẽ có một màn hình leaderboard (bảng điểm) và một màn hình achievement (thành tích). Để cho phép người dùng chuyển qua lại giữa các màn hình, chúng ta thêm hai Button ở phần cuối của bố cục.

Lưu ý rằng cả hai button có các thuộc tính onClick. Chúng ta sẽ tạo ra các phương thức Java mà chúng sẽ tham chiếu đến trong các bước sau.

Bước 2: Cài đặt lôgic của trò chơi

Bên trong activity, tạo các biến thành viên cho các phần tử trò chơi mà chúng ta định nghĩa trong tập tin XML của bố cục. Ngoài ra, tạo ra một biến int cho điểm số và một biến boolean cho trạng thái của trò chơi.

Khởi tạo các thành phần bên trong phương thức onCreate() của activity bằng cách sử dụng phương thức findViewById().

Để lắng nghe cho các cú nhấp vào button, tạo và thêm một OnClickListener vào nó.

Bây giờ, chúng ta phải thực hiện các yêu cầu sau:

  • Lần đầu tiên người dùng nhấp vào button, trò chơi bắt đầu.
  • Mỗi cú nhấp tiếp theo sẽ tăng biến score.
  • Trò chơi phải kết thúc sau khi 60 giây đã trôi qua.

Chúng ta có thể sử dụng biến playing để phân biệt giữa cú nhấp đầu tiên và tất cả các cú nhấp tiếp theo. Để theo dõi thời gian, chúng ta có thể sử dụng lớp trừu tượng CountDownTimer, lý tưởng cho các yêu cầu của chúng ta. Nó có một phương thức onTick() bên trong, mà có thể cập nhật timeView một cách chính xác để hiển thị số giây còn lại. Nó cũng có một phương thức onFinish(), được gọi khi đếm ngược đã hết.

Theo đó, thêm code sau vào các phương thức onClick():

Tại thời điểm này, bạn có thể chạy dự án để bắt đầu trò chơi.

Game interface

2. Thêm các phụ thuộc (Dependencies) vào dịch vụ trò chơi

Cấu hình một dự án để sử dụng Play games services APIs liên quan đến nhiều bước. Bằng cách sử dụng Firebase Assistant của Android Studio, bạn có thể tự động hoá một số cái trong số chúng.

Mở cửa sổ trợ giúp bằng cách vào Tools > Firebase. Tiếp theo, trong phần Analytics, bấm vào liên kết Log an Analytics event. Bây giờ bạn có thể kết nối dự án Android Studio của bạn vào một dự án Firebase bằng cách nhấp vào nút Connect to Firebase. Hãy chắc chắn rằng bạn chọn tùy chọn Create new Firebase project trong hộp thoại bật lên.

Connect to Firebase dialog

Một khi kết nối đã được thiết lập, bấm Add Analytics to your app để thêm tất cả những thay đổi cần thiết vào tập tin build.gradle.

Bạn phải thêm phụ thuộc cho dịch vụ trò chơi theo cách thủ công. Từ đó, hãy vào tập tin build.gradle của mô-đun app và thêm phụ thuộc compile (biên dịch) sau:

Hơn nữa, các API của dịch vụ trò chơi cần một tập tin cấu hình XML. Tạo một cái gọi là games-ids.xml bên trong thư mục res/values. Chúng ta sẽ thêm nội dung vào đó trong bước sau.

3. Dăng ký trò chơi

Tất cả các trò chơi sử dụng Google Play games services phải được đăng ký trên Play developer console. Bạn sẽ phải trả một khoản phí một lần khi đăng ký là 25$ để có thể truy cập vào giao diện điều khiển.

Trong giao diện điều khiển, nhấp vào biểu tượng tay game để mở màn hình Game Services.

Game services screen

Tiếp theo, nhấp vào nút Set up Google Play game services để bắt đầu đăng ký trò chơi.

Trong hộp thoại bật lên, chọn tab thứ hai bởi vì trò chơi của chúng ta đã sử dụng Google APIs. Bây giờ, bạn chắc chắn có thể nhìn thấy tên của dự án Firebase trong danh sách các dự án có sẵn. Sau khi chọn nó, chọn một thể loại cho trò chơi. Bây giờ, bạn có thể chọn thể loại Casual.

Choose your console project

Sau đó bạn nhấn Continue, bạn có thể liên kết Firebase Analytics và Play games services bằng cách nhấp vào nút Link Firebase.

Tiếp theo, đi tới phần Linked apps để liên kết dự án Android Studio của bạn với Play developer console. Trong hộp thoại bật lên, bấm nút Android và gõ tên gói của dự án trong trường Package name.

Link an Android app screen

Bấm vào nút Save and continue để tạo ra một ID khách hàng cho trò chơi của bạn.

Client ID display screen

Trò chơi của chúng ta bây giờ đã được đăng ký thành công với Google Play developer console.

4. Thêm người dùng kiểm thử

Play games services APIs sẽ chỉ làm việc khi trò chơi của bạn được xuất bản trên Google Play. Tuy nhiên, để cho phép bạn thử nghiệm trò chơi của bạn, developer console cho phép bạn kết hợp một số tài khoản người dùng kiểm thử. Bằng cách đi tới phần Testing, bạn có thể thêm hoặc xoá tài khoản người dùng kiểm thử. Hãy chắc chắn rằng bạn thêm tài khoản Google mà bạn sử dụng trên điện thoại hoặc trình giả lập tại đây.

Testing access screen

5. Tạo một bảng điểm

Một bảng điểm không có gì hơn là một màn hình hiển thị các điểm số cao của người chơi. Dịch vụ trò chơi leaderboards (bảng điểm) cho phép người chơi xem điểm số cao hàng ngày, hàng tuần và toàn bộ thời gian của họ.

Tạo một leaderboard trên Play developer console chỉ cần một vài cú nhấp chuột. Đi đến phần Leaderboards và nhấn nút Add leaderboard. Trong màn hình tiếp theo, đặt một cái tên có ý nghĩa cho bảng leaderboard và nhấn nút Save.

Leaderboard creation screen

Bảng leaderboard của chúng ta bây giờ đã xong.

6. Tạo một Achievement

Achievement là các phần thưởng dành được trong game của người chơi để tạo ra một điều gì đó đặc biệt. Một trò chơi mà có nhiều Achievement để mở khóa thường là thú vị hơn cái không có. Do đó, hầu hết các trò chơi phổ biến trên Google Play ngày nay có hàng chục, nếu không nói là hàng trăm các Achievement.

Trong hướng dẫn này, chúng ta sẽ thêm một Achievement vào trò chơi của chúng ta. Tên của nó sẽ là Lightning Fast, và nó sẽ được mở khóa khi người sử dụng nhấn nút hơn 100 lần trong một phút. Để tạo thành tích, hãy đi tới phần Achievements và bấm nút Add achievement. Sau khi bạn nhập tên và mô tả của thành tích, nhấn nút Save.

Achievement creation screen

7. Cập nhật tập tin cấu hình trò chơi XML

Cả bảng leaderboard và bảng achievement có các định danh duy nhất. Bây giờ, chúng ta phải thêm các từ định danh đó vào dự án Android Studio của chúng ta, cùng với ID của ứng dụng được tạo ra trong quá trình đăng ký. Bạn có thể làm điều đó bằng cách tự cập nhật tập tin games-ids.xml mà chúng ta đã tạo ra trước đó. Tuy nhiên, tôi khuyên bạn nên sử dụng cấu hình được tự động tạo ra code có sẵn trong developer console.

Để có được các code cấu hình được tạo ra tự động, bạn có thể đi đến phần Achievements hoặc phần Leaderboards, và bấm vào liên kết Get resources. Bạn sẽ thấy code XML trông như thế này:

Sao chép tất cả các code và dán nó vào tập tin games-ids.xml trong dự án của bạn.

8. Kết nối đến Play Games Services

Trước khi sử dụng leaderboards và achievements APIs, chúng ta phải tạo ra một đối tượng của GoogleApiClient và kết nối nó với các dịch vụ trò chơi. Do đó, thêm một đối tượng GoogleApiClient như là một biến thành viên trong activity của bạn.

Chúng ta phải sử dụng lớp GoogleApiClient.Builder để xây dựng đối tượng của GoogleApiClient. Trong khi xây dựng client, chúng ta có thể chỉ định các API và phạm vi API mà chúng ta đang quan tâm đến bằng cách sử dụng các phương thức addApi()addScope().

Ngoài ra, tôi đề nghị rằng bạn gọi phương thức enableAutoManage() để đảm bảo rằng client tự động quản lý kết nối vào dịch vụ trò chơi. Tuy nhiên phương thức cần một OnConnectionFailedListener, mà sẽ được gọi khi kết nối thất bại. Bây giờ, chúng ta chỉ đơn giản là sẽ gọi phương thức finish() để đóng các ứng dụng trong trường hợp kết nối thất bại.

Theo đó, thêm code sau vào đầu của phương thức onCreate():

Bây giờ nếu bạn chạy các ứng dụng, bạn sẽ được nhắc tạo một Gamer ID cho chính bạn. Nhập vào một Gamer ID mà bạn chọn và bấm nút Sign in.

Sign in to Play Games dialog

9. Sử dụng Leaderboard

Submit một điểm số lên leaderboard chỉ trong một dòng code. Tất cả những gì bạn cần làm là gọi phương thức submitScore() của lớp Games.Leaderboards. Nó cần các tham số là đối tượng của GoogleApiClient, ID của leaderboard và điểm số.

Trong trò chơi của chúng ta, chúng ta phải submit sau khi kết thúc 60 giây. Vì vậy, thêm code sau đây vào phương thức onFinish():

Để xem bảng leaderboard, chúng ta phải khởi tạo một activity mới với một intent leaderboard. Để lấy intent leaderboard, gọi phương thức getLeaderboardIntent() của lớp Games.Leaderboards và truyền qua đối tượng của GoogleApiClient và leaderboard ID vào nó.

Bố cục của của trò chơi của chúng ta đã có một nút button có thể nhấn vào để mở bảng điểm. Giá trị của thuộc tính onClick của nó là showLeaderboard. Vì vậy, hãy thêm code sau đây vào activity của bạn:

Bạn có thể chạy ứng dụng ngay bây giờ và chơi trò chơi một lần nữa. Lần này, khi trò chơi kết thúc, điểm số của bạn sẽ được gửi đến leaderboard. Dưới đây là hình minh hoạ leaderboard mặc định:

Leaderboard window

10. Sử dụng Achievement

Bằng cách gọi phương thức unlock() của lớp Games.Achievements, bạn có thể mở khóa bất kỳ Achievement nào. Phương thức yêu cầu tham số GoogleApiClient và ID của Achievement.

Thành tích Lightning Fast mà chúng ta định nghĩa trong giao diện điều khiển phải được mở khóa khi người chơi vượt qua 100 điểm. Vì vậy, ngay sau code tăng số điểm, hãy thêm code sau:

Code cần thiết để hiển thị màn hình achievement tương tự như chúng ta đã viết để hiển thị màn hình leaderboard. Tất cả những gì bạn cần làm là truyền giá trị trả về của phương thức getAchievementsIntent() vào phương thức startActivityForResult().

Nếu bạn chạy ứng dụng của bạn và chơi trò chơi một lần nữa, bạn sẽ thấy một bảng thành tích bật lên khi điểm số của bạn vượt qua 100 điểm đầu tiên.

Achievement pop up

Kết luận

Bây giờ bạn đã biết cách sử dụng Google Play games services APIs trong dự án Android Studio của bạn. Play games services không chỉ giới hạn đối với nền tảng Android. Chúng còn có thể được sử dụng dễ dàng trên nền tảng web và iOS. Như vậy Play games services cho phép bạn tạo ra các trò chơi đa-nền tảng và cung cấp những trải nghiệm chơi Game phù hợp cho người dùng trên nhiều nền tảng.

Để tìm hiểu thêm về Google Play games services APIs, bạn có thể tham khảo hướng dẫn chính thức của chúng hoặc, thậm chí tốt hơn, hãy xem qua một số hướng dẫn của chúng tôi ở đây trên Envato Tuts+!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.