Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic - PC/Console

Là một phương thức tính toán đường đạn đã tồn tại trong game từ rất lâu, Projectile Ballistic có những ưu điểm mà Hitscan không có được.

Như bạn đã biết trong phần 1 của bài viết này, phương thức tính toán đường đạn cổ điển, nhẹ máy và thân thiện với người chơi nhất là Hitscan đã tồn tại được hàng chục năm và không có dấu hiệu gì cho thấy nó sẽ bị “thất sủng.” Nhưng đôi khi các nhà phát triển không thể sử dụng Hitscan trong tựa game bắn súng của mình vì những nhược điểm lớn của nó, buộc họ phải tìm tới giải pháp thứ 2 gọi là Projectile Ballistic. Ngày hôm nay, hãy cùng Mọt khám phá xem Projectile Ballistic là gì và ưu – nhược điểm của nó ra sao nhé.

Projectile Ballistic là gì?

Trong quân sự, Projectile có nghĩa đen là “vật thể được phóng ra,” có thể là rocket, tên lửa, viên đạn hoặc một con dao – chỉ cần nó bay trên không trung, người ta sẽ gọi nó là Projectile. Ballistic là “đường đạn” – và Projectile Ballistic nghĩa là đường bay của vật thể chúng ta vừa nhắc đến. Khi ứng dụng vào game, Projectile Ballistic nghĩa là mỗi phát đạn bắn ra tạo ra thêm một vật thể mới hiện diện ngay trong môi trường, với những thuộc tính như khối lượng, tốc độ, hitbox mà engine buộc phải theo dõi trong thời gian thực.

Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic

Sniper Elite dùng Projectile Ballistic để tính toán đường đạn.

Với đặc trưng này, Projectile Ballistic được dùng trong những tựa game đòi hỏi sự chân thực trong gameplay. Projectile Ballistic cũng là cách duy nhất cho phép những loại vũ khí như tên lửa hay phóng lựu được tồn tại trong game. Bởi viên đạn thực sự tồn tại, chúng ta có thể áp dụng thêm rất nhiều yếu tố bên ngoài vào nó như gió, ma sát, trọng lực, nhiệt độ,… hay những hiệu ứng đặc biệt mà khẩu súng / nhân vật / môi trường sở hữu. Game sử dụng Projectile Ballistic có thể tạo ra những hiệu ứng thú vị như…

  • Hiệu ứng làm chậm thời gian Bullet Time trong những game như Max Payne, Sniper Elite, F.E.A.R.
  • Thời gian bay của những phát đạn bắn tỉa trong Battlefield, Ghost Recon: Wildlands.
  • Các hiệu ứng nổ chậm trong đạn phóng lựu hoặc lựu đạn.
  • Những phát đạn bay cầu vồng từ khoảng cách hàng chục km trong World of Warships.
Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic

Hiệu ứng làm chậm thời gian của dòng game Max Payne không thể tồn tại nếu thiếu Projectile Ballistic.

Bởi mỗi phát đạn đều tồn tại trong môi trường, bạn có thể dễ dàng tìm thấy chúng khi bật chế độ Photomode hoặc nhìn thấy chúng bay khi làm chậm thời gian. Max Payne, Sniper Elite, Battlefield là những ví dụ cho game sử dụng Projectile Ballistic khi tính toán các phát đạn của mình. Những khẩu súng cực kỳ thú vị cho phép bạn tự tay “lái” viên đạn như Seeker trong Singularity, Head Hunter trong Bulletstorm cũng sẽ không tồn tại nếu không dùng Projectile Ballistic.

Những cơ chế save thú vị nhất của làng game – Phần 1
Có việc save game thôi mà cũng lắm kiểu nhiều cách! – P.1
Thường save chỉ đơn thuần là bấm một phím tắt hay vài lần click chuột, nhưng một vài game biến việc save thành một yếu tố rất quan trọng trong lối chơi.

Và nhược điểm của nó

Nếu như một khẩu súng máy trong một tựa game dùng Hitscan chỉ tạo ra một loạt “tia” được tính toán một lần duy nhất, khẩu súng tương tự trong một tựa game dùng Projectile Ballistic sẽ đặt rất nhiều gánh nặng lên phần cứng bởi từng phát đạn của nó đều phải được theo dõi trong thời gian thực. Gánh nặng này sẽ còn được nhân lên gấp nhiều lần trên các chiến trường multiplayer, bởi server game luôn phải cố gắng giữ cho vị trí của các phát đạn đồng bộ với nhau trên máy của tất cả những game thủ tham chiến, và phải giải quyết những mâu thuẫn xuất hiện để đảm bảo một trận chiến công bằng cho game thủ.

Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic

Battlefield 5.

