Phụ Lục
Thể loại bắn súng đã là một trong những cột trụ của làng game kể từ khi những tựa game kinh điển như Wolfenstein 3D và Doom ra đời, và không ngừng tiến hóa trong suốt gần 30 năm qua. Từ vài tựa game “maze runner” cục mịch ban đầu đến hàng loạt siêu phẩm đậm chất điện ảnh hiện đại, những công nghệ được sử dụng để làm ra chúng không ngừng thay đổi và tiến hóa theo sự phát triển của công nghệ. Nhưng có một điều gần như chẳng bao giờ thay đổi: cách mà các phát đạn hoạt động trong game, từ khi bạn bóp cò đến khi kết quả hiển thị trên màn hình. Hãy để Mọt “bật mí” cho các bạn về cách mà những phát đạn đó hoạt động nhé!
Trong thuở sơ khai của ngành công nghiệp game, rất nhiều trò chơi dựa trên một kỹ thuật gọi là Raycasting. Nó là một phương thức “hô biến” môi trường 3D thành hình ảnh 2D hiển thị trên màn hình, được phát minh bởi Arthur Appel hồi năm 1968. Cách hoạt động của nó rất đơn giản: các “tia” được vẽ ra từ vị trí mắt của nhân vật (hoặc camera) để mô phỏng các tia sáng chiếu tới. Kỹ thuật này không đòi hỏi nhiều sức mạnh xử lý của máy tính, và vì thế hết sức phù hợp với những tựa game 3D sơ khai. Tuy nhiên nó cũng có một hạn chế: các trò chơi sử dụng Raycasting không thể tạo ra các hiệu ứng phản chiếu, tán xạ hay đổ bóng một cách chân thực, mà phải “làm giả” bằng nhiều cách, chẳng hạn tạo ra các vân bề mặt có nhiều độ sáng khác nhau. Bạn có thể xem một ví dụ trong hình dưới: chấm đỏ là nhân vật còn hình chóp màu vàng cam là tầm nhìn của nhân vật trong game.
Raycasting có liên quan gì đến cách hoạt động của một phát đạn? Đó là khi nhà phát triển nghĩ đến việc dùng một tia phát ra từ nòng súng để mô phỏng một viên đạn. Với phương thức này, khi game thủ bóp cò súng, engine của trò chơi sẽ thực hiện một vài tính toán đơn giản:
Nếu engine phát hiện ra rằng tia phát ra từ nòng súng chạm vào một vật thể, nó sẽ quyết định rằng vật thể đó đã “trúng đạn.” Kế tiếp, hình ảnh mà bạn thấy trên màn hình hoàn toàn tùy thuộc vào thứ mà tia phát ra từ nòng súng chạm phải: một vết lửa tóe ra nếu bắn phải kim loại, máu nếu trúng da thịt mục tiêu, vụn gỗ bay tung tóe nếu là một thùng gỗ, và đại loại thế. Và dĩ nhiên là không có phát đạn nào xuất hiện trong môi trường của một tựa game sử dụng Hitscan – nếu game có chế độ Photomode và bạn kích hoạt chế độ này khi vừa bóp cò súng, bạn sẽ chẳng thể nào tìm thấy phát đạn mình vừa bắn ra!
Nhưng Hitscan cũng liên tục được cải tiến theo thời gian. Nếu nhà phát triển quy định rằng chất liệu A có thể cản đạn còn chất liệu B thì không, tia Raycasting phát ra từ nòng súng sẽ tiếp tục được “vẽ” sau khi đã chạm chất liệu B, nhưng sẽ ngừng lại khi chạm chất liệu A – và thế là chúng ta có tính năng xuyên tường của vũ khí. Khi bỏ qua tầm bắn tối đa, bạn có thể xem nó là một tia laser có tầm bắn vô tận. Nếu chất liệu C có khả năng “phản xạ” tia Raycasting, bạn sẽ thấy phát đạn của mình dội ra từ vị trí va chạm…
Ưu thế chính mà Hitscan đem lại cho game là nó có tốc độ tính toán cực nhanh, không đòi hỏi quá nhiều tài nguyên của máy vì game không phải dựng hình các phát đạn (nếu là đạn vật lý). Điều này cực kỳ có lợi trong các tựa game multiplayer, bởi server game không phải dành quá nhiều tài nguyên cho việc tính toán đường bay và sát thương của viên đạn, mà chỉ cần biết phương hướng của tia. Nhà phát triển cũng có thể bổ sung thêm hiệu ứng giật của vũ khí chỉ bằng cách bổ sung một chút nhiễu loạn vào nòng súng…
Vì vậy, không có gì đáng ngạc nhiên khi rất nhiều game hiện đại vẫn còn sử dụng hitscan, chẳng hạn phần lớn game trong series Call of Duty hoặc các nhân vật Soldier 76, McCree và WidowMaker… trong Overwatch.
Dù có nhiều ưu điểm như vậy, Hitscan vẫn không phải là phương thức tính toán đường đạn thống trị ngành công nghiệp game. Tại sao? Đó là vì nó còn có hai nhược điểm lớn không thể được khắc phục bằng cách bổ sung thêm các hiệu ứng mới.
Đầu tiên, bạn có thể đã nhận ra rằng “tia” phát ra từ nòng súng luôn được dựng hình ngay tức khắc và chạm đến mục tiêu ngay khi bạn bóp cò, bất kể khoảng cách từ nòng súng đến mục tiêu là bao xa. Điều này có nghĩa là “viên đạn” mà bạn bắn ra không có thời gian bay, khiến việc né tránh nó là bất khả thi, khiến mục tiêu không có dịp thể hiện kỹ năng né tránh / phản xạ của mình.
Thứ hai, Hitscan thường sử dụng một tia Raycasting thẳng, trong khi một phát đạn thực sự ngoài đời chịu ảnh hưởng của rất nhiều yếu tố như nhiệt độ, sức gió, trọng lực… Điều này khiến nó không thực sự phù hợp với những tựa game đòi hỏi yếu tố chân thực của đường đạn, chẳng hạn Battlefield hay Sniper Elite. Nhà phát triển có thể “hô biến” cho tia Raycasting phát ra từ đầu nòng súng cong xuống để mô phỏng trọng lực, nhưng nó không giải quyết được tất cả vấn đề bởi khi bạn đã bóp cò, viên đạn vẫn chạm đến mục tiêu ngay lập tức và không có cách nào để chỉnh sửa hướng của phát đạn trên đường bay.
Với những ưu và nhược điểm trên, rất nhiều tựa game bắn súng chọn sử dụng Hitscan nhằm giúp những “newbie” có thể làm quen với trò chơi dễ dàng hơn. Tuy nhiên như Mọt đã nói, những tựa game bắn súng muốn tạo ra một trải nghiệm bóp cò chân thực và “nhập vai” hơn không thể sử dụng phương thức Hitscan vì hai nhược điểm lớn của nó. Và thế là người ta cần phải tìm đến một phương thức mới, có phần hiện đại (và cũng hại điện) hơn gọi là Projectile Ballistic. Để biết được ưu nhược điểm của phương thức này, bạn hãy đón đọc trong phần 2 của bài viết này nhé!
(Còn tiếp)