Bàn Phím Và Tay Cầm – Hai Thế Giới Khác Biệt - nói dối e blog

Bàn Phím Và Tay Cầm – Hai Thế Giới Khác Biệt

Cuối tuần vừa rồi, trong lúc viết thử nghiệm một demo game, tôi cố gắng mô phỏng cảm giác điều khiển mà tôi mong muốn cho đồng nghiệp trải nghiệm. Là một nhà thiết kế game có khả năng lập trình, việc tự mình xây dựng công cụ thử nghiệm là lợi thế đáng quý để kiểm chứng ý tưởng thiết kế.

Game của chúng tôi mang yếu tố hành động rõ rệt, vì vậy tôi không muốn sử dụng chuột để điều khiển di chuyển nhân vật theo kiểu click-and-movement như các game casual thông thường. Về bản chất, tôi thích cảm giác điều khiển theo phong cách console game hơn – thứ mà chiếc tay cầm mang lại. Tuy nhiên trong môi trường PC, tay cầm không phổ biến như bàn phím và chuột, hai thiết bị đầu vào gần như “mặc định” mà mọi máy tính đều có.

Tay cầm điều hướng theo hai cách chính:

Thứ nhất là cần gạt tương tự (analog stick) – thiết bị gần như biểu tượng của thế hệconsole hiện đại. Từ PSP, PS đến Wii đều tích hợp loại cần gạt này. Ưu điểm chính là khả năng nhận lực nhấn qua hai trục (trục X và Y), đồng thời cung cấp tín hiệu hướng di chuyển cực kỳ mượt mà. Khi điều khiển nhân vật di chuyển, cảm giác rất chân thực và trực quan.

Chuột máy tính cũng có thể cung cấp thông tin hướng di chuyển thông qua quãng đường di chuyển, thậm chí xác định tốc độ di chuyển để mô phỏng lực nhấn. Tuy nhiên, chuột thiếu haptic feedback – thứ giúp người chơi cảm nhận được lực tác động vật lý. Ngoài ra, chuột phải di chuyển liên tục mới tạo tín hiệu, không giữ trạng thái ổn định như tay cầm (dù các nút chuột có thể duy trì trạng thái nhấn – lý do vì sao nhiều game FPS đặt thao tác tiến về phía trước ở nút trái chuột). Về bản chất, trải nghiệm điều khiển bằng chuột vẫn kém xa tay cầm.

Nhân tiện đề cập, TrackPoint của IBM thực chất là thiết bị nhập liệu tuyệt vời nếu được phát triển chuyên biệt cho game. Tiếc rằng thiết bị này quá niche, không thể phổ biến rộng rãi.

Thứ hai là kiểu phím điều hướng 8 hướng – tiêu biểu là dạng nút十字键 (D-Pad) trên các tay cầm Nintendo. Dù bị hạn chế bởi các bằng sáng chế, các hãng khác đã cải tiến thiết kế thành nhiều hình dạng khác nhau nhưng vẫn giữ nguyên nguyên lý 8 hướng chính xác. Loại thiết bị này gần như tiêu chuẩn cho các game đối kháng. Như yêu thích của tôi – Virtua Fighter 4 Evolution phiên bản PS2 – thậm chí cấm hoàn toàn việc sử dụng cần gạt tương tự, chỉ cho phép nhập liệu qua phím 8 hướng.

Trên nền tảng PC, đa số game dùng tổ hợp phím WASD để mô phỏng thiết bị này. Tuy nhiên cần lưu ý về giới hạn phần cứng: hầu hết bàn phím gặp hiện tượng khóa phím (key rollover issue) khi có từ 3 phím trở lên được nhấn đồng thời. Ví dụ bàn phím Dell của tôi: khi nhấn giữ W và D, nếu tiếp tục nhấn E, hệ thống sẽ không nhận tín hiệu của E. Mỗi loại bàn phím xử lý vấn đề này khác nhau, có loại cao cấp có thể xử lý 7 phím đồng thời, nhưng tôi chưa có dịp thử nghiệm.

Rất may, phần lớn trường hợp chỉ cần xử lý 2 phím đồng thời là đủ. Tổ hợp WASD hoàn toàn có thể mô phỏng 8 hướng di chuyển với logic xử lý thông minh.

Game khác biệt với phần mềm thông thường ở chỗ: Mỗi thao tác đều tồn tại trong không gian và thời gian. Dù cùng là chương trình nhận tín hiệu đầu vào (chuột/bàn phím) và phản hồi (hình ảnh/âm thanh), nhưng yếu tố con người – người chơi – luôn là phần tử trong hệ thống. Chúng ta không chỉ gửi dữ liệu, mà phải gửi chuỗi dữ liệu đúng thời điểm và theo thứ tự phù hợp. Đây là lý do tôi luôn nhấn mạnh yếu tố thời gian trong lập trình game.

Hệ điều hành tiêu chuẩn không được thiết kế chuyên biệt cho game. Giao diện thiết bị nhập liệu chỉ cung cấp dữ liệu thô, thiếu kiểm soát về mặt thời gian – điều chúng ta phải tự xử lý ở cấp ứng dụng. Tất nhiên cũng có ngoại lệ: như Windows có thể xử lý lệnh nhấp đúp chuột ở cấp độ hệ điều hành.

Trên console, thao tác nhấp đúp cũng rất phổ biến. Nhiều game hành động dùng thao tác nhấp đúp phím tiến để kích hoạt chạy nhanh hay lao tới. Chưa kể, mối quan hệ giữa thời gian nhấn và chức năng cũng rất đa dạng. Ví dụ trong Monster Hunter bản PSP: nhấn nhẹ L là chuyển góc nhìn, giữ L lâu lại chuyển sang chức năng hoàn toàn khác – thao tác chọn vật phẩm.

Cảm giác điều khiển chính là linh hồn của nhiều thể loại game. Nếu bạn chưa tin, hãy nhìn vào ảnh hưởng của Wii và NDS – hai thiết bị đã thay đổi cục diện thị trường console. Chúng ta không nên đổ lỗi cho thiết bị nhập liệu PC “lỗi thời”, mà phải thừa nhận rằng nhiều nhà phát triển vẫn chưa đầu tư đủ vào trải nghiệm điều khiển. Ngay cả các phần mềm không phải game cũng đã làm rất tốt điều này – như trình duyệt Opera yêu thích của tôi với tính năng mouse gesture (thao tác chuột theo hình vẽ) tiện lợi. Hãy thử suy nghĩ sâu hơn – cả chuột và bàn phím đều ẩn chứa tiềm năng ứng dụng chưa được khai thác hết.

Hãy cùng phân tích những gì tôi làm cuối tuần qua:

Khi dùng WASD mô phỏng nút 8 hướng, gặp phải vài vấn đề thú vị. Thông thường, ta dùng 2 phím đồng thời để tạo hướng chéo – ví dụ nhấn W và D là hướng phải trên. Nhưng vấn đề nằm ở khái niệm “đồng thời” – thực tế không tồn tại việc con người nhấn 2 phím thật sự cùng lúc. Hệ điều hành luôn nhận tín hiệu từng phím có thứ tự.

Điều này chưa nghiêm trọng bằng trường hợp khác: nếu bạn nhấn cùng lúc A và D, hệ thống xử lý ra sao? Trên tay

0%