Giải mã xu hướng “sát ổ cứng” của các tựa game ngày nay
Vừa rồi, anh em game thủ chúng ta chắc vẫn còn nhớ pha “khiếp vía” khi Call of Duty: Modern Warfare công bố cấu hình yêu cầu dung lượng ổ cứng lên đến… 175GB, hay như Red Dead Redemption 2 khi đổ bộ lên PC cũng đòi đến tận 150GB. Mặc dù sau đó, dung lượng thật của Modern Warfare chỉ “ngốn” 128GB ổ cứng thôi (còn phần còn lại là Activision trừ hao cho mấy gói mở rộng sau này), nhưng con số hơn 100GB kia thì cũng đã đủ “ná thở” rồi.
Mình còn nhớ 5 năm về trước, rất nhiều game thủ trên thế giới (và kể cả mình) đã bị một phen “hết hồn chim én” khi trò Titanfall (của Respawn Entertainment – cũng là nhà phát triển Apex Legends) yêu cầu đến 50GB dung lượng ổ cứng. Bây giờ nhìn lại thì thấy cũng bình thường thôi, nhưng vào thời điểm đó thì con số 50GB cho một tựa game chỉ-có-mục-multiplayer quả là “không tưởng” đối với rất nhiều người.
Cái gì cũng có lý do của nó. Vì vậy, mình đã quyết định đi tìm hiểu xem hà cớ gì mà những tựa game sau này, nhất là game bom tấn AAA, lại yêu cầu mức dung lượng ổ cứng “siêu to khổng lồ” đến thế.
Điều đầu tiên mà mình nghĩ đến (và chắc hẳn nhiều bạn đọc cũng nghĩ ngay đến) đó chính là chất lượng hình ảnh bề mặt vật thể (texture quality). Mình lấy ví dụ như một texture có độ phân giải 2048×2048 (2K) thì sẽ “nặng” đâu đó tầm 16,78MB. Trong một khung cảnh thế giới mở như Red Dead Redemption 2, giả sử tất cả bề mặt vật thể đều sử dụng texture 2K (không nén) thì với 150GB (ừ, cứ coi như là 150GB đó hiến dâng hết cho một mình cái texture thôi) thì chỉ có đủ chỗ cho khoảng 9.600 loại texture khác nhau.
Ờ rồi cứ cho là con số 9.600 kia là “ổn áp” đi. Nhưng giờ game nó muốn xài texture độ phân giải 4K (4096×4096) thì sao? Thì lấy 9.600 chia 4 chứ sao. Nghĩa là 150GB giờ đây chỉ còn chỗ để chứa 2.400 texture, lúc này thì chắc trong game 10 nhân vật chỉ mặc đúng 1 bộ đồ thôi quá.
Mà mình hãy quay lại một chút về vụ không nén (uncompressed) kia nhé. Các bạn chắc cũng đã biết một tập tin không nén sẽ có chất lượng tốt hơn một tập tin đã bị nén và bị phần mềm can thiệp (như hình JPG ấy), nhưng đồng thời thì việc không nén sẽ khiến dung lượng tập tin bị đội lên gấp nhiều lần so với tập tin đã bị nén.
Vấn đề nằm ở chỗ việc bung nén sẽ khiến máy bạn “tốn sức”. Bạn giải nén một tập tin thì vô tư, chim vẫn hót và mây vẫn bay; nhưng khi bạn giải nén cả ngàn tập tin thì sao? Thì “banh xác” cái máy chứ sao.
Và thế là thuật toán DirectX Texture Compression (DXTC) ra đời nhằm “giảm tải” cho quá trình giải nén đó. Nói một cách đơn giản thì thuật toán này sẽ có một công thức cụ thể, áp dụng đồng đều khi nén những tập tin hình ảnh. Vì thế cho nên nhà phát triển có thể dễ dàng ước lượng khá chính xác dung lượng sau khi bung nén là bao nhiêu, và nhà sản xuất phần cứng cũng dễ dàng tối ưu sản phẩm của mình nhằm giải nén nhanh hơn.
Theo mình tìm hiểu thì hầu hết những game hiện nay đều sử dụng thuật toán này để nén texture lại, với tỷ lệ nén thường là 6:1 hoặc 4:1. Và tất nhiên, chất lượng tất cả texture trong game không nhất thiết phải giống nhau, ví dụ như những vật thể có kích thước nhỏ thì không nhất thiết phải sử dụng texture 2K hay 4K.
Ngoài ra, còn một thứ nữa mà ta cần biết đến, đó là mipmaps. Nôm na thì mipmaps là một tập ảnh có kích thước nhỏ dần, với kích thước ảnh sau nhỏ bằng phân nửa ảnh trước. Lấy lại ví dụ ban nãy là texture 2K (2048×2048) thì sẽ có 11 mipmaps: 1024×1024, 512×512, …, 2×2, 1×1. Sở dĩ có cái mipmaps này là bởi vì không phải texture nào cũng nhất thiết phải được hiển thị full kích thước 24/7 (nhất là những vật thể ở xa), nên việc ứng dụng mipmaps sẽ giúp băng thông bộ nhớ được tối ưu tốt hơn và game cũng chạy mượt mà hơn.
Sau khi nắm trong tay những thông tin trên, bây giờ mình trở lại ví dụ ban đầu nhé. Giả sử trong một khung cảnh có 10.000 texture đi, với engine game Unreal Engine thì 10.000 texture 1K nó sẽ nén đâu đó còn tầm 13,3GB, 2K thì còn 53,3GB, và 4K thì sẽ còn tầm… 223,7GB. Chu choa! Đó là chỉ mới tính texture thôi nhé, còn âm thanh, video, thêm ti tỉ thứ khác nữa thì ôi thôi, ai thấu nỗi đau này?
Tất nhiên, mỗi nhà phát triển, mỗi engine game sẽ có cách lưu trữ những tập tin game khác nhau. Nhưng nhìn chung thì những game “nặng kí” gần đây hầu hết “thủ phạm” là do texture. Cái lợi của việc “nặng kí” là texture trong game sẽ đa dạng, nhìn chân thực và đẹp hơn. Còn cái hại là nhiều lúc chuyển mức chất lượng texture từ Ultra sang High/Very High (texture từ 4K sang 2K chẳng hạn) thì hầu như rất khó để thấy được sự khác biệt, nhất là đối với màn hình 1080p mà hai phần ba anh em game thủ vẫn đang tin dùng, mà trong khi đó Ultra lại hao tốn tài nguyên PC hơn rất nhiều so với thiết lập High/Very High.
Tuy mình vẫn chưa thể xác định được đâu là nguyên nhân dẫn đến 128GB của Modern Warfare, nhưng từ hình ảnh cho đến âm thanh trong game, mình phải công nhận một điều rằng nó rất mãn nhãn, đã tai đã mắt y như là đang xem bộ phim Sicario (2015) của đạo diễn Denis Villeneuve vậy. Nếu Red Dead Redemption 2 (PC) hứa sẽ cho mình cảm giác như đang xem Django Unchained (2012) của Quentin Tarantino, hay chí ít là The Magnificent Seven (2016) của Antoine Fuqua, thì mình cũng sẵn sàng đưa 150GB ổ cứng mà không một chút do dự.
Nguồn: PC Gamer