Các nhà phát triển biết rõ nhược điểm của phương thức này, và đã rất cố gắng để giảm thiểu gánh nặng mà Projectile Ballistic đặt ra cho máy tính. Một trong những phương thức mà Mọt biết đến là game sẽ dựng sẵn một loạt viên đạn trước khi trận đấu bắt đầu, sau đó teleport nó vào nòng súng khi game thủ bóp cò và bắt đầu tính toán từ đó. Một khi viên đạn chạm đến mục tiêu, game sẽ dựng nên hiệu ứng (tia lửa, vụn gỗ, máu…) trong khi phát đạn sẽ được teleport ra ngoài để chờ lần sử dụng kế tiếp.

Phương thức này giúp giảm bớt nhu cầu tính toán trong trận đấu cũng như dung lượng RAM cần thiết khi trò chơi phải không ngừng tạo ra những phát đạn mới, tính toán rồi xóa bỏ nó sau khi chạm vào mục tiêu. Tuy nhiên, nó lại có một nhược điểm lớn nằm ở số lượng đạn mà game dựng sẵn. Lấy ví dụ tựa game World of Warships mà Mọt tui đang theo đuổi: khi một trận đấu có quá nhiều chiến hạm có tốc độ bắn cao, game sẽ… thiếu đạn và gây ra một lỗi khó chịu sẽ xảy ra là các phát đạn không được dựng hình ngay lập tức khi vừa bay ra khỏi nòng, mà chỉ xuất hiện đâu đó giữa trời hoặc khi đã sắp chạm vào mục tiêu, khiến game thủ không thể dự đoán và né tránh.

Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic

World of Warships.

Một chỉ số rất quan trọng với những tựa game sử dụng Projectile Ballistic là “Tick,” một đơn vị thời gian được sử dụng trong game. Thông thường, một tựa game sẽ tính toán và cập nhật vị trí của phát đạn một lần mỗi Tick. Có hai phương thức tính Tick:

  • Tính toán tách biệt với phần dựng hình, nên vị trí của phát đạn sẽ vẫn chính xác ngay cả khi game bị giật, đứng hình trên máy của bạn. Tuy nhiên việc tính toán này sẽ phức tạp hơn vì game cần phải biết rõ bao lâu đã trôi qua kể từ khung hình cuối cùng.
  • Tính toán theo từng khung hình, khiến tốc độ khung hình của game đồng nghĩa với tốc độ thời gian trôi qua trong game. Đơn giản hơn, nhưng nhà phát triển buộc phải giới hạn số khung hình (30 hoặc 60 là những con số thường được chọn).

Nếu một tựa game chọn cách tính Tick thứ hai, nó sẽ dẫn đến một yếu tố khá buồn cười là nếu tốc độ khung hình giảm thì thời gian trong game sẽ chậm lại, còn nếu khung hình tăng thì thời gian sẽ trôi nhanh hơn. Đây chính là phương thức đã bị game thủ Fallout 76 lợi dụng để “hack speed” khi trò chơi mới ra đời.

Một nhược điểm chung mà cả hai phương thức tính Tick đều phải đối mặt là sai sót khi tốc độ của phát đạn quá nhanh. Hãy tưởng tượng game cập nhật vị trí đạn ở 2 “tick,” khi viên đạn cách nòng súng 0,5m và 1m. Khi điều này xảy ra, những kẻ địch nằm trong khoảng từ 0,51m đến 0,99m sẽ không bị trúng đạn, dù trên logic phát đạn đã bay xuyên qua chúng!

Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic

Space Invader là một trong những tựa game đầu tiên dùng Projectile Ballistic.

Tất cả những điều trên nghe có vẻ như rất hào nhoáng và hiện đại, có thể khiến bạn nghĩ rằng Projectile Ballistic ra đời sau Hitscan, nhưng thực tế là ngược lại: Projectile Ballistic ra đời trước Hitscan và đã được áp dụng từ tận thập niên 80 trong những tựa game bắn súng top-down đầu tiên như Asteroids, Space Invaders, Galaxian… Dĩ nhiên là những viên đạn trong các trò chơi này đều rất đơn giản, thường chỉ là một vài pixel nhỏ xíu trên màn hình. Nhưng cũng như Hitscan, Projectile Ballistic không thể đáp ứng được nhu cầu tạo ra một tựa game chân thực, “thật như cuộc sống,” nên người ta phải tìm đến một giải pháp khác sẽ được Mọt tui nhắc đến trong phần 3 và cũng là phần cuối của loạt bài này, mời các bạn đón xem.

Siêu phẩm kiếm hiệp hot nhất cuối năm 2019 – Bấm liền tay nhận ngay quà tân thủ: https://go.onelink.me/WOzv/MotGame

Đây là bài viết nằm trong loạt bài về Cách tính đường đạn trong game
  1. Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.1: Hitscan
  2. Game phán xét phát đạn của bạn trúng hay hụt bằng cách nào? – P.2: Projectile Ballistic