Giới thiệu về bài học

Dữ liệu trò chơi là thông tin được thu thập và sử dụng trong quá trình chơi game. Dữ liệu này có thể bao gồm các thông tin về điểm số, trạng thái của người chơi, thông tin về các vật phẩm trong trò chơi, và nhiều hơn nữa. Hiểu và sử dụng dữ liệu trò chơi là một phần quan trọng trong việc phát triển game.

Mục tiêu

Sau khi kết thúc bài học này, các em có thể…

  • Sử dụng cơ sở dữ liệu (database) để phát triển trò chơi.
  • Lấy dữ liệu từ cơ sở dữ liệu và hiển thị lên UI (giao diện người dùng).

I. Cơ sở dữ liệu (Database)

Chắc hẳn trong chúng ta, ai cũng đã từng chơi một trò chơi trực tuyến. Trong hầu hết các trò chơi sẽ có điểm số của những người chơi! Những trò chơi như thế đòi hỏi phải lưu và hiển thị số điểm trong suốt quá trình chơi. Vậy, người ta lưu và hiển thị điểm số đó như thế nào?

Câu trả lời là: thông tin của trò chơi sẽ được lưu trong một cơ sở dữ liệu (database).
Vậy thì cơ sở dữ liệu là gì?

Là tập hợp thông tin có tổ chức được lưu trữ trên máy tính.

Chúng ta cần CƠ SỞ DỮ LIỆU để lưu trữ DỮ LIỆU TRÒ CHƠI. Cơ sở dữ liệu phải đảm bảo khả năng thông tin được tồn tại lâu dài.

Trong cuộc sống hàng ngày, chúng ta có thể coi cơ sở dữ liệu như một tủ chứa đựng sách vở của các em.

Khi ta đã có một cơ sở dữ liệu rồi thì ta cập nhật thông tin vào trong cơ sở dữ liệu đó như thế nào? Cập nhật bao gồm các hành động thêm, sửa, xoá dữ liệu từ một cơ sở dữ liệu. Trước tiên chúng ta cùng nhau tìm hiểu xem chúng ta thêm thông tin vào trong một cơ sở dữ liệu như thế nào.

II. Thêm thông tin vào Cơ Sở Dữ Liệu (CSDL)

Khi có người chơi trò chơi mà các em tạo ra, thì các em phải phải cập nhật thông tin của người chơi đó vào trong CSDL để có thể tiếp tục sử dụng thông tin đó trong những lần chơi khác nhau. Để làm được điều này, ta dùng câu lệnh:

Thêm thông tin vào cơ sở dữ liệu

Đây là phương thức thuộc về đối tượng ‘db’. Các nhà lập trình viên thường viết tắt tên các đối tượng trong phần mềm. Ví dụ ở đây ‘db’ là viết tắt cho database object (đối tượng cơ sở dữ liệu). Tên của phương thức này là add, và phương thức này nhận hai đối số: key & value.

  • Key: là khoá và nó là một chuỗi độc nhất trong cơ sở dữ liệu. Key này sẽ không trùng với key nào khác trong cùng một CSDL.
  • Value: là giá trị của key mà chúng ta cần lưu.

Như vậy là chúng ta đã biết cách lưu thông tin nào đó của người chơi vào trong CSDL rồi. Vậy câu hỏi đặt ra là làm thế nào để hiển thị thông tin đó để người chơi được biết? Vậy thì ta cần phải tìm hiểu về Giao diện người dùng (hay viết tắt là UI)

III. Giao diện người dùng (UI)

Giao diện người dùng là gì?
Giao diện người dùng (UI) là phần của một trò chơi hoặc ứng dụng mà chúng ta có thể nhìn thấy và tương tác trực tiếp. Nó bao gồm các nút, biểu tượng, thanh công cụ, menu, và các thành phần khác giúp chúng ta điều khiển và sử dụng phần mềm một cách dễ dàng.

Ta thấy giao diện người dùng ở khắp mọi nơi trong những màn Codecombat mà chúng ta đã học. Ví dụ:

  • Click vào các nút (chạm)
  • Phát âm thanh (nghe)
  • Bảng thành tích (nhìn)
  • Font chữ dễ đọc (nhìn)
Giao diện người dùng trong lập trình
Hình ảnh minh hoạ về giao diện người dùng trên CodeCombat

Như vậy cho tới lúc này, chúng ta đã học cách thêm thông tin vào CSDL và giao diện người dùng là gì rồi. Bây giờ, chúng ta sẽ học cách hiển thị thông tin đã được lưu trong CSDL ra giao diện người dùng như thế nào nhé.

IV. Cập nhật UI

Khi chúng ta cần cập nhật thông tin nào đó đã được lưu trong CSDL lên UI thì chúng ta sử dụng phương thức track của đối tượng ui như sau:

Cập nhật UI

  • Đây là phương thức thuộc về đối tượng ‘ui’ viết tắt cho user interface (giao diện người dùng).
  • Tên của phương thức này là track.
  • Phương thức này nhận hai đối số: tên của cơ sở dữ liệu, tức là db, và key của giá trị mà chúng ta muốn hiển thị ra.

Đôi khi chúng ta chỉ muốn cập nhật một giá trị trong cơ sở dữ liệu hay hiển thị thông tin từ CSDL lên UI khi có sự kiện gì đó xảy ra trong trò chơi. Ta gọi đó là lập trình hướng sự kiện.

Bây giờ, các em chỉ cần thêm câu lệnh “def onVictory(event)” vào khối code của mình như hình ảnh dưới đây:

Sự kiện trong lập trình Python với CodeCombat
Sự kiện trong lập trình Python với CodeCombat

Các em có thể thấy rằng những dòng code này không chạm vào sát cạnh của trình biên soạn. Có bốn dấu cách hoặc một dấu tab trước các dòng code trong khối onVictory.

Kết luận

Dữ liệu trò chơi là một phần quan trọng trong việc phát triển và duy trì trò chơi. Hiểu và sử dụng dữ liệu một cách hiệu quả sẽ giúp tạo ra trải nghiệm chơi game tốt hơn và thu hút người chơi hơn. Trong bài học này, chúng ta đã tìm hiểu về khái niệm dữ liệu trò chơi, cách lưu trữ và xử lý dữ liệu, cũng như cách sử dụng dữ liệu để cải thiện trải nghiệm người chơi.

Sau khi kết thúc bài học này, các em có thể thực hành thông qua các màn chơi từ levels 18 – 20 trong Game Dev 1 của CodeCombat nhé!