Monday, March 2, 2015

Gaming - Các khái niệm khởi đầu khi làm game

Hiện nay có nhiều framework hỗ trợ mạnh các developer trong việc sản xuất game theo ý thích của mình. Các gương mặt tiêu biểu có thể nhắc đến, có cộng đồng lớn như cocos2d-x (cocos2d series), Unity,...
Tuy nhiên, trước khi bắt tay vào làm game, bạn cũng nên nắm được một số khái niệm cũng như là thuật ngữ chuyên môn sử dụng trong sản xuất game.


Director - Đạo diễn
Việc làm game cũng giống như việc thực hiện một bộ film, chỉ khác một chút là khán giả cũng có thể thao tác trực tiếp để tạo nên câu chuyện chứ không chỉ đơn thuần là thưởng thức bằng cách xem như là film. Và để khởi đầu, bạn cũng tưởng tượng như bạn đang phải thực hiện một bộ film, và bạn chính là Executive Producer - Nhà điều hành sản xuất game. Bạn sẽ phải nói với Director - Đạo diễn về những gì cần làm cho game của mình.
Director - Đạo diễn sẽ điều khiển các Scene - Cảnh, việc thay cảnh này cảnh kia, chuyển đổi các Scenes.
Trong một game, Director thường là một singleton Object được shared dùng chung, bạn có thể gọi nó ở bất kỳ đâu trong code.


Scene
Tương tự như trên, Scene sẽ là nơi bạn tổ chức, phân bố các thành phần sẽ hiển thị trên màn hình: main menu, buttons, objectives,...
Các object hiển thị trên Scene theo một quy tắc hình cây như sau:

Các object sẽ được hiển thị lần lượt theo hình cây, theo hướng đường nét đứt. Từ trái qua phải, từ trên xuống dưới.
Bạn cũng cần hiểu thêm về z-index (z-order) là khái niệm có liên quan khi hiển thị các object. Z-order là chiều từ màn hình hướng về phía người chơi, ví dụ: background của game có z-index = 0, sau đó trên background có thể có nhà với z-index = 1, trên nhà lại có người ở bên ngoài có z-index = 2. Như vậy, khi người chơi nhìn vào màn hình sẽ thấy người đầy đủ, đằng sau người là nhà, và người không bị nhà che lấp đi.

Sprites
Sprite là các object graphics sẽ sử dụng để hiển thị việc move-di chuyển, trong game. Ví dụ như nhân vật chính với các hành động đi lại, đánh quái trong game của bạn.

Sprites Sheet
Sprites sheet là cách kết nối các sprite thành một file. Việc này giúp cho dung lượng của file tính về tổng là giảm đi so với việc để riêng rẽ từng file. Như vậy, cũng tương ứng với việc giảm được bộ nhớ phải sử dụng, thời gian tải object lên bộ nhớ. Ngoài ra còn tăng được tốc độ xử lý perfomance vì chỉ cần init một object graphics thôi. Việc làm này thường đã trở thành một chuẩn chung, thường gặp trong sản xuất game.


Nodes
So với Sprite, thì Node tương tự, nhưng nó là những object no-move, không cho phép bạn di chuyển chúng. Xem hình bên dưới đây để hiểu rõ hơn:


Trong hình đó, Sprites là các nhân vật, bạn có thể tap vào và drag để di chuyển. Còn các Nodes là Banners, tường gạch, bạn sẽ không di chuyển được.


Sequences và Spawns
Sequences là tập hợp các Actions chạy theo một thứ tự cố định được chỉ sẵn. Ví dụ, hành động mây bay trên trời ở nền của cảnh game thường được điều khiển tự động bằng sequence.
Khi mà nhiều sequences cùng chạy một lúc thì gọi là Spawn. Ví dụ, khi nhân vật được thăng cấp, có thể có các hiệu ứng cùng xảy ra một lúc vào thời điểm đó.

Parent Child Relationship - Quan hệ Cha Con
Các thay đổi được gán cho parent node, sẽ được apply vào children node của node đó, tương ứng ngay